Je voudrais étendre la fonction (un) publication dans un sous-contrôleur.
Je pensais qu'il serait suffisant d'écrire quelque chose comme ça dans mon sous-élément items.php:
public function unpublish()
{
echo "Test";
die;
}
Mais rien ne se passe en dépubliant mes articles. Que puis-je faire ici?
Jetez un oeil à JControllerAdmin ce qui est utilisé pour étendre votre contrôleur.
Dans la fonction __construct
On ligne 62unpublish
est configuré pour utiliser la fonction publish
. Donc, il n’ya pas de fonction comme unpublish
.
Et dans la fonction publish
, vous pouvez obtenir le nom de la tâche avec $task = $this->getTask();
.
Les valeurs possibles sont publish
, unpublish
, archive
, trash
et report
. Vous pouvez donc comparer, s'il s'agit de publish
ou unpublish
, et effectuer des actions en fonction de cela.
Votre fonction pourrait ressembler à ceci:
public function publish()
{
$task = $this->getTask();
// Do your custom actions
if($task == 'unpublish'){
// Do something on unpublishing item(s)
}else if($task == 'publish'){
// Do something on publishing item(s)
}
// Call parent function, so item(s) will get published/unpublished like they are used to
parent::publish();
}