예제 #1
0
 /**
  * @param ProcessContentDataSignalArguments $signalArguments
  * @return array
  */
 public function processRelations(ProcessContentDataSignalArguments $signalArguments)
 {
     $contentObject = $signalArguments->getContentObject();
     $fieldNameAndPath = $signalArguments->getFieldNameAndPath();
     $contentData = $signalArguments->getContentData();
     $savingBehavior = $signalArguments->getSavingBehavior();
     if ($savingBehavior !== SavingBehavior::REPLACE) {
         $contentData = $this->appendOrRemoveRelations($contentObject, $fieldNameAndPath, $contentData, $savingBehavior);
         $signalArguments->setContentData($contentData);
     }
     return array($signalArguments);
 }
예제 #2
0
 /**
  * @param ProcessContentDataSignalArguments $signalArguments
  * @return array
  */
 public function processMarkers(ProcessContentDataSignalArguments $signalArguments)
 {
     $contentData = $signalArguments->getContentData();
     $creationTime = $this->getCreationTime($signalArguments);
     // Process markers
     foreach ($signalArguments->getContentData() as $fieldName => $updateValue) {
         if (is_scalar($updateValue)) {
             $currentValue = $this->getContentObjectResolver()->getValue($signalArguments->getContentObject(), $signalArguments->getFieldNameAndPath(), $fieldName, $signalArguments->getLanguage());
             $counter = $signalArguments->getCounter();
             $updateValue = $this->searchAndReplace($updateValue, $currentValue);
             $updateValue = $this->replaceWellKnownMarkers($updateValue, $currentValue, $counter, $creationTime);
             $contentData[$fieldName] = $updateValue;
         }
     }
     $signalArguments->setContentData($contentData);
     return array($signalArguments);
 }