Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Modulerstellung mit externen Daten
Forum Sefrengo.org > Allgemeine Foren > Entwicklung
FireFlyer
Hallo,
ich habe angefangen ein Modul zu schreiben, welches den JW-Player einbindet. Klappt auch schon, aber ich bräuchte Hilfe in zwei Punkten:

- ich muss Daten für den Player auf den Server speichern (JS, CSS und Player-Dateien) Wo sollten diese am besten untergebracht werden?
- ich habe eine Verzeichnis und Dateiauswahl im Modul integriert. Bei der Ausgabe dieser Variablen bekomme ich die ID des Ordners, bzw. der Datei zurück. Gibt es hierfür schon eine Funktion, damit ich die beiden zu PFAD/DATEI zusammenführen kann und an das Skript übergeben kann?

mvsxyz
1. Bisher wurde es meines Wissens immer so gehandhabt, dass das Modul (cmsmod-Datei) mit den externen Ressourcen als ZIP zum Download angeboten wird. Diese Ressourcen kannst du dann so aufteilen:

/cms/mod/jwplayer/
/cms/css/
/cms/js/

Alternativ kannst du auch die CSS- und JS-Dateien im Modulverzeichnis unterbringen.

2. Dafür gibt es die API-Klasse DbFile, die du wie folgt benutzen kannst:

QUELLTEXT
$_sf_file =& sf_factoryGetObjectCache('ASSETS', 'DbFile');
$_sf_file->loadByIdupl(<DEINE_IDUPL>);
$_sf_file->getHttppathRelative();
// oder
// $_sf_file->getHttpDirpathRelative().$_sf_file->getFilename();
FireFlyer
Danke für die flotte Antwort. Werd mich zwar nicht mehr heute drüber machen, aber wenn der Geburtstag heute nicht zu heftig wird, dann werde ich morgen dran schrauben!
FireFlyer
Bekomm das leider nicht gebacken mit der API, kannst mir weng helfen?

Fehler:
Fatal error: Call to a member function getHttpDirpathRelative() on a non-object

QUELLTEXT
<CMSPHP>
$width=MOD_VALUE[10];
$height=MOD_VALUE[15];
$path=MOD_VALUE[30];
$file=MOD_VALUE[35];

echo "PFAD-ID: ".$path."<br/>";
echo "DATEI-ID: ".$file;

//$_sf_file->getHttpDirpathRelative(5);
//$_sf_file->getFilename($file);

$_sf_file->getHttpDirpathRelative(5);

print_r($_sf_file);

$myTplVars['player'] = '{player}';

$myPlayer['player'] = "PLAYER-VARIABLEN sind hier";

$myTpl = "MOD_VALUE[5]";
$myTpl = str_replace($myTplVars, $myPlayer, $myTpl);

echo $myTpl;

</CMSPHP>
mvsxyz
Du hast den Aufruf aus meinem Beispiel nicht korrekt übernommen. Schau dir bitte das Beispiel nochmal an und vergleiche deine Zeilen wie du $_sf_file initialisierst und verwendest.
FireFlyer
OK, da hatte ich vor lauter weiter testen einen Bock drin. Hast auf jeden Fall recht, dass es klappt. Nun werden mir anscheinend alle Objekte zu dieser Datei angezeigt!

Auszug daraus:
QUELLTEXT
[filename] => video.flv, usw.


Wie kann ich jetzt nur das eine Objekt [httppath_absolute] ausgeben oder in eine Variable zur Weiterverarbeitung schreiben?

Erklär mir bitte deinen Code:
QUELLTEXT
$_sf_file =& sf_factoryGetObjectCache('ASSETS', 'DbFile');     Initialisierung?
$_sf_file->loadByIdupl(<DEINE_IDUPL>);      auf die bestimmte Datei und deren Objekte zugreifen?
$_sf_file->getHttppathRelative();      hier sollte nur der relative Pfad ausgeben werden?

bkm
echo $_sf_file->getHttppathRelative();
FireFlyer
Danke bkm das klappt so!

Kann mir trotzdem jemand meine Vermutung aus der Code-Box bestätigen oder berichtigen. Muss ja was draus lernen! wink.gif
mvsxyz
QUELLTEXT
// Deklaration der Variable $_sf_file und Initialisierung mit dem API-Objekt DbFile
$_sf_file =& sf_factoryGetObjectCache('ASSETS', 'DbFile');

// Laden der Datei mit der IDUPL aus der Datenbank -> Variable $_sf_file ist folglich mit den Daten der (einen) Datei belegt
$_sf_file->loadByIdupl(<DEINE_IDUPL>);

// Baut den relativen Pfad aus dem Pfad und Dateinamen zusammen und gibt dieses mit return zurück -> kann in Variable gespeichert oder mit echo ausgegeben werden
$_sf_file->getHttppathRelative();
bkm
ZITAT(bkm @ Sun. 11. April 2010, 20:38) *
echo $_sf_file->getHttppathRelative();

Vielleicht langt auch schon in Deinem Fall getHttppathAbsolute ohne es erst wieder neu zubauen.
FireFlyer
Kann sein, aber never change a running Sefrengo Modul smile.gif

Muss ich mal probieren, bin froh, dass es so schon geklappt hat. Jetzt warte ich erst mal auf Feedback zum Modul.

Danke für die stetige Unterstützung!!!
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.