Contenido Plugin(s): Backend Frames (es muss Alles im Rahmen bleiben)

Content mit Inhalten füllen

4 einfache „Wer bin ich“ Dateien

Um nun die 4 Contentframes mit Inhalt zu füllen, benötigt man eine handvoll Einträge in DB-Tabellen und local, im einfachsten Fall im includes-Ordner unseres Pluginverzeichnisses, vorhandene einzubindende Dateien.
Im Verzeichnis plugins/meinplugin/includes legen wir dazu erst mal die 4 Dateien für die 4 Frames ab.

  • include.meinplugin_left_top.php
  • include.meinplugin_menu.php
  • include.meinplugin_subnav.php
  • include.meinplugin_main.php

Diese Dateien brauchen erst mal keinen allzu speziellen Inhalt, es geht ja erst mal drum das Prinzip zu verstehen.

<?php

if(!defined('CON_FRAMEWORK')) {
 die('Illegal call');
}

if ( $_REQUEST['cfg'] ) {
 die('Illegal call');
}

echo __FILE__;

?>

Die ersten zwei Einträge sind der Sicherheit wegen, und damit wir sie später nicht vergessen. Für uns wichtig ist die letzte Zeile, welche uns Pfad und Dateiname ausgibt, so dass wir direkt sehen, ob unsere Dateien korrekt eingebunden sind. Kommen wir jetzt zu den Datenbankeinträgen.

Benötigte Datenbankeinträge zur Darstellung des Plugins

Davon ausgehend, das es bereits einen Eintrag in con_area, und damit eine ID, für unseren Pluginbereich gibt, schauen wir uns nun die Tabellen an, die Contenido abfragt um unsere 4 Dateien dem Frameset zuzuordnen.

  • con_files, mit folgenden Spalten
    • idfile, muss über 10000 liegen, sonst wirds beim Update/Upgrade überschrieben. Am besten dynamisch vergeben per Installer.
    • idarea, erklärt sich von selbst
    • filename, steht hier nur der Dateiname, sucht Contenido im Ordner contenido/includes. Für Plugins kommt hier ein relativer Pfad, ausgehend vom Contenido Pluginverzeichnis, und Dateiname rein (Bsp.: myplugin/includes/ichbindiedatei.php).
    • filetype, unterscheidet eigentlich nur zwischen ‚main‘ und ‚inc‘. ‚main‘ sind die im Frame anzuzeigenden Dateien und ‚inc‘ sind include-Dateien, z.B. Klassen oder Funktionen, welche zur Verfügung stehen sollen.

Beispieleintrag wie er in einer install.sql für den Plugininstaller stehen würde (Platzhalter werden von diesem ersetzt).

INSERT INTO !PREFIX!_files VALUES ('!PID!02', '!PID!00', 'myplugin/includes/include.meinplugin_main.php', 'main');
  • con_frame_files, mit folgenden Spalten
    • idframefile, siehe oben
    • idarea, erklärt sich von selbst
    • idframe, in welchem der Frames (1-4) soll unsere Datei rein?
    • idfile, Bezug auf con_files, sprich welche Datei

Beispieleintrag in install.sql

INSERT INTO !PREFIX!_frame_files VALUES ('!PID!02', '!PID!00', '1', '!PID!02');

Haben wir nun alle Einträge für unsere Dateien gemacht, werden diese nun, bei Aufruf unseres Plugins über das Menü, im entsprechenden Frame angezeigt.
Ein Grundgerüst mit install.sql findet man später im Laufe meiner Artikelserie auch als Download.

Aussichten…

Soweit zum Thema Backend Frames bei Contenido Plugins. Areas und Actions und die entsprechenden DB-Tabellen möchte ich in einem gesonderten Artikel behandeln. Beispiele fehlen wie immer an dieser Stelle und ich möchte wiederum auf meine Artikelserie zur Pluginentwicklung verweisen.

Und wie immer, Fragen und Anregungen sind natürlich willkommen. ;-)