/** * Returns TRUE if the given node has the property and the value is not empty. * * @param NodeData $node * @return boolean */ public function matches(NodeData $node) { if ($node->hasProperty($this->propertyName)) { $propertyValue = $node->getProperty($this->propertyName); return !empty($propertyValue); } return false; }
/** * @test * @expectedException \Neos\ContentRepository\Exception\NodeException */ public function getPropertyThrowsAnExceptionIfTheSpecifiedPropertyDoesNotExistInTheContentObject() { $className = uniqid('Test'); eval(' class ' . $className . ' { public $title = "My Title"; } '); $contentObject = new $className(); $this->nodeData->setContentObject($contentObject); $this->nodeData->getProperty('foo'); }
/** * Returns the specified property. * * If the node has a content object attached, the property will be fetched * there if it is gettable. * * @param string $propertyName Name of the property * @param boolean $returnNodesAsIdentifiers If enabled, references to nodes are returned as node identifiers instead of NodeInterface instances * @return mixed value of the property * @api */ public function getProperty($propertyName, $returnNodesAsIdentifiers = false) { $value = $this->nodeData->getProperty($propertyName); if (empty($value)) { return null; } $nodeType = $this->getNodeType(); if (!$nodeType->hasConfiguration('properties.' . $propertyName)) { return $value; } $expectedPropertyType = $nodeType->getPropertyType($propertyName); if ($expectedPropertyType === 'references') { return $returnNodesAsIdentifiers ? $value : $this->resolvePropertyReferences($value); } if ($expectedPropertyType === 'reference') { return $returnNodesAsIdentifiers ? $value : $this->context->getNodeByIdentifier($value); } return $this->propertyMapper->convert($value, $expectedPropertyType); }
/** * Change the property on the given node. * * @param NodeData $node * @return NodeData */ public function execute(NodeData $node) { $reference = (string) $node->getProperty('plugin'); $workspace = $node->getWorkspace(); do { if ($this->reverse === false && preg_match(NodeInterface::MATCH_PATTERN_PATH, $reference)) { $pluginNode = $this->nodeDataRepository->findOneByPath($reference, $node->getWorkspace()); } else { $pluginNode = $this->nodeDataRepository->findOneByIdentifier($reference, $node->getWorkspace()); } if (isset($pluginNode)) { break; } $workspace = $workspace->getBaseWorkspace(); } while ($workspace && $workspace->getName() !== 'live'); if (isset($pluginNode)) { $node->setProperty('plugin', $this->reverse === false ? $pluginNode->getIdentifier() : $pluginNode->getPath()); } return $node; }
/** * Change the property on the given node. * * @param NodeData $node * @return void */ public function execute(NodeData $node) { $currentPropertyValue = $node->getProperty($this->propertyName); $newValueWithReplacedCurrentValue = str_replace($this->currentValuePlaceholder, $currentPropertyValue, $this->newValue); $newValueWithReplacedSearch = str_replace($this->search, $this->replace, $newValueWithReplacedCurrentValue); $node->setProperty($this->propertyName, $newValueWithReplacedSearch); }
/** * Renames the configured property to the new name. * * @param NodeData $node * @return void */ public function execute(NodeData $node) { $node->setProperty($this->newPropertyName, $node->getProperty($this->oldPropertyName)); $node->removeProperty($this->oldPropertyName); }
/** * Strips tags on the value of the property to work on. * * @param NodeData $node * @return void */ public function execute(NodeData $node) { $node->setProperty($this->propertyName, strip_tags($node->getProperty($this->propertyName))); }