Bläddra i källkod

Merge branch 'SQL'

Iñigo Valentin 9 år sedan
förälder
incheckning
6efb6f8f03
4 ändrade filer med 267 tillägg och 0 borttagningar
  1. 33 0
      .gitignore
  2. 17 0
      sql/dbusers-example.sql
  3. 187 0
      sql/setup.sql
  4. 30 0
      sql/text.sql

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+#Kate files
+.kateproject.d/
+.kateproject
+
+#OS files
+.directory
+.DS_Store
+.DS_Store?
+._*
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+#Utility folders
+3rdparty/
+pending/
+utils-local/
+copy
+remotecopy
+remoteadmin
+www-admin/redirect_s.php
+
+#SQL data
+sql/dbusers.sql
+sql/*row*.sql
+
+#Passwords file
+sql/dbpasswords.sql
+www/.htpasswd
+www-admin/.htpasswd
+www/.htaccess_local
+www-admin/.htaccess_local
+

+ 17 - 0
sql/dbusers-example.sql

@@ -0,0 +1,17 @@
+-- Replace all instances of  XXX with the external site db password
+GRANT SELECT ON iv.lang TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.text TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.user TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.post TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.post_tag TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.post_image TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT, INSERT ON iv.post_comment TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.project TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.project_url TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.project_image TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.project_tag TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT, INSERT ON iv.project_comment TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+GRANT SELECT ON iv.settings TO 'ivext'@'localhost' IDENTIFIED BY 'XXX';
+
+--Replace YYY with the internal site db password
+GRANT SELECT, INSERT, DELETE, UPDATE, SHOW VIEW ON iv.* TO 'ivint'@'localhost' IDENTIFIED BY 'YYY';

+ 187 - 0
sql/setup.sql

@@ -0,0 +1,187 @@
+DROP DATABASE IF EXISTS iv;
+CREATE DATABASE iv CHARACTER SET utf8 COLLATE utf8_bin;
+
+SET NAMES utf8;
+
+CONNECT iv;
+
+CREATE TABLE lang (
+    code    VARCHAR(2)   PRIMARY KEY,
+    name    VARCHAR(16)  NOT NULL,
+    active  BOOLEAN      DEFAULT 0
+);
+
+CREATE TABLE text (
+    id       VARCHAR(32),
+    lang     VARCHAR(2)     REFERENCES lang.code,
+    section  VARCHAR(32),
+    text     VARCHAR(5000)  NOT NULL,
+    PRIMARY KEY(id, lang)
+);
+CREATE INDEX i_text ON text(id, lang);
+
+CREATE TABLE user (
+    id        INT            AUTO_INCREMENT  PRIMARY KEY,
+    username  VARCHAR(64)    NOT NULL,
+    email     VARCHAR(128)   NOT NULL,
+    password  CHAR(128)      NOT NULL,
+    salt      CHAR(128)      NOT NULL,
+    fname     VARCHAR(64),
+    lname     VARCHAR(64),
+    picture   VARCHAR(100),
+    phone     VARCHAR(16),
+    cp        VARCHAR(6),
+    admin     BOOLEAN        NOT NULL        DEFAULT 0,
+    active    BOOLEAN        NOT NULL        DEFAULT 0
+);
+
+CREATE TABLE login_attempts (
+    user     INT          NOT NULL  REFERENCES user.id,
+    dtime    VARCHAR(30)  NOT NULL,
+    success  BOOLEAN      NOT NULL  DEFAULT 0
+);
+
+CREATE TABLE permissions(
+    user        INT          REFERENCES user.id,
+    permission  VARCHAR(32)  NOT NULL,
+    PRIMARY KEY(user, permission)
+);
+
+CREATE TABLE post (
+    id         INT           AUTO_INCREMENT  PRIMARY KEY,
+    permalink  VARCHAR(300)  NOT NULL,
+    title      VARCHAR(32)   NOT NULL        REFERENCES text.id,
+    text       VARCHAR(32)   NOT NULL        REFERENCES text.id,
+    user       INT           NOT NULL        REFERENCES user.id,
+    dtime      TIMESTAMP     NOT NULL        DEFAULT now(),
+    visible    BOOLEAN       NOT NULL        DEFAULT 1,
+    comments   BOOLEAN       NOT NULL        DEFAULT 1
+);
+
+CREATE TABLE post_tag (
+    post    INT          NOT NULL  REFERENCES post.id,
+    tag     VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    PRIMARY KEY (post, tag)
+);
+
+CREATE TABLE post_image (
+    id      INT           NOT NULL,
+    post    INT           NOT NULL  REFERENCES post.id,
+    image   VARCHAR(200)  NOT NULL,
+    PRIMARY KEY(id, post)
+);
+
+CREATE TABLE post_comment (
+    id        INT            AUTO_INCREMENT            PRIMARY KEY,
+    post      INT            NOT NULL                  REFERENCES post(id),
+    text      VARCHAR(5000)  NOT NULL,
+    dtime     TIMESTAMP      NOT NULL                  DEFAULT now(),
+    user      INT            REFERENCES user.id,
+    username  VARCHAR(200),
+    lang      VARCHAR(10),
+    approved  BOOLEAN        NOT NULL                  DEFAULT 1,
+    visit     INT            REFERENCES stat_visit.id
+);
+
+CREATE TABLE project_type (
+    id       VARCHAR(1)   NOT NULL  PRIMARY KEY,
+    title    VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    summary  VARCHAR(32)  NOT NULL  REFERENCES text.id
+);
+
+CREATE TABLE project (
+    id         INT           AUTO_INCREMENT  PRIMARY KEY,
+    permalink  VARCHAR(300)  NOT NULL,
+    type       VARCHAR(1)    NOT NULL        REFERENCES project_type.id,
+    title      VARCHAR(32)   NOT NULL        REFERENCES text.id,
+    logo       VARCHAR(32),
+    header     VARCHAR(32)   NOT NULL        REFERENCES text.id,
+    text       VARCHAR(32)   NOT NULL        REFERENCES text.id,
+    user       INT           NOT NULL        REFERENCES user.id,
+    visible    BOOLEAN       NOT NULL        DEFAULT 1,
+    comments   BOOLEAN       NOT NULL        DEFAULT 1
+);
+
+CREATE TABLE project_version_type (
+    id       VARCHAR(1)   NOT NULL  PRIMARY KEY,
+    title    VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    summary  VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    color    VARCHAR(7)
+);
+
+CREATE TABLE project_version (
+    project       INT          NOT NULL,
+    version_code  INT          NOT NULL,
+    version_name  VARCHAR(16)  NOT NULL,
+    type          VARCHAR(1)   NOT NULL            REFERENCES project_version_type.id,
+    summary       VARCHAR(32)  NOT NULL            REFERENCES text.id,
+    changelog     VARCHAR(32)  REFERENCES text.id,
+    dtime         DATETIME     NOT NULL            DEFAULT now(),
+    visible       BOOLEAN      NOT NULL            DEFAULT 1,
+    PRIMARY KEY (project, version_code)
+);
+
+CREATE TABLE project_url_type (
+    id       VARCHAR(1)   NOT NULL  PRIMARY KEY,
+    title    VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    summary  VARCHAR(32)  NOT NULL  REFERENCES text.id
+);
+
+CREATE TABLE project_url (
+    project  INT            NOT NULL  REFERENCES project.id,
+    type     VARCHAR(1)     NOT NULL  REFERENCES project_url_type,
+    url      VARCHAR(1024)  NOT NULL,
+    PRIMARY KEY (project, type)
+);
+
+CREATE TABLE project_image (
+    id       INT           NOT NULL,
+    project  INT           NOT NULL  REFERENCES project.id,
+    image    VARCHAR(200)  NOT NULL,
+    PRIMARY KEY(id, project)
+);
+
+CREATE TABLE project_tag (
+    project  INT          NOT NULL  REFERENCES project.id,
+    tag      VARCHAR(32)  NOT NULL  REFERENCES text.id,
+    PRIMARY KEY (project, tag)
+);
+
+CREATE TABLE project_comment (
+    id        INT            AUTO_INCREMENT            PRIMARY KEY,
+    project   INT            NOT NULL                  REFERENCES project(id),
+    version   INT            NOT NULL                  REFERENCES project_version(version_code),
+    text      VARCHAR(5000)  NOT NULL,
+    dtime     TIMESTAMP      NOT NULL                  DEFAULT now(),
+    user      INT            REFERENCES user.id,
+    username  VARCHAR(200),
+    lang      VARCHAR(10),
+    approved  BOOLEAN        NOT NULL                  DEFAULT 1,
+    visit     INT            REFERENCES stat_visit.id
+);
+
+CREATE TABLE settings (
+    name     VARCHAR(64)  PRIMARY KEY,
+    value    VARCHAR(64)  NOT NULL,
+    user     INT          REFERENCES user.id,
+    changed  TIMESTAMP    NOT NULL            DEFAULT now()
+);
+
+CREATE TABLE stat_visit (
+    id       INT           AUTO_INCREMENT  PRIMARY KEY,
+    ip       VARCHAR(50),
+    uagent   VARCHAR(400),
+    os       VARCHAR(150),
+    browser  VARCHAR(150)
+);
+
+CREATE TABLE stat_view (
+    id       INT           NOT NULL  AUTO_INCREMENT            PRIMARY KEY,
+    visit    INT           NOT NULL  REFERENCES stat_visit.id,
+    section  VARCHAR(80)   NOT NULL,
+    entry    VARCHAR(100)  NOT NULL,
+    dtime    TIMESTAMP     NOT NULL  DEFAULT now()
+);
+CREATE INDEX i_visit ON stat_view(visit, dtime);
+
+

+ 30 - 0
sql/text.sql

@@ -0,0 +1,30 @@
+-- AVAILABLE LANGUAGES
+INSERT INTO lang VALUES ('es', 'Castellano', '1');
+INSERT INTO lang VALUES ('en', 'English', '1');
+INSERT INTO lang VALUES ('eu', 'Euskara', '1');
+
+-- HEADER
+INSERT INTO text VALUES ('HEADER_HOME',     'es', 'HEADER', 'Inicio');
+INSERT INTO text VALUES ('HEADER_ME',       'es', 'HEADER', 'Yo');
+INSERT INTO text VALUES ('HEADER_PROJECTS', 'es', 'HEADER', 'Proyectos');
+INSERT INTO text VALUES ('HEADER_BLOG',     'es', 'HEADER', 'Blog');
+INSERT INTO text VALUES ('HEADER_HOME',     'en', 'HEADER', 'Home');
+INSERT INTO text VALUES ('HEADER_ME',       'en', 'HEADER', 'Me');
+INSERT INTO text VALUES ('HEADER_PROJECTS', 'en', 'HEADER', 'Projects');
+INSERT INTO text VALUES ('HEADER_BLOG',     'en', 'HEADER', 'Blog');
+INSERT INTO text VALUES ('HEADER_HOME',     'eu', 'HEADER', 'Hasiera');
+INSERT INTO text VALUES ('HEADER_ME',       'eu', 'HEADER', 'Ni');
+INSERT INTO text VALUES ('HEADER_PROJECTS', 'eu', 'HEADER', 'Proiektuak');
+INSERT INTO text VALUES ('HEADER_BLOG',     'eu', 'HEADER', 'Blog');
+
+
+-- FOOTER
+INSERT INTO text VALUES ('FOOTER_FOLLOW', 'es', 'FOOTER', 'Sígueme');
+INSERT INTO text VALUES ('FOOTER_COPY',   'es', 'FOOTER', 'Copyright Iñigo Valentin 2014 - 2017');
+INSERT INTO text VALUES ('FOOTER_HELP',   'es', 'FOOTER', 'Ayuda');
+INSERT INTO text VALUES ('FOOTER_FOLLOW', 'en', 'FOOTER', 'Follow me');
+INSERT INTO text VALUES ('FOOTER_COPY',   'en', 'FOOTER', 'Copyright Iñigo Valentin 2014 - 2017');
+INSERT INTO text VALUES ('FOOTER_HELP',   'en', 'FOOTER', 'Help');
+INSERT INTO text VALUES ('FOOTER_FOLLOW', 'eu', 'FOOTER', 'Jarraitu');
+INSERT INTO text VALUES ('FOOTER_COPY',   'eu', 'FOOTER', 'Copyright Iñigo Valentin 2014 - 2017');
+INSERT INTO text VALUES ('FOOTER_HELP',   'eu', 'FOOTER', 'Laguntza');