Alors le changement d'icône, c'est faisable mais ça demande un peu de code, ce n'est pas immédiat.
Il y a trois choses à faire :
1) ajouter l'icône : pour cela, dans un module spécifique, placer l'icône dans le dossier
webapp/changeicons/small et exécuter la commande init-webapp.
2) déclarer le style associé : dans le fichier backoffice.css du module spécifique, ajouter la déclaration suivante (en ayant remplacé les trois portions entre chevrons) :
treechildren::-moz-tree-image(modules_media_media modules_media_<votreType>),treechildren::-moz-tree-image(modules_media_securemedia modules_media_<votreType>){
list-style-image: url(/changeicons/small/<votreIcône>.png) !important;
}
3) la dernière partie est un poil plus compliquée : il vous faudra surcharger (par exemple par remplacement de classe via l'AOP) la méthode
addTreeAttributes du service
media_MediaService pour gérer votre cas particulier en settant pour les médias correspondant à votre cas la valeur suivante :
$nodeAttributes['actualtype'] = 'modules_media_<votreType>';
Exemple complet de classe (mon module spécifique étant nommé "abc") :
<?php
/**
* abc_aop_media_MediaService
* @package modules.abc
*/
class abc_aop_media_MediaService extends media_MediaService
{
/**
* @var media_MediaService
*/
private static $instance;
/**
* @return media_MediaService
*/
public static function getInstance()
{
if (self::$instance === null)
{
self::$instance = self::getServiceClassInstance(get_class());
}
return self::$instance;
}
/**
* @param media_persistentdocument_media $document
* @param string $moduleName
* @param string $treeType
* @param array<string, string> $nodeAttributes
*/
public function addTreeAttributes($document, $moduleName, $treeType, &$nodeAttributes)
{
parent::addTreeAttributes($document, $moduleName, $treeType, $nodeAttributes);
$infos = $document->getInfo();
if ($infos['extension'] == 'epub')
{
$nodeAttributes['actualtype'] = 'modules_media_epub';
}
}
}
Et le fichier aop.xml à placer dans le dossier config du projet pour activer le remplacement de la classe :
<?xml version="1.0" encoding="utf-8"?>
<aop>
<replace pointcut="media_MediaService" class="abc_aop_media_MediaService" />
</aop>