Hilfe - Suche - Mitglieder - Kalender
Vollansicht: ContentAPI v00.01.00
Forum Sefrengo.org > Downloads > Alpha, Beta ... Vorabversionen
mistral
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:
  • \backend\API\PAGE\class.SF_PAGE_ContentCollection.php
  • \backend\API\GUI\class.SF_GUI_ContentStylerHTML.php
  • \backend\API\GUI\class.SF_GUI_ContentStylerPlain.php

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

mvsxyz
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.
mistral
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
mvsxyz
Ja, danke. Wenn ich weitere Fragen habe, dann werde ich melden.
monkderhonk
kann ich damit auch content ändern?
lg, monk
mistral
nein
eSynth
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ß
mistral
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?
andi
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
gunwalt
Sollte dieser Threads nicht ins Archiv? Die Features sind doch in der 1.41 enthalten.
andi
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
Taturo
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
bkm
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');
Taturo
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;
    }
bkm
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.
saschapi
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
saschapi
Stelle gerade fest, dass andere dieses Problem auch schon hatte: Thread

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!
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.