it-swarm.com.de

Veröffentlichung im Controller erweitern?

Ich möchte die (Un) Publish-Funktion in einem Subcontroller erweitern.

Ich dachte, es würde ausreichen, so etwas auf meinen Subcontroller items.php zu schreiben:

    public function unpublish()
    {
        echo "Test";
        die;
    }

Beim Aufheben der Veröffentlichung meiner Artikel geschieht jedoch nichts. Was kann ich hier machen?

5
MyFault

Schauen Sie sich JControllerAdmin an, womit Ihr Controller erweitert wird.

In der Funktion __construct In Zeile 62unpublish wird die Funktion publish verwendet. Es gibt also keine Funktion wie unpublish.

Und in der Funktion publish können Sie den Aufgabennamen mit $task = $this->getTask(); erhalten.

Mögliche Werte sind publish, unpublish, archive, trash und report. Sie können also vergleichen, ob es sich um publish oder unpublish handelt, und darauf basierende Aktionen ausführen.

Ihre Funktion könnte so aussehen:

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();
}
4
Rene Korss