function explainInstallItem( $package, $installItem, $requestedInfo = array( 'name', 'identifier', 'description', 'language_info' ) ) { if ( $installItem['filename'] ) { $explainClassName = in_array( 'name', $requestedInfo ); $explainClassIdentitier = in_array( 'identifier', $requestedInfo ); $explainDescription = in_array( 'description', $requestedInfo ); $explainLanguageInfo = in_array( 'language_info', $requestedInfo ); $filename = $installItem['filename']; $subdirectory = $installItem['sub-directory']; if ( $subdirectory ) $filepath = $subdirectory . '/' . $filename . '.xml'; else $filepath = $filename . '.xml'; $filepath = $package->path() . '/' . $filepath; $dom = $package->fetchDOMFromFile( $filepath ); if ( $dom ) { $languageInfo = array(); $content = $dom->documentElement; $classIdentifier = $explainClassIdentitier ? $content->getElementsByTagName( 'identifier' )->item( 0 )->textContent : ''; $className = ''; if ( $explainClassName ) { // BC ( <= 3.8 ) $classNameNode = $content->getElementsByTagName( 'name' )->item( 0 ); if( $classNameNode ) { $className = $classNameNode->textContent; } else { // get info about translations. $serializedNameListNode = $content->getElementsByTagName( 'serialized-name-list' )->item( 0 ); if( $serializedNameListNode ) { $serializedNameList = $serializedNameListNode->textContent; $nameList = new eZContentClassNameList( $serializedNameList ); $languageInfo = $explainLanguageInfo ? $nameList->languageLocaleList() : array(); $className = $nameList->name(); } } } $description = $explainDescription ? ezpI18n::tr( 'kernel/package', "Content class '%classname' (%classidentifier)", false, array( '%classname' => $className, '%classidentifier' => $classIdentifier ) ) : ''; $explainInfo = array( 'description' => $description, 'language_info' => $languageInfo ); return $explainInfo; } } }