/** * Get special labels. * * @param PropertyInterface $propInfo The property for which the X label shall be generated. * * @return string */ protected function getXLabel($propInfo) { $strXLabel = ''; $environment = $this->getEnvironment(); $defName = $environment->getDataDefinition()->getName(); $translator = $environment->getTranslator(); // Toggle line wrap (textarea). if ($propInfo->getWidgetType() === 'textarea' && !array_key_exists('rte', $propInfo->getExtra())) { $event = new GenerateHtmlEvent('wrap.gif', $translator->translate('wordWrap', 'MSC'), sprintf('title="%s" class="toggleWrap" onclick="Backend.toggleWrap(\'ctrl_%s\');"', specialchars($translator->translate('wordWrap', 'MSC')), $propInfo->getName())); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $event); $strXLabel .= ' ' . $event->getHtml(); } // Add the help wizard. if ($propInfo->getExtra() && array_key_exists('helpwizard', $propInfo->getExtra())) { $event = new GenerateHtmlEvent('about.gif', $translator->translate('helpWizard', 'MSC'), 'style="vertical-align:text-bottom;"'); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $event); $strXLabel .= sprintf(' <a href="contao/help.php?table=%s&field=%s" title="%s" onclick="Backend.openWindow(this, 600, 500); return false;">%s</a>', $defName, $propInfo->getName(), specialchars($translator->translate('helpWizard', 'MSC')), $event->getHtml()); } // Add the popup file manager. if ($propInfo->getWidgetType() === 'fileTree') { // In Contao 3 it is always a file picker - no need for the button. if (version_compare(VERSION, '3.0', '<')) { $event = new GenerateHtmlEvent('filemanager.gif', $translator->translate('fileManager', 'MSC'), 'style="vertical-align:text-bottom;"'); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $event); $strXLabel .= sprintf(' <a href="contao/files.php" title="%s" onclick="Backend.getScrollOffset(); Backend.openWindow(this, 750, 500); return false;">%s</a>', specialchars($translator->translate('fileManager', 'MSC')), $event->getHtml()); } } elseif ($propInfo->getWidgetType() === 'tableWizard') { $urlEvent = new AddToUrlEvent('key=table'); $importTableEvent = new GenerateHtmlEvent('tablewizard.gif', $translator->translate('importTable.0', $defName), 'style="vertical-align:text-bottom;"'); $shrinkEvent = new GenerateHtmlEvent('demagnify.gif', $translator->translate('shrink.0', $defName), sprintf('title="%s" style="vertical-align:text-bottom; cursor:pointer;" onclick="Backend.tableWizardResize(0.9);"', specialchars($translator->translate('shrink.1', $defName)))); $expandEvent = new GenerateHtmlEvent('magnify.gif', $translator->translate('expand.0', $defName), sprintf('title="%s" style="vertical-align:text-bottom; cursor:pointer;" onclick="Backend.tableWizardResize(1.1);"', specialchars($translator->translate('expand.1', $defName)))); $environment->getEventPropagator()->propagate(ContaoEvents::BACKEND_ADD_TO_URL, $urlEvent); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $importTableEvent); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $shrinkEvent); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $expandEvent); $strXLabel .= sprintf(' <a href="%s" title="%s" onclick="Backend.getScrollOffset();">%s</a> %s%s', ampersand($urlEvent->getUrl()), specialchars($translator->translate('importTable.1', $defName)), $importTableEvent->getHtml(), $shrinkEvent->getHtml(), $expandEvent->getHtml()); } elseif ($propInfo->getWidgetType() === 'listWizard') { $urlEvent = new AddToUrlEvent('key=list'); $importListEvent = new GenerateHtmlEvent('tablewizard.gif', $translator->translate('importList.0', $defName), 'style="vertical-align:text-bottom;"'); $environment->getEventPropagator()->propagate(ContaoEvents::BACKEND_ADD_TO_URL, $urlEvent); $environment->getEventPropagator()->propagate(ContaoEvents::IMAGE_GET_HTML, $importListEvent); $strXLabel .= sprintf(' <a href="%s" title="%s" onclick="Backend.getScrollOffset();">%s</a>', ampersand($urlEvent->getUrl()), specialchars($translator->translate('importList.1', $defName)), $importListEvent->getHtml()); } return $strXLabel; }
/** * Get special labels. * * @param PropertyInterface $propInfo The property for which the X label shall be generated. * * @return string */ protected function getXLabel($propInfo) { $xLabel = ''; $environment = $this->getEnvironment(); $dispatcher = $environment->getEventDispatcher(); $translator = $environment->getTranslator(); // Toggle line wrap (textarea). if ($propInfo->getWidgetType() === 'textarea' && !array_key_exists('rte', $propInfo->getExtra())) { $event = new GenerateHtmlEvent('wrap.gif', $translator->translate('wordWrap', 'MSC'), sprintf('title="%s" class="toggleWrap" onclick="Backend.toggleWrap(\'ctrl_%s\');"', specialchars($translator->translate('wordWrap', 'MSC')), $propInfo->getName())); $dispatcher->dispatch(ContaoEvents::IMAGE_GET_HTML, $event); $xLabel .= ' ' . $event->getHtml(); } $xLabel .= $this->getHelpWizard($propInfo); switch ($propInfo->getWidgetType()) { case 'tableWizard': $xLabel .= $this->getTableWizard(); break; case 'listWizard': $xLabel .= $this->getListWizard(); break; default: } return $xLabel; }
/** * Try to resolve the class name for the widget. * * @param PropertyInterface $property The property to get the widget class name for. * * @return string * * @SuppressWarnings(PHPMD.Superglobals) * @SuppressWarnings(PHPMD.CamelCaseVariableName) */ private function getWidgetClass(PropertyInterface $property) { if (!isset($GLOBALS['TL_FFL'][$property->getWidgetType()])) { return null; } $className = $GLOBALS['TL_FFL'][$property->getWidgetType()]; if (!class_exists($className)) { return null; } return $className; }