Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Entwicklung _ Class Include

Geschrieben von: Chregu Thu. 31. May 2007, 17:22

Hallo Zusammen

Kann mir jemand sagen, wie ich am einfachsten einen Include von den Standardklassen von Sefrengo in meine neuen Pluginklasse mache?
Danke für die Hilfe.

gruss
chris

Geschrieben von: bjoern Fri. 1. June 2007, 12:09

Also die API Objekte kannst Du so ansprechen (Im Testfall hier wird die WebRequest- Klasse geladen):

$sf_wr =& $GLOBALS['sf_factory']->getObject('HTTP', 'WebRequest');
$extracted = $sf_wr->getVal('testval');

Wenn Du den Sefrengokern in ein vom komplett von Sefrengo losgelöstes Plugin einbinden willst, musst Du die Datei "backend/inc/inc.init_external.php" einbinden. Damit bindest Du den Core in Deine Anwendung ein.

Geschrieben von: duffy Sun. 11. November 2007, 20:21

ZITAT(bjoern @ Fri. 1. June 2007, 12:09) *
$sf_wr =& $GLOBALS['sf_factory']->getObject('HTTP', 'WebRequest');
$extracted = $sf_wr->getVal('testval');


Basierend darauf habe ich versucht die ID des Rootordners meines aktuellen Ordners auszugeben und bin leider gescheitert. Kann mir einer sagen wo der Fehler liegt:

Im Layout habe ich folgende Ausgabe gemacht:
CODE
<CMSPHP>
$sideInfo =& $GLOBALS['sf_factory']->getObject('PAGE', 'Catinfos');
echo $sideInfo->getRootParent($idcat);
</CMSPHP>


Die Id die mir zurück gegeben wird, ist immer die aktuelle $idcat, obwohl es ein Ordner ist, der nicht auf der obersten Ebene liegt. Dann habe ich mir innerhalb des Objekts $sideInfo mal das Array $this->data['data'] ausgegeben und dieses war leer. Wird das Objekt nicht korrekt initialisiert?

Temporäre Lösung war dann eine eigene Funktion: (hier mit Rückgabe des Namens des Rootordners)
CODE
function getRootName($id)
{
global $con_tree;
if($con_tree[$id]['parent'] != "0") return getRootName($con_tree[$id]['parent']);
return $con_tree[$id]['name'];
}

Geschrieben von: bjoern Sun. 11. November 2007, 21:05

Bevor Du die Catinfoklasse nutzen kannst, mußt Du zumindest die Methode generate() ausführen, damit der Baum überhaupt erst generiert wird. Es gibt verschiedene set Methoden (z.B. Rechte prüfen ja/ nein), womit das Ergebnis eingeschränkt werden kann.

Im System existiert das globale Objekt $SF_catinfos . Ich empfehle darauf die Abfrage zu machen. Das Objekt ist schon so konfiguriert, das die Backend (dort werden immer alle Seiten angezeigt, Backendrechte werden berücksichtigt) und Frontend (nur Onlineseiten werden angezeigt, Frontendrechte werden geprüft) spezifischen Unterschiede berücksichtigt werden.


Geschrieben von: duffy Sun. 11. November 2007, 23:46

Ah Klasse.

generate() würde ja noch mal einen Datenbankzugriff mehr bedeutet, aber die Lösung mit $SF_catinfos ist natürlich Klasse. Danke!

Gibt es eigentlich eine Übersicht über die vorhandenen globalen SF-Objekte ohne $GLOBALS durchzuschauen?

Geschrieben von: smail Mon. 12. November 2007, 00:00

ZITAT
Gibt es eigentlich eine Übersicht über die vorhandenen globalen SF-Objekte ohne $GLOBALS durchzuschauen?


Ich hab es zwar nicht ganz genau im Kopf, aber ich meine, dass Modul Info gibt da alle Möglichkeiten aus. Es ist in der 1.4 final als Standard mit dabei, Du musst es nur aus dem Repository importieren.

Gruß
Jan



Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)