Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Alpha, Beta ... Vorabversionen _ ContentAPI v00.01.00

Geschrieben von: mistral Wed. 29. August 2007, 23:19

Hallo zusammen

Die Folgende API-Erweiterung bietet die Möglichkeit auf allen Inhalt (der cms_content-Tabelle) zuzugreifen.
Der Inhalt kann mit der Hilfe der ConentSylerAPI analog der cms:tags ausgegeben werden.

Diese API besteht aus folgenden Klassen:


Diese API wird für einige Module benötigt und wird in erweiterter Form in zukünftigen Version von Sefrengo enthalten sein.

Diese ContentAPI ist ein Alpha-Version. Bis zur offiziellen Integration in das Core sind noch Änderungen an der API Schnittstelle möglich.
Die Dateien müssen in das Verzeichnis backend/API/... (PAGE/GUI) kopiert werden.

Gruss
Mistral



 ContentAPI_v00_01_00.zip ( 10.63KB ) : 155
 

Geschrieben von: mvsxyz Thu. 30. August 2007, 09:16

Hallo Mistral,
kannst du bitte kurz beschreiben, wie man auf diesen Teil der API zugreift und Content aus der Tabelle holt? Das würde schon weiterhelfen. smile.gif
Danke.

Geschrieben von: mistral Thu. 30. August 2007, 13:48

Ein gewisser Teil ist bei den verschiedenen Metoden beschrieben.
Hier ein kurzes Beispiel der Anwendung:

QUELLTEXT
// Object erzeugen
$_sf_content =& sf_factoryGetObjectCache('PAGE', 'ContentCollection');
// Styler definieren wenn die Ausgabe wie im Core gewünscht wird.
// Wenn kein spezifischer Styler definiert ist erfolgt die Ausgabe des Inhalts immer so wie die Daten in der DB stehen.
$_sf_content->setStyler('ContentStylerHTML');
// Seite von welcher der Inhalt geladen werden soll
$_sf_content->setIdside($modtemp['idside']);
// Container von welchem der Inhalt geladen werden soll;
// Wenn keine Container angegeben wird, werden alle Inhalte der Seite geladen und
// der entsprechden Container muss in der get-Funktion angegeben werden.
$_sf_content->setContainer($modtemp['container']);
// Daten aus der DB laden
$_sf_content->generate();

// Ausgabe der Daten.
// Hier von id=2 und der ersten Wiederholung der textarea.
echo $_sf_content->getTextarea('',2,1);

// Im ersten Parameter können die Möglichkeiten der cms:tags als Array verwendet werden.
// Allgemein: array('Parameter1'=>'Wert1', 'Parameter2'=>'Wert2');
// Ausgabe der Bildbeschreibung von der id=3 und der ersten Wiederholung des Bildes
$config['mode'] = 'desc';
echo $_sf_content->getImagea($config,3,1);

// Ausgabe vom Url des Links von der id=3 und der ersten Wiederholung des Bildes
$config['mode'] = 'url';
echo $_sf_content->getImagea($config,3,1);


Reicht Dir das für den Anfang?

Gruss
Mistral

Geschrieben von: mvsxyz Thu. 30. August 2007, 20:29

Ja, danke. Wenn ich weitere Fragen habe, dann werde ich melden.

Geschrieben von: monkderhonk Sat. 2. February 2008, 19:55

kann ich damit auch content ändern?
lg, monk

Geschrieben von: mistral Sat. 9. February 2008, 15:19

nein

Geschrieben von: eSynth Mon. 2. June 2008, 14:47

Hey,

hat sich in der Entwicklung noch was Neues getan? Ich verzweifle langsam wacko.gif

Ich muss nämlich aus einem externen Script Datenfelder aus Sefrengo auslesen und umformatiert darstellen. Über den rohen Datenzugriff über MySQL wird man ja wahnsinnig.

Gruß

Geschrieben von: mistral Mon. 2. June 2008, 17:38

ZITAT(eSynth @ Mon. 2. June 2008, 15:47) *
Hey,

hat sich in der Entwicklung noch was Neues getan? Ich verzweifle langsam wacko.gif

Ich muss nämlich aus einem externen Script Datenfelder aus Sefrengo auslesen und umformatiert darstellen. Über den rohen Datenzugriff über MySQL wird man ja wahnsinnig.

Gruß

welche Funktionen fehlen Dir, damit du dies nicht mit den vorhanden Funktionen der ContentAPI machen kannst?

Geschrieben von: andi Tue. 8. July 2008, 17:13

schön wäre es noch, in der datei class.SF_GUI_ContentStylerHTML.php das border in zeile 429 zu entfernen:

QUELLTEXT
// Ausgabe image - Frontend
        $mod = sprintf("<img src=\"$mod_url\"%s%s%s ". $css['fullstyle'] ." border=\"0\" />", ($mod_descr != '') ? ' alt="'.$mod_descr.'" title="'.$mod_descr.'"' : " alt=\"\"", ($pic_width) ? ' width="'.$pic_width.'"' : '', ($pic_height) ? ' height="'.$pic_height.'"' : '');
        return $mod;


gruss andi

Geschrieben von: gunwalt Wed. 20. August 2008, 16:11

Sollte dieser Threads nicht ins Archiv? Die Features sind doch in der 1.41 enthalten.

Geschrieben von: andi Wed. 20. August 2008, 18:29

mh, finde ich nicht. schliesslich arbeitet noch lange nicht jeder mit 1.4.1. wenn, dann eine bereinigte version, sofern das nötig ist, veröffentlichen.

gruss andi

Geschrieben von: Taturo Mon. 24. November 2008, 23:07

Hallo,
ich habe mal eine Verständnisfrage zur ContentAPI, da meine php Kenntnisse eher mau sind. Die Formatierung des Output wird ja über die Classes ContentStylerHTML, ContentStylerPlain etc geregelt. In den Modulen, die die ContentAPI verwenden, ist der Styler meist angegeben, wenn nicht, wird der Text so übernommen, wie er in der Datenbank steht.
Ich hoffe, das habe ich soweit richtig verstanden.

Ich habe jetzt den ContentStylerHTML so modifiziert, dass der Text des wysiwyg ohne Formatierung ausgegeben wird. Das macht natürlich auf Dauer wenig Sinn, weil ContentStylerHTML von mehreren Modulen genutzt wird, die dann nicht mehr richtig funktionieren.

Ich hatte gehofft, ich kann die modifizierte Class einfach unter einem anderen Namen abspeichern und im gewünschten Modul auf diese verweisen, aber das geht nicht, da gibts eine Fehlermeldung.

Muss ich die neue Class noch irgendwo anders eintragen oder bin ich total auf dem Holzweg und meine Herangehensweise ist grundsätzlich falsch?

Gruss,
Andreas

Geschrieben von: bkm Tue. 25. November 2008, 10:38

ich habe da keine fm, wenn du deine neue klasse in der api=>gui ablegst.
dieser dann natürlich einen anderen namen gibst und im modul setzt.

ZITAT
$_sf_content->setStyler('ContentStylerPDF');

Geschrieben von: Taturo Tue. 25. November 2008, 12:32

Hallo bkm,

habe es gerade nochmal probiert: wenn ich die class.SF_GUI_ContentStylerHTML.php umbenenne in class.SF_GUI_ContentStylerTEXT.php und im Modul mit dem neuen Namen verbinde kommt

QUELLTEXT
Fatal error: Cannot instantiate non-existent class: sf_gui_contentstylertext in /homepages/1/d66620245/htdocs/backend/API/API/class.SF_API_ObjectFactory.php(322) : eval()'d code on line 1


Die FM bezieht sich wohl hier drauf
QUELLTEXT
function SF_API_ObjectFactory($api_path, &$object_store) {
        $this->api_path = $api_path;
        $this->object_store = &$object_store;
    }

Geschrieben von: bkm Tue. 25. November 2008, 12:44

wie oben schon geschrieben, benutze auch extra klassen und habe die fm nicht.
vll. hängste deine class.SF_GUI_ContentStylerTEXT.php mal hier an <<das mal jemand schauen kann>>
ob der fehler vll. auch bei ihm kommt.

Geschrieben von: saschapi Fri. 7. August 2009, 16:56

Wenn ich mir eine URL von einem Image mit der ContentAPI heraushole bekomme ich immer die interne CMS kurzversion. Wenn ich <?php ?> nutze geht das natürlich, weil dann das ganze gechached wird. Aber ich möchte gerne <CMSPHP> </CMSPHP> nutzen um auch änderungen immer direkt am Start zu haben.

Gibt es eine Möglichkeit, dass mir nicht cms://idfile=5 sondern direkt die URL ausgegeben wird? Oder kann ich aus der CMS URL irgendwie die URL machen?

LG Sascha

Geschrieben von: saschapi Sun. 9. August 2009, 10:46

Stelle gerade fest, dass andere dieses Problem auch schon hatte: http://forum.sefrengo.org/index.php?showtopic=1147&hl=cms://idfile

Wie gesagt, wenn das Php gecached wird gehts, dann bekommt man aber halt nicht alle Veränderungen mit sad.gif

EDIT: Alles klar mit "$_sf_content->setStyler('ContentStylerHTML');" gehts smile.gif Supi!

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