0251 / 590 837 15
info@a-coding-project.de
;

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="&Auml;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.

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.