/** * Set RSSExportItem defaults based on site.ini [RSSSettings] settings * * @param eZRSSExportItem $rssExportItem * @return bool True if changes where made */ static function setItemDefaults(eZRSSExportItem $rssExportItem) { $nodeId = $rssExportItem->attribute('source_node_id'); $node = $nodeId ? eZContentObjectTreeNode::fetch($nodeId) : null; if (!$node instanceof eZContentObjectTreeNode) { return false; } $config = eZINI::instance('site.ini'); $nodeClassIdentifier = $node->attribute('class_identifier'); $defaultFeedItemClasses = $config->variable('RSSSettings', 'DefaultFeedItemClasses'); if (!isset($defaultFeedItemClasses[$nodeClassIdentifier])) { return false; } $feedItemClasses = explode(';', $defaultFeedItemClasses[$nodeClassIdentifier]); $iniSection = 'RSSSettings_' . $feedItemClasses[0]; if (!$config->hasVariable($iniSection, 'FeedObjectAttributeMap')) { return false; } $feedObjectAttributeMap = $config->variable($iniSection, 'FeedObjectAttributeMap'); $subNodesMap = $config->hasVariable($iniSection, 'Subnodes') ? $config->variable($iniSection, 'Subnodes') : array(); $rssExportItem->setAttribute('class_id', eZContentObjectTreeNode::classIDByIdentifier($feedItemClasses[0])); $rssExportItem->setAttribute('title', $feedObjectAttributeMap['title']); if (isset($feedObjectAttributeMap['description'])) { $rssExportItem->setAttribute('description', $feedObjectAttributeMap['description']); } if (isset($feedObjectAttributeMap['category'])) { $rssExportItem->setAttribute('category', $feedObjectAttributeMap['category']); } if (isset($feedObjectAttributeMap['enclosure'])) { $rssExportItem->setAttribute('enclosure', $feedObjectAttributeMap['enclosure']); } $rssExportItem->setAttribute('subnodes', isset($subNodesMap[$nodeClassIdentifier]) && $subNodesMap[$nodeClassIdentifier] === 'true'); $rssExportItem->store(); }