Plugin manuell im Template aufrufen

Natürlich können Sie im CMS Bludit Plugins auch manuell ohne Hook aufrufen, denn nicht immer stehen Hooks zur Verfügung oder sind mit anderen Plugins belegt

Inhalt

Ein Bludit Plugin manuell einbinden

Nicht immer stehen ausreichend Hooks für den Aufruf von Plugins zur Verfügung oder diese sind bereits mit anderen Plugins belegt, es kann sogar sein, das im betreffenden Theme gar keine Hooks vom Entwickler vorgesehen sind. Dennoch lassen sich dann Plugins manuell in das Theme einbinden und starten.

Die Kurzschreibweise für die manuelle Einbindung eines Plugins in das Template finden Sie hier:

049  <?php
050      echo getPlugin('pluginPostStatistic')->statistics();
051  ?>

Code

Der Code oben bindet das folgende Plugin mit dem Class-Namen pluginPostStatistic ein und ruft dort die function statistics() auf. Diese wiederum liefert einen Returnwert an das Template zurück und zeigt diesen an.

001  <?php
002      class pluginPostStatistic extends Plugin {
003
004          public function init() {
005              $this->dbFields = array('count' => 0);
006          }
007
008          public function statistics() {
009              $count = $this->getValue('count');
010              $count = $count+1;
011
012              deactivatePlugin('pluginPostStatistic');   // deaktivieren
013              $this->dbFields['count'] = $count;         // modifizieren
014              activatePlugin('pluginPostStatistic');     // aktivieren (speichern)
015
016              return $this->getValue('count');
017          }
018      }
019  ?>

Code

Das Plugin oben erzeugt einen fortlaufenden Counter und gibt ihn an die rufende Stelle im Template oben zurück, zudem speichert es den Counter in der Plugin DB sitzungsübergreifend ab.

Hinweis: Das Coding des Counters bedient sich allerdings eines Tricks. Normalerweise erfolgt das Schreiben in die Plugin DB über eine Form oder bei Initialisierung des Plugins, daher wird das Plugin kurz deaktiviert (Zeile 012) und danach erneut aktiviert (Zeile 014), dadurch ist es möglich die neuen Counter-Werte in das Feld count zu speichern. Das Plugin muss natürlich trotzdem aktiviert sein, ist dies nicht der Fall bricht die Ausführung des Templates ab.

Prüfen ob das Plugin aktiv ist

Fragen Sie daher zuvor im Template ab, ob das Plugin eingeschaltet ist. Das folgende Codebeispiel zeigt dies mit einem kurzen IF-Befehl in Zeile 050.

049  <?php
050      if (pluginActivated('pluginPostStatistic')) {
051          echo getPlugin('pluginPostStatistic')->statistics();
052      } else {
053          echo 'Das Plugin deaktiviert';
054      }
055  ?>

Code

Natürlich können Sie die Ausgabe der Zeile 053 weglassen, denn ist das Plugin deaktiv soll auch nichts angezeigt werden.

Weitere Informationen finden Sie in der Doku des Bludit: hier


FlightCMS
2023-12-21
Konstanten
post
0