/** * Render a node label * * @param NodeInterface $node * @param boolean $crop This argument is deprecated as of Neos 1.2 and will be removed. Don't rely on this behavior and crop labels in the view. * @return string */ public function getLabel(NodeInterface $node, $crop = true) { $label = Utility::evaluateEelExpression($this->getExpression(), $this->eelEvaluator, array('node' => $node), $this->defaultContextConfiguration); if ($crop === false) { return $label; } $croppedLabel = Functions::substr($label, 0, 30); return $croppedLabel . (strlen($croppedLabel) < strlen($label) ? ' …' : ''); }
/** * Record events for entity changes. * * Note: this method is registered as an Doctrine event listener in the settings of this package. * * TODO: Update/Delete of Entities * * @param OnFlushEventArgs $eventArgs * @return void * @throws Exception */ public function onFlush(OnFlushEventArgs $eventArgs) { if (!$this->eventEmittingService->isEnabled()) { return; } $entityManager = $eventArgs->getEntityManager(); $unitOfWork = $entityManager->getUnitOfWork(); foreach ($unitOfWork->getScheduledEntityInsertions() as $entity) { $className = get_class($entity); if (isset($this->monitorEntitiesSetting[$className])) { $entityMonitoringConfiguration = $this->monitorEntitiesSetting[$className]; if (isset($entityMonitoringConfiguration['events']['created'])) { $this->initializeAccountIdentifier(); $data = array(); foreach ($entityMonitoringConfiguration['data'] as $key => $eelExpression) { $data[$key] = Utility::evaluateEelExpression($eelExpression, $this->eelEvaluator, array('entity' => $entity)); } $event = $this->eventEmittingService->emit($entityMonitoringConfiguration['events']['created'], $data); $unitOfWork->computeChangeSet($entityManager->getClassMetadata(Event::class), $event); } } } foreach ($unitOfWork->getScheduledEntityDeletions() as $entity) { $className = get_class($entity); if (isset($this->monitorEntitiesSetting[$className])) { $entityMonitoringConfiguration = $this->monitorEntitiesSetting[$className]; if (isset($entityMonitoringConfiguration['events']['deleted'])) { $this->initializeAccountIdentifier(); $data = array(); foreach ($entityMonitoringConfiguration['data'] as $key => $eelExpression) { $data[$key] = Utility::evaluateEelExpression($eelExpression, $this->eelEvaluator, array('entity' => $entity)); } $event = $this->eventEmittingService->emit($entityMonitoringConfiguration['events']['deleted'], $data); $unitOfWork->computeChangeSet($entityManager->getClassMetadata(Event::class), $event); } } } }
/** * Get variables from configuration that should be set in the context by default. * For example Eel helpers are made available by this. * * @return array Array with default context variable objects. */ protected function getDefaultContextVariables() { if ($this->defaultContextVariables === null) { $this->defaultContextVariables = array(); if (isset($this->settings['defaultContext']) && is_array($this->settings['defaultContext'])) { $this->defaultContextVariables = EelUtility::getDefaultContextVariables($this->settings['defaultContext']); } $this->defaultContextVariables['request'] = $this->controllerContext->getRequest(); } return $this->defaultContextVariables; }