/** * @param kMrssParameters $mrssParams */ public function setMrssParameters(kMrssParameters $mrssParams) { if (is_array($mrssParams->getItemXpathsToExtend())) { $this->putInCustomData(self::CUSTOM_DATA_MRSS_PARAMETERS, $mrssParams); } }
/** * 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; }