Concrete5 Block – Code ausführen

Concrete5 Block entwickeln

Wie schon in den vorigen Artikel, hab ich gezeigt, dass Concrete5 relativ einfach erweitert werden kann.

http://www.codeblog.ch/category/concrete5/

In diesem Fall möchte ich zeigen wie man einen einfachen Block entwickeln kann, der beliebigen PHP Code ausführen kann. Dies klingt heikel und kann es auch sein! Der Wunsch danach ist im C5 Forum http://sourceforge.net/forum/forum.php?forum_id=814373 aufgekommen. Jemand hat entdeckt, dass man Code mit dem Form Block ausführen kann. Persönlich mag ich sowas nicht, weil meiner Ansicht nach ein Block für das verwendet werden soll, für das er entwickelt wurde.

Dies soll aber jeder für sich entscheiden! Ein Ausführen von PHP Code ist auch mit dem Form Block möglich!

Die Files

Wie bei jedem Block brauchen wir ein paar Dateien:

  • db.xml – Diese Datei enthält die Definition für unsere Tabelle
  • add.php – Diese Datei wird aufgerufen wenn eine neue Instanz unseres Blocks eingefügt wird
  • edit.php – Diese Datei wird benötigt wenn ein vorhandener Block bearbeitet wird
  • view.php – Wie der Name sagt, wird angezeigt wenn der Block in der Seite dargestellt werden soll
  • controller.php – Diese Datei ist für die ganze Verarbeitung der Daten zuständig.

Auf den folgenden Seiten erkläre ich den Inhalt jeder Datei…




Seguir leyendo: 1, 2, 3, 4, 5, 6, 7


7 Comments

Hi!

Du, ich bekomme hier leider folgende Fehlermeldung wenn ich den Block hinzufüge und danach die Änderungen speichern will.

Ich benutze Concrete 5.3.3.1

Kannst du mir da eventuell helfen?

Fatal error: method_exists() [function.method-exists]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "PhpExecuteBlockController" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /www/htdocs/concrete/libraries/database_indexed_search.php on line 135

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *