Example #1
0
 /**
  * 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();
 }