public function addRules(CreateManipulatorEvent $event) { if (($rules = RuleModel::findPublishedByActiveTheme()) === null) { return; } // No need to check for null values again as already done by Rule::findPublishedByActiveTheme() global $objPage; $layout = \LayoutModel::findByPk($objPage->layout); // Do not modify anything if the template name is not the one of the current page layout // e.g. when a developer calls Template::output() manually if ($layout->template !== $event->getTemplateName()) { return; } $factory = $event->getFactory(); /** * @var $ruleModel RuleModel */ foreach ($rules as $ruleModel) { $query = new XPathQuery($ruleModel->getXPathExpr()); $rule = new AttributeRule($query, 'class'); $rule->addFilter(new CssClassFilter($ruleModel->getDirectives())); $rule->addFilter(new TrimWhitespacesFilter()); $factory->addRule($rule); } }
/** * Generate the module * * @return string */ public function run() { $template = new \BackendTemplate('be_css_class_replacer_update'); $template->isActive = $this->isActive(); $template->action = ampersand(\Environment::get('request')); $template->message = \Message::generate(); $template->headline = specialchars($GLOBALS['TL_LANG']['tl_maintenance']['css-class-replacer-headline']); $template->description = specialchars($GLOBALS['TL_LANG']['tl_maintenance']['css-class-replacer-description']); $template->submit = specialchars($GLOBALS['TL_LANG']['tl_maintenance']['css-class-replacer-submit']); if ($this->isActive()) { $rules = RuleModel::findAll(); $helper = new BackendHelper(); $helper->updateCacheableValues($rules); \Message::addConfirmation(sprintf($GLOBALS['TL_LANG']['tl_maintenance']['css-class-replacer-message'], $rules->count())); \Controller::reload(); } return $template->parse(); }
/** * Called by the onsubmit_callback of tl_css_class_replacer * Updates data on save * * @param \DataContainer */ public function onSubmitCallback(\DataContainer $dc) { $rule = RuleModel::findByPk($dc->id); $rules = new Collection(array($rule), RuleModel::getTable()); $this->updateCacheableValues($rules); }