Kontakt aufnehmen

Seitentyp Plugins (CMS)

In unserem CMS werden wir heute den Seitentyp Plugins einführen. Ähnlich wie bei den Settings müssen wir einfach nur den alten Code aus dem admin/plugins.php in die Methode display der neuen Klasse /system/classes/pluginpage.php einfügen. Das geht so:

<?PHP
  classPluginPage extends Editor{
    function __construct($page){
      $this->page = $page;
    }

    public function display(){
      $template = new Template();
      $template->load("plugins");
      $plugins = new PluginList();
      $plugins->loadAll();
      $myurl = getSetting("global","global","host").$_GET['include'].".html";
      foreach($plugins->plugins as $plugin){
        $index = $template->add_loop_item("PLUGINS");
        if($_GET['activate'] == $plugin->path){
	      $plugin->activate();
        }
	    elseif($_GET['deactivate'] == $plugin->path){
	      $plugin->deactivate();
        }
        $template->assign_loop_var("PLUGINS",$index,"NAME",htmlentities($plugin->name));
        $template->assign_loop_var("PLUGINS",$index,"DESCRIPTION",htmlentities($plugin->description));
        $template->assign_loop_var("PLUGINS",$index,"VERSION",$plugin->version);
        $template->assign_loop_var("PLUGINS",$index,"AUTHORLINK",$plugin->authorLink);
        $template->assign_loop_var("PLUGINS",$index,"AUTHORNAME",htmlentities($plugin->authorName));
        if($plugin->isActivated()){
          $template->assign_loop_var("PLUGINS",$index,"ACTIVATIONLINK","<a href="".$myurl."?deactivate=".urlencode($plugin->path)."">Deaktvieren</a>");
        }
        else{
          $template->assign_loop_var("PLUGINS",$index,"ACTIVATIONLINK","<a href="".$myurl."?activate=".urlencode($plugin->path)."">Aktvieren</a>");
        }
      }
      $template->output();
    }

    function getHeader(){
    }

    public function getEditableCode(){
      return "<input name="save" type="submit" value="Ändern" onclick="form.action='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."' ; target='_self' ; return true" />";
    }

    public function save($newPage,$oldPage){
    }
}
?>

Aktiviert wird das Teil über diesen SQL-Statement:

UPDATE 'cl_pages' SETeditor = 'pluginpage' WHEREalias = 'admin/plugins'

Neben dem neuen Seitentyp habe ich im Updater habe ich noch folgende Commands hinzugefügt:

  • Unlink
  • Include
  • IncrementVersion
  • Removedir

Außerdem habe ich die CommandFactory so umgebaut, dass wir kein Switch mehr benötigen.

Alle Änderungen stehen in Revision 23, 24 und 25.

Ach ja: Ich habe jetzt ein Demo-System aufgesetzt. Das Zurücksetzen der Daten klappt schon gut. Das System wird also in Kürze online gehen, mehr dazu in einem eigenen Beitrag.

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Kommentare

Andre schrieb am 03.08.2010:

Hallo, wie lange bist du schon an der Entwicklung bei? Das soll jetzt kein Zeitdruck sein, aber es würde mich wohl interessieren. Übrigens: Kann man dieses CMS schon irgendwo downloaden? Ich würde es nämlich lieber erstmal Live sehen, bevor ich deine Beiträge durchgehe ;-) PS: Wann kommt denn die Demo? - Du hast es ja schon angedeutet ^.^

Andre schrieb am 03.08.2010:

War wohl zu blind. Der Link steht ja in der Übersicht

Stefan Wienströer schrieb am 03.08.2010:

Hi, die Entwicklung begann am 31. März 2009. Downloaden kann man es, wie das geht findest du hier: http://blog.stevieswebsite.de/2010/08/seitentyp-plugins-cms/comment-page-1/#comment-10793 Die Livedemo kommt spätestens Donnerstag.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern