/** * Append the date picker to the widget. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public static function addColorPicker(ManipulateWidgetEvent $event) { $model = $event->getModel(); if (!$model instanceof Model) { return; } /** @var Model $model */ $metaModel = $model->getItem()->getMetaModel(); $property = $event->getProperty()->getName(); if (!$metaModel->getAttribute($property) instanceof Color) { return; } $environment = $event->getEnvironment(); $widget = $event->getWidget(); $imageEvent = new GenerateHtmlEvent('pickcolor.gif', $environment->getTranslator('MSC.colorpicker'), 'style="vertical-align:top;cursor:pointer" id="moo_' . $property . '"'); $environment->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, $imageEvent); /** @noinspection PhpUndefinedFieldInspection */ $widget->wizard = $imageEvent->getHtml() . ' <script> new MooRainbow("moo_' . $property . '", { id:"ctrl_' . $property . '_0", startColor:((cl = $("ctrl_' . $property . '_0").value.hexToRgb(true)) ? cl : [255, 0, 0]), imgPath:"plugins/colorpicker/images/", onComplete: function(color) { $("ctrl_' . $property . '_0").value = color.hex.replace("#", ""); } }); </script>'; }
/** * Build the wizard string. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public function getWizard(ManipulateWidgetEvent $event) { if ($event->getModel()->getProviderName() !== $this->metaModel->getTableName() || $event->getProperty()->getName() !== $this->propertyName) { return; } $propName = $event->getProperty()->getName(); $model = $event->getModel(); $inputId = $propName; $translator = $event->getEnvironment()->getTranslator(); $this->addStylesheet('metamodelsattribute_pageid', 'system/modules/metamodelsattribute_pageid/html/style.css'); if (version_compare(VERSION, '3.1', '>=')) { $currentField = $model->getProperty($propName); /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pickpage.gif', $translator->translate('pagepicker', 'MSC'), 'style="vertical-align:top;cursor:pointer"')); $event->getWidget()->wizard = ' <a href="contao/page.php?do=' . \Input::get('do') . '&table=' . $this->metaModel->getTableName() . '&field=' . $inputId . '&value=' . $currentField . '" title="' . specialchars($translator->translate('pagepicker', 'MSC')) . '" onclick="Backend.getScrollOffset();Backend.openModalSelector({\'width\':765,\'title\':\'' . specialchars(str_replace("'", "\\'", $translator->translate('page.0', 'MOD'))) . '\',\'url\':this.href,\'id\':\'' . $inputId . '\',\'tag\':\'ctrl_' . $inputId . '\',\'insTagStr\':\'\',\'self\':this});' . 'return false">' . $imageEvent->getHtml() . '</a>'; //get the page model to get the current title and alias to set it to the category // $pageModel = \PageModel::findById($currentField); // $model->setProperty('name',$pageModel->title); // $model->setProperty('alias',$pageModel->alias); // $model->getItem()->save(); // var_dump(get_class_methods($event)); return; } else { throw new Exception("This Attribut requires Contao >= 3.1", 1); } }
/** * Get the modal page picker for property url. * * @param ManipulateWidgetEvent $event The event. * * @return void * * @SuppressWarnings(PHPMD.LongVariable) */ public function modalPagePickerForPropertyUrl(ManipulateWidgetEvent $event) { $environment = $event->getEnvironment(); $property = $event->getProperty(); if ($environment->getDataDefinition()->getName() !== 'orm_avisota_message_content' || $property->getName() !== 'url') { return; } $inputProvider = $environment->getInputProvider(); $entity = $event->getModel()->getEntity(); $translator = $environment->getTranslator(); $eventDispatcher = $environment->getEventDispatcher(); $generateImageHtmlEvent = new GenerateHtmlEvent('pickpage.gif', $translator->translate('pagepicker', 'MSC'), 'style="vertical-align:top; cursor:pointer;"'); $eventDispatcher->dispatch(ContaoEvents::IMAGE_GET_HTML, $generateImageHtmlEvent); $urlBuilder = new UrlBuilder(); $urlBuilder->setPath('contao/page.php')->setQueryParameter('do', $inputProvider->getParameter('do'))->setQueryParameter('table', $inputProvider->getParameter('table'))->setQueryParameter('field', $property->getName())->setQueryParameter('value', '')->setQueryParameter('switch', '1'); $event->getWidget()->wizard .= ' <a href="' . $urlBuilder->getUrl() . '" title="' . $translator->translate('pagepicker', 'MSC') . '" onclick="Backend.getScrollOffset();Backend.openModalSelector({\'width\':768,\'title\':\'' . str_replace("'", "\\'", $property->getLabel()) . '\',\'url\':this.href,\'id\':\'' . $property->getName() . '\',\'tag\':\'ctrl_' . $property->getName() . ($inputProvider->getParameter('act') === 'editAll' ? '_' . $entity->getId() : '') . '\',\'self\':this});return false">' . $generateImageHtmlEvent->getHtml() . '</a>'; }
/** * Build the wizard string. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public function getWizard(ManipulateWidgetEvent $event) { if ($event->getModel()->getProviderName() !== $this->metaModel->getTableName() || $event->getProperty()->getName() !== $this->propertyName) { return; } $propName = $event->getProperty()->getName(); $model = $event->getModel(); $inputId = $propName . (!$this->metaModel->getAttribute($this->propertyName)->get('trim_title') ? '_1' : ''); $translator = $event->getEnvironment()->getTranslator(); $this->addStylesheet('metamodelsattribute_url', 'system/modules/metamodelsattribute_url/html/style.css'); if (version_compare(VERSION, '3.1', '>=')) { $currentField = deserialize($model->getProperty($propName), true); /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pickpage.gif', $translator->translate('pagepicker', 'MSC'), 'style="vertical-align:top;cursor:pointer"')); $event->getWidget()->wizard = ' <a href="contao/page.php?do=' . \Input::get('do') . '&table=' . $this->metaModel->getTableName() . '&field=' . $inputId . '&value=' . str_replace(array('{{link_url::', '}}'), '', $currentField[1]) . '" title="' . specialchars($translator->translate('pagepicker', 'MSC')) . '" onclick="Backend.getScrollOffset();Backend.openModalSelector({\'width\':765,\'title\':\'' . specialchars(str_replace("'", "\\'", $translator->translate('page.0', 'MOD'))) . '\',\'url\':this.href,\'id\':\'' . $inputId . '\',\'tag\':\'ctrl_' . $inputId . '\',\'self\':this});' . 'return false">' . $imageEvent->getHtml() . '</a>'; return; } /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('pickpage.gif', $translator->translate('pagepicker', 'MSC'), 'style="vertical-align:top;cursor:pointer" onclick="Backend.pickPage(\'ctrl_' . $inputId . '\')"')); $event->getWidget()->wizard = ' ' . $imageEvent->getHtml(); }
/** * Build the wizard string. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public function getWizardForTlClass(ManipulateWidgetEvent $event) { if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_dcasetting' || $event->getProperty()->getName() !== 'tl_class') { return; } $url = 'system/modules/metamodels/popup.php?tbl=%s&fld=%s&inputName=ctrl_%s&id=%s&item=PALETTE_STYLE_PICKER'; if (version_compare(VERSION, '3.0', '<')) { $link = ' <a href="' . $url . '" data-lightbox="files 768 80%%">%s</a>'; } else { $link = ' <a href="javascript:Backend.openModalIframe({url:\'' . $url . '\',width:790,title:\'Stylepicker\'});">%s</a>'; } /** @var GenerateHtmlEvent $imageEvent */ $imageEvent = $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, new GenerateHtmlEvent('system/modules/metamodels/assets/images/icons/dca_wizard.png', $event->getEnvironment()->getTranslator()->translate('stylepicker', 'tl_metamodel_dcasetting'), 'style="vertical-align:top;"')); $event->getWidget()->wizard = sprintf($link, $event->getEnvironment()->getDataDefinition()->getName(), $event->getProperty()->getName(), $event->getProperty()->getName(), $event->getModel()->getId(), $imageEvent->getHtml()); }
/** * Set the the value select to multiple. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public function setValueOptionsMultiple(ManipulateWidgetEvent $event) { if (!($event->getEnvironment()->getDataDefinition()->getName() == 'tl_metamodel_dcasetting_condition' && $event->getProperty()->getName() == 'value' && $event->getModel()->getProperty('type') == 'conditionpropertycontainanyof')) { return; } $metaModel = $this->getMetaModel($event->getEnvironment()); $attribute = $metaModel->getAttributeById($event->getModel()->getProperty('attr_id')); if (!($attribute && $attribute->get('type') == 'tags')) { return; } $event->getWidget()->multiple = true; }
/** * Calculate the wizard. * * @param ManipulateWidgetEvent $event The event. * * @return void */ public function getPanelLayoutWizard(ManipulateWidgetEvent $event) { if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_dca' || $event->getProperty()->getName() !== 'panelLayout') { return; } $url = 'system/modules/metamodels/popup.php?' . 'tbl=%1$s' . '&fld=%2$s' . '&inputName=ctrl_%3$s' . '&id=%4$s' . '&item=PALETTE_PANEL_PICKER'; $link = ' <a href="' . $url . '" onclick="Backend.getScrollOffset();Backend.openModalIframe({' . '\'width\':765,' . '\'title\':\'%6$s\',' . '\'url\':this.href,' . '\'id\':\'%4$s\'' . '});return false">%5$s</a>'; $imageEvent = new GenerateHtmlEvent('system/modules/metamodels/assets/images/icons/panel_layout.png', $event->getEnvironment()->getTranslator()->translate('panelpicker', 'tl_metamodel_dca'), 'style="vertical-align:top;"'); $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, $imageEvent); $event->getWidget()->wizard = sprintf($link, $event->getEnvironment()->getDataDefinition()->getName(), $event->getProperty()->getName(), $event->getProperty()->getName(), $event->getModel()->getId(), $imageEvent->getHtml(), addslashes($event->getEnvironment()->getTranslator()->translate('panelpicker', 'tl_metamodel_dca'))); }