/**
  * @param kMrssParameters $mrssParams
  */
 public function setMrssParameters(kMrssParameters $mrssParams)
 {
     if (is_array($mrssParams->getItemXpathsToExtend())) {
         $this->putInCustomData(self::CUSTOM_DATA_MRSS_PARAMETERS, $mrssParams);
     }
 }
Example #2
0
 /**
  * Function goes over finished MRSS XML and adds the required extending items in the appropriate slots
  * @param SimpleXMLElement $mrss
  * @param kMrssParameters $mrssParams
  * @return SimpleXMLElement
  */
 protected static function addExtendingItemsToMrss(SimpleXMLElement $mrss, kMrssParameters $mrssParams)
 {
     foreach ($mrssParams->getItemXpathsToExtend() as $itemXPathToExtend) {
         /* @var $itemXPathToExtend KExtendingItemMrssParameter */
         $xmlNodesToExtend = $mrss->xpath($itemXPathToExtend->getXpath());
         //metdata/entryIdX   /entry/customMetadata/metadata/entryIdY
         foreach ($xmlNodesToExtend as $xmlNodeToExtend) {
             /* @var $xmlNodeToExtend SimpleXMLElement */
             $identifierValue = strval($xmlNodeToExtend[0]);
             $extendingObject = $itemXPathToExtend->getIdentifier()->retrieveByIdentifier($identifierValue);
             if ($extendingObject) {
                 $mrssParams->setItemXpathsToExtend(array());
                 $featuresArray = strlen($itemXPathToExtend->getIdentifier()->getExtendedFeatures()) ? explode(',', $itemXPathToExtend->getIdentifier()->getExtendedFeatures()) : null;
                 if ($itemXPathToExtend->getExtensionMode() == MrssExtensionMode::APPEND) {
                     $parents = $xmlNodeToExtend->xpath("parent::*");
                     self::addExtendingItemNode($extendingObject, $identifierValue, $parents[0], $xmlNodeToExtend->getName(), $mrssParams, $featuresArray);
                 } else {
                     $xmlNodeToExtend[0] = null;
                     self::addExtendingItemNode($extendingObject, $identifierValue, $xmlNodeToExtend, $xmlNodeToExtend->getName(), $mrssParams, $featuresArray);
                 }
             }
         }
     }
     return $mrss;
 }