Exemplo n.º 1
0
 public function __construct(PageModuleWrapper $moduleWrapper)
 {
     $this->moduleWrapper = $moduleWrapper;
     $this->enabled = $moduleWrapper->getEnabled();
     $this->template = $moduleWrapper->getTemplate();
     $this->target = $moduleWrapper->getTarget();
 }
Exemplo n.º 2
0
 /**
  * Get "copy code" for module.
  *
  * @param PageModuleWrapper $module
  * @return array
  */
 public static function getModuleCode(PageModuleWrapper $module)
 {
     $datas = array();
     $moduleDatas = ModuleDataQuery::create()->filterByPageModule($module->getPageModule())->filterByPageRevision($module->getPageRevision())->orderByLangcode()->find();
     foreach ($moduleDatas as $moduleData) {
         $datas[] = self::getModuleDataCode($moduleData);
     }
     return array("is_inherited" => $module->isInherited(), "uid" => $module->getPageModule()->getUid(), "name" => $module->getName(), "module_class" => $module->getClassName(), "inherit" => true, "target" => $module->getTarget(), "content_visibility" => $module->getPageModule()->getContentVisibility(), "search_visibility" => $module->getPageModule()->getSearchVisibility(), "datas" => $datas);
 }
Exemplo n.º 3
0
 /**
  * Insert module and return generated content.
  *
  * @param PageModuleWrapper $pageModuleWrapper
  * @return string
  */
 protected function insertModule(PageModuleWrapper $pageModuleWrapper)
 {
     $this->app->logger->debug(($pageModuleWrapper->getEnabled() ? 'Inserting' : 'Skipping') . ' module "' . $pageModuleWrapper->getName() . '" of type "' . $pageModuleWrapper->getClassName() . '" with target "' . $pageModuleWrapper->getTarget() . '"');
     /** @var PreModuleEvent $event */
     $event = $this->app->dispatcher->dispatch(GeneratorEvents::PRE_MODULE, new PreModuleEvent($pageModuleWrapper));
     if ($event->getContent() === null) {
         // TODO: how do we handle $event->isEnabled() ?
         /** @var \Curry\Module\AbstractModule $module */
         $module = $pageModuleWrapper->createObject();
         $template = null;
         if ($event->getTemplate() !== null) {
             $this->app->twig->loadTemplate($event->getTemplate());
         } else {
             if ($module->getDefaultTemplate()) {
                 $template = $this->app->loadTemplateString($module->getDefaultTemplate());
             }
         }
         if ($template && $template->getEnvironment()) {
             $twig = $template->getEnvironment();
             $twig->addGlobal('module', array('Id' => $pageModuleWrapper->getPageModuleId(), 'ClassName' => $pageModuleWrapper->getClassName(), 'Name' => $pageModuleWrapper->getName(), 'ModuleDataId' => $pageModuleWrapper->getModuleDataId(), 'Target' => $pageModuleWrapper->getTarget()));
         }
         $content = (string) $module->showFront($template);
     } else {
         $content = $event->getContent();
     }
     /** @var PostModuleEvent $postEvent */
     $postEvent = $this->app->dispatcher->dispatch(GeneratorEvents::POST_MODULE, new PostModuleEvent($pageModuleWrapper, $content, $event->getExtras()));
     return $postEvent->getContent();
 }
Exemplo n.º 4
0
 /**
  * Module properties form.
  *
  * @param PageModuleWrapper $pageModuleWrapper
  * @return Curry_Form
  */
 public static function getModulePropertiesForm(PageModuleWrapper $pageModuleWrapper)
 {
     $form = new Curry_Form(array('action' => url('', $_GET), 'method' => 'post', 'elements' => array('pid_moduleproperties' => array('hidden'), 'name' => array('text', array('label' => 'Name', 'required' => true, 'value' => $pageModuleWrapper->getPageModule()->getName(), 'description' => 'The name of this module. If you have many modules of the same type on the same page this will help you to seperate them from each other.')), 'target' => array('text', array('label' => 'Target', 'description' => 'Specifies what variable in the page-template to attach this module to.', 'required' => true, 'value' => $pageModuleWrapper->getTarget())), 'content_visibility' => array('select', array('label' => 'Content Visibility', 'description' => 'Set the visibility of this module in the Content backend module.', 'multiOptions' => PageModulePeer::$contentVisiblityOptions, 'value' => $pageModuleWrapper->getPageModule()->getContentVisibility(), 'required' => true)), 'search_visibility' => array('checkbox', array('label' => 'Search Visibility', 'description' => 'If this module should be rendered when indexing pages.', 'value' => $pageModuleWrapper->getPageModule()->getSearchVisibility(), 'required' => true)))));
     $showSelect = array("true" => "Yes", "false" => "No");
     $defaultTemplate = $pageModuleWrapper->isInherited() ? "[ Inherit ]" : "[ None ]";
     $template = $pageModuleWrapper->getModuleData()->getTemplate();
     $templatesSelect = Curry_Backend_Template::getTemplateSelect();
     if ($template && !array_key_exists($template, $templatesSelect)) {
         $templatesSelect[$template] = $template . ' <MISSING!>';
     }
     $form->addSubForm(new Curry_Form_SubForm(array('legend' => $pageModuleWrapper->isInherited() ? 'Override inherited settings' : 'Inherited settings', 'elements' => array('template' => $pageModuleWrapper->hasTemplate() ? array('select', array('label' => 'Template', 'multiOptions' => array(null => $defaultTemplate) + $templatesSelect, 'value' => $template)) : array('select', array('label' => 'Template', 'multiOptions' => array("None"), 'disabled' => 'disabled')), 'show' => array('select', array('label' => 'Show', 'multiOptions' => $pageModuleWrapper->isInherited() ? array('' => "[ Inherit ]") + $showSelect : $showSelect, 'value' => self::bool2str($pageModuleWrapper->getModuleData()->getEnabled())))))), 'local');
     $form->addElement('submit', 'save', array('label' => 'Save'));
     return $form;
 }