From a2fffc00c2b39cdced52a0b0a06b1153a61c7f43 Mon Sep 17 00:00:00 2001 From: "stephen@cubedesigners.com" Date: Wed, 22 Jun 2016 16:41:17 +0000 Subject: [PATCH] CMS pages tag list element for footer menus WIP #481 @2 --- .../forms/CMS/Element/PagesTagList.php | 66 +++++++++++++++++++ framework/application/forms/Settings.php | 5 ++ less/102-footer.less | 1 + 3 files changed, 72 insertions(+) create mode 100644 framework/application/forms/CMS/Element/PagesTagList.php diff --git a/framework/application/forms/CMS/Element/PagesTagList.php b/framework/application/forms/CMS/Element/PagesTagList.php new file mode 100644 index 0000000..c8f715b --- /dev/null +++ b/framework/application/forms/CMS/Element/PagesTagList.php @@ -0,0 +1,66 @@ +setLabel(''); + $this->setAttrib('minChars', 1); + $this->setAttrib('tagsPosition', "after"); + $this->setAttrib('searchAnywhere', 1); // Search anywhere in the word :) + //$this->setAttrib('manageurl', '/admin/ajaxpopup/openselectlist/Fluidbook_Form_CMS_Sub_Pages/' . $this->getName()); + $this->setAttrib('displayListManagement', 0); + $this->_setOptions(); + } + + protected function _setOptions() { + + $bootstrap = Bootstrap::getInstance(); + + /* @var $container Zend_Navigation_Page */ + $nav = $bootstrap->getNavigation(); + + $iteratorMode = RecursiveIteratorIterator::SELF_FIRST; + $multilang = $bootstrap->isMultilang(); + + if ($multilang) { + $container = $nav->findOneByLabel($bootstrap->getDefaultLocale()); + } else { + $container = $nav; + } + + $it = new RecursiveIteratorIterator($container, $iteratorMode); + + $options = array(); + + foreach ($it as $p) { + /* @var $p CubeIT_Navigation_Page */ + $id = $p->getId(); + $e = explode('/', $id); + if ($multilang) { + array_shift($e); + } + if ($e[0] <= 0) { + continue; + } + $id = implode('/', $e); + + $title = $p->getTitle(); + if ($title == '') { + $title = $p->getLabel(); + } + $level = $it->getDepth(); + + //$options[$id] = str_repeat('---- ', $level) . $id . ' - ' . $title; + $options[$id] = "[$id] - $title"; + } + + fb($options, 'page options'); + + $this->setMultiOptions($options); + } + + protected function _refreshOptions() { + + } +} \ No newline at end of file diff --git a/framework/application/forms/Settings.php b/framework/application/forms/Settings.php index fc72ab4..36fc211 100644 --- a/framework/application/forms/Settings.php +++ b/framework/application/forms/Settings.php @@ -23,6 +23,11 @@ class Fluidbook_Form_Settings extends CubeIT_Form_Settings { $adresse->setLabel('Adresse'); $this->addSubFormLocalized($adresse, 'address'); + $footer_menu_main = new Fluidbook_Form_CMS_Element_PagesTagList('footer_menu_main'); + $footer_menu_main->setLabel('Pages for menu "Plan du site"'); + $footer_menu_main->setAttrib('placeholder', 'Tapez une page'); + $this->addElement($footer_menu_main); + $footer = new CubeIT_Form_Element_Markitup('footer'); $footer->setLabel('Footer'); $footer->setAttrib('rows', 6); diff --git a/less/102-footer.less b/less/102-footer.less index 947c828..90aecf2 100644 --- a/less/102-footer.less +++ b/less/102-footer.less @@ -20,4 +20,5 @@ footer.legal { background-color: @color-footer-bg-secondary; color: #5c6268; padding: 40px 85px; + font-size: 14px; } \ No newline at end of file -- 2.39.5