\r
$title = new Zend_Form_Element_Text('name');\r
$title->setLabel('Nom');\r
- $this->addElementLocalized($title,false);\r
+ $this->addElementLocalized($title, false);\r
+\r
+ $sortorder = new CubeIT_Form_Element_Int('sortorder');\r
+ $sortorder->setLabel('Ordre');\r
+ $this->addElement($sortorder);\r
\r
$this->setListTitle('Exemples')\r
->setNewTitle('Créer une catégorie')\r
->setEditTitle('Edition de la catégory « $name »')\r
->setModel('Fluidbook_Model_Reference_Category')\r
- ->setTitleColumn("name");\r
+ ->setTitleColumn("name")\r
+ ->setAdditionnalColumns(array('sortorder'));\r
}\r
}
\ No newline at end of file
->setEditTitle('Edition de l\'exemple « $title »')\r
->setModel('Fluidbook_Model_Reference')\r
->setTitleColumn("title")\r
- ->setAdditionnalColumns(array('fluidbook_id', 'featured'))\r
+ ->setAdditionnalColumns(array('fluidbook_id', 'featured','date'))\r
->setSearchColumns(array('text', 'fluidbook_id'));\r
}\r
-\r
-\r
}
\ No newline at end of file
protected $featured;\r
protected $categories;\r
\r
+ protected $_types = array('categories' => 'json', 'title' => 'json', 'text' => 'json', 'image' => 'json');\r
+\r
public static function getSchema($schema) {\r
$table = parent::getSchema($schema);\r
$table->addColumn('title', 'text');\r
$table->addColumn('categories', 'string', array('length' => 64));\r
return $table;\r
}\r
+\r
+ public function getUrl() {\r
+ $res = parent::getUrl();\r
+ if (CubeIT_Util_Json::isJson($res)) {\r
+ $res = CubeIT_Util_Json::decode($res);\r
+ }\r
+ if (is_string($res)) {\r
+ return $res;\r
+ }\r
+ if (!$res->en) {\r
+ $res->en = $res->fr;\r
+ }\r
+ return $res;\r
+ }\r
}
\ No newline at end of file
protected static $_table = 'exemples_categories';\r
\r
protected $name;\r
+ protected $sortorder;\r
\r
public static function getSchema($schema) {\r
$table = parent::getSchema($schema);\r
$table->addColumn('name', 'text');\r
+ $table->addColumn('sortorder', 'integer');\r
return $table;\r
}\r
}
\ No newline at end of file
--- /dev/null
+<?php\r
+\r
+class Fluidbook_View_Helper_Exemples extends CubeIT_View_Helper_Abstract {\r
+ /**\r
+ * @return string\r
+ */\r
+ public function exemples($category) {\r
+\r
+ $exemples = Fluidbook_Model_Reference::factory()->order('date', 'DESC')->find();\r
+\r
+ $max_featured = 2;\r
+ $normal_per_featured = 4;\r
+ $max_normal = $max_featured * $normal_per_featured;\r
+\r
+ $featured = array();\r
+ $normal = array();\r
+ foreach ($exemples as $id => $exemple) {\r
+ if (!in_array($category, $exemple->getCategories())) {\r
+ continue;\r
+ }\r
+\r
+ if ($exemple->getFeatured()) {\r
+ $featured[] = $id;\r
+ } else {\r
+ $normal[] = $id;\r
+ }\r
+ }\r
+\r
+\r
+ $nb_featured = count($featured);\r
+ if ($nb_featured < $max_featured) {\r
+ for ($i = $nb_featured; $i < $max_featured; $i++) {\r
+ $featured[] = array_shift($normal);\r
+ }\r
+ }\r
+\r
+ $featured = array_slice($featured, 0, $max_featured);\r
+ $normal = array_slice($normal, 0, $max_normal);\r
+\r
+\r
+ $res = '';\r
+ for ($i = 0; $i < $max_featured; $i++) {\r
+ $res .= $this->_publication($exemples[$featured[$i]], true);\r
+ for ($j = 0; $j < $normal_per_featured; $j++) {\r
+ $k = ($i * $normal_per_featured) + $j;\r
+ $res .= $this->_publication($exemples[$normal[$k]], false);\r
+ }\r
+ }\r
+\r
+ return $this->htmlElement($res, 'section', array('class' => "exemples"));\r
+ }\r
+\r
+ /**\r
+ * @param $f Fluidbook_Model_Reference\r
+ * @param bool $featured\r
+ */\r
+ protected function _publication($f, $featured = false) {\r
+ $f = $f->unserialize();\r
+\r
+ $res = $this->htmlElement($f->getTitle(), 'h3');\r
+ if ($featured) {\r
+ $res .= $this->htmlElement($f->getText(), 'p');\r
+ }\r
+ $res .= $this->htmlElement(__('Voir le Fluidbook'), 'button', array('type' => 'button'));\r
+ $attrs = array();\r
+ if ($featured) {\r
+ $attrs['class'] = 'featured';\r
+ }\r
+\r
+ return $this->link($res, $f->getUrl(), $attrs);\r
+ }\r
+}
\ No newline at end of file
<?php\r
-/**\r
- * Created by IntelliJ IDEA.\r
- * User: Vincent\r
- * Date: 22/06/2016\r
- * Time: 19:26\r
- */
\ No newline at end of file
+\r
+echo $this->exemples(1);
\ No newline at end of file