private function addRelatedMedia($mediaObjectId, $language) { $attributes = array( "article_object_id" => $this->article->getContent()->attribute("id"), "article_language" => $this->article->getLanguage(), "media_object_id" => $mediaObjectId, "media_language" => $language ); $relatedCoreContent = new RelatedCoreContent($attributes); $relatedCoreContent->store(); }
/** * Check state of all medias related to the article * @param eZContentObject $articleContentObject * @return bool */ private static function checkMediaFromArticle( $articleContentObject ) { /* @type $mediaClassIdentifiers array */ $siteIni = eZINI::instance( 'site.ini' ); $mediaClassIdentifiers = $siteIni->variable( 'EventManager', 'MediaClassIdentifiers' ); //Retrieve all media related to the article /* @type $articleDataMap eZContentObjectAttribute[] */ $articleDataMap = $articleContentObject->dataMap(); if( !isset( $articleDataMap['media_content'] ) ) return true; $mediaContent = $articleDataMap['media_content']->content(); if( empty( $mediaContent['relation_list'] ) ) return true; foreach( $mediaContent['relation_list'] as $mediaData ) { if( !in_array( $mediaData['contentclass_identifier'], $mediaClassIdentifiers ) ) continue; if(!self::mediaIsCompleted($mediaData['contentobject_id'])) return false; } // retrieve all medias in core content related to the article $relatedCoreContentList = RelatedCoreContent::getMediasFromArticle($articleContentObject->attribute("id"), $articleContentObject->currentLanguage()); /** @var RelatedCoreContent $relatedCoreContent */ foreach($relatedCoreContentList as $relatedCoreContent) { if(!self::mediaIsCompleted($relatedCoreContent->attribute("media_object_id"))) return false; } return true; }