feedType = $feedType; } public static function getModuleName() { return 'DublinCore'; } public static function getNamespace() { return 'http://purl.org/dc/elements/1.1/'; } public static function getNamespacePrefix() { return 'dc'; } public function isChannelElementAllowed( $element ) { return in_array( $element, $this->supportedElements ); } public function isItemElementAllowed( $element ) { return in_array( $element, $this->supportedElements ); } public function prepareDate( $date ) { if ( is_int( $date ) || is_numeric( $date ) ) { return $date; } $ts = strtotime( $date ); if ( $ts !== false ) { return $ts; } return time(); } public function generateMetaData( $feedProcessor, $element, $value ) { $prefix = $this->getNamespacePrefix(); switch ( $element ) { case 'date': $feedProcessor->generateMetaData( "$prefix:$element", date( DATE_W3C, $value ) ); break; default: $feedProcessor->generateMetaData( "$prefix:$element", $value ); break; } } public function generateItemData( $itemTag, $feedProcessor, $element, $value ) { $prefix = $this->getNamespacePrefix(); switch ( $element ) { case 'date': $feedProcessor->generateItemData( $itemTag, "$prefix:$element", date( DATE_W3C, $value ) ); break; default: $feedProcessor->generateItemData( $itemTag, "$prefix:$element", $value ); break; } } public function prepareMetaData( $element, $value ) { switch ( $element ) { case 'date': $value = $this->prepareDate( $value ); break; } return $value; } public function feedMetaSetHook( &$element, &$value ) { if ( in_array( $this->feedType, array( 'rss1' ) ) ) { return true; } if ( $element === 'published' ) { return false; } return null; } public function feedMetaGenerateHook( $moduleData, &$element, &$value ) { if ( ( isset( $moduleData['creator'] ) && $element === 'author' ) || ( isset( $moduleData['date'] ) && $element === 'published' ) ) { return false; } return true; } public function feedItemSetHook( &$element, &$value ) { if ( in_array( $this->feedType, array( 'rss1' ) ) ) { return true; } if ( $element === 'published' ) { return false; } return null; } public function feedItemGenerateHook( $moduleData, &$element, &$value ) { if ( isset( $moduleData['date'] ) && $element === 'published' ) { return false; } return true; } } ?>