Neues Modul: GBFilePicker

Hilfe zu Modulen und Tags
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Neues Modul: GBFilePicker

Post by nicmare »

hey, du machst kein blödsinn. der filepicker erscheint! :-).
ich kann mich auch durch die ordner bewegen und im filebrowser bilder hochladen aber wenn ich eins auswähle, schließt der filepicker erwartungsgemäß aber es wird kein bild (wie in der demo) unter den buttons angezeigt. kriege aber auch keine JS fehler.
Aber der "Box1 Bild_GBFP_thumbnail_wrapper" ist leer. vermutlich liegt es daran dass der block "Box1 Bild" heißt. Leerzeichen ist nicht gut was :D
Habe das mal dann rausgenommen und siehe da, es geht. auch das löschen scheint zu gehen.
Jetzt wäre noch die Reihenfolge schön. Habe den Filepicker insgesamt drei mal im Template aufgerufen aber alle drei werden bei der Seitenbearbeitung am Ende angezeigt.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Neues Modul: GBFilePicker

Post by nicmare »

was mir noch auffällt:
wenn man ein bild gespeichert hat und möchte das nun ersetzen, dann geht das zwar und wird korrekt im frontend angezeigt aber im backend wird das alte nur gelöscht und das neue wird nicht angezeigt.
also nur ein schönheitsfehler…
Last edited by nicmare on Thu Sep 09, 2010 10:32 am, edited 1 time in total.
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

Leer- und Sonderzeichen im parameter "block" waren schon immer eine ganz schlechte Idee. Der Wert dieses Parameters sollte wie der Name einer Variable verstanden werden. Nicht als Beschriftung. Für Beschriftungen ist der Parameter "label".

Das wird vom Core auch ganz schlecht gehandelt.

Der Standard Inhaltstyp ersetzt die Leerzeichen im Blocknamen durch Unterstriche und speichert die Daten auch so in der DB bzw. lädt er sie auch so, um sie anzuzeigen. Im Frontend ersetzt er ebenfalls die Leerzeichen mit Unterstrichen und lädt diese Daten.
Ebenso beim {content_image} tag.

Der {content_module} tag tut das allerdings nicht. Er lädt die Daten so, wie sie im Blocknamen angegeben sind. Mit Leerzeichen.

Außerdem übergibt der Standard Inhaltstyp dem Modul zum Erstellen des Inputfeldes ebenfalls den Blocknamen mit Leerzeichen.

Wenn ich in der Datenbank nachschaue, was denn nun eigentlich gespeichert wurde, sehe ich, dass die Inhaltsblöcke alle doppelt gespeichert werden. Einmal mit Unterstrich und korrektem Inhalt und einmal mit Leerzeichen allerdings ohne Inhalt.

Je nachdem ob ich nun im FilePicker die Leerzeichen nochmal durch Unterstriche ersetze, funktioniert beim {content_modul} tag die Anzeige entweder nur im Backend oder nur im Frontend. Das dürfte allen Modulen so gehen, die diesen tag nutzen wollen.

Das und die Reihenfolge der Inputfelder scheint diesmal eindeutig ein Fehler im CMS zu sein und nicht im Filepicker. Der einfachste Weg wäre im Moment, einfach keine Leerzeichen im Parameter "block" zu verwenden.
Last edited by NaN on Thu Sep 09, 2010 12:15 pm, edited 1 time in total.
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

Neue Version 1.1 ist draußen.
Sind größtenteils nur kleinere Fehlerbehebungen.
Allerdings etwas umfangreichere Änderungen an der Funktion CreateFilePickerInput().
Für mehr Infos einfach einen Blick in Modulhilfe bzw. API Doc werfen.

Außerdem wurde der Parameter file_type in media_type geändert.

Es gibt derzeit noch ein Darstellungsproblem im IE7 bei dem ich noch nicht weiß ob und wie ich das beheben werde. Aus irgendeinem Grund sind beim IE plötzlich überall dort wo Hintergrundgrafiken oder Inputfelder sind "Löcher" im browser bei denen man das Backend durchsehen kann. Bei AdvancedContent war das nicht der Fall. Ich hatte jetzt keine Zeit/Lust mich wieder mit dem IE rumplagen zu müssen und genau zu schauen was ich alles geändert habe. Falls sich irgendjemand damit auskennt, kann er mir gerne unter die Arme greifen. (hängt wohl irgendwie mit dem opacity zusammen)
herrfuchs
New Member
New Member
Posts: 4
Joined: Tue Nov 02, 2010 8:24 am

Re: Neues Modul: GBFilePicker

Post by herrfuchs »

Hallo NaN,

Ich habe leider ein kleines Problem mit dem neuen FilePicker. Ich habe früher den Picker vom AdvancedContent Modul verwendet. Bei den Pfadangaben benötige ich Smarty-Code.

Code: Select all

block_type='image' mode='filepicker' smarty=true upload=true dir='images/Sidebar/:::page_alias:::'
Wie kann ich die selbe Funktionalität mit dem neuen FilePicker erreichen? Scheinbar unterstützt dieser kein Smarty.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am

Re: Neues Modul: GBFilePicker

Post by nicmare »

herrfuchs wrote:

Code: Select all

block_type='image' mode='filepicker' smarty=true upload=true dir='images/Sidebar/:::page_alias:::'
{capture assign=sidebarpath}images/Sidebar/{$page_alias}{/capture}
so müsste es doch gehen oder?

Code: Select all

block_type='image' mode='filepicker' smarty=true upload=true dir=$sidebarpath
herrfuchs
New Member
New Member
Posts: 4
Joined: Tue Nov 02, 2010 8:24 am

Re: Neues Modul: GBFilePicker

Post by herrfuchs »

Leider funktioniert das Ganze so nicht, da das ja trotzdem Smarty-Code ist und der FilePicker das nicht liest. Im Backend bekomme ich eine Fehlermeldung das das Verzeichnis nicht gelesen werden kann. Problem dabei ist das der FilePicker den Smarty-Code nicht auflöst.
Last edited by herrfuchs on Tue Nov 02, 2010 9:15 am, edited 1 time in total.
uniqu3

Re: Neues Modul: GBFilePicker

Post by uniqu3 »

herrfuchs wrote: Leider funktioniert das Ganze so nicht, da das ja trotzdem Smarty-Code ist und der FilePicker das nicht liest. Im Backend bekomme ich eine Fehlermeldung das das Verzeichnis nicht gelesen werden kann. Problem dabei ist das der FilePicker den Smarty-Code nicht auflöst.
Kann mir auch nicht vorstellen das es funktioneren könnte, denn {page_alias} tag ist ja frontend und nicht backend bezogenn, sprich smarty wird im template ausgeführt und nicht beim bearbeiten der Seite.
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

Ich verstehe das Problem.
Die Funktion, Smarty-Code auch im Backend auszuführen, habe ich im GBFilePicker nicht übernommen, weil das nicht seine Aufgabe ist. Der GBFilePicker parst nichts. Er zeigt nur das an, was er übergeben bekommt. Das Parsen des Templates bzw. das Übergeben der (verarbeiteten) Parameter an den GBFilePicker ist Aufgabe des Inhaltstypen. D.h. der Inhaltstyp muss, bevor er das Modul aufruft und die Parameter übergibt, selbst prüfen, ob die Werte vorher noch irgendwie verarbeitet werden müssen oder nicht. Der derzeit einzige mir bekannte Inhaltstyp, der dynamische Werte mit Hilfe von Smarty unterstützt, ist AdvancedContent.
D.h. GBFilePicker mit dynamischen Verzeichnissen sollte im Zusammenhang mit AdvancedContent so funktionieren:

Code: Select all


{content_module block="image" module="GBFilePicker" mode="browser" media_type="image" dir="images/Sidebar/:::page_alias:::" smarty=true}

Muss nochmal schauen, ob bei AdvancedContent auch die Parameter der {content_module} tags verarbeitet werden oder ob das nur bei den "normalen" {content} tags geschieht.
Könntest alternativ auch mal folgendes probieren:

Code: Select all


{content block="image" block_type="module" module="GBFilePicker" mode="browser" media_type="image" dir="images/Sidebar/:::page_alias:::" smarty=true}

Sollte im Prinzip das gleiche wie {content_module} ergeben.
Wichtig ist, dass Du den AdvancedContent Inhaltstypen verwendest.
Anderenfalls werden die Parameter exakt genau so übergeben wie sie da im Template stehen.

Das einzige Problem ist und bleibt allerdings, dass Du mit {page_alias} nicht weit kommen wirst, weil das nur dann existiert, wenn die Seite bearbeitet wird. Beim Erstellen einer Seite gibt es noch kein Alias und daher würde an dieser Stelle einfach "nichts" stehen. D.h. beim Erstellen einer Seite würde im Backend generell nur im Verzeichnis "images/Sidebar/" nach Bildern gesucht werden.
lume

Re: Neues Modul: GBFilePicker

Post by lume »

Hi, ich bin inzwischen an genau dem selben Problem angekommen wie hier diskutiert wird. All die schönen Konstruktionen, die früher 'zur guten alten Zeit' von AdvancedContent 0.5 mit dem eingebauten Filepicker möglich waren - (dem genialen Schalter smarty=true) - zum Dank. funktionieren mit der neuen Struktur nicht mehr.

Ich habe lange experimentiert und Code gelesen. Ich mache NaN keinen Vorwurf daraus, dass er für den GBFilePicker die smarty=true Fähigkeit nicht realisiert hat. {content_module ...} Aufrufe liefern anstelle der Variableninhalte nur den Variablennamen. Das hilft meistens nicht weiter. (@NaN - Wie hast du es überhaupt geschafft, die Parameter auszuwerten?)

Ich bin eigentlich für die Abspaltung des GBFilePickers aus dem AdvancedContent. Alleine schon, weil dieses Modul unglaublich hilfreich ist, wenn man eigene Module mit vernünftiger File- bzw. Imageupload Funktionalität ausstatten möchte. Ich habe auch absolutes Verständnis dafür, wenn Code nicht doppelt gepflegt wird. Dennoch war das alte AdvanceContent 0.5 Interface aufgrund der smarty Fähigkeiten leider besser.

Was wäre, wenn im neuen AdvancedContent die alte Syntax wiederbelebt würde. Zur Realisierung dieser Einbindung aber auf die API vom GBFilePicker zurückgegriffen wird. (Die API ist ja zum Glück schon da). Die geniale

Code: Select all

smarty=true
Technologie könnte wiederbelebt werden und der eigentliche Filepicker Code müsste weiterhin nur an einer Stelle gepflegt werden. Die neue/alte AdvancedContent Funktionalität stünde natürliche nur zur Verfügung, wenn beide Module gemeinsam installiert sind. Wer kein AdvancedContent braucht, kann den GBFilePicker ja immer noch über {content_module ...} einbinden. Wer keinen Filepicker braucht, hätte den Vorteil, dass er nur das (dann immer noch) schlankere AdvancedContent - ohne GBFilePicker einbinden muss.

Wenn ich nicht gerade Arbeit verteilen würde, klänge das in meinen Ohren nach einer super Lösung. Was sagst du - NaN dazu, schließlich bist du der einzige, der wirklich eine Vorstellung davon hat, wieviel Arbeit entstehtm wenn du das umsetztest, was ich gerade vorschlage?

beste Grüße
Ludger
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

Ich verstehe ehrlich gesagt nicht ganz was Du mit alter und neuer Syntax meinst.
Kannst Du mal ein komplettes Beispiel nennen?

Anstelle von {content block_type=image} muss eben nun {content_module module="GBFilePicker"} verwendet werden. Im Zusammenhang mit AdvancedContent kann man dann auch dynamische Parameter verwenden. Das Resultat sollte dann genau das gleiche sein.

Ob nun AdvancedContent mit eingebautem Filepicker oder AdvancedContent mit {content_module} Tag ist doch eigentlich Jacke wie Hose.

Das hier (AdvancedContent 0.6+)

Code: Select all


<img src="{uploads_url}/{content_module module='GBFilePicker' dir=':::blah:::' smarty=true}" />

macht das gleiche wie das hier (AdvancedContent 0.5)

Code: Select all


{AdvancedContent block_type="image" dir=":::blah:::" smarty=true}

Zugegeben, ersteres ist nicht ganz so elegant, aber dafür besser kompatibel zum Core.
Und darum ging es mir letztendlich: Bestmögliche Kompatibilität zu den Standardsachen.
Ich möchte dieses {AdvancedContent}-Ding auf lange Sicht gesehen wieder loswerden, sodass man alles ganz normal mit den {content}, {content_image} bzw. {content_module} Tags lösen kann.


(@NaN - Wie hast du es überhaupt geschafft, die Parameter auszuwerten?)
Das ist ganz leicht.
Wenn der Parameter smarty=true gesetzt ist, einfach jeden Parameter durchgehen, falls ein "::: ... :::" drin vorkommt, dieses mit { ... } ersetzen und mit der Module API Funktion ProcessTemplateFromData() von Smarty verarbeiten lassen.
Fertig.

Ich habe das übrigens unabhängig von AdvancedContent bereits (wieder) im GBFilePicker eingebaut (ich muss es nur noch im SVN einchecken - kommt dann in der nächsten Version). Sind schließlich nur ein paar Zeilen Code (und sehr nützlich).
So kann man dynamische Werte auch ohne AdvancedContent im GBFilePicker realisieren.
Last edited by NaN on Tue Nov 23, 2010 10:03 pm, edited 1 time in total.
lume

Re: Neues Modul: GBFilePicker

Post by lume »

Hi,

letztlich hast du in diesem Posting genau die Beispiele gebracht, die mich zwischenzeitlich am neuen GBFilePicker haben verzweifeln lassen. Ich habe mit GBFilePicker 1.1 ähnliche Versuche gemacht. War aber bisher scheinbar zum Scheitern verdammt.

Mein Erster Versuch das Problem zu heben hatte diese Form

Code: Select all

{capture assign='vblah'}{blah}{/capture}
<img src="{uploads_url}/{content_module module='GBFilePicker' dir=$vblah}"/>
ohne Erfolg - es tauchte lediglich '$vblah' als Teil des Pfadnamens auf.

Mein nächster Versuch war radikaler. Ich wollte versuchen die Variablenersetzung vorher durchzuführen. Etwa so:

Code: Select all

{capture assign='statement'}{literal}{{/literal}content_module module='GBFilePicker' dir={blah}{literal}}{/literal}{/capture}
{eval var=$statement}
Ich konnte mir das statement per {get_template_vars} erfolgreich anzeigen lassen. Aber dieser per {eval} eingebundene GBFilePicker wurde erst gar nicht im Backend angezeigt.

All dies, verbunden mit deinem Kommentar hier im Thread, dass du der Meinung bist, die smarty=true Fähigkeit des AdvancedContent Modules hätte im GBFilePicker eigentlich nichts zu suchen, hat mich zu der Annahme kommen lassen, die Nachrüstung wäre auf Basis des {content_module ...} Plugins wesentlich schwieriger, als du es jetzt beschrieben hast.
Entsprechend wollte ich das wieder in das Module verlegen, wo das Feature ja schon realisiert war.


Wenn die neuen GBFilePicker Versionen dieses Featuer jetzt auch haben, kann ich mit der neuen Syntax problemlos leben.

Ab welcher CMSms Version kann der neue GBFilePicker eingesetzt werden? Ich habe noch 1.8.2 er Installationen im Einsatz und wollte wegen der doch teilweise gravierenden Änderungen dort vorerst kein Umpade machen.

Gruß
Ludger

p.s. ich kann die neue GBFilePicker Variante kaum erwarten ...
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

So, ist schonmal im SVN.
Läuft ab Version 1.8.2.
Verwende da (noch) keine besonderen Funktionen aus der 1.9.
herrfuchs
New Member
New Member
Posts: 4
Joined: Tue Nov 02, 2010 8:24 am

Re: Neues Modul: GBFilePicker

Post by herrfuchs »

Hallo NaN,

ich bin gerade dabei die SVN-Version vom Filepicker zu testen. Lieder löst er immer noch keinen Smarty Code auf.

{content_module block='images_right' page_tab='Bilder' module='GBFilePicker' dir='images/Sidebar/:::page_alias:::' label='Sidebar Bilder' smarty=true}

Ich komme im Backend damit nur bis in den Ordner images/Sidebar nicht jedoch dahin wo mich das :::page_alias::: hinbringen sollte.
NaN

Re: Neues Modul: GBFilePicker

Post by NaN »

Wird denn einfach so ":::page_alias:::" ausgegeben, oder was steht an dieser Stelle?

Pagealias ist überhaupt eine ganz schlechte Idee.
Sowie alle seitenspezifischen Daten der Seite, die man gerade bearbeitet/erstellt.
Das habe ich auch schonmal im AdvancedContent Modul versucht zu erklären.

Beim Erstellen der Seite existiert noch garkein Alias.
Beim Bearbeiten der Seite vielleicht schon, jedoch kann dieses auch ganz einfach geändert werden.
Das Modul bekommt davon nichts mit bzw. erst nach dem Speichern und erneuten Laden der Seite.
Und schon stimmt der Pfad nicht mehr mit dem Alias überein bzw. wird beim erneuten Bearbeiten ein anderer Pfad angezeigt.
Last edited by NaN on Thu Nov 25, 2010 11:32 am, edited 1 time in total.
Locked

Return to “Module und Tags”