コード例 #1
0
    /**
     * 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&amp;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;
    }
コード例 #2
0
ファイル: WidgetBuilder.php プロジェクト: zonky2/dc-general
 /**
  * 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;
 }