/** * Render a given model. * * @param ModelInterface $objModel The model to render. * * @param string $strToggleID The id of the toggler. * * @return string */ protected function parseModel($objModel, $strToggleID) { $objModel->setMeta(DCGE::MODEL_BUTTONS, $this->generateButtons($objModel)); $objModel->setMeta(DCGE::MODEL_LABEL_VALUE, $this->formatModel($objModel)); $objTemplate = $this->getTemplate('dcbe_general_treeview_entry'); if ($objModel->getMeta(DCGE::TREE_VIEW_IS_OPEN)) { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('collapseNode', 'MSC'); } else { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('expandNode', 'MSC'); } $toggleScript = sprintf('Backend.getScrollOffset(); return BackendGeneral.loadSubTree(this, ' . '{\'toggler\':\'%s\', \'id\':\'%s\', \'providerName\':\'%s\', \'level\':\'%s\', \'mode\':\'%s\'});', $strToggleID, $objModel->getId(), $objModel->getProviderName(), $objModel->getMeta('dc_gen_tv_level'), 6); $toggleUrlEvent = new AddToUrlEvent('ptg=' . $objModel->getId() . '&provider=' . $objModel->getProviderName()); $this->getEnvironment()->getEventPropagator()->propagate(ContaoEvents::BACKEND_ADD_TO_URL, $toggleUrlEvent); $this->addToTemplate('environment', $this->getEnvironment(), $objTemplate)->addToTemplate('objModel', $objModel, $objTemplate)->addToTemplate('intMode', 6, $objTemplate)->addToTemplate('strToggleID', $strToggleID, $objTemplate)->addToTemplate('toggleUrl', $toggleUrlEvent->getUrl(), $objTemplate)->addToTemplate('toggleTitle', $toggleTitle, $objTemplate)->addToTemplate('toggleScript', $toggleScript, $objTemplate); return $objTemplate->parse(); }
/** * Check the state of a model and set the metadata accordingly. * * @param ModelInterface $model The model of which the state shall be checked of. * * @param int $level The tree level the model is contained within. * * @return void */ private function determineModelState(ModelInterface $model, $level) { $model->setMeta(DCGE::TREE_VIEW_LEVEL, $level); $model->setMeta($model::SHOW_CHILDREN, $this->states->isModelOpen($model->getProviderName(), $model->getId())); }
/** * Render a given model. * * @param ModelInterface $objModel The model to render. * * @param string $strToggleID The id of the toggler. * * @return string */ protected function parseModel($objModel, $strToggleID) { $event = new FormatModelLabelEvent($this->environment, $objModel); $this->environment->getEventDispatcher()->dispatch(DcGeneralEvents::FORMAT_MODEL_LABEL, $event); $objModel->setMeta($objModel::LABEL_VALUE, $event->getLabel()); $objTemplate = $this->getTemplate('dcbe_general_treeview_entry'); if ($objModel->getMeta($objModel::SHOW_CHILDREN)) { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('collapseNode', 'MSC'); } else { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('expandNode', 'MSC'); } $toggleScript = sprintf('Backend.getScrollOffset(); return BackendGeneral.loadSubTree(this, ' . '{\'toggler\':\'%s\', \'id\':\'%s\', \'providerName\':\'%s\', \'level\':\'%s\', \'mode\':\'%s\'});', $strToggleID, $objModel->getId(), $objModel->getProviderName(), $objModel->getMeta('dc_gen_tv_level'), 6); $toggleUrlEvent = new AddToUrlEvent('ptg=' . $objModel->getId() . '&provider=' . $objModel->getProviderName()); $this->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::BACKEND_ADD_TO_URL, $toggleUrlEvent); $this->addToTemplate('environment', $this->getEnvironment(), $objTemplate)->addToTemplate('objModel', $objModel, $objTemplate)->addToTemplate('select', $this->isSelectModeActive(), $objTemplate)->addToTemplate('intMode', 6, $objTemplate)->addToTemplate('strToggleID', $strToggleID, $objTemplate)->addToTemplate('toggleUrl', $toggleUrlEvent->getUrl(), $objTemplate)->addToTemplate('toggleTitle', $toggleTitle, $objTemplate)->addToTemplate('toggleScript', $toggleScript, $objTemplate); return $objTemplate->parse(); }
/** * Render a given model. * * @param ModelInterface $objModel The model to render. * * @param string $strToggleID The id of the toggler. * * @return string */ protected function parseModel($objModel, $strToggleID) { $objModel->setMeta($objModel::LABEL_VALUE, $this->formatModel($objModel)); if ($objModel->getMeta($objModel::SHOW_CHILDREN)) { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('collapseNode', 'MSC'); } else { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('expandNode', 'MSC'); } $toggleScript = sprintf('Backend.getScrollOffset(); return BackendGeneral.loadSubTree(this, ' . '{\'toggler\':\'%s\', \'id\':\'%s\', \'providerName\':\'%s\', \'level\':\'%s\'});', $strToggleID, $objModel->getId(), $objModel->getProviderName(), $objModel->getMeta('dc_gen_tv_level')); $toggleUrlEvent = new AddToUrlEvent('ptg=' . $objModel->getId() . '&provider=' . $objModel->getProviderName()); $this->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::BACKEND_ADD_TO_URL, $toggleUrlEvent); $template = new ContaoBackendViewTemplate('widget_treepicker_entry'); $template->setTranslator($this->getEnvironment()->getTranslator())->set('id', $this->strId)->set('name', $this->strName)->set('fieldType', $this->fieldType)->set('environment', $this->getEnvironment())->set('objModel', $objModel)->set('strToggleID', $strToggleID)->set('toggleUrl', $toggleUrlEvent->getUrl())->set('toggleTitle', $toggleTitle)->set('toggleScript', $toggleScript)->set('active', $this->optionChecked($objModel->getProperty($this->idProperty), $this->value))->set('idProperty', $this->idProperty); $level = $objModel->getMeta(DCGE::TREE_VIEW_LEVEL); if ($this->minLevel > 0 && $level < $this->minLevel - 1) { $template->set('fieldType', 'none'); } if ($this->maxLevel > 0 && $level > $this->maxLevel - 1) { $template->set('fieldType', 'none'); } return $template->parse(); }
/** * Render a given model. * * @param ModelInterface $objModel The model to render. * * @param string $strToggleID The id of the toggler. * * @return string */ protected function parseModel($objModel, $strToggleID) { $objModel->setMeta($objModel::LABEL_VALUE, $this->formatModel($objModel)); $objTemplate = TL_MODE === 'BE' ? new BackendTemplate('widget_treepicker_entry') : new FrontendTemplate('widget_treepicker_entry'); if ($objModel->getMeta(DCGE::TREE_VIEW_IS_OPEN)) { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('collapseNode', 'MSC'); } else { $toggleTitle = $this->getEnvironment()->getTranslator()->translate('expandNode', 'MSC'); } $toggleScript = sprintf('Backend.getScrollOffset(); return BackendGeneral.loadSubTree(this, ' . '{\'toggler\':\'%s\', \'id\':\'%s\', \'providerName\':\'%s\', \'level\':\'%s\'});', $strToggleID, $objModel->getId(), $objModel->getProviderName(), $objModel->getMeta('dc_gen_tv_level')); $toggleUrlEvent = new AddToUrlEvent('ptg=' . $objModel->getId() . '&provider=' . $objModel->getProviderName()); $this->getEnvironment()->getEventPropagator()->propagate(ContaoEvents::BACKEND_ADD_TO_URL, $toggleUrlEvent); $objTemplate->id = $this->strId; $objTemplate->name = $this->strName; $objTemplate->fieldType = $this->fieldType; $objTemplate->environment = $this->getEnvironment(); $objTemplate->objModel = $objModel; $objTemplate->strToggleID = $strToggleID; $objTemplate->toggleUrl = $toggleUrlEvent->getUrl(); $objTemplate->toggleTitle = $toggleTitle; $objTemplate->toggleScript = $toggleScript; $objTemplate->active = $this->optionChecked($objModel->getId(), $this->value); return $objTemplate->parse(); }