richtlinien für plugins ?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

richtlinien für plugins ?

Beitrag von emergence » Di 30. Dez 2003, 09:16

gibts schon sowas irgendwo ? mich würds nämlich intressieren weitere externe anwendungen so in contenido einzubauen ohne sonderlich viel am grundsystem herumzuhacken... zB den eventkalender so einzubinden wäre ganz intressant...

abgesehen jetzt von config.plugin.php
zb automatische einbindung in die backend menüstruktur , sicherheitssystem etc...

ideal wäre ein plugin hello world beispiel...

ich schätze aber mal das ganze sollte so implementiert werden wie zb die module...
oben in der hauptnavigation eventuell unter extras / plugins
links eine auflistung der installierten plugins und rechts die weiteren einstellungen(konfiguration, optionen etc...)

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 30. Dez 2003, 09:47

leider noch nicht. Ich würde es auch nicht Plugins nennen, sondern eher "Extensions". Derzeit wird das bei Kunden per Hand reingebaut (welches aber massive Probleme bei Updates machen wird), aber das wichtigste, welches vieles definieren würde, existiert noch nicht: Der Plugin-Installer.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 10:05

gibts schon irgendein planungsstatium für: was der plugin installer können sollte ?
in welche ordner die plugins installiert werden sollten (oder extensions)...

ich werd mir sonst was eigenes schreiben (das know how dazu hab ich ja mittlerweile ;-) )

am ehesten werd ich aber alle php dateien für die plugins in der db abspeichern und dazugehörige images in contenido/external/plugins platzieren.
beim sicherheitssystem einbindung wird das vermutlich so aussehen wie bei den user, gruppen - bereiche

ein import und export der plugins wäre dann vermutlich ein leichtes (eventuell plugins als zip am server plazieren und dann entsprechend einzubauen, oder aufzuteilen)

damit hab ich dann aber sicher 1-2 wochen zu tun...

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 30. Dez 2003, 10:29

Die Plugins sollen im Ordner "plugins" abgelegt werden, die Datei "config.plugin.php" wird jeweils im Ordner "includes" ausgeführt. Beispiel:

Das Plugin "test" befindet sich in: plugins/test/
Dann wird plugins/test/includes/config.plugin.php ausgeführt.

Der Rest wird wie in Contenido selbst gehandhabt: Areas anlegen, Actions anlegen, Files und Framefiles anlegen usw usw.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 10:41

also damit ich das richtig verstanden habe:
zB
in plugins/test/ (das wäre mein plugin ordner)
in plugins/test/incudes/config.plugin.php (meine konfigurationsdatei)
in plugins/test/templates/standard/ (meine template vorlagen)
in plugins/test/images/ (gfx)
in plugins/test/..../ (etc..)

und die sprachdateien auch
in plugins/test/locale/de_DE/LC_MESSAGES/test.po

korrekt ?

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 30. Dez 2003, 11:39

ja. Bis auf die config und die locale bist du da völlig frei. Was mir gerade einfällt: Möchtest du die Menüs in Contenido erweitern, mußt du in der DB den Filenamen davor setzen, beispiel:

test/xml/test.xml;navigation/test

Alles, was vor dem Semikolon steht, wird relativ zum Plugin-Verzeichnis gehandhabt.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 14:42

timo hat geschrieben:ja. Bis auf die config und die locale bist du da völlig frei.
okay soweit so gut...
die templates die ich mir dann baue kann ich dann in der config.plugin.php definieren (so wie es momentan in der config.php gemacht wurde) okay das krieg ich hin...
timo hat geschrieben: Was mir gerade einfällt:


Möchtest du die Menüs in Contenido erweitern, mußt du in der DB den Filenamen davor setzen, beispiel:
test/xml/test.xml;navigation/test
Alles, was vor dem Semikolon steht, wird relativ zum Plugin-Verzeichnis gehandhabt.
okay das wird in der class.navigation.php aufgesplittet...
die einzige unterschied bei plugins ist der geänderte verweiss in der con_sub_nav (welcher das xml file einbindet) alles weitere wie actions, areas, frame_files wie bisher...
wie siehts den bei der con_files aus ? wird automatisch erkannt dass, das include sich auf das plugins/test/includes/ bezieht oder muss ich dort den pfad auf ../plugins/test/includes/ voranstellen ?
oder noch besser bezieht sich das location in con_actions auf das plugins verzeichniss wo gesucht werden soll (das würde sinn ergeben) ?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 15:07

hab das mal jetzt zusammengestellt:

richtlinien zusammenfassend:

plugins für contenido:
platziert unter
contenido/plugins/XXX/

zwingend erforderlich:
contenido/plugins/XXX/includes/config.plugin.php
-> definitionen für $cfg['templates'], $cfg["tab"], $lngAct
contenido/plugins/XXX/locale/de_DE/LC_MESSAGES/XXX.po
-> sprachdefinition für plugin XXX
weitere subordner frei in XXX plazierbar...

zur einbindung in die menüstruktur backend db
eintrag in der con_sub_nav nach muster
XXX/xml/lang_de_DE.xml;navigation/XXX
-> erster teil relativ vom plugins verzeichnis ausgehend seperator ; (siehe class.navigation.php)

verweise in con_actions, con_area, con_frame_files wie bisher...
verweise in con_files bei name zb
XXX/includes/functions.XXX.php

mit bitte um korrektur...

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 18:15

eine paar sachen sind mir jetzt noch nicht klar...
betreffend xml file gibt es da eine automatische unterscheidung zwischen en_US de_DE oder steht nur eine sprache zur verfügung für die hauptnavigation ? (momentan ist das zwar egal, aber na ja)

und bei einbindung eines plugins in die navigationsstruktur wäre dies immer der letzte menüpunkt ? (mittlerweile hasse ich das nav system)

dass mit dem installer ist an sich das intressanteste an dieser geschichte da dieser für die db einträge sorgen muss...

ich werd mal schauen ob ich ein hello world example plugin hinbekomme...
die frage ist nur ab welcher contenido version dies dann funktionieren wird... vielleicht schon ab 4.2.2 ?? mal sehen...

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 30. Dez 2003, 19:24

emergence hat geschrieben: wie siehts den bei der con_files aus ? wird automatisch erkannt dass, das include sich auf das plugins/test/includes/ bezieht oder muss ich dort den pfad auf ../plugins/test/includes/ voranstellen ?
Bei den Actions weiß ich das nicht, aber bei den Files reicht "test/includes" (sobald ein slash darin vorkommt, wird relativ vom Plugin-Verzeichnis gesucht).

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 30. Dez 2003, 19:25

emergence hat geschrieben:betreffend xml file gibt es da eine automatische unterscheidung zwischen en_US de_DE oder steht nur eine sprache zur verfügung für die hauptnavigation ? (momentan ist das zwar egal, aber na ja)
Leider derzeit noch nicht.
und bei einbindung eines plugins in die navigationsstruktur wäre dies immer der letzte menüpunkt ? (mittlerweile hasse ich das nav system)
Die Menüpunkte werden nach ID's sortiert. Ja, ich mag das System auch nicht so - hätte man einfacher realisieren können...

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 30. Dez 2003, 20:16

timo hat geschrieben:Leider derzeit noch nicht.
na ja, also in der class.navigation.php nach durchsicht des codes könnte man das ganz einfach einbauen, in dem man sich $cfg['lang'][$belang] bedient...

$file = trim($locs[0]);
wäre dann nur der pfad zum plugin xml file also (XXX/xml/;navigation/XXX)
die zeile die das file dann laden würde, würd' dann so aussehen:

$plugxml->load($cfg["path"]["plugins"].$file.$cfg['lang'][$belang]);

die language files wären dann von der namensbezeichnung ident wie in der config.php definiert... also ich könnt damit leben ;-)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 31. Dez 2003, 10:39

blöde frage, bevor ich jetzt lange herumprobiere
das xml file für den menüpunkt sagen wir mal extras/helloworld würde so aussehen...

Code: Alles auswählen

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Contenido XML language file -->
<language>
    <navigation>
        <extra>
            <helloworld>Hello World</helloworld>
        </extra>
    </navigation>
</language>
sagen wir das file liegt in plugins/XXX/xml/language.xml
wäre der eintrag in die con_sub_nav folgender
XXX/xml/language.xml;navigation/extra/helloworld

korrekt oder hab ich da was vergessen ?

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Mi 31. Dez 2003, 11:24

ja, schaut soweit eigentlich ganz richtig aus :)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 31. Dez 2003, 11:24

eine kleinigkeit ist mir da noch aufgefallen...
wenn ich es wie oben schreiben würde muss ich in der class.navigation.php
folgendes verwenden...
$name = $plugxml->valueOf($cfgPath['xmlroot'] . $xpath);

ist das beabsichtigt das da $cfgPath['xmlroot'] fehlt ?

Gesperrt