Scheinbar gibt es im Moment 2 Mechanismen in Sefrengo um Code automatisch ausführen zu lassen:
1.) Autostarts
Plugins können Code für einen Autostart registrieren, dieser wird ganz am Ende der Seitenbearbeitung von Sefrengo ausgeführt, er kann also nur die fertige Seite bearbeiten.
2.) Events
Sefrengo hat einen Eventmechanismus, auch wenn er nur wenig genutzt wird. In der DB kann man sich für Events registrieren, und mit $eventobject->fire('event', $args) kann man selber welche abfeuern.
Ich würde jetzt gerne auch Plugincode ganz zu begin der Seitenverarbeitung ausführen.
Frage: Wie mach ich das, ich muß dafür Sefrengo hacken, klar. Ich würde das gern so machen, dass es vielleicht auch in die offizielle Version einfließt.
Zum einen kann ich parallel zu den Autostarts was einfügen:
QUELLTEXT
// eventuelle Initialisierungen ausführen:
$a_location = ($is_frontend) ? 'frontend': 'backend';
if (is_array($cfg_cms['init'][$a_location])) {
foreach($cfg_cms['init'][$a_location] as $value) {
include_once $cfg_cms['cms_path'] .'plugins/'. $value;
}
}
if (is_array($cfg_client['init'][$a_location])) {
foreach($cfg_client['init'][$a_location] as $value) {
include_once $cfg_cms['cms_path'] .'plugins/'. $value;
}
}
$a_location = ($is_frontend) ? 'frontend': 'backend';
if (is_array($cfg_cms['init'][$a_location])) {
foreach($cfg_cms['init'][$a_location] as $value) {
include_once $cfg_cms['cms_path'] .'plugins/'. $value;
}
}
if (is_array($cfg_client['init'][$a_location])) {
foreach($cfg_client['init'][$a_location] as $value) {
include_once $cfg_cms['cms_path'] .'plugins/'. $value;
}
}
Finde ich persönlich nicht gut! Ist mir zu speziell.
Ich denke ich sollte da ein Event abfeuern:
QUELLTEXT
include_once('inc/class.cms_event.php');
$event = new cms_event($val_ct);
$event->fire('sfstart', array());
$event = new cms_event($val_ct);
$event->fire('sfstart', array());
Finde ich eleganter!
So, nun meine Fragen:
1.) Denkt ihr auch so?
2.) Könnte sowas offiziell in die index.php einfließen?
3.) Wäre es nicht sinnvoll und schlüssiger den jetzigen autostart-Mechanismus durch ein Event zu ersetzen?
Tschüss
Tiggr (aka Marcus)