]> _ Git - cubedesigners-v7.git/commitdiff
(no commit message)
authorbruno@cubedesigners.com <bruno@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 23 Jan 2014 16:40:51 +0000 (16:40 +0000)
committerbruno@cubedesigners.com <bruno@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 23 Jan 2014 16:40:51 +0000 (16:40 +0000)
14 files changed:
framework/application/Bootstrap.php
framework/application/forms/CMS/Casestudies.php
framework/application/forms/CMS/Sub/Casestudies/Studie.php [new file with mode: 0644]
framework/application/forms/CMS/Sub/Casestudies/Studies.php [new file with mode: 0644]
framework/application/forms/Element/Tags.php [new file with mode: 0644]
framework/application/forms/Settings.php
framework/application/forms/Tags.php [new file with mode: 0644]
framework/application/forms/User.php
framework/application/views/helpers/CasestudiesList.php [new file with mode: 0644]
framework/application/views/helpers/CasestudiesTagsList.php [new file with mode: 0644]
framework/application/views/scripts/common/footer.phtml
framework/application/views/scripts/templates/casestudies.phtml
js/casestudies.js [new file with mode: 0644]
less/casestudies.less

index e83cfa100677caf6c8c5acece4510866ac1d6455..31e60010cd9dbd21d8ecb526ac603e69f8d3b36e 100644 (file)
@@ -12,6 +12,7 @@ class Bootstrap extends CubeIT_Bootstrap {
     protected function _initScripts() {
         parent::_initScripts();
         $this->getView()->headLink()->appendStylesheet('/css/fonts/fonts.css');
+        $this->getView()->headScript()->addTagHandler();
     }
 
     protected function _initRouter($initCms = true) {
@@ -34,6 +35,11 @@ class Bootstrap extends CubeIT_Bootstrap {
         $user->addUniqueIndex(array('username'));
         $user->addColumn('password', 'string', array('length' => 255));
         $user->addColumn('role', 'string', array('length' => 32));
+
+        $tags = $schema->createTable('tags');
+        $tags->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true));
+        $tags->setPrimaryKey(array('id'));
+        $tags->addColumn('name', 'string', array('length' => 64));
     }
 
     protected function _initAcl() {
index b7d51790902360d40189db00cc4059398d6df04f..459e6a4a1d1d40f9f097e7f159b058f7bfa57d2c 100644 (file)
@@ -8,6 +8,10 @@ class Cubedesigners_Form_CMS_Casestudies extends Cubedesigners_Form_CMS {
         $titre = new CubeIT_Form_Element_Markitup('titre');\r
         $titre->setLabel('Titre');\r
         $this->addElement($titre);\r
+\r
+        $studies = new Cubedesigners_Form_CMS_Sub_Casestudies_Studies();\r
+        $studies->setLabel('Etudes de cas');\r
+        $this->addSubForm($studies, 'studies');\r
     }\r
 \r
 }\r
diff --git a/framework/application/forms/CMS/Sub/Casestudies/Studie.php b/framework/application/forms/CMS/Sub/Casestudies/Studie.php
new file mode 100644 (file)
index 0000000..7212a38
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+class Cubedesigners_Form_CMS_Sub_Casestudies_Studie extends CubeIT_Form_SubForm {
+
+    public function init() {
+        parent::init();
+
+        $titre = new Zend_Form_Element_Text('titre');
+        $titre->setLabel('Titre');
+        $this->addElement($titre);
+
+        $description = new Zend_Form_Element_Text('description');
+        $description->setLabel('Description');
+        $this->addElement($description);
+
+        $visuel = new CubeIT_Form_Element_File_Image('visuel');
+        $visuel->setLabel('Visuel de la page Case Studies');
+        $visuel->setMaxItems(1);
+        $this->addElement($visuel);
+
+        $tags = new Cubedesigners_Form_Element_Tags('tags');
+        $tags->setLabel('Tags');
+        $this->addElement($tags);
+    }
+
+}
+
+?>
diff --git a/framework/application/forms/CMS/Sub/Casestudies/Studies.php b/framework/application/forms/CMS/Sub/Casestudies/Studies.php
new file mode 100644 (file)
index 0000000..b4c5359
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+class Cubedesigners_Form_CMS_Sub_Casestudies_Studies extends CubeIT_Form_Multi_SubForm {
+
+    public function init() {
+        parent::init();
+
+        $studie = new Cubedesigners_Form_CMS_Sub_Casestudies_Studie();
+        $this->setBaseSubForm($studie);
+        $this->setBaseLegend('Edition de l\'etude de cas « $titre »');
+        $this->setNewLegend('Nouvelle étude de cas');
+    }
+
+}
+
+?>
diff --git a/framework/application/forms/Element/Tags.php b/framework/application/forms/Element/Tags.php
new file mode 100644 (file)
index 0000000..db73104
--- /dev/null
@@ -0,0 +1,11 @@
+<?php\r
+\r
+class Cubedesigners_Form_Element_Tags extends CubeIT_Form_Element_TagList {\r
+\r
+    public function init() {\r
+        $this->setBaseForm('Cubedesigners_Form_Tags');\r
+    }\r
+\r
+}\r
+\r
+?>\r
index c161d5c773384833aeee52a210db1fb2fb1f0aef..a14c4188c5a7f3a3b5f995193bd7b554171207f9 100644 (file)
@@ -35,6 +35,10 @@ class Cubedesigners_Form_Settings extends CubeIT_Form_Settings {
         $copyright = new Zend_Form_Element_Text('copyright');
         $copyright->setLabel('Copyright du bas de page');
         $this->addElementLocalized($copyright);
+
+        $tags = new Cubedesigners_Form_Element_Tags('tags');
+        $tags->setLabel(__('Tags'));
+        $this->addElement($tags);
     }
 
 }
diff --git a/framework/application/forms/Tags.php b/framework/application/forms/Tags.php
new file mode 100644 (file)
index 0000000..b4c0087
--- /dev/null
@@ -0,0 +1,60 @@
+<?php\r
+\r
+class Cubedesigners_Form_Tags extends CubeIT_Form_List {\r
+\r
+    public function init() {\r
+        parent::init();\r
+\r
+        $id = new Zend_Form_Element_Hidden('id');\r
+        $id->setLabel('#');\r
+        $this->addElement($id);\r
+\r
+        $name = new Zend_Form_Element_Text('name');\r
+        $name->setLabel(__('Nom'));\r
+        $this->addElement($name);\r
+\r
+        $this->setListTitle(__('Tags'))\r
+                ->setNewTitle(__('Créer un tag'))\r
+                ->setEditTitle(sprintf(__("Edition du tag « %s »"), '$name'))\r
+                ->setBaseTable('tags')\r
+                ->setIdColumn('id')\r
+                ->setTitleColumn('name');\r
+    }\r
+\r
+    public function saveInDatabase() {\r
+        $id = parent::saveInDatabase();\r
+        /*\r
+          $db = Bootstrap::getInstance()->getDb();\r
+          $us = $this->getElement('users');\r
+          if (!is_null($us)) {\r
+          $e = explode(',', $us->getValue());\r
+          // Delete all settings of this user\r
+          $db->delete('cubeit_group_content', $db->quoteInto('group_id = ?', $id));\r
+          $binds = array();\r
+          foreach ($e as $user) {\r
+          $binds[] = array('group_id' => $id, 'user_id' => $user);\r
+          }\r
+\r
+          $db->insertMultiple('cubeit_group_content', $binds);\r
+          } */\r
+        return $id;\r
+    }\r
+\r
+    public function setValuesWithId($id) {\r
+        parent::setValuesWithId($id);\r
+        /* $db = Bootstrap::getInstance()->getDb();\r
+          $all = $db->select()\r
+          ->from('cubeit_group_content')\r
+          ->where('group_id = ?', $id)\r
+          ->query()\r
+          ->fetchAll(Zend_Db::FETCH_ASSOC);\r
+          $users = array();\r
+          foreach ($all as $r) {\r
+          $users[] = $r['user_id'];\r
+          }\r
+          $this->setDefault('users', implode(',', $users)); */\r
+    }\r
+\r
+}\r
+\r
+?>\r
index bdfdc15f23881287ea869fc110d5ee7e580d15ef..7b60b99f88387edbd42567bf9a0d11d7a65cb4c0 100644 (file)
@@ -8,4 +8,4 @@ class Cubedesigners_Form_User extends CubeIT_Form_User {
 
 }
 
-?>
+?>
\ No newline at end of file
diff --git a/framework/application/views/helpers/CasestudiesList.php b/framework/application/views/helpers/CasestudiesList.php
new file mode 100644 (file)
index 0000000..35025e4
--- /dev/null
@@ -0,0 +1,42 @@
+<?php\r
+\r
+class Cubedesigners_View_Helper_CasestudiesList extends Zend_View_Helper_Abstract {\r
+\r
+    public function CasestudiesList($studies) {\r
+\r
+        $count = 1;\r
+\r
+        $res = '';\r
+\r
+        foreach ($studies as $studie) {\r
+\r
+            $addSpacer = false;\r
+\r
+            if ($count == 3) {\r
+                $count = 1;\r
+                $addClass = '';\r
+                //   $addSpacer = true;\r
+            } else {\r
+                $addClass = ' blocmargin';\r
+                $count++;\r
+            }\r
+\r
+            $image = $this->view->imageProcess($studie['visuel'], $studie['titre'], 300, 225);\r
+\r
+            $res .= '<div class="bloc' . $addClass . '">';\r
+            $res .= '<div class="project-photo">' . $image . '</div>';\r
+            $res .= '<div class="project-title">' . $studie["titre"] . '</div>';\r
+            $res .= '<div class="project-description">' . $studie["description"] . '</div>';\r
+            $res .= '</div>';\r
+\r
+            // if ($addSpacer) {\r
+            //    $res .= '<div class="spacer"></div>';\r
+            // }\r
+        }\r
+\r
+        return $res;\r
+    }\r
+\r
+}\r
+\r
+?>\r
diff --git a/framework/application/views/helpers/CasestudiesTagsList.php b/framework/application/views/helpers/CasestudiesTagsList.php
new file mode 100644 (file)
index 0000000..1a19307
--- /dev/null
@@ -0,0 +1,40 @@
+<?php\r
+\r
+class Cubedesigners_View_Helper_CasestudiesTagsList extends Zend_View_Helper_Abstract {\r
+\r
+    public function CasestudiesTagsList($studies) {\r
+\r
+        $tagslist = Array();\r
+\r
+        foreach ($studies as $studie) {\r
+            $temp = explode(',', $studie["tags"]);\r
+\r
+            for ($i = 0; $i < count($temp); $i++) {\r
+                if (!in_array($temp[$i], $tagslist)) {\r
+                    array_push($tagslist, $temp[$i]);\r
+                }\r
+            }\r
+        }\r
+\r
+        $db = Zend_Db_Table::getDefaultAdapter();\r
+        $s = $db->select()->from('tags')\r
+                ->order('name ASC');\r
+        $q = $s->query();\r
+\r
+        $res = '<ul class="taglist">';\r
+        $res .= '<li class="tag active" data-id="0">' . __('TOUT VOIR') . '</li>';\r
+\r
+        while ($r = $q->fetch()) {\r
+\r
+            if (in_array($r->id, $tagslist)) {\r
+                $res .= '<li class="tag" data-id="' . $r->id . '">' . $r->name . '</li>';\r
+            }\r
+        }\r
+\r
+        $res.='</ul>';\r
+        return $res;\r
+    }\r
+\r
+}\r
+\r
+?>\r
index d483aa806c44458594f68826a2a67b0ded7beac4..5725c9d5590453187c4373465dabc6bbc4cadb18 100644 (file)
@@ -2,7 +2,7 @@
 $this->headLink()->appendStylesheet('/less/footer.less');\r
 \r
 $mentions_page = $this->navigation()->getContainer()->findOneById($this->localeDefault() . '/7');\r
-fb($mentions_page);\r
+//fb($mentions_page);\r
 $mentions = '/';\r
 if (!is_null($mentions_page)) {\r
     $mentions = $mentions_page->getHref();\r
index ce70e86e0686f291a614cdd79e09571ac1337121..86d27b8ab0ee5b61c28c2adb6b78dfda2514e44c 100644 (file)
@@ -1,31 +1,17 @@
 <?php\r
 $this->headScript()->addScriptAndStyle('casestudies');\r
+\r
+fb($this->studies);\r
 ?>\r
 \r
 <div class="title"><?php echo $this->markupDotclear($this->titre); ?></div>\r
 \r
-<div id="casestudies-tagslist"><span class="tag">TOUT VOIR</span><span class="tag">Sites internet</span><span class="tag">Logotypes</span></div>\r
-\r
-<div id="casestudies-list">\r
-    <?php\r
-    $count = 1;\r
-    for ($i = 0; $i < 6; $i++) {\r
-\r
-        $addSpacer = false;\r
+<div id="casestudies-tagslist">\r
+    <?php echo $this->CasestudiesTagsList($this->studies); ?>\r
+</div>\r
 \r
-        if ($count == 3) {\r
-            $count = 1;\r
-            $addClass = '';\r
-            $addSpacer = true;\r
-        } else {\r
-            $addClass = ' blocmargin';\r
-            $count++;\r
-        }\r
-        echo '<div class="bloc' . $addClass . '"></div>';\r
 \r
-        if ($addSpacer)\r
-            echo '<div class="spacer"></div>';\r
-    }\r
-    ?>\r
+<div id="casestudies-list">\r
+    <?php echo $this->CasestudiesList($this->studies); ?>\r
 </div>\r
 \r
diff --git a/js/casestudies.js b/js/casestudies.js
new file mode 100644 (file)
index 0000000..2bce166
--- /dev/null
@@ -0,0 +1,48 @@
+TO_LOAD_ONCE[TO_LOAD_ONCE.length]='load_casestudies();';\r
+\r
+var showIds = new Array();\r
+\r
+function load_casestudies() {\r
+    \r
+       initTagsLink();\r
+}\r
+\r
+function initTagsLink() {\r
+    \r
+    $(".tag").click(function() {\r
+       \r
+        $(this).toggleClass('active');\r
+        \r
+        if( $(this).hasClass('active') ) {\r
+            showIds.push( $(this).attr("data-id") );\r
+        } else {\r
+            var index = $.inArray( $(this).attr("data-id"), showIds );\r
+            showIds.splice(index, 1);\r
+        }\r
+        \r
+        if( showIds.length > 0 ) {\r
+            $(".tag:first").removeClass('active');\r
+        }else{\r
+            $(".tag:first").addClass('active');\r
+        }\r
+        \r
+        displayStudies();\r
+        alert(showIds);\r
+    });\r
+    \r
+}\r
+\r
+function displayStudies() {\r
+    \r
+    if( showIds.length == 0 ) {\r
+        //$(".tag:first").toggleClass('active');\r
+    }\r
+    \r
+    $.ajax({\r
+               url             : '/ajax/displaystudies',\r
+               dataType        : 'text',\r
+                //data            : JSON.stringify(showIds)\r
+       });\r
+    \r
+}\r
+\r
index e747f79e8c3cab29689f572788be7fea6b822337..f9da4c9ffb65dfc9a2d3a6a50bb61420e25585ef 100644 (file)
@@ -5,22 +5,32 @@
     padding: 0 0 20px 0;
 }
 
-#casestudies-tagslist span {
+#casestudies-tagslist ul {
+    list-style: none;
+}
+
+#casestudies-tagslist li {
     font-size: 14px;
     color: #6f6f6f;
     padding: 3px;
     border-radius: 2px;
     background-color: #ededed;
-    margin:0 6px 0 0;
+    margin:0 6px 6px 0;
+    display: inline-block;
 }
 
-#casestudies-tagslist span:hover,
-#casestudies-tagslist span:active {
+#casestudies-tagslist li:hover,
+#casestudies-tagslist li:active {
     cursor: pointer;
     color: #fff;
     background-color: #84ae1e;
 }
 
+#casestudies-tagslist .active {
+    color: #fff;
+    background-color: #84ae1e;
+}
+
 #casestudies-list {
     min-width: 980px;
     max-width: 980px;
     overflow: hidden;
 }
 
-#casestudies-list .bloc {
+#casestudies-list .bloc {    
+    width:300px;
     float:left;
+}
+
+#casestudies-list .bloc .project-photo {
     width:300px;
     height:225px;
     background-color: #ccc;
+    margin:0 0 20px 0;
+}
+
+#casestudies-list .bloc .project-title {
+    font-size: 32px;
+}
+#casestudies-list .bloc .project-description {
+    font-size: 14px;
+    margin-bottom: 20px;
 }
 
 #casestudies-list .blocmargin {