瀏覽代碼

Project simplification. Admin page removed. SVG images, and multires PNG where impossible.

Iñigo Valentin 7 年之前
父節點
當前提交
a582d56197
共有 100 個文件被更改,包括 1645 次插入294 次删除
  1. 23 24
      .gitignore
  2. 0 0
      application/Controller.php
  3. 2 2
      application/config/auth.php
  4. 0 0
      application/config/config.php
  5. 0 0
      application/entity/Cv.php
  6. 0 0
      application/entity/Cv_Category.php
  7. 0 0
      application/entity/Entity.php
  8. 0 14
      application/entity/Footer.php
  9. 0 0
      application/entity/Lang.php
  10. 0 0
      application/entity/License.php
  11. 0 18
      application/entity/Project.php
  12. 0 7
      application/entity/Project_Comment.php
  13. 0 0
      application/entity/Project_Image.php
  14. 0 0
      application/entity/Project_Tag.php
  15. 0 0
      application/entity/Project_Type.php
  16. 0 0
      application/entity/Project_Url.php
  17. 0 0
      application/entity/Project_Url_Type.php
  18. 0 0
      application/helper/db.php
  19. 0 0
      application/helper/net.php
  20. 19 0
      application/helper/text.php
  21. 0 10
      application/page/Footer_Page.php
  22. 0 0
      application/page/Help_Page.php
  23. 1 16
      application/page/Home_Page.php
  24. 0 0
      application/page/Page.php
  25. 0 0
      application/page/Profile_Page.php
  26. 0 0
      application/page/Project_Page.php
  27. 1 15
      application/page/Projects_Page.php
  28. 0 0
      application/view/cv.php
  29. 0 0
      application/view/help.php
  30. 9 13
      application/view/home.php
  31. 12 9
      application/view/inc/footer.php
  32. 0 0
      application/view/inc/header.php
  33. 0 0
      application/view/profile.php
  34. 0 6
      application/view/project.php
  35. 0 0
      application/view/projects.php
  36. 0 0
      application/view/rss.php
  37. 0 0
      application/view/skills.php
  38. 0 0
      application/view/string/LICENSE_CC-BY-SA_SUMMARY__EN
  39. 0 0
      application/view/string/LICENSE_CC-BY-SA_SUMMARY__ES
  40. 0 0
      application/view/string/LICENSE_CC-BY-SA_SUMMARY__EU
  41. 0 0
      application/view/string/LICENSE_CC-BY-SA__EN
  42. 0 0
      application/view/string/LICENSE_CC-BY-SA__ES
  43. 0 0
      application/view/string/LICENSE_CC-BY-SA__EU
  44. 0 0
      application/view/string/LICENSE_GPLV3_SUMMARY__EN
  45. 0 0
      application/view/string/LICENSE_GPLV3_SUMMARY__ES
  46. 0 0
      application/view/string/LICENSE_GPLV3_SUMMARY__EU
  47. 0 0
      application/view/string/LICENSE_GPLV3__EN
  48. 0 0
      application/view/string/LICENSE_GPLV3__ES
  49. 0 0
      application/view/string/LICENSE_GPLV3__EU
  50. 0 0
      public/.htaccess
  51. 0 0
      public/css/error.css
  52. 7 1
      public/css/home.css
  53. 0 0
      public/css/profile.css
  54. 0 0
      public/css/project.css
  55. 0 0
      public/css/projects.css
  56. 1 0
      public/css/ui.css
  57. 0 0
      public/error.php
  58. 0 0
      public/fonts/Latin-Modern-Mono-Light-Bold.otf
  59. 0 0
      public/fonts/Nunito-Bold.ttf
  60. 0 0
      public/fonts/Nunito-Light.ttf
  61. 0 0
      public/fonts/Nunito-Regular.ttf
  62. 0 0
      public/fonts/OFL.txt
  63. 9 0
      public/img/content/resizer
  64. 0 0
      public/img/layout/control/close.svg
  65. 0 0
      public/img/layout/control/slid_d.svg
  66. 0 0
      public/img/layout/control/slid_l.svg
  67. 0 0
      public/img/layout/control/slid_r.svg
  68. 0 0
      public/img/layout/control/slid_u.svg
  69. 0 0
      public/img/layout/icon/home.svg
  70. 0 0
      public/img/layout/icon/profile.svg
  71. 0 0
      public/img/layout/icon/project.svg
  72. 0 0
      public/img/layout/lang/en.svg
  73. 0 0
      public/img/layout/lang/es.svg
  74. 0 0
      public/img/layout/lang/eu.svg
  75. 98 0
      public/img/layout/license/CC-0.svg
  76. 92 0
      public/img/layout/license/CC-BY-NC-ND.svg
  77. 84 0
      public/img/layout/license/CC-BY-NC-SA.svg
  78. 81 0
      public/img/layout/license/CC-BY-NC.svg
  79. 84 0
      public/img/layout/license/CC-BY-ND.svg
  80. 107 0
      public/img/layout/license/CC-BY.svg
  81. 5 0
      public/img/layout/license/GPLV3.svg
  82. 0 0
      public/img/layout/logo/logo.svg
  83. 488 0
      public/img/layout/social/app_store.svg
  84. 17 0
      public/img/layout/social/email.svg
  85. 54 0
      public/img/layout/social/facebook.svg
  86. 3 0
      public/img/layout/social/github.svg
  87. 21 0
      public/img/layout/social/google_play.svg
  88. 209 0
      public/img/layout/social/google_plus.svg
  89. 46 0
      public/img/layout/social/internet.svg
  90. 37 0
      public/img/layout/social/linkedin.svg
  91. 17 0
      public/img/layout/social/telegram.svg
  92. 21 0
      public/img/layout/social/twitter.svg
  93. 47 0
      public/img/layout/social/www.svg
  94. 0 0
      public/index.php
  95. 0 0
      public/js/profile.js
  96. 0 0
      public/js/project.js
  97. 0 0
      public/js/ui.js
  98. 2 60
      sql/01_structure.sql
  99. 18 31
      sql/02_security.sql
  100. 30 68
      sql/03_data.sql

+ 23 - 24
.gitignore

@@ -1,9 +1,3 @@
-#IDE files
-.kateproject.d/
-.kateproject
-.project
-.settings
-
 #OS files
 #OS files
 .directory
 .directory
 .DS_Store
 .DS_Store
@@ -14,26 +8,31 @@ ehthumbs.db
 Thumbs.db
 Thumbs.db
 *.swp
 *.swp
 
 
-#Utility folders
-3rdparty/
-pending/
-utils-local/
-copy
-remotecopy
-remoteadmin
-www-admin/redirect_s.php
+#IDE files
+.kateproject.d/
+.kateproject
+.project
+.settings
+.externalToolBuilders
+
+#Local server and deploy tools
+deploy
+server_*
+.php_pid
 
 
-#SQL data
-sql/XX*
+#SQL custom data
+sql/DES/
+sql/PRE/
+sql/DBG/
 
 
 #Passwords file
 #Passwords file
 .htpasswd*
 .htpasswd*
-auth.php_*
-www-admin/.htpasswd
-www/.htaccess_local
-
-# Test environments-related files
-.ht*_*
+application/config/auth.php_*
 
 
-#3rd party software
-www-admin/script/ckeditor
+#Content images
+public/img/content/*.png
+public/img/content/*.svg
+public/img/content/*/*.png
+public/img/content/*/*.svg
+public/img/content/*/*/*.png
+public/img/content/*/*/*.svg

+ 0 - 0
www/application/Controller.php → application/Controller.php


+ 2 - 2
www/application/config/auth.php → application/config/auth.php

@@ -2,7 +2,7 @@
     $auth = [
     $auth = [
         "host" => "localhost",
         "host" => "localhost",
         "name" => "web",
         "name" => "web",
-        "user" => "webext",
-        "pass" => "sdl78fj67kYjFasg0mSDjXxbl7aAkc17"
+        "user" => "web",
+        "pass" => "XXX"
     ];
     ];
 ?>
 ?>

+ 0 - 0
www/application/config/config.php → application/config/config.php


+ 0 - 0
www/application/entity/Cv.php → application/entity/Cv.php


+ 0 - 0
www/application/entity/Cv_Category.php → application/entity/Cv_Category.php


+ 0 - 0
www/application/entity/Entity.php → application/entity/Entity.php


+ 0 - 14
www/application/entity/Footer.php → application/entity/Footer.php

@@ -1,7 +1,6 @@
 <?php
 <?php
 
 
     require_once($path["entity"] . "Lang.php");
     require_once($path["entity"] . "Lang.php");
-    require_once($path["entity"] . "Social.php");
 
 
     /**
     /**
      * Page footer.
      * Page footer.
@@ -10,11 +9,6 @@
      */
      */
     class Footer{
     class Footer{
 
 
-        /**
-         * Array of {@see Social} to display social network links.
-         */
-        public $social = [];
-
         /**
         /**
          * Array of {@see Lang} the page can be served on.
          * Array of {@see Lang} the page can be served on.
          */
          */
@@ -29,14 +23,6 @@
          * @param string $lang Lowercase, two-letter language code.
          * @param string $lang Lowercase, two-letter language code.
          */
          */
         public function __construct($db, $lang){
         public function __construct($db, $lang){
-            $s_social =
-              "SELECT id " .
-              "FROM social " .
-              "WHERE visible = 1; ";
-            $q_social = mysqli_query($db, $s_social);
-            while($r_social = mysqli_fetch_array($q_social)){
-                array_push($this->social, new Social($db, $lang, $r_social["id"]));
-            }
             $s_lang =
             $s_lang =
               "SELECT code AS id " .
               "SELECT code AS id " .
               "FROM lang " .
               "FROM lang " .

+ 0 - 0
www/application/entity/Lang.php → application/entity/Lang.php


+ 0 - 0
www/application/entity/License.php → application/entity/License.php


+ 0 - 18
www/application/entity/Project.php → application/entity/Project.php

@@ -5,7 +5,6 @@
     require_once($path["entity"] . "Project_Type.php");
     require_once($path["entity"] . "Project_Type.php");
     require_once($path["entity"] . "Project_Image.php");
     require_once($path["entity"] . "Project_Image.php");
     require_once($path["entity"] . "Project_Comment.php");
     require_once($path["entity"] . "Project_Comment.php");
-    require_once($path["entity"] . "Project_Version.php");
     require_once($path["entity"] . "Project_Tag.php");
     require_once($path["entity"] . "Project_Tag.php");
     require_once($path["entity"] . "Project_Url.php");
     require_once($path["entity"] . "Project_Url.php");
     require_once($path["helper"] . "text.php");
     require_once($path["helper"] . "text.php");
@@ -63,12 +62,6 @@
          */
          */
         public $image = [];
         public $image = [];
 
 
-        /**
-         * Array with the released {@see Project_Version} of the project,
-         * sorted from new to old.
-         */
-        public $version = [];
-
         /**
         /**
          * Array with the {@see Project_Comment} posted in the project, sorted
          * Array with the {@see Project_Comment} posted in the project, sorted
          * from new to old.
          * from new to old.
@@ -135,17 +128,6 @@
             while($r_image = mysqli_fetch_array($q_image)){
             while($r_image = mysqli_fetch_array($q_image)){
                 array_push($this->image, new Project_Image($this->db, $r_image["id"]));
                 array_push($this->image, new Project_Image($this->db, $r_image["id"]));
             }
             }
-            $s_version =
-              "SELECT version_code AS code " .
-              "FROM project_version " .
-              "WHERE " .
-              "  project = " . $this->id . " AND " .
-              "  visible = 1 " .
-              "ORDER BY dtime DESC; ";
-            $q_version = mysqli_query($this->db, $s_version);
-            while($r_version = mysqli_fetch_array($q_version)){
-                array_push($this->version, new Project_Version($this->db, $this->lang, $this->id, $r_version["code"]));
-            }
             $s_tag =
             $s_tag =
               "SELECT tag " .
               "SELECT tag " .
               "FROM project_tag " .
               "FROM project_tag " .

+ 0 - 7
www/application/entity/Project_Comment.php → application/entity/Project_Comment.php

@@ -20,11 +20,6 @@
          */
          */
         public $project;
         public $project;
 
 
-        /**
-         * Version identifier of the project at the time the post was posted.
-         */
-        public $version;
-
         /**
         /**
          * Text of the comment.
          * Text of the comment.
          */
          */
@@ -71,7 +66,6 @@
               "SELECT " .
               "SELECT " .
               "  id, " .
               "  id, " .
               "  project, " .
               "  project, " .
-              "  version, " .
               "  text, " .
               "  text, " .
               "  dtime, " .
               "  dtime, " .
               "  user, " .
               "  user, " .
@@ -85,7 +79,6 @@
                 $r = mysqli_fetch_array($q);
                 $r = mysqli_fetch_array($q);
                 $this->id = $r["id"];
                 $this->id = $r["id"];
                 $this->project = $r["project"];
                 $this->project = $r["project"];
-                $this->version = $r["version"];
                 $this->text = $r["text"];
                 $this->text = $r["text"];
                 $this->dtime = $r["dtime"];
                 $this->dtime = $r["dtime"];
                 $this->user = $r["user"];
                 $this->user = $r["user"];

+ 0 - 0
www/application/entity/Project_Image.php → application/entity/Project_Image.php


+ 0 - 0
www/application/entity/Project_Tag.php → application/entity/Project_Tag.php


+ 0 - 0
www/application/entity/Project_Type.php → application/entity/Project_Type.php


+ 0 - 0
www/application/entity/Project_Url.php → application/entity/Project_Url.php


+ 0 - 0
www/application/entity/Project_Url_Type.php → application/entity/Project_Url_Type.php


+ 0 - 0
www/application/helper/db.php → application/helper/db.php


+ 0 - 0
www/application/helper/net.php → application/helper/net.php


+ 19 - 0
www/application/helper/text.php → application/helper/text.php

@@ -211,5 +211,24 @@ error_log("SELECT text, file FROM text WHERE id = '$id' AND lang = '" . $model->
         return $cut;
         return $cut;
     }
     }
 
 
+    /**
+     * Creates the srcset attribute for content images.
+     * Creates 9 different resolutions, from 100px to 900px.
+     * 
+     * @param string $file Path to the file, relative to $path["img"]["content"]).
+     * @return string srcset atttribute content.
+     */
+    function srcset($file){
+        global $path;
+        $srcset = "";
+        $dir = dirname($file);
+        $name = basename($file);
+        foreach (range(1, 9) as $d) {
+            $srcset = $srcset . $path["img"]["content"] . $dir . "/x" . $d . "00/" . $name . " " . $d . "00px, ";
+        }
+        $srcset = rtrim($srcset, ", ");
+        return $srcset;
+    }
+
 ?>
 ?>
 
 

+ 0 - 10
www/application/page/Footer_Page.php → application/page/Footer_Page.php

@@ -1,21 +1,11 @@
 <?php
 <?php
 
 
     require_once($path["entity"] . "Lang.php");
     require_once($path["entity"] . "Lang.php");
-    require_once($path["entity"] . "Social.php");
 
 
     class Footer_Page{
     class Footer_Page{
-        public $social = [];
         public $lang = [];
         public $lang = [];
 
 
         public function __construct($db, $lang){
         public function __construct($db, $lang){
-            $s_social =
-              "SELECT id " .
-              "FROM social " .
-              "WHERE visible = 1; ";
-            $q_social = mysqli_query($db, $s_social);
-            while($r_social = mysqli_fetch_array($q_social)){
-                array_push($this->social, new Social($db, $lang, $r_social["id"]));
-            }
             $s_lang =
             $s_lang =
               "SELECT code AS id " .
               "SELECT code AS id " .
               "FROM lang " .
               "FROM lang " .

+ 0 - 0
www/application/page/Help_Page.php → application/page/Help_Page.php


+ 1 - 16
www/application/page/Home_Page.php → application/page/Home_Page.php

@@ -67,22 +67,7 @@
             $s_project =
             $s_project =
               "SELECT id " .
               "SELECT id " .
               "FROM project " .
               "FROM project " .
-              "WHERE " .
-              "  project.id = ( " .
-              "    SELECT project " .
-              "    FROM " .
-              "      ( " .
-              "        SELECT " .
-              "          project, " .
-              "          max(dtime) " .
-              "        FROM project_version " .
-              "        GROUP BY project " .
-              "        ORDER BY dtime DESC " .
-              "        LIMIT " . $this->max_projects .
-              "      ) lp " .
-              "    WHERE lp.project = project.id " .
-              "  ) AND " .
-              "  visible = 1;";
+              "WHERE visible = 1;";
             $q_project = mysqli_query($this->db, $s_project);
             $q_project = mysqli_query($this->db, $s_project);
             while($r_project = mysqli_fetch_array($q_project)){
             while($r_project = mysqli_fetch_array($q_project)){
                 array_push($this->project, new Project($this->db, $this->lang, $r_project["id"]));
                 array_push($this->project, new Project($this->db, $this->lang, $r_project["id"]));

+ 0 - 0
www/application/page/Page.php → application/page/Page.php


+ 0 - 0
www/application/page/Profile_Page.php → application/page/Profile_Page.php


+ 0 - 0
www/application/page/Project_Page.php → application/page/Project_Page.php


+ 1 - 15
www/application/page/Projects_Page.php → application/page/Projects_Page.php

@@ -32,21 +32,7 @@
             $s =
             $s =
               "SELECT id " .
               "SELECT id " .
               "FROM project " .
               "FROM project " .
-              "WHERE " .
-              "  project.id = ( " .
-              "    SELECT project " .
-              "    FROM " .
-              "      ( " .
-              "        SELECT " .
-              "          project, " .
-              "          max(dtime) " .
-              "        FROM project_version " .
-              "        GROUP BY project " .
-              "        ORDER BY dtime DESC " .
-              "      ) lp " .
-              "    WHERE lp.project = project.id " .
-              "  ) AND " .
-              "  visible = 1;";
+              "WHERE visible = 1;";
             $q = mysqli_query($this->db, $s);
             $q = mysqli_query($this->db, $s);
             while($r = mysqli_fetch_array($q)){
             while($r = mysqli_fetch_array($q)){
                 array_push($this->project, new Project($this->db, $this->lang, $r["id"]));
                 array_push($this->project, new Project($this->db, $this->lang, $r["id"]));

+ 0 - 0
www/application/view/cv.php → application/view/cv.php


+ 0 - 0
www/application/view/help.php → application/view/help.php


+ 9 - 13
www/application/view/home.php → application/view/home.php

@@ -41,19 +41,15 @@
                         <?=$page->name?>
                         <?=$page->name?>
                     </h3>
                     </h3>
                     <!-- TODO: Profile form model -->
                     <!-- TODO: Profile form model -->
-                    <article>
-                        <div id='profile_container'>
-                            <img id='profile' src='<?=$path["img"]["content"]?>profile/x6/0.png' alt='<?=text($page, "USER_NAME");?>' title='<?=text($page, "USER_NAME");?>' />
-                        </div>
-                        <span id='tagline'><?=text($page, "USER_TAGLINE");?></span>
-                        <a class='a_button' href='<?=$root?>profile/'>
-                            <span class='header_container'>
-                                <span class='header_icon_container'>
-                                    <img class='header_icon' alt='<?=text($page, "HEADER_ME");?>' src='<?=$path["img"]["content"]?>icon/profile.gif'/>
-                                </span>
+                    <article id='profile'>
+                        <img id='profile_image' srcset='<?=srcset("profile/profile.png")?>' src='<?=$path["img"]["content"]?>profile/x400/profile.png' alt='<?=text($page, "USER_NAME");?>' title='<?=text($page, "USER_NAME");?>' />
+                        <div id='profile_content'>
+                            <span id='tagline'><?=text($page, "USER_TAGLINE");?></span>
+                            <span id='bio'><?=text($page, "USER_BIO");?></span>
+                            <a class='a_button' href='<?=$root?>profile/'>
                                 <?=text($page, "INDEX_PROFILE");?>
                                 <?=text($page, "INDEX_PROFILE");?>
-                            </span>
-                        </a>
+                            </a>
+                        </div>
                     </article>
                     </article>
                 </section>
                 </section>
             </div> <!-- left -->
             </div> <!-- left -->
@@ -73,7 +69,7 @@
 ?>
 ?>
                                         <td>
                                         <td>
                                             <a href='<?=$root?>project/<?=$project->permalink?>'>
                                             <a href='<?=$root?>project/<?=$project->permalink?>'>
-                                                <img alt='<?=text($page, $project->title)?>' title='<?=text($page, $project->title)?>' src='<?=$path["img"]["content"]?>project/x2/<?=$project->logo?>'/>
+                                                <img alt='<?=text($page, $project->title)?>' title='<?=text($page, $project->title)?>' srcset='<?=srcset("project/" . $project->logo)?>' src='<?=$path["img"]["content"]?>project/x200/<?=$project->logo?>'/>
                                             </a>
                                             </a>
                                         </td>
                                         </td>
 <?php
 <?php

+ 12 - 9
www/application/view/inc/footer.php → application/view/inc/footer.php

@@ -7,15 +7,18 @@
                 <span id='footer_follow' class='desktop'>
                 <span id='footer_follow' class='desktop'>
                     <?=text($page, "FOOTER_FOLLOW");?>
                     <?=text($page, "FOOTER_FOLLOW");?>
                 </span>
                 </span>
-<?php
-                foreach ($page->footer->social as $social){
-?>
-                    <a title='<?=text($page, $social->title)?>' href='<?=$social->url?>'>
-                        <img class='footer_social_icon' src='<?=$path["img"]["content"]?>social/x2/<?=$social->icon?>' alt='<?=text($page, $social->title)?>' title='<?=text($page, $social->title)?>'/>
-                    </a>
-<?php
-                }
-?>
+                <a target='_blank' title='eMail' href='mailto:i@inigovalentin.com'>
+                    <img class='footer_social_icon' src='<?=$path["img"]["layout"]?>social/email.svg' alt='eMail' title='eMail'/>
+                </a>
+                <a target='_blank' title='Telegram' href='https://telegram.me/@InigoValentin'>
+                    <img class='footer_social_icon' src='<?=$path["img"]["layout"]?>social/telegram.svg' alt='Telegram' title='Telegram'/>
+                </a>
+                <a target='_blank' title='Github' href='https://github.com/InigoValentin'>
+                    <img class='footer_social_icon' src='<?=$path["img"]["layout"]?>social/github.svg' alt='Github' title='Github'/>
+                </a>
+                <a target='_blank' title='LinkedIn' href='https://www.linkedin.com/in/ivalentin'>
+                    <img class='footer_social_icon' src='<?=$path["img"]["layout"]?>social/linkedin.svg' alt='LinkedIn' title='LinkedIn'/>
+                </a>
             </td>
             </td>
             <td id='footer_center'>
             <td id='footer_center'>
                 <?=str_replace("#YEAR#", date("Y"), text($page, "FOOTER_COPY"));?>
                 <?=str_replace("#YEAR#", date("Y"), text($page, "FOOTER_COPY"));?>

+ 0 - 0
www/application/view/inc/header.php → application/view/inc/header.php


+ 0 - 0
www/application/view/profile.php → application/view/profile.php


+ 0 - 6
www/application/view/project.php → application/view/project.php

@@ -122,12 +122,6 @@
 <?php
 <?php
                 }
                 }
 ?>
 ?>
-                <div id='version' class='details'>
-                    <?=text($page, "PROJECT_VERSION")?>:<?=$page->project->version[0]->name?>
-                    <br/>
-                    <a href='TODO'><?=text($page, "PROJECT_VERSION_TREE")?></a>
-                    <hr class='details_separator'/>
-                </div> <!-- #license -->
                 <div id='license' class='details'>
                 <div id='license' class='details'>
                     <?=text($page, "PROJECT_LICENSE")?>:
                     <?=text($page, "PROJECT_LICENSE")?>:
                     <img src='<?=$path["img"]["content"]?>license/<?=$page->project->license->logo?>' title='<?=$page->project->license->id?>' alt='<?=$page->project->license->id?>'/>
                     <img src='<?=$path["img"]["content"]?>license/<?=$page->project->license->logo?>' title='<?=$page->project->license->id?>' alt='<?=$page->project->license->id?>'/>

+ 0 - 0
www/application/view/projects.php → application/view/projects.php


+ 0 - 0
www/application/view/rss.php → application/view/rss.php


+ 0 - 0
www/application/view/skills.php → application/view/skills.php


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA_SUMMARY__EN → application/view/string/LICENSE_CC-BY-SA_SUMMARY__EN


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA_SUMMARY__ES → application/view/string/LICENSE_CC-BY-SA_SUMMARY__ES


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA_SUMMARY__EU → application/view/string/LICENSE_CC-BY-SA_SUMMARY__EU


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA__EN → application/view/string/LICENSE_CC-BY-SA__EN


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA__ES → application/view/string/LICENSE_CC-BY-SA__ES


+ 0 - 0
www/application/view/string/LICENSE_CC-BY-SA__EU → application/view/string/LICENSE_CC-BY-SA__EU


+ 0 - 0
www/application/view/string/LICENSE_GPLV3_SUMMARY__EN → application/view/string/LICENSE_GPLV3_SUMMARY__EN


+ 0 - 0
www/application/view/string/LICENSE_GPLV3_SUMMARY__ES → application/view/string/LICENSE_GPLV3_SUMMARY__ES


+ 0 - 0
www/application/view/string/LICENSE_GPLV3_SUMMARY__EU → application/view/string/LICENSE_GPLV3_SUMMARY__EU


+ 0 - 0
www/application/view/string/LICENSE_GPLV3__EN → application/view/string/LICENSE_GPLV3__EN


+ 0 - 0
www/application/view/string/LICENSE_GPLV3__ES → application/view/string/LICENSE_GPLV3__ES


+ 0 - 0
www/application/view/string/LICENSE_GPLV3__EU → application/view/string/LICENSE_GPLV3__EU


+ 0 - 0
www/public/.htaccess → public/.htaccess


+ 0 - 0
www/public/css/error.css → public/css/error.css


+ 7 - 1
www/public/css/home.css → public/css/home.css

@@ -7,12 +7,18 @@ div#left{
     padding: 1em;
     padding: 1em;
 }
 }
 
 
-div#left div#profile_container img#profile{
+article#profile img#profile_image{
+    display: inline-block;
+    vertical-align: middle;
     width: 200px;
     width: 200px;
     height: 200px;
     height: 200px;
     border: 0.2em solid #446644;
     border: 0.2em solid #446644;
     border-radius: 1em 5em;
     border-radius: 1em 5em;
 }
 }
+article#profile div#profile_content{
+    display: inline-block;
+    vertical-align: middle;
+}
 
 
 /* Projects section. */
 /* Projects section. */
 div#right{
 div#right{

+ 0 - 0
www/public/css/profile.css → public/css/profile.css


+ 0 - 0
www/public/css/project.css → public/css/project.css


+ 0 - 0
www/public/css/projects.css → public/css/projects.css


+ 1 - 0
www/public/css/ui.css → public/css/ui.css

@@ -265,6 +265,7 @@ section h3{
 
 
 section h3:before {
 section h3:before {
 	content: " /";
 	content: " /";
+}
 
 
 /* .entry is a style only class to show content. Must be allways children os a .lighted element */
 /* .entry is a style only class to show content. Must be allways children os a .lighted element */
 section article{
 section article{

+ 0 - 0
www/public/error.php → public/error.php


+ 0 - 0
www/public/fonts/Latin-Modern-Mono-Light-Bold.otf → public/fonts/Latin-Modern-Mono-Light-Bold.otf


+ 0 - 0
www-admin/fonts/Nunito-Bold.ttf → public/fonts/Nunito-Bold.ttf


+ 0 - 0
www-admin/fonts/Nunito-Light.ttf → public/fonts/Nunito-Light.ttf


+ 0 - 0
www-admin/fonts/Nunito-Regular.ttf → public/fonts/Nunito-Regular.ttf


+ 0 - 0
www-admin/fonts/OFL.txt → public/fonts/OFL.txt


+ 9 - 0
public/img/content/resizer

@@ -0,0 +1,9 @@
+for file in */*.png; do
+	for i in $(seq 1 9); do
+		if [ ! -d $(dirname "${file}")/x"$i"00 ]; then
+			mkdir $(dirname "${file}")/x"$i"00
+		fi
+		convert "$file" -resize "$i"00  $(dirname "${file}")/x"$i"00/$(basename "$file")
+	done
+done
+#    convert "$file" -resize 800x800  "view/$file"

+ 0 - 0
www/public/img/layout/control/close.svg → public/img/layout/control/close.svg


+ 0 - 0
www/public/img/layout/control/slid_d.svg → public/img/layout/control/slid_d.svg


+ 0 - 0
www/public/img/layout/control/slid_l.svg → public/img/layout/control/slid_l.svg


+ 0 - 0
www/public/img/layout/control/slid_r.svg → public/img/layout/control/slid_r.svg


+ 0 - 0
www/public/img/layout/control/slid_u.svg → public/img/layout/control/slid_u.svg


+ 0 - 0
www/public/img/layout/icon/home.svg → public/img/layout/icon/home.svg


+ 0 - 0
www/public/img/layout/icon/profile.svg → public/img/layout/icon/profile.svg


+ 0 - 0
www/public/img/layout/icon/project.svg → public/img/layout/icon/project.svg


+ 0 - 0
www/public/img/layout/lang/en.svg → public/img/layout/lang/en.svg


+ 0 - 0
www/public/img/layout/lang/es.svg → public/img/layout/lang/es.svg


+ 0 - 0
www/public/img/layout/lang/eu.svg → public/img/layout/lang/eu.svg


+ 98 - 0
public/img/layout/license/CC-0.svg

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="88px" height="31px" viewBox="-0.5 -0.101 88 31" enable-background="new -0.5 -0.101 88 31" xml:space="preserve">
+<g>
+	<path fill="#FFFFFF" d="M1.803,0.482L84.93,0.631c1.161,0,2.198-0.173,2.198,2.333L87.025,30.52h-87.32V2.862
+		C-0.295,1.626-0.177,0.482,1.803,0.482z"/>
+	<g>
+		<ellipse fill="#FFFFFF" cx="13.887" cy="15.502" rx="11.101" ry="11.174"/>
+	</g>
+	<path d="M23.271,4.061c3.484,2.592,5.754,6.744,5.755,11.44c-0.001,4.272-1.88,8.095-4.842,10.705h62.853V4.061H23.271z"/>
+	<g>
+		<path fill="#FFFFFF" d="M35.739,7.559c0.392,0,0.728,0.059,1.002,0.173c0.276,0.116,0.5,0.268,0.674,0.456
+			c0.173,0.189,0.299,0.405,0.379,0.647c0.079,0.242,0.118,0.494,0.118,0.753c0,0.253-0.039,0.503-0.118,0.749
+			c-0.08,0.244-0.206,0.462-0.379,0.65c-0.174,0.189-0.397,0.341-0.674,0.456c-0.274,0.114-0.61,0.173-1.002,0.173h-1.452v2.267
+			h-1.382V7.559H35.739z M35.36,10.535c0.158,0,0.312-0.012,0.457-0.035c0.147-0.023,0.276-0.069,0.388-0.137
+			c0.112-0.068,0.201-0.164,0.269-0.288s0.101-0.287,0.101-0.487c0-0.2-0.033-0.362-0.101-0.487
+			c-0.067-0.124-0.157-0.221-0.269-0.287c-0.111-0.068-0.24-0.114-0.388-0.138C35.671,8.652,35.518,8.64,35.36,8.64h-1.073v1.896
+			L35.36,10.535L35.36,10.535z"/>
+		<path fill="#FFFFFF" d="M43.751,13.4c-0.476,0.417-1.133,0.625-1.972,0.625c-0.851,0-1.509-0.207-1.976-0.62
+			c-0.466-0.412-0.699-1.052-0.699-1.913V7.559h1.381v3.934c0,0.171,0.016,0.338,0.045,0.505c0.029,0.165,0.091,0.311,0.185,0.439
+			c0.094,0.126,0.225,0.229,0.392,0.309c0.167,0.081,0.392,0.12,0.673,0.12c0.493,0,0.833-0.11,1.021-0.332
+			c0.188-0.222,0.282-0.568,0.282-1.04V7.559h1.382v3.934C44.464,12.348,44.227,12.983,43.751,13.4z"/>
+		<path fill="#FFFFFF" d="M49.07,7.559c0.3,0,0.572,0.027,0.818,0.081c0.244,0.054,0.457,0.14,0.633,0.261
+			c0.177,0.121,0.312,0.282,0.41,0.482c0.096,0.201,0.146,0.45,0.146,0.745c0,0.318-0.072,0.584-0.216,0.796
+			c-0.146,0.212-0.357,0.388-0.639,0.523c0.387,0.112,0.676,0.31,0.865,0.589c0.189,0.281,0.286,0.62,0.286,1.015
+			c0,0.319-0.062,0.595-0.187,0.828c-0.123,0.232-0.289,0.423-0.496,0.571c-0.209,0.148-0.445,0.257-0.713,0.327
+			c-0.269,0.07-0.541,0.105-0.822,0.105h-3.047V7.559H49.07z M48.895,10.119c0.246,0,0.448-0.059,0.607-0.178
+			c0.158-0.118,0.236-0.309,0.236-0.576c0-0.147-0.025-0.269-0.078-0.363c-0.053-0.093-0.123-0.168-0.211-0.221
+			c-0.09-0.053-0.189-0.091-0.305-0.109C49.029,8.65,48.912,8.64,48.789,8.64h-1.294v1.48L48.895,10.119L48.895,10.119
+			L48.895,10.119z M48.975,12.804c0.135,0,0.264-0.014,0.387-0.04c0.123-0.026,0.23-0.072,0.326-0.133
+			c0.092-0.062,0.168-0.147,0.226-0.254c0.056-0.104,0.083-0.241,0.083-0.406c0-0.324-0.092-0.557-0.271-0.695
+			c-0.182-0.138-0.424-0.208-0.723-0.208h-1.505v1.738h1.479v-0.002H48.975z"/>
+		<path fill="#FFFFFF" d="M54.143,7.559v5.156h3.062v1.168H52.76V7.559H54.143z"/>
+		<path fill="#FFFFFF" d="M59.748,7.559v6.324h-1.382V7.559H59.748z"/>
+		<path fill="#FFFFFF" d="M65.451,9.247c-0.082-0.132-0.186-0.249-0.309-0.349c-0.123-0.102-0.263-0.18-0.418-0.236
+			c-0.156-0.057-0.316-0.084-0.488-0.084c-0.312,0-0.574,0.062-0.793,0.183c-0.217,0.12-0.394,0.283-0.525,0.486
+			c-0.136,0.204-0.232,0.436-0.296,0.695c-0.062,0.259-0.093,0.528-0.093,0.806c0,0.267,0.031,0.524,0.093,0.776
+			c0.062,0.251,0.16,0.477,0.296,0.678c0.134,0.201,0.312,0.361,0.525,0.483c0.219,0.12,0.481,0.181,0.793,0.181
+			c0.424,0,0.752-0.13,0.99-0.389c0.236-0.26,0.383-0.602,0.437-1.028H67c-0.034,0.396-0.126,0.753-0.271,1.072
+			c-0.146,0.318-0.342,0.591-0.582,0.815c-0.238,0.225-0.521,0.396-0.845,0.513c-0.323,0.119-0.678,0.178-1.065,0.178
+			c-0.479,0-0.914-0.084-1.297-0.252c-0.385-0.169-0.709-0.398-0.973-0.695c-0.265-0.295-0.468-0.642-0.607-1.04
+			c-0.142-0.399-0.211-0.829-0.211-1.289c0-0.473,0.069-0.911,0.211-1.316c0.141-0.404,0.344-0.758,0.607-1.059
+			c0.264-0.302,0.588-0.536,0.973-0.708c0.384-0.172,0.815-0.258,1.297-0.258c0.348,0,0.676,0.051,0.981,0.15
+			c0.308,0.102,0.583,0.248,0.827,0.44c0.243,0.191,0.443,0.43,0.604,0.712c0.158,0.283,0.259,0.608,0.301,0.975h-1.34
+			C65.586,9.524,65.533,9.377,65.451,9.247z"/>
+		<path fill="#FFFFFF" d="M35.615,16.418c0.405,0,0.782,0.062,1.131,0.192c0.35,0.13,0.651,0.324,0.906,0.585
+			c0.255,0.26,0.455,0.586,0.599,0.975c0.144,0.391,0.216,0.849,0.216,1.371c0,0.463-0.059,0.888-0.176,1.277
+			c-0.118,0.391-0.295,0.727-0.532,1.012c-0.238,0.281-0.534,0.504-0.89,0.668c-0.354,0.16-0.772,0.242-1.254,0.242h-2.71v-6.322
+			H35.615z M35.519,21.572c0.199,0,0.393-0.031,0.581-0.098c0.188-0.062,0.354-0.173,0.502-0.323
+			c0.146-0.151,0.264-0.347,0.352-0.59c0.088-0.241,0.132-0.536,0.132-0.886c0-0.317-0.031-0.606-0.093-0.863
+			c-0.062-0.256-0.162-0.479-0.304-0.659c-0.141-0.183-0.326-0.323-0.559-0.421c-0.231-0.098-0.517-0.146-0.858-0.146h-0.984v3.986
+			H35.519z"/>
+		<path fill="#FFFFFF" d="M39.8,18.289c0.141-0.403,0.344-0.756,0.606-1.059c0.265-0.303,0.589-0.538,0.973-0.709
+			c0.385-0.171,0.816-0.257,1.298-0.257c0.487,0,0.921,0.086,1.303,0.257c0.381,0.171,0.704,0.406,0.969,0.709
+			c0.264,0.303,0.466,0.652,0.605,1.059c0.143,0.404,0.213,0.845,0.213,1.316c0,0.46-0.07,0.891-0.213,1.288
+			c-0.142,0.397-0.344,0.744-0.605,1.04c-0.266,0.295-0.588,0.525-0.969,0.695c-0.382,0.166-0.815,0.252-1.303,0.252
+			c-0.481,0-0.913-0.086-1.298-0.252c-0.384-0.17-0.708-0.4-0.973-0.695c-0.263-0.296-0.466-0.645-0.606-1.04
+			c-0.14-0.397-0.211-0.828-0.211-1.288C39.589,19.134,39.659,18.694,39.8,18.289z M41.062,20.379
+			c0.062,0.252,0.16,0.479,0.295,0.68c0.135,0.2,0.312,0.359,0.527,0.482c0.218,0.121,0.481,0.183,0.792,0.183
+			c0.312,0,0.576-0.062,0.792-0.183c0.218-0.121,0.394-0.281,0.529-0.482c0.134-0.2,0.231-0.428,0.295-0.68
+			c0.062-0.25,0.092-0.508,0.092-0.774c0-0.276-0.03-0.547-0.092-0.806c-0.062-0.262-0.161-0.492-0.295-0.696
+			c-0.136-0.201-0.312-0.365-0.529-0.485c-0.216-0.121-0.48-0.184-0.792-0.184c-0.311,0-0.574,0.062-0.792,0.184
+			c-0.216,0.12-0.393,0.284-0.527,0.485c-0.135,0.204-0.233,0.437-0.295,0.696c-0.062,0.259-0.093,0.527-0.093,0.806
+			C40.97,19.871,41.001,20.129,41.062,20.379z"/>
+		<path fill="#FFFFFF" d="M49.092,16.418l1.471,4.348h0.02l1.393-4.348h1.942v6.322h-1.294v-4.48h-0.02l-1.539,4.48H50l-1.54-4.437
+			h-0.019v4.437h-1.293v-6.322H49.092z"/>
+		<path fill="#FFFFFF" d="M58.764,16.418l2.35,6.322H59.68l-0.476-1.408h-2.351l-0.492,1.408h-1.391l2.377-6.322H58.764z
+			 M58.844,20.297l-0.793-2.322h-0.018l-0.817,2.322H58.844z"/>
+		<path fill="#FFFFFF" d="M63.547,16.418v6.322h-1.382v-6.322H63.547z"/>
+		<path fill="#FFFFFF" d="M66.604,16.418l2.623,4.242h0.018v-4.242h1.294v6.322h-1.384l-2.611-4.234h-0.02v4.234H65.23v-6.322
+			H66.604z"/>
+	</g>
+	<path d="M85.852,0H1.147C0.239,0-0.5,0.744-0.5,1.658v28.969C-0.5,30.834-0.333,31-0.128,31h87.256
+		c0.205,0,0.372-0.166,0.372-0.373V1.658C87.5,0.744,86.762,0,85.852,0z M1.147,0.75h84.705c0.498,0,0.902,0.406,0.902,0.908
+		c0,0,0,20.121,0,28.557H0.245v-8.426c0-8.435,0-20.131,0-20.131C0.245,1.157,0.65,0.75,1.147,0.75z"/>
+	<g>
+		<ellipse fill="#FFFFFF" cx="14.156" cy="15.661" rx="11.004" ry="11.076"/>
+		<path id="text2809_4_" d="M14.22,8.746c-3.862,0-4.834,3.669-4.834,6.779c0,3.111,0.971,6.779,4.834,6.779
+			c3.863,0,4.834-3.67,4.834-6.779C19.054,12.414,18.083,8.746,14.22,8.746z M14.22,11.301c0.157,0,0.3,0.024,0.435,0.06
+			c0.278,0.24,0.414,0.573,0.147,1.038l-2.572,4.76c-0.079-0.603-0.091-1.195-0.091-1.634C12.139,14.155,12.233,11.301,14.22,11.301
+			z M16.146,13.494c0.137,0.731,0.155,1.493,0.155,2.03c0,1.37-0.094,4.223-2.08,4.223c-0.156,0-0.301-0.017-0.435-0.049
+			c-0.025-0.01-0.049-0.019-0.074-0.025c-0.04-0.012-0.084-0.024-0.122-0.041c-0.442-0.188-0.721-0.531-0.319-1.139L16.146,13.494z"
+			/>
+		<path id="path2815_4_" d="M14.195,3.748c-3.245,0-5.98,1.137-8.21,3.422c-1.128,1.135-1.99,2.431-2.589,3.876
+			c-0.585,1.43-0.876,2.921-0.876,4.478c0,1.57,0.291,3.062,0.876,4.479s1.434,2.69,2.548,3.826
+			c1.128,1.121,2.395,1.985,3.802,2.588c1.421,0.59,2.903,0.884,4.449,0.884c1.547,0,3.05-0.304,4.499-0.907
+			c1.448-0.604,2.74-1.471,3.883-2.605c1.101-1.078,1.934-2.317,2.49-3.719c0.571-1.415,0.853-2.932,0.853-4.544
+			c0-1.598-0.281-3.112-0.852-4.528c-0.571-1.429-1.407-2.693-2.507-3.801C20.263,4.895,17.469,3.748,14.195,3.748z M14.244,5.867
+			c2.646,0,4.904,0.944,6.784,2.836c0.906,0.912,1.6,1.954,2.073,3.119c0.473,1.164,0.713,2.398,0.713,3.703
+			c0,2.707-0.92,4.952-2.744,6.746c-0.948,0.927-2.012,1.638-3.196,2.128c-1.17,0.489-2.375,0.732-3.63,0.732
+			c-1.268,0-2.481-0.239-3.638-0.717c-1.156-0.489-2.193-1.191-3.113-2.104c-0.92-0.925-1.629-1.97-2.13-3.135
+			c-0.487-1.178-0.738-2.391-0.738-3.653c0-1.276,0.251-2.497,0.738-3.662c0.501-1.178,1.211-2.235,2.13-3.175
+			C9.317,6.809,11.57,5.867,14.244,5.867z"/>
+	</g>
+</g>
+</svg>

文件差異過大導致無法顯示
+ 92 - 0
public/img/layout/license/CC-BY-NC-ND.svg


文件差異過大導致無法顯示
+ 84 - 0
public/img/layout/license/CC-BY-NC-SA.svg


文件差異過大導致無法顯示
+ 81 - 0
public/img/layout/license/CC-BY-NC.svg


文件差異過大導致無法顯示
+ 84 - 0
public/img/layout/license/CC-BY-ND.svg


文件差異過大導致無法顯示
+ 107 - 0
public/img/layout/license/CC-BY.svg


文件差異過大導致無法顯示
+ 5 - 0
public/img/layout/license/GPLV3.svg


+ 0 - 0
www/public/img/layout/logo/logo.svg → public/img/layout/logo/logo.svg


文件差異過大導致無法顯示
+ 488 - 0
public/img/layout/social/app_store.svg


+ 17 - 0
public/img/layout/social/email.svg

@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+  <defs id="defs3051">
+    <style type="text/css" id="current-color-scheme">
+      .ColorScheme-Text {
+        color:#4d4d4d;
+      }
+      </style>
+  </defs>
+  <g
+     transform="translate(-421.71429,-525.79074)">
+    <path
+       style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" 
+       d="m 422.71429,528.79074 0,1 0,14 0,0.41406 0,0.58594 1,0 19,0 0,-0.58594 0,-0.41406 0,-1 0,-14 -0.0488,0 -0.95117,0 -17.53711,0 -0.46289,0 -1,0 z m 1,1 0.0488,0 5.97461,5.97656 -6.02344,6.02344 0,-12 z m 1.46289,0 15.07422,0 -7.53711,7.53711 -7.53711,-7.53711 z m 16.48828,0 0.0488,0 0,12 -6.02344,-6.02344 5.97461,-5.97656 z m -11.2207,6.68359 2.26953,2.26758 2.26953,-2.26758 6.26758,6.26758 0.46289,0.46289 0,0.58594 -18,0 0,-0.58594 0.46289,-0.46289 6.26758,-6.26758 z"
+       id="rect4144" 
+        class="ColorScheme-Text"/>
+  </g>
+</svg>

+ 54 - 0
public/img/layout/social/facebook.svg

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="256" height="256" id="svg2" sodipodi:version="0.32" inkscape:version="0.47 r22583" sodipodi:docname="facebook.svg" version="1.0" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <title id="title2910">facebook web</title>
+  <defs id="defs4">
+    <linearGradient inkscape:collect="always" id="linearGradient2555">
+      <stop style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" offset="0" id="stop2557"/>
+      <stop style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" offset="1" id="stop2559"/>
+    </linearGradient>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient2555" id="linearGradient2449" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.5914584,0,0,0.5914584,210.02161,142.23241)" x1="-344.15295" y1="274.711" x2="-395.84943" y2="425.39993"/>
+  </defs>
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="204.60201" inkscape:cy="64.459739" inkscape:document-units="px" inkscape:current-layer="layer1" inkscape:window-width="682" inkscape:window-height="762" inkscape:window-x="1" inkscape:window-y="193" showgrid="false" inkscape:window-maximized="0"/>
+  <metadata id="metadata7">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title>facebook web</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>User:ZyMOS</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag/>
+        </dc:subject>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
+        <dc:description/>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title/>
+          </cc:Agent>
+        </dc:contributor>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title>Open Icon Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-373.642,-318.344)">
+    <rect inkscape:export-ydpi="7.7063322" inkscape:export-xdpi="7.7063322" inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png" transform="scale(-1,1)" ry="35.487503" rx="35.487503" y="328.34399" x="-619.64203" height="236" width="236" id="rect1942" style="fill:#0037c1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.875;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.875, 1.75;stroke-dashoffset:0;stroke-opacity:1"/>
+    <path inkscape:export-ydpi="7.7063322" inkscape:export-xdpi="7.7063322" inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png" sodipodi:nodetypes="ccccsssc" id="path1950" d="M 557.29062,338.43314 L 445.99327,338.43314 C 416.53255,338.43314 392.81507,362.34527 392.81507,392.04777 L 392.81507,500.64007 C 393.76867,523.8254 397.43678,509.16812 404.41887,483.49194 C 412.53354,453.65102 438.96056,427.56963 471.144,408.02312 C 495.7086,393.10398 523.20395,383.5772 573.25282,382.6709 C 601.63697,382.15694 599.13112,345.83025 557.29062,338.43314 z" style="opacity:0.30042916;fill:url(#linearGradient2449);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.875;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.875, 1.75;stroke-dashoffset:0;stroke-opacity:1"/>
+    <g id="Layer_3" transform="matrix(1.7982054,0,0,1.8129643,376.63343,326.35613)">
+      <path d="M 93.376,117.012 L 72.203,117.012 L 72.203,65.767 L 61.625,65.767 L 61.625,48.107 L 72.203,48.107 L 72.203,37.504 C 72.203,23.097 78.176,14.53 95.146,14.53 L 109.274,14.53 L 109.274,32.192 L 100.443,32.192 C 93.837,32.192 93.4,34.66 93.4,39.266 L 93.376,48.105 L 109.374,48.105 L 107.502,65.765 L 93.376,65.765 L 93.376,117.012 z" id="path3336" style="fill:#ffffff"/>
+    </g>
+  </g>
+</svg>

文件差異過大導致無法顯示
+ 3 - 0
public/img/layout/social/github.svg


+ 21 - 0
public/img/layout/social/google_play.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1"
+	 id="Layer_2" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" sodipodi:docname="Google_Play_logo.svg" inkscape:version="0.48.4 r9939"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="30 336.7 120.9 129.2"
+	 style="enable-background:new 30 336.7 120.9 129.2;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFD400;}
+	.st1{fill:#FF3333;}
+	.st2{fill:#48FF48;}
+	.st3{fill:#3BCCFF;}
+</style>
+<path id="path16" inkscape:connector-curvature="0" class="st0" d="M119.2,421.2c15.3-8.4,27-14.8,28-15.3c3.2-1.7,6.5-6.2,0-9.7
+	c-2.1-1.1-13.4-7.3-28-15.3l-20.1,20.2L119.2,421.2z"/>
+<path id="path23" inkscape:connector-curvature="0" class="st1" d="M99.1,401.1l-64.2,64.7c1.5,0.2,3.2-0.2,5.2-1.3
+	c4.2-2.3,48.8-26.7,79.1-43.3L99.1,401.1L99.1,401.1z"/>
+<path id="path30" inkscape:connector-curvature="0" class="st2" d="M99.1,401.1l20.1-20.2c0,0-74.6-40.7-79.1-43.1
+	c-1.7-1-3.6-1.3-5.3-1L99.1,401.1z"/>
+<path id="path37" inkscape:connector-curvature="0" class="st3" d="M99.1,401.1l-64.3-64.3c-2.6,0.6-4.8,2.9-4.8,7.6
+	c0,7.5,0,107.5,0,113.8c0,4.3,1.7,7.4,4.9,7.7L99.1,401.1z"/>
+</svg>

+ 209 - 0
public/img/layout/social/google_plus.svg

@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="300.537px" height="300px" viewBox="0 0 300.537 300" enable-background="new 0 0 300.537 300" xml:space="preserve">
+<g id="Background_2_">
+</g>
+<g id="Circle_1_">
+	<g id="Ellipse_1__x2B__Shape_1_2_" enable-background="new    ">
+		<defs>
+			<circle id="SVGID_1_" enable-background="new    " cx="150.269" cy="150" r="147.47"/>
+		</defs>
+		<clipPath id="SVGID_2_">
+			<use xlink:href="#SVGID_1_"  overflow="visible"/>
+		</clipPath>
+		<g transform="matrix(1 0 0 1 -1.891906e-007 -5.580137e-008)" clip-path="url(#SVGID_2_)">
+			
+				<image overflow="visible" width="560" height="559" id="Ellipse_1__x2B__Shape_1_xA0_影像" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjEAAAIxCAYAAAC8b+n0AAAACXBIWXMAABTqAAAU6gFxlYZXAAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAJmlJREFUeNrs3Q1640Z2sG2U1J5x
+9pUFZEdJFpp1uNvdJEJQkq2WpRZ/UMA5de57vrlmvuSNLBVJ1MNCAZgmAICE2v/913/+z+k//9tQ
+AACJ/O+DMQAAMhIxAICIAQAQMQAAIgYAEDEAACIGAEDEAAAiBgBAxAAAiBgAABEDAIgYAAARAwAg
+YgAAEQMAIGIAAEQMACBiAABEDACAiAEAEDEAgIgBABAxAAAiBgAQMQAAIgYAQMQAACIGAEDEAACI
+GAAAEQMAiBgAABEDACBiAAARAwAgYgAARAwAIGIAAEQMAICIAQAQMQCAiAEAEDEAACIGABAxAAAi
+BgBAxAAAIgYAQMQAAIgYAAARAwCIGAAAEQMAIGIAABEDACBiAABEDAAgYgAARAwAgIgBABAxAICI
+AQAQMQAAIgYAEDEAACIGAEDEAACIGABAxAAAiBgAABEDAIgYAAARAwAgYgAAEQMAIGIAAEQMAICI
+AQBEDACAiAEAEDEAgIgBABAxAAAiBgAQMQAAIgYAQMQAAIgYAEDEAACIGAAAEQMAiBgAABEDACBi
+AAARAwAgYgAARAwAgIgBAEQMAICIAQAQMQCAiAEAEDEAACIGABAxAAAiBgBAxAAAiBgAQMQAAIgY
+AAARAwCIGAAAEQMAIGIAABEDACBiAABEDACAiAEARAwAgIgBABAxAICIAQAQMQAAIgYAEDEAACIG
+AEDEAACIGABAxAAAiBgAABEDAIgYAAARAwAgYgAARAwAIGIAAEQMAICIAQBEDACAiAEAEDEAgIgB
+ABAxAAAiBgBAxAAAIgYAQMQAAIgYAEDEAACIGAAAEQMAiBgAABEDACBiAABEDAAgYgAARAwAgIgB
+AEQMAICIAQAQMQCAiAEAEDEAACIGAEDEAAAiBgBAxAAAiBgAQMQAAIgYAAARAwCIGAAAEQMAIGIA
+AEQMACBiAABEDACAiAEARAwAgIgBABAxAICIAQAQMQAAIgYAQMQAACIGAEDEAABc7YshgL7ml3/P
+89//s/nlfzc//+/e/L+dXv0PXv3P5jf//69/1qK1Nj2007eT5T+np//+eP7vT/+75uUARAyIis+i
+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" transform="matrix(0.5295 0 0 0.5295 2.0034 2)">
+			</image>
+		</g>
+	</g>
+</g>
+<g id="Logo_1_">
+	<g id="G_x2B_">
+		<g>
+			<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M173.723,136.102h-25.044h-33.227v24.653h33.227
+				c-4.974,13.099-17.637,22.412-32.48,22.412c-19.186,0-34.74-15.554-34.74-34.739s15.554-34.739,34.74-34.739
+				c8.548,0,16.369,3.096,22.42,8.217l17.394-17.032c-10.496-9.601-24.468-15.466-39.814-15.466
+				c-32.596,0-59.02,26.424-59.02,59.019c0,32.596,26.424,59.02,59.02,59.02c32.595,0,59.019-26.424,59.019-59.02
+				c0-4.228-0.448-8.35-1.293-12.326H173.723z M222.657,137.968v-20.544h-14.941v20.544h-20.545v14.942h20.545v20.544h14.941V152.91
+				h20.545v-14.942H222.657z"/>
+		</g>
+	</g>
+</g>
+</svg>

+ 46 - 0
public/img/layout/social/internet.svg

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 490 490" style="enable-background:new 0 0 490 490;" xml:space="preserve">
+<g>
+	<path d="M245,490c135.31,0,245-109.689,245-245C490,109.69,380.31,0,245,0S0,109.69,0,245C0,380.311,109.69,490,245,490z
+		 M245,30.625c118.206,0,214.375,96.169,214.375,214.375c0,118.207-96.169,214.375-214.375,214.375S30.625,363.207,30.625,245
+		C30.625,126.794,126.794,30.625,245,30.625z"/>
+	<polygon points="128.297,222.899 146.077,289.622 165.188,289.622 186.871,200.378 168.732,200.378 155.034,262.72 
+		139.378,200.378 117.949,200.378 101.635,261.673 88.177,200.378 69.724,200.378 91.033,289.622 110.577,289.622 	"/>
+	<polygon points="228.262,289.622 245.982,222.899 263.762,289.622 282.873,289.622 304.556,200.378 286.417,200.378 
+		272.719,262.72 257.063,200.378 235.634,200.378 219.32,261.673 205.862,200.378 187.409,200.378 208.718,289.622 	"/>
+	<polygon points="345.947,289.622 363.667,222.899 381.447,289.622 400.558,289.622 422.241,200.378 404.102,200.378 
+		390.404,262.72 374.748,200.378 353.319,200.378 337.005,261.673 323.547,200.378 305.094,200.378 326.403,289.622 	"/>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+</svg>

+ 37 - 0
public/img/layout/social/linkedin.svg

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1"
+	 id="svg2" sodipodi:version="0.32" inkscape:version="0.47 r22583" sodipodi:docname="linkedin.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="256px" height="256px"
+	 viewBox="0 0 256 256" enable-background="new 0 0 256 256" xml:space="preserve">
+<sodipodi:namedview  showgrid="false" inkscape:window-maximized="0" pagecolor="#ffffff" bordercolor="#666666" id="base" borderopacity="1.0" inkscape:cx="138.80354" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.24748737" inkscape:cy="94.798647" inkscape:document-units="px" inkscape:current-layer="layer1" inkscape:window-width="853" inkscape:window-height="674" inkscape:window-x="1" inkscape:window-y="281">
+	</sodipodi:namedview>
+<g id="layer1" transform="translate(-373.642,-318.344)" inkscape:label="Layer 1" inkscape:groupmode="layer">
+	
+		<path id="rect1942" inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png" inkscape:export-xdpi="7.7063322" inkscape:export-ydpi="7.7063322" fill="#1D8CB5" d="
+		M583.659,328.849H419.625c-19.599,0-35.487,15.888-35.487,35.487v164.015c0,19.599,15.888,35.486,35.487,35.486h164.033
+		c19.599,0,35.487-15.888,35.487-35.486V364.337C619.146,344.738,603.257,328.849,583.659,328.849z"/>
+	
+		<linearGradient id="path1950_1_" gradientUnits="userSpaceOnUse" x1="-808.8727" y1="199.8918" x2="-860.5692" y2="49.2029" gradientTransform="matrix(-0.5915 0 0 -0.5915 -34.5417 412.5453)">
+		<stop  offset="0" style="stop-color:#FFFFFF"/>
+		<stop  offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+	</linearGradient>
+	
+		<path id="path1950" inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png" inkscape:export-xdpi="7.7063322" sodipodi:nodetypes="ccccsssc" inkscape:export-ydpi="7.7063322" opacity="0.7811" fill="url(#path1950_1_)" enable-background="new    " d="
+		M557.056,338.895H446.227c-29.337,0-52.955,23.81-52.955,53.385v108.127c0.95,23.087,4.603,8.491,11.555-17.075
+		c8.081-29.713,34.396-55.682,66.445-75.145c24.461-14.855,51.84-24.341,101.679-25.244
+		C601.216,382.432,598.721,346.26,557.056,338.895z"/>
+</g>
+<g id="layer1_1_" transform="translate(-200.55198,-393.96227)" inkscape:label="Layer 1" inkscape:groupmode="layer">
+	<g id="g3019" transform="matrix(1.018827,0,0,-1.018827,170.5996,498.03288)">
+		<path id="path28_1_" inkscape:connector-curvature="0" fill="#FFFFFF" d="M109.495-101.774V2.533H74.828v-104.307H109.495z
+			 M92.168,16.775c12.081,0,19.612,8.01,19.612,18.021c-0.224,10.233-7.531,18.021-19.385,18.021
+			c-11.864,0-19.615-7.788-19.615-18.021c0-10.011,7.521-18.021,19.159-18.021H92.168L92.168,16.775z"/>
+		<path id="path30_1_" inkscape:connector-curvature="0" fill="#FFFFFF" d="M128.681-101.774h34.673v58.249
+			c0,3.119,0.226,6.235,1.143,8.462c2.5,6.232,8.209,12.681,17.784,12.681c12.547,0,17.562-9.568,17.562-23.588v-55.804h34.666
+			v59.81c0,32.039-17.1,46.946-39.913,46.946c-18.701,0-26.915-10.45-31.476-17.571h0.234V2.533h-34.673
+			C129.141-7.253,128.681-101.774,128.681-101.774L128.681-101.774z"/>
+	</g>
+</g>
+</svg>

+ 17 - 0
public/img/layout/social/telegram.svg

@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 240 240">
+<defs>
+	<linearGradient id="b" x1="0.6667" y1="0.1667" x2="0.4167" y2="0.75">
+		<stop stop-color="#37aee2" offset="0"/>
+		<stop stop-color="#1e96c8" offset="1"/>
+	</linearGradient>
+	<linearGradient id="w" x1="0.6597" y1="0.4369" x2="0.8512" y2="0.8024">
+		<stop stop-color="#eff7fc" offset="0"/>
+		<stop stop-color="#fff" offset="1"/>
+	</linearGradient>
+</defs>
+<circle cx="120" cy="120" r="120" fill="url(#b)"/>
+<path fill="#c8daea" d="m98 175c-3.8876 0-3.227-1.4679-4.5678-5.1695L82 132.2059 170 80"/>
+<path fill="#a9c9dd" d="m98 175c3 0 4.3255-1.372 6-3l16-15.558-19.958-12.035"/>
+<path fill="url(#w)" d="m100.04 144.41 48.36 35.729c5.5185 3.0449 9.5014 1.4684 10.876-5.1235l19.685-92.763c2.0154-8.0802-3.0801-11.745-8.3594-9.3482l-115.59 44.571c-7.8901 3.1647-7.8441 7.5666-1.4382 9.528l29.663 9.2583 68.673-43.325c3.2419-1.9659 6.2173-0.90899 3.7752 1.2584"/>
+</svg>

+ 21 - 0
public/img/layout/social/twitter.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 20.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 400 400" style="enable-background:new 0 0 400 400;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#1DA1F2;}
+	.st1{fill:#FFFFFF;}
+</style>
+<g id="Dark_Blue">
+	<path class="st0" d="M350,400H50c-27.6,0-50-22.4-50-50V50C0,22.4,22.4,0,50,0h300c27.6,0,50,22.4,50,50v300
+		C400,377.6,377.6,400,350,400z"/>
+</g>
+<g id="Logo__x2014__FIXED">
+	<path class="st1" d="M153.6,301.6c94.3,0,145.9-78.2,145.9-145.9c0-2.2,0-4.4-0.1-6.6c10-7.2,18.7-16.3,25.6-26.6
+		c-9.2,4.1-19.1,6.8-29.5,8.1c10.6-6.3,18.7-16.4,22.6-28.4c-9.9,5.9-20.9,10.1-32.6,12.4c-9.4-10-22.7-16.2-37.4-16.2
+		c-28.3,0-51.3,23-51.3,51.3c0,4,0.5,7.9,1.3,11.7c-42.6-2.1-80.4-22.6-105.7-53.6c-4.4,7.6-6.9,16.4-6.9,25.8
+		c0,17.8,9.1,33.5,22.8,42.7c-8.4-0.3-16.3-2.6-23.2-6.4c0,0.2,0,0.4,0,0.7c0,24.8,17.7,45.6,41.1,50.3c-4.3,1.2-8.8,1.8-13.5,1.8
+		c-3.3,0-6.5-0.3-9.6-0.9c6.5,20.4,25.5,35.2,47.9,35.6c-17.6,13.8-39.7,22-63.7,22c-4.1,0-8.2-0.2-12.2-0.7
+		C97.7,293.1,124.7,301.6,153.6,301.6"/>
+</g>
+</svg>

+ 47 - 0
public/img/layout/social/www.svg

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 483.3 483.3" style="enable-background:new 0 0 483.3 483.3;" xml:space="preserve">
+<g>
+	<g>
+		<path d="M424.3,57.75H59.1c-32.6,0-59.1,26.5-59.1,59.1v249.6c0,32.6,26.5,59.1,59.1,59.1h365.1c32.6,0,59.1-26.5,59.1-59.1
+			v-249.5C483.4,84.35,456.9,57.75,424.3,57.75z M456.4,366.45c0,17.7-14.4,32.1-32.1,32.1H59.1c-17.7,0-32.1-14.4-32.1-32.1v-249.5
+			c0-17.7,14.4-32.1,32.1-32.1h365.1c17.7,0,32.1,14.4,32.1,32.1v249.5H456.4z"/>
+		<path d="M304.8,238.55l118.2-106c5.5-5,6-13.5,1-19.1c-5-5.5-13.5-6-19.1-1l-163,146.3l-31.8-28.4c-0.1-0.1-0.2-0.2-0.2-0.3
+			c-0.7-0.7-1.4-1.3-2.2-1.9L78.3,112.35c-5.6-5-14.1-4.5-19.1,1.1c-5,5.6-4.5,14.1,1.1,19.1l119.6,106.9L60.8,350.95
+			c-5.4,5.1-5.7,13.6-0.6,19.1c2.7,2.8,6.3,4.3,9.9,4.3c3.3,0,6.6-1.2,9.2-3.6l120.9-113.1l32.8,29.3c2.6,2.3,5.8,3.4,9,3.4
+			c3.2,0,6.5-1.2,9-3.5l33.7-30.2l120.2,114.2c2.6,2.5,6,3.7,9.3,3.7c3.6,0,7.1-1.4,9.8-4.2c5.1-5.4,4.9-14-0.5-19.1L304.8,238.55z"
+			/>
+	</g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+<g>
+</g>
+</svg>

+ 0 - 0
www/public/index.php → public/index.php


+ 0 - 0
www/public/js/profile.js → public/js/profile.js


+ 0 - 0
www/public/js/project.js → public/js/project.js


+ 0 - 0
www/public/js/ui.js → public/js/ui.js


+ 2 - 60
sql/01_structure.sql

@@ -21,42 +21,6 @@ CREATE TABLE text (
 );
 );
 CREATE INDEX i_text ON text(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 social(
-    id       INT           AUTO_INCREMENT  PRIMARY KEY,
-    idx      INT           NOT NULL        UNIQUE,
-    visible  BOOLEAN       NOT NULL        DEFAULT 1,
-    title    VARCHAR(32)   NOT NULL        UNIQUE       REFERENCES text.id,
-    icon     VARCHAR(16)   NOT NULL,
-    url      VARCHAR(256)  NOT NULL
-);
-
 CREATE TABLE share(
 CREATE TABLE share(
     id       INT           AUTO_INCREMENT      PRIMARY KEY,
     id       INT           AUTO_INCREMENT      PRIMARY KEY,
     idx      INT           NOT NULL            UNIQUE,
     idx      INT           NOT NULL            UNIQUE,
@@ -95,25 +59,6 @@ CREATE TABLE project (
     comments   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 (
 CREATE TABLE project_url_type (
     id       VARCHAR(1)   NOT NULL            PRIMARY KEY,
     id       VARCHAR(1)   NOT NULL            PRIMARY KEY,
     title    VARCHAR(32)  REFERENCES text.id,
     title    VARCHAR(32)  REFERENCES text.id,
@@ -144,7 +89,6 @@ CREATE TABLE project_tag (
 CREATE TABLE project_comment (
 CREATE TABLE project_comment (
     id        INT            AUTO_INCREMENT            PRIMARY KEY,
     id        INT            AUTO_INCREMENT            PRIMARY KEY,
     project   INT            NOT NULL                  REFERENCES project(id),
     project   INT            NOT NULL                  REFERENCES project(id),
-    version   INT            NOT NULL                  REFERENCES project_version(version_code),
     text      VARCHAR(5000)  NOT NULL,
     text      VARCHAR(5000)  NOT NULL,
     dtime     TIMESTAMP      NOT NULL                  DEFAULT now(),
     dtime     TIMESTAMP      NOT NULL                  DEFAULT now(),
     user      INT            REFERENCES user.id,
     user      INT            REFERENCES user.id,
@@ -154,7 +98,7 @@ CREATE TABLE project_comment (
     visit     INT            REFERENCES stat_visit.id
     visit     INT            REFERENCES stat_visit.id
 );
 );
 
 
-CREATE TABLE cv_category (
+CREATE TABLE cv_section (
     id        INT          AUTO_INCREMENT      PRIMARY KEY,
     id        INT          AUTO_INCREMENT      PRIMARY KEY,
     title     VARCHAR(32)  REFERENCES text.id,
     title     VARCHAR(32)  REFERENCES text.id,
     summary   VARCHAR(32)  REFERENCES text.id,
     summary   VARCHAR(32)  REFERENCES text.id,
@@ -178,8 +122,7 @@ CREATE TABLE cv (
 CREATE TABLE settings (
 CREATE TABLE settings (
     name     VARCHAR(64)  PRIMARY KEY,
     name     VARCHAR(64)  PRIMARY KEY,
     value    VARCHAR(64)  NOT NULL,
     value    VARCHAR(64)  NOT NULL,
-    user     INT          REFERENCES user.id,
-    changed  TIMESTAMP    NOT NULL            DEFAULT now()
+    changed  TIMESTAMP    NOT NULL DEFAULT now()
 );
 );
 
 
 CREATE TABLE stat_visit (
 CREATE TABLE stat_visit (
@@ -200,4 +143,3 @@ CREATE TABLE stat_view (
 );
 );
 CREATE INDEX i_visit ON stat_view(visit, dtime);
 CREATE INDEX i_visit ON stat_view(visit, dtime);
 
 
-

+ 18 - 31
sql/02_security.sql

@@ -1,33 +1,20 @@
--- Replace all instances of XXX with the external site db password (same one as in www/.htaccess).
+-- Replace all instances of XXX with the external site db password (same one as in ../application/config/auth.php).
 -- Uncomment all entries.
 -- Uncomment all entries.
 
 
---GRANT SELECT ON         web.cv_category          TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.cv                   TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.lang                 TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.license              TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.text                 TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.user                 TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project              TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_type         TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_tag          TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_url          TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_url_type     TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_image        TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_tag          TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_version      TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.project_version_type TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT, INSERT ON web.project_comment      TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.settings             TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.share                TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT, INSERT ON web.stat_view            TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT, INSERT ON web.stat_visit           TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
---GRANT SELECT ON         web.social               TO 'webext'@'localhost' IDENTIFIED BY 'XXX';
-
-
-
-
-
--- Replace YYY with the internal site db password (same one as in www-admin/.htaccess).
--- Uncomment entry.
-
---GRANT SELECT, INSERT, DELETE, UPDATE, SHOW VIEW ON web.* TO 'webint'@'localhost' IDENTIFIED BY 'YYY';
+--GRANT SELECT ON         web.cv_section       TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.cv               TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.lang             TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.license          TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.text             TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project          TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_type     TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_tag      TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_url      TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_url_type TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_image    TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.project_tag      TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT, INSERT ON web.project_comment  TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.settings         TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT ON         web.share            TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT, INSERT ON web.stat_view        TO 'w'@'localhost' IDENTIFIED BY 'XXX';
+--GRANT SELECT, INSERT ON web.stat_visit       TO 'w'@'localhost' IDENTIFIED BY 'XXX';

+ 30 - 68
sql/03_data.sql

@@ -232,9 +232,6 @@ INSERT INTO text VALUES ('PROJECT_TAGS',            'eu', 'PROJECT', 'Tags', nul
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'es', 'PROJECT', 'License', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'es', 'PROJECT', 'License', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'en', 'PROJECT', 'Licencia', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'en', 'PROJECT', 'Licencia', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'eu', 'PROJECT', 'Lizentzia', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE',         'eu', 'PROJECT', 'Lizentzia', null);
-INSERT INTO text VALUES ('PROJECT_VERSION_TREE',    'es', 'PROJECT', 'Ver el hist&oacute;rico de versiones', null);
-INSERT INTO text VALUES ('PROJECT_VERSION_TREE',    'en', 'PROJECT', 'Open version tree', null);
-INSERT INTO text VALUES ('PROJECT_VERSION_TREE',    'eu', 'PROJECT', 'Ver el hist&oacute;rico de versiones', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'es', 'PROJECT', 'En resumen:', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'es', 'PROJECT', 'En resumen:', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'en', 'PROJECT', 'In a few words:', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'en', 'PROJECT', 'In a few words:', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'eu', 'PROJECT', 'En resumen:', null);
 INSERT INTO text VALUES ('PROJECT_LICENSE_SUMMARY', 'eu', 'PROJECT', 'En resumen:', null);
@@ -433,36 +430,13 @@ INSERT INTO text VALUES ('URL_TYPE_M_SUMMARY', 'es', 'DB_URL_TYPE', 'Ver', null)
 INSERT INTO text VALUES ('URL_TYPE_M_SUMMARY', 'en', 'DB_URL_TYPE', 'See', null);
 INSERT INTO text VALUES ('URL_TYPE_M_SUMMARY', 'en', 'DB_URL_TYPE', 'See', null);
 INSERT INTO text VALUES ('URL_TYPE_M_SUMMARY', 'eu', 'DB_URL_TYPE', 'Ikusi', null);
 INSERT INTO text VALUES ('URL_TYPE_M_SUMMARY', 'eu', 'DB_URL_TYPE', 'Ikusi', null);
 INSERT INTO project_url_type VALUES ('E', null, null, null);
 INSERT INTO project_url_type VALUES ('E', null, null, null);
-INSERT INTO project_url_type VALUES ('W', 'URL_TYPE_W', 'URL_TYPE_W_SUMMARY', 'web.png');
-INSERT INTO project_url_type VALUES ('P', 'URL_TYPE_P', 'URL_TYPE_P_SUMMARY', 'googleplay.png');
-INSERT INTO project_url_type VALUES ('A', 'URL_TYPE_A', 'URL_TYPE_A_SUMMARY', 'appstore.png');
-INSERT INTO project_url_type VALUES ('G', 'URL_TYPE_G', 'URL_TYPE_G_SUMMARY', 'github.png');
-INSERT INTO project_url_type VALUES ('M', 'URL_TYPE_M', 'URL_TYPE_M_SUMMARY', 'misc.png');
+INSERT INTO project_url_type VALUES ('W', 'URL_TYPE_W', 'URL_TYPE_W_SUMMARY', 'web.svg');
+INSERT INTO project_url_type VALUES ('P', 'URL_TYPE_P', 'URL_TYPE_P_SUMMARY', 'googleplay.svg');
+INSERT INTO project_url_type VALUES ('A', 'URL_TYPE_A', 'URL_TYPE_A_SUMMARY', 'appstore.svg');
+INSERT INTO project_url_type VALUES ('G', 'URL_TYPE_G', 'URL_TYPE_G_SUMMARY', 'github.svg');
+INSERT INTO project_url_type VALUES ('M', 'URL_TYPE_M', 'URL_TYPE_M_SUMMARY', 'misc.svg');
 
 
 
 
--- TABLE project_version_type
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA',         'es', 'VERSION_TYPE', 'Alfa', null);
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA',         'en', 'VERSION_TYPE', 'Alpha', null);
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA',         'eu', 'VERSION_TYPE', 'Alpha', null);
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA_SUMMARY', 'es', 'VERSION_TYPE', 'En sesarrollo. Inestable.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA_SUMMARY', 'en', 'VERSION_TYPE', 'In development. Unstable.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_ALPHA_SUMMARY', 'eu', 'VERSION_TYPE', 'En desarrollo. Inestable', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA',          'es', 'VERSION_TYPE', 'Beta', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA',          'en', 'VERSION_TYPE', 'Beta', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA',          'eu', 'VERSION_TYPE', 'Beta', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA_SUMMARY',  'es', 'VERSION_TYPE', 'En pruebas. Parcialmente estable.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA_SUMMARY',  'en', 'VERSION_TYPE', 'Under testing. Stability not guaranteed.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_BETA_SUMMARY',  'eu', 'VERSION_TYPE', 'En pruebas. Parcialmente estable.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO',           'es', 'VERSION_TYPE', 'Estable', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO',           'en', 'VERSION_TYPE', 'Stable', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO',           'eu', 'VERSION_TYPE', 'Estable', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO_SUMMARY',   'es', 'VERSION_TYPE', 'Listo para uso en entorno de producci&oacute;n.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO_SUMMARY',   'en', 'VERSION_TYPE', 'Ready for production.', null);
-INSERT INTO text VALUES ('VERSION_TYPE_PRO_SUMMARY',   'eu', 'VERSION_TYPE', 'Listo para uso en entorno de producci&oacute;n.', null);
-INSERT INTO project_version_type VALUES ('A', 'VERSION_TYPE_ALPHA', 'VERSION_TYPE_ALPHA_SUMMARY', '#ff0000');
-INSERT INTO project_version_type VALUES ('B', 'VERSION_TYPE_BETA',  'VERSION_TYPE_BETA_SUMMARY',  '#ffaa00');
-INSERT INTO project_version_type VALUES ('P', 'VERSION_TYPE_PRO',   'VERSION_TYPE_PRO_SUMMARY',   '#00ff00');
-
 
 
 -- TABLE license
 -- TABLE license
 INSERT INTO text VALUES ('LICENSE_CC-BY-SA_SUMMARY', 'es', 'LICENSE', null, 'LICENSE_CC-BY-SA_SUMMARY__ES');
 INSERT INTO text VALUES ('LICENSE_CC-BY-SA_SUMMARY', 'es', 'LICENSE', null, 'LICENSE_CC-BY-SA_SUMMARY__ES');
@@ -477,44 +451,32 @@ INSERT INTO text VALUES ('LICENSE_GPLV3_SUMMARY',    'eu', 'LICENSE', null, 'LIC
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'es', 'LICENSE', null, 'LICENSE_GPLV3__ES');
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'es', 'LICENSE', null, 'LICENSE_GPLV3__ES');
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'en', 'LICENSE', null, 'LICENSE_GPLV3__EN');
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'en', 'LICENSE', null, 'LICENSE_GPLV3__EN');
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'eu', 'LICENSE', null, 'LICENSE_GPLV3__EU');
 INSERT INTO text VALUES ('LICENSE_GPLV3',            'eu', 'LICENSE', null, 'LICENSE_GPLV3__EU');
-INSERT INTO license VALUES ('CC-BY-SA', 'LICENSE_CC-BY-SA_SUMMARY', 'LICENSE_CC-BY-SA', 'CC-BY-SA.png', 'CC-BY-SA.png');
-INSERT INTO license VALUES ('GPLv3',    'LICENSE_GPLV3_SUMMARY',    'LICENSE_GPLV3',    'GPLV3.png',    'GPLV3.png');
-
+INSERT INTO license VALUES ('CC-BY-SA', 'LICENSE_CC-BY-SA_SUMMARY', 'LICENSE_CC-BY-SA', 'CC-BY-SA.svg', 'CC-BY-SA.svg');
+INSERT INTO license VALUES ('GPLv3',    'LICENSE_GPLV3_SUMMARY',    'LICENSE_GPLV3',    'GPLV3.svg',    'GPLV3.svg');
 
 
--- TABLE cv_category
-INSERT INTO text VALUES ('CV_CATEGORY_WORK',             'es', 'DB_CV', 'Experiencia', null);
-INSERT INTO text VALUES ('CV_CATEGORY_WORK',             'en', 'DB_CV', 'Experience', null);
-INSERT INTO text VALUES ('CV_CATEGORY_WORK',             'eu', 'DB_CV', 'Experiencia', null);
-INSERT INTO text VALUES ('CV_CATEGORY_EDUCATION',        'es', 'DB_CV', 'Formaci&oacute;n', null);
-INSERT INTO text VALUES ('CV_CATEGORY_EDUCATION',        'en', 'DB_CV', 'Hezkuntza', null);
-INSERT INTO text VALUES ('CV_CATEGORY_EDUCATION',        'eu', 'DB_CV', 'Education', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS',         'es', 'DB_CV', 'Otros proyectos', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS',         'en', 'DB_CV', 'Other projects', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS',         'eu', 'DB_CV', 'Beste projecktuak', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS_SUMMARY', 'es', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS_SUMMARY', 'en', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
-INSERT INTO text VALUES ('CV_CATEGORY_PROJECTS_SUMMARY', 'eu', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER',            'es', 'DB_CV', 'Otra experiencia laboral', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER',            'en', 'DB_CV', 'Otra experiencia laboral', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER',            'eu', 'DB_CV', 'Otra experiencia laboral', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER_SUMMARY',    'es', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER_SUMMARY',    'en', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
-INSERT INTO text VALUES ('CV_CATEGORY_OTHER_SUMMARY',    'eu', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
-INSERT INTO cv_category VALUES (1, 'CV_CATEGORY_WORK',      null,                          1 , 1);
-INSERT INTO cv_category VALUES (2, 'CV_CATEGORY_EDUCATION', null,                          1 , 3);
-INSERT INTO cv_category VALUES (3, 'CV_CATEGORY_PROJECTS', 'CV_CATEGORY_PROJECTS_SUMMARY', 0 , 2);
-INSERT INTO cv_category VALUES (4, 'CV_CATEGORY_OTHER',    'CV_CATEGORY_OTHER_SUMMARY',    1 , 4);
 
 
+-- TABLE cv_section
+INSERT INTO text VALUES ('CV_SECTION_WORK',             'es', 'DB_CV', 'Experiencia', null);
+INSERT INTO text VALUES ('CV_SECTION_WORK',             'en', 'DB_CV', 'Experience', null);
+INSERT INTO text VALUES ('CV_SECTION_WORK',             'eu', 'DB_CV', 'Experiencia', null);
+INSERT INTO text VALUES ('CV_SECTION_EDUCATION',        'es', 'DB_CV', 'Formaci&oacute;n', null);
+INSERT INTO text VALUES ('CV_SECTION_EDUCATION',        'en', 'DB_CV', 'Hezkuntza', null);
+INSERT INTO text VALUES ('CV_SECTION_EDUCATION',        'eu', 'DB_CV', 'Education', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS',         'es', 'DB_CV', 'Otros proyectos', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS',         'en', 'DB_CV', 'Other projects', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS',         'eu', 'DB_CV', 'Beste projecktuak', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS_SUMMARY', 'es', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS_SUMMARY', 'en', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
+INSERT INTO text VALUES ('CV_SECTION_PROJECTS_SUMMARY', 'eu', 'DB_CV', 'Proyectos de software eralizados por cuenta propia', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER',            'es', 'DB_CV', 'Otra experiencia laboral', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER',            'en', 'DB_CV', 'Otra experiencia laboral', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER',            'eu', 'DB_CV', 'Otra experiencia laboral', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER_SUMMARY',    'es', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER_SUMMARY',    'en', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
+INSERT INTO text VALUES ('CV_SECTION_OTHER_SUMMARY',    'eu', 'DB_CV', 'Experiencia laboral fuera del &aacute;mbito de IT', null);
+INSERT INTO cv_section VALUES (1, 'CV_SECTION_WORK',      null,                          1 , 1);
+INSERT INTO cv_section VALUES (2, 'CV_SECTION_EDUCATION', null,                          1 , 3);
+INSERT INTO cv_section VALUES (3, 'CV_SECTION_PROJECTS', 'CV_SECTION_PROJECTS_SUMMARY', 0 , 2);
+INSERT INTO cv_section VALUES (4, 'CV_SECTION_OTHER',    'CV_SECTION_OTHER_SUMMARY',    1 , 4);
 
 
--- To be filled before installing
-INSERT INTO text VALUES ('USER_NAME', 'es', 'USER', '', null);
-INSERT INTO text VALUES ('USER_NAME', 'en', 'USER', '', null);
-INSERT INTO text VALUES ('USER_NAME', 'eu', 'USER', '', null);
-INSERT INTO text VALUES ('USER_TAGLINE', 'es', 'USER', '', null);
-INSERT INTO text VALUES ('USER_TAGLINE', 'en', 'USER', '', null);
-INSERT INTO text VALUES ('USER_TAGLINE', 'eu', 'USER', '', null);
-INSERT INTO text VALUES ('USER_BIO', 'es', 'USER', '', null);
-INSERT INTO text VALUES ('USER_BIO', 'en', 'USER', '', null);
-INSERT INTO text VALUES ('USER_BIO', 'eu', 'USER', '', null);
 
 
--- ADD MORE ROWS AS YOU SEE FIT:

部分文件因文件數量過多而無法顯示