Exemple #1
0
 /**
  * Clear the button if the User is not admin.
  *
  * @param GetOperationButtonEvent $event The event.
  *
  * @return void
  */
 public function getOperationButton(GetOperationButtonEvent $event)
 {
     if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel') {
         return;
     }
     $command = $event->getCommand();
     if ($command->getName() == 'dca_combine') {
         $event->setHref(UrlBuilder::fromUrl($event->getHref())->setQueryParameter('id', ModelId::fromValues('tl_metamodel_dca_combine', $event->getModel()->getId())->getSerialized())->getUrl());
     }
 }
 /**
  * Check if we have to add the "Create variant" button.
  *
  * @param GetOperationButtonEvent $event The event.
  *
  * @return void
  */
 public function createButton(GetOperationButtonEvent $event)
 {
     if ($event->getCommand()->getName() != 'createvariant') {
         return;
     }
     /** @var Model $model */
     $model = $event->getModel();
     $metamodel = $model->getItem()->getMetaModel();
     if (!$metamodel->hasVariants() || $model->getProperty('varbase') === '0') {
         $event->setHtml('');
     }
 }
 /**
  * Retrieve the arguments for the callback.
  *
  * @param GetOperationButtonEvent $event The event being emitted.
  *
  * @return array
  */
 public function getArgs($event)
 {
     $extra = $event->getCommand()->getExtra();
     return array($event->getModel()->getPropertiesAsArray(), $this->buildHref($event->getCommand()), $event->getLabel(), $event->getTitle(), isset($extra['icon']) ? $extra['icon'] : null, $event->getAttributes(), $event->getEnvironment()->getDataDefinition()->getName(), $event->getEnvironment()->getDataDefinition()->getBasicDefinition()->getRootEntries(), $event->getChildRecordIds(), $event->getCircularReference(), $event->getPrevious() ? $event->getPrevious()->getId() : null, $event->getNext() ? $event->getNext()->getId() : null);
 }
 /**
  * @param GetOperationButtonEvent $event
  */
 public function prepareButton(GetOperationButtonEvent $event)
 {
     if ($event->getCommand()->getName() != 'ga_enabled') {
         return;
     }
     /** @var \Pimple $container */
     global $container;
     /** @var SuperglobalsService $superGlobals */
     $superGlobals = $container['avisota.superglobals'];
     /** @var EntityModel $model */
     $model = $event->getModel();
     /** @var Message $message */
     $message = $model->getEntity();
     if ($message->getGaEnable()) {
         $title = $message->getGaCampaign() ? $message->getGaCampaign() : $message->getSubject();
         $title = sprintf($superGlobals->getLanguage('orm_avisota_message/ga_campain_title'), $title);
         $generateHtmlEvent = new GenerateHtmlEvent('assets/avisota/message-analytics-ga/images/analytics_icon.png', $title, sprintf('title="%s"', htmlentities($title, ENT_QUOTES, 'UTF-8')));
         $event->getEnvironment()->getEventDispatcher()->dispatch(ContaoEvents::IMAGE_GET_HTML, $generateHtmlEvent);
         $event->setHtml($generateHtmlEvent->getHtml());
     } else {
         $event->setHtml('');
     }
 }
Exemple #5
0
 /**
  * Check if the Layouts by this theme is in used by message.
  * If layout in used, return where and can´t delete the theme.
  *
  * @param GetOperationButtonEvent $event The event.
  *
  * @return void
  */
 public function deleteInformation(GetOperationButtonEvent $event)
 {
     $command = $event->getCommand();
     $environment = $event->getEnvironment();
     $dataDefinition = $environment->getDataDefinition();
     if ($dataDefinition->getName() !== 'orm_avisota_theme' || $command->getName() !== 'delete') {
         return;
     }
     $themeEntity = $event->getModel()->getEntity();
     $layoutCollection = $themeEntity->getLayouts();
     $information = '';
     while ($layoutEntity = $layoutCollection->current()) {
         $currentInformation = $this->getLayoutUsedInformation($layoutEntity, $environment);
         if (!$currentInformation) {
             $layoutCollection->next();
             continue;
         }
         $information .= $currentInformation;
         $layoutCollection->next();
     }
     if (!$information) {
         return;
     }
     $translator = $environment->getTranslator();
     $information = $translator->translate('delete.information.theme', 'MCE') . $information;
     $event->setAttributes('onclick="alert(\'' . $information . '\'); Backend.getScrollOffset(); return false;"');
 }
Exemple #6
0
 /**
  * Check if the Layout is in used by message.
  * If this in used, return where and can´t delete it.
  *
  * @param GetOperationButtonEvent $event The event.
  *
  * @return void
  */
 public function deleteInformation(GetOperationButtonEvent $event)
 {
     $command = $event->getCommand();
     $environment = $event->getEnvironment();
     $dataDefinition = $environment->getDataDefinition();
     if ($dataDefinition->getName() !== 'orm_avisota_layout' || $command->getName() !== 'delete') {
         return;
     }
     $entity = $event->getModel()->getEntity();
     $dataProvider = $environment->getDataProvider();
     $entityManager = $dataProvider->getEntityManager();
     $repository = $entityManager->getRepository('Avisota\\Contao:Message');
     $messageResult = $repository->findBy(array('layout' => $entity->getId()), array('subject' => 'ASC'));
     if (count($messageResult) < 1) {
         return;
     }
     $translator = $environment->getTranslator();
     $information = $translator->translate('delete.information.layout', 'MCE');
     foreach ($messageResult as $message) {
         $information .= "\\n";
         $information .= $message->getCategory()->getTitle();
         $information .= ' => ';
         $information .= $message->getSubject();
     }
     $event->setAttributes('onclick="alert(\'' . $information . '\'); Backend.getScrollOffset(); return false;"');
 }