OFA Anyitems - Schalter / Radio Buttons

hgs

Quote from: astricia on November 12, 2018, 11:06:57 AM
Hey - ich habe mich noch nie als "Programmierer" gesehen... aber da ich es ja irgendwie geschafft habe, das OFA Anyitems zu fixen, habe ich das ganze gezippt und hier als Version 0.4 angehängt.

Danke
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

dbs

Hab mal reingeschaut, sieht gut aus.  (Y)
Falls später mal was nicht klappt, dann verbessern wir das noch.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Hey - ich habe mich noch nie als "Programmierer" gesehen... aber da ich es ja irgendwie geschafft habe, das OFA Anyitems zu fixen, habe ich das ganze gezippt und hier als Version 0.4 angehängt.

Fixes sind:
- Feldtypen Switch, Radio, Checkbox, Multiselect, Datepicker, Datetimepicker sind jetzt möglich
- Lightbox-Effekt für Thumbs und Images ist möglich (sofern eigenes Lightbox-Script im Template integriert ist)

Vielleicht hilft es ja dem einen oder anderen weiter. :-)

LG,
Astrid

Gast

Früher wurde im Forum immer öffentlich repariert. Wenn es gefallen hat, gab es eine neue Version, am Ende hatte jeder etwas davon. Dieser Geist ist in den letzten Jahren leider verloren gegangen - schade eigentlich

astricia

Ahh... danke, habs hingekriegt. Ein Lightbox-Script hatte ich im Template eh schon laufen, die include.php habe ich dementsprechend angepasst. Perfekt, was so ein bisschen Schlaf doch für einen klaren Kopf bringt... ;-)

dbs

Du befindest dich mit dem Snippet und dessen Ausgaben außerhalb vom OFA Einflussbereich. Die Lightbox arbeitet also nur auf Seiten wo OFA läuft.
In dem Snippet wurde einfach einiges an Code aus dem Modul übernommen damit es so ähnlich arbeiten kann. Bleibt aber halt so wenig Code, dass kein eigenes Modul daraus wird.

Der Bildlink wird auch in dem Snippet zusammengebaut, include.php in ca. Zeile 249. Da könntest du also eingreifen. Aber die gleichen Klassen wie im Modul bringen dir nichts, weil keine Lightbox darauf reagieren kann.

Also, das Snippet holt nur paar Daten aus der Datenbank und arbeitet mit seinem eigenen Code. Hat nichts weiter mit dem Modul am Hut.

Hättest du ein Snippet wie Colorbox, dass auf allen Seiten wirkt, bräuchtest du deine Links nur um class colorbox erweitern.
Könntest dann aber nicht von dort zum OFA Modul weiterleiten.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Naja, aber Anyitems benutzt ja die gleichen Variablen wie OFA ...

Um mal ganz konkret zu werden. Wenn ich bei OFA beim Aufruf ein [IMAGE] eintrage, gibt er dies wie folgt aus:
<a href="http://domain.tld/media/ofa/images/item1/bild1.jpg" rel="lightbox[image_1]" title=""><img src="http://domain.tld/media/ofa/images/item1/bild1.jpg" alt="" title="" class="mod_ofa_main_img_f" /></a>

Gebe ich dann in der include.php von Anyitems da [IMAGE] ein, so wird es lediglich wie folgt ausgegeben:
<img src="http://domain.tld/media/ofa/images/item1/bild1.jpg" alt="" title="" class="mod_ofa_main_img_f" />

Es fehlt also der Link drumherum und dieses rel="lightbox[image_1]"

Bei [THUMBS] sieht das ähnlich aus. Bei OFA sieht es so aus:
<a href="http://domain.tld/media/ofa/images/item1/bild2.jpg" rel="lightbox[image_2]" title=""><img src="http://domain.tld/media/ofa/thumbs/item1/bild2.jpg" alt="" title="" class="mod_termineingabe_main_thumb_f" /></a>

Bei Anyitems hingegen so:
<a href="http://domain.tld/pages/ofa/item1.php"><img src="http://domain.tld/media/ofa/thumbs/item1/bild2.jpg" alt="" title="" class="mod_ofa_main_thumb_f" /></a>

Hier wird also verlinkt - aber nicht zum Bild, sondern zur Detailseite (die im übrigen leer ist...) und das rel= fehlt ebenfalls.

Alle anderen Feldnamen (also [FIELD_1] etc.) kann ich ja bei Anyitems genauso einsetzen wie bei OFA. Warum also nicht [IMAGE] und [THUMBS]?

dbs

Ich versuch es anders. OFA ist ein Modul und bringt alles mit um zu funktionieren, inkl. Lightbox.
Anyitems ist ein Snippet, ein Stück Code, so gebaut, dass es Daten aus OFA auslesen und anzeigen kann.
Es bräuchte seine eigene eingebaute Lightbox oder eine globale Lightbox (die man halt für alle möglichen Seiten verwenden könnte).
Beispiel für globale sind Colorbox und Fancybox.

Die Colorbox gibts glaube sogar als Snippet, würde also bereitstehen, wenn ein Bild auftaucht mit <a class="colorbox"><img durch anyitems ...
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Quote from: dbs on November 08, 2018, 07:48:13 PM
Du bist wahrscheinlich vom vielen Fummeln etwas überlastet.  :-)
Bei Erweiterungen > Erweitert gibt's kei nModul zum Auswählen. Nur die 3 Checkboxen für Templates, Module, Sprachen und den Neuladen Button.

Hauptsache läuft.

Damit eine lightbox läuft brauchts meistens jQuery, Stückchen Lightboxcode, die Lightbox.js und evtl. die richtige Klasse am Bildlink.

Ahh... ja, ok, Modul-Nummer ist jetzt korrekt. :-) Und ja, bin etwas überlastet momentan.. ;-)

Mir ist schon klar, was es für die Lightbox braucht. Aaaber:
Bei OFA kann ich Bilder einfach über die Kürzel [THUMB] / [THUMBS] bzw. [IMAGE] / [IMAGES] darstellen. Das löst dann komplett zu dem entsprechenden Code auf. Und wenn ich im Backend den Haken bei "Lightbox aktivieren" gesetzt habe, sind die Bilder eben auch mit der Lightbox versehen.

Aber wenn ich diese Variablen in Anyitems übernehme, werden zwar die Bilder angezeigt, aber eben OHNE den entsprechenden Lightbox-Zusatz. Heißt, da fehlt irgendwas im Anyitems-Modul, was bei OFA drin steht.

Ist das so verständlich?

dbs

Du bist wahrscheinlich vom vielen Fummeln etwas überlastet.  :-)
Bei Erweiterungen > Erweitert gibt's kei nModul zum Auswählen. Nur die 3 Checkboxen für Templates, Module, Sprachen und den Neuladen Button.

Hauptsache läuft.

Damit eine lightbox läuft brauchts meistens jQuery, Stückchen Lightboxcode, die Lightbox.js und evtl. die richtige Klasse am Bildlink.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

OK - ich habe jetzt den Abschnitt über die "unserialized values" aus deiner v0.4 in meine include.php eingefügt - der Abschnitt war in der 0.3 nämlich deutlich kürzer und bezog sich nur auf die Date/Time Funktionen, nicht aber auf Switch, Radio, Checkbox und Multiselect.

Danach bekam ich eine Fehlermeldung, die sich auf die erste Zeile bezog, wo irgendeine Variable definiert wird... diese Zeile habe ich auskommentiert, und was soll ich sagen - es funzt! :-D Der Wert des Schalters wird jetzt wunschgemäß übergeben und somit der Button mit der entsprechenden Klasse ausgeblendet. Hervorragend!

Wenn jetzt noch jemand die Lightbox bei Anyitems aktivieren könnte....

LG,
Astrid

astricia

Also ich hab jetzt die Dateien des Moduls per FTP überschrieben, um auf die 0.3 zurückzugehen. Das Neu laden über Erweiterungen > Erweitert klappt leider nicht, weil das Modul da einfach nicht auftaucht in der Liste! (Genauso wie es beim Deinstallieren nicht auftauchte...).

Aber wenigstens funktioniert die Seite jetzt wieder. Auch wenn als Modul-Version weiterhin 0.4 angezeigt wird, obwohl es doch die 0.3 ist.

Allerdings ist das Switch-Schalter-Problem ja jetzt immer noch nicht gelöst.

Und ich habe noch ein weiteres Problem - die Lightbox-Funktion für [IMAGES] funktioniert ebensowenig in Anyitems.

Ich wäre euch unendlich dankbar, wenn das jemand lösen könnte - vor allem den Schalter!

LG,
Astrid

dbs

Huch, was für Mist.
Du kannst deine 0.3 Dateien da wieder reinladen und dann per Erweiterungen > Erweitert die Module neuladen.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Das Dumme ist, dass ich Anyitems nicht mal über Module -> Deinstallieren deinstallieren kann, um dann die 0.3 wieder neu zu installieren..... hiiiiiiilfe!

astricia

Ähhhh... die crasht meine Installation.

Es kommt folgender Fehler im Frontend:
There was an uncatched exception
syntax error, unexpected ''.(int)$section_id.'' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ')'
in line (141) of (/modules/oneforall_anyitems/include.php):

dbs

#4
Du kannst gern mal meine 0.4 versuchen.
Besonderheit ist, dass du header, loop, footer nun in einem extra Ordner findest und beliebig viele davon anlegen könntest.
In der Include oder da wo du das Snippet aufrufst kannst du durch $template = sagen welcher Ordner zu nehmen ist.

edit: Anhang im Rundordner abgeheftet
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Ich habe keinen Switch-Bereich in meiner include.php .... ????? Hatte Version 0.2 installiert, habe aber eben auf 0.3 geupdated. Ändert nichts - kein "switch".

dbs

Hallo, kann ich nicht bestätigen mit OFA 2.0.2.18 und oneforall_anyitems 0.3

In der include von anyitems im Bereich switch steht sowas
case 'switch':
     $pieces = array_key_exists(1, $unserialized) ? $a_options[0] : $a_options[1];


In meinem loop steht
<div class="mod_oneforall_anyitems_field_19 [FIELD_19]">[FIELD_19]</div>

bekomme ja oder nein ausgegeben
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Hallo zusammen,

hab gerade einen Bug im Anyitems-Modul für OFA entdeckt. Bei Feldern, die im csv-Format angelegt werden (also z.B. Felder vom Typ Schalter oder Radio-Button), wird der Inhalt mit Anyitems nicht korrekt übergeben.

Konkret: Ich habe ein Schalter-Feld in einem OFA-Modul, das man anklicken kann, wenn ein bestimmter Button NICHT gezeigt wird. Das Feld heißt "Button anzeigen? und hat die Ausprägungen "ja,nein" (da ja der Standard ist und nein nur selten vorkommt...). In der Ausgabe habe ich ein <span class="[FIELD_12]"></span> um den Button herum und im CSS habe ich ".nein { display: none; } definiert.

Beim Aufruf der Seite selbst, auf der sich das Modul befindet, klappt das auch wunderbar. Aber wenn ich einen Teil der OFA-Einträge mit Anyitems auf einer anderen Seite aufrufen möchte, dann wird statt class="nein" nur class=" 1" ausgegeben und der Button erscheint trotz alledem.

Habe das ganze statt mit Schalter auch mit Radio-Buttons probiert - hat den gleichen Effekt.

Woran liegt das und kann das bitte jemand fixen? Daaaaanke!

LG,
Astrid