Exemple #1
0
 /**
  * When rendered via a template, this populates the template with values.
  *
  * @param Template $objTemplate The Template instance to populate.
  *
  * @param array    $arrRowData  The row data for the current item.
  *
  * @param ISimple  $objSettings The render settings to use for this attribute.
  *
  * @return void
  */
 protected function prepareTemplate(Template $objTemplate, $arrRowData, $objSettings)
 {
     $objTemplate->setData(array('attribute' => $this, 'settings' => $objSettings, 'row' => $arrRowData, 'raw' => $arrRowData[$this->getColName()], 'additional_class' => $objSettings->get('additional_class') ? ' ' . $objSettings->get('additional_class') : ''));
 }
Exemple #2
0
 /**
  * Render the current item using the specified render setting.
  *
  * @param ModelToLabelEvent $event The event.
  *
  * @return void
  */
 public static function render(ModelToLabelEvent $event)
 {
     $environment = $event->getEnvironment();
     /** @var IMetaModelDataDefinition $definition */
     $definition = $environment->getDataDefinition();
     /** @var Contao2BackendViewDefinitionInterface $viewSection */
     $viewSection = $definition->getDefinition(Contao2BackendViewDefinitionInterface::NAME);
     $listing = $viewSection->getListingConfig();
     /** @var Model $model */
     $model = $event->getModel();
     if (!$model instanceof Model) {
         return;
     }
     $nativeItem = $model->getItem();
     $metaModel = $nativeItem->getMetaModel();
     $renderSetting = $metaModel->getServiceContainer()->getRenderSettingFactory()->createCollection($metaModel, $definition->getMetaModelDefinition()->getActiveRenderSetting());
     if (!$renderSetting) {
         return;
     }
     $data = array($nativeItem->parseValue('html5', $renderSetting));
     if ($listing->getShowColumns()) {
         $event->setArgs($data[0]['html5']);
         return;
     }
     $template = new Template($renderSetting->get('template'));
     $renderSetting = self::removeInvariantAttributes($nativeItem, $renderSetting);
     $template->setData(array('settings' => $renderSetting, 'items' => new Items(array($nativeItem)), 'view' => $renderSetting, 'data' => $data));
     $event->setArgs(array($template->parse('html5')));
 }