Coding and more – Concrete5, Flex, JavaScript

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.

Pages: 1 2 3 4 5 6 7

7 Responses to “Concrete5 Block – Code ausführen”

  • Ron

    Hi Remo,

    vielen Dank für die ausfürliche Beschreibung.

    Grüße aus Nürnberg

  • Peter

    Super Anleitung.
    Genau das was ich brauche um ein paar notwendige Änderungen zu machen.

    Danke und Gruß
    Peter

  • Nig

    Hi!

    Danke für die guten Tuts!
    Was hier drin nicht steht, ist das die Files im Ordner “php_execute” sein müssen, obwohl ich nicht genau weiss, wo das definiert ist. Hat jmd einen Hinweis?

    Gruss

  • Remo Laubacher

    Ja richtig! Das steht nirgends im Tutorial…
    Der Ordner definiert sich durch den Namen der Klasse im Controller. Nach “_” kommt ein Grossbuchstabe und anschliessend jeweils “BlockController”

    Ordner: super_sache
    Klasse: SuperSacheBlockController

  • Fernandos

    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

  • Remo Laubacher

    Hey Fernandos,
    der Block funktioniert bei mir problemlos mit 5.3.3.1 aber ich hab eine Unschönheit gefunden. In der ZIP Datei gibt’s keinen Block Ordner.
    Das heisst du musst zuerst einen Ordner “php_execute” in blocks erstellen und dort alles Files entpacken..
    Gruss Remo

  • Laurence

    Hi Remo

    Your block doesn’t seem to be working in concrete 5.4.2, any idea why?

  • Leave a Reply