Concrete5 Block – Code ausführen

controller.php

In der Datei controller.php verarbeiten wir sämtliche Daten und geben dem Block noch ein paar Meta-Informationen mit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class PhpExecuteBlockController extends BlockController {
 
   protected $btDescription     = 'Insert PHP Code Snippet';
   protected $btName            = 'PHP Execute';
   protected $btTable           = 'btPhpExecute';
   protected $btInterfaceWidth  = '300';
   protected $btInterfaceHeight = '80';
 
   function filterDirectories($value)
   {
      return ($value != '..' && $value != '.');
   }
   function getScripts()
   {
      $scripts = scandir(dirname(__FILE__) . '/scripts');
      $scripts = array_filter($scripts,array($this,'filterDirectories'));
      return $scripts;
   }
}
?>

btDescription und btName sind wohl selbsterklärend. btTable ist die Tabelle auf die C5 zugreifen soll, btInterfaceWidth bzw. btInterfaceHeight gibt die Grösse unseres Dialogs an.

Anschliessend noch die Methode getScripts, welche von add.php und edit.php aufgerufen wird, schreiben. Die unnötigen Einträge entfernen und schon ist auch diese Datei geschrieben.




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 *