Contao-Camp 2024
Ergebnis 1 bis 35 von 35

Thema: Element-Filter für Contao

  1. #1
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    645
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard Element-Filter für Contao

    Hi,

    der liebe Kamil (Codefog) war so nett, mir eine kleine, ganz einfache Filter-Extension zu programmieren, die wir auch der Community zur Verfügung stellen möchten:
    https://github.com/codefog/contao-elements-filter

    Viele Worte braucht man darüber nicht verlieren, die Funktionsweise ist auch sauber auf GitHub dokumentiert. In den Artikeleinstellungen können über den MultiColumnWizard Filter gesetzt werden, die wiederum den im Artikel enthaltenen Inhaltselementen per Checkbox zugewiesen werden können.

    Ich wünsche euch viel Spaß damit und bin mir sicher, dass das der ein oder andere ebenfalls gut gebrauchen kann

    VG Kim

  2. #2
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Gibts dafür einen Demolink? Hab es noch nicht ganz verstanden

    Sprich ich kann in einem Artikel jedes Inhaltselement einer "kategorie" zuweisen und über diesen Filter dann ein-/ausblenden?

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Werden die Elemente per Ajax nachgeladen, oder sind alle Elemente bereits im FE vorhanden? Wäre wichtig zu wissen, falls die Elemente sehr umfangreich sind (große Bilder...).
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  4. #4
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    645
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Gibts dafür einen Demolink? Hab es noch nicht ganz verstanden
    Meine Seite für diesen Anwendungsfall ist leider noch nicht live, aber es handelt sich um sowas hier:
    http://body-joy.de/trainer/

    Theoretisch auch ein Portfolio-Filter, nur eben nicht mit News gebaut, sondern für Artikel.

  5. #5
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    645
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Werden die Elemente per Ajax nachgeladen, oder sind alle Elemente bereits im FE vorhanden? Wäre wichtig zu wissen, falls die Elemente sehr umfangreich sind (große Bilder...).
    Per Default sind erst mal alle Sichtbar, daher wird nichts nachgeladen, lediglich per JS gefiltert.

  6. #6
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Kim,

    hab das Modul gerade mit einer 3.5.25er Installation getestet und jetzt geht leider nix mehr.
    Die Fehlermeldung lautet
    Code:
    Warning: in_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 140
    Hast Du das schon gehabt?

    Viele Grüße
    Hella
    Mitglied des Contao User Treffen München
    Aktuelle Termine erfährst Du immer unter www.contao-bayern.de
    Komm' doch mal vorbei!

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Ist das die gesamte Fehlermeldung? Wie hast du die Extension installiert?

  8. #8
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo spooky,

    ich hab sie komplett gelöscht und versuche es bei Gelegenheit noch mal. Heute wird das eher nichts mehr.

    Gruß
    Hella
    Mitglied des Contao User Treffen München
    Aktuelle Termine erfährst Du immer unter www.contao-bayern.de
    Komm' doch mal vorbei!

  9. #9
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von fusch Beitrag anzeigen
    Hallo Kim,

    hab das Modul gerade mit einer 3.5.25er Installation getestet und jetzt geht leider nix mehr.
    Die Fehlermeldung lautet
    Code:
    Warning: in_array() expects parameter 2 to be array, null given in system/modules/core/library/Contao/System.php on line 140
    Hast Du das schon gehabt?

    Viele Grüße
    Hella

    Hallo,

    hatte bei einem Test die selbe Fehlermeldung. Bei einer anderen Installation lief es ohne Probleme, dort war allerdings auch Changelanguage mit seinen diversen Abhängigkeiten ( _autoload, haste, NamespaceClassLoader ) installiert.

    Nachdem Changelanguage auch auf der nicht funktionierenden Installation installiert wurde, funktionierte aus auch dort.

    Ich denke, das es neben multicolumnwizard eine weitere Abhängigkeit für den elements-filter notwendig ist, ohne dem weiter auf dem Grund gegangen zu sein.

    Ansonsten ganz nett, wäre vielleicht wünschenswert, wenn man den Filter auch an beliebiger Stelle als Modul oder Contentelement einfügen könnte, so wird er stehst am Anfang des Artikels eingefügt.

    MfG


    EDIT => Namespace Class Loader behebt das Problem -> https://contao.org/de/erweiterungsli...r/reldate.html
    Geändert von NetMediaWork (01.04.2017 um 11:45 Uhr)

  10. #10
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    645
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Habt ihr über Composer oder manuell installiert? Falls es manuell war, habt ihr an alle Abhängigkeiten gedacht?

    Fehlermeldungen und Feature-Wünsche könnt ihr gerne unter https://github.com/codefog/contao-el...-filter/issues einbriefen. Ich hab die Erweiterung selbst bezahlt und so konfiguriert, wie ich sie brauche, nämlich als reinen, kleinen Elementfilter. Wie sie sich weiterentwickelt, ist der Community überlassen.
    Geändert von k-webdesign (02.04.2017 um 12:19 Uhr)

  11. #11
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von k-webdesign Beitrag anzeigen
    Habt ihr über Composer oder manuell installiert? Falls es manuell war, habt ihr an alle Abhängigkeiten gedacht?.
    Alles gut, man muss halt nur beachten, das das der Element-Filter nicht nur Multicolumnwizard, sondern auch NamespaceClassLoader als Abhängigkeit voraussetzt und diese Extension ebenfalls installiert wurde.

    Ich hab manuell installiert in 3.5.25 und 4.3.7 managed, inwieweit das bei der Installation über Composer berücksichtigt wird, weiss ich nicht, nutze ich nicht.
    Geändert von NetMediaWork (02.04.2017 um 12:34 Uhr)

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Zitat Zitat von NetMediaWork Beitrag anzeigen
    Ich hab manuell installiert in 3.5.25 und 4.3.7 managed, inwieweit das bei der Installation über Composer berücksichtigt wird, weiss ich nicht, nutze ich nicht.
    Über Composer werden Abhängigkeiten natürlich automatisch mit installiert. Daher musst du dich auch immer selbst um alle Abhängigkeiten kümmern, wenn du eine Extension nicht über das Extension Repository oder die Paketverwaltung installierst.
    Geändert von Spooky (02.04.2017 um 18:44 Uhr)

  13. #13
    Contao-Fan
    Registriert seit
    29.07.2010.
    Beiträge
    516

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Über Composer werden Abhängigkeiten natürlich automatisch mit installiert. Daher musst du dich auch immer selbst um alle Abhängigkeiten kümmern, wenn du eine Extension nicht über das Extension Repository oder die Paketverwaltung installierst.
    Sorry, das ich mich zu dem Problem von fusch geäussert habe und lediglich nach der Github - Installation/Minimum requirements gegangen bin.

    P.S. Natürlich konnte ich mir nicht verkneifen, das ganze auch noch mal über den Composer zu installieren ... *Über Composer werden Abhängigkeiten natürlich automatisch mit installiert*

    Auch da gibt es die Fehlermeldung, weil eben der terminal42/contao-namespace-class-loader natürlich nicht mit installiert wird und auch als Abhängigkeit nicht aufgeführt ist und somit zuerst installiert werden sollte ... auf den Installationen wo es auf Anhieb funktioniert, wird bereits durch eine andere Extension dieser mitinstalliert worden sein bsw. Changelanguage.
    Geändert von NetMediaWork (03.04.2017 um 01:46 Uhr)

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.897
    Partner-ID
    10107

    Standard

    Wenn du die Extension über Composer installierst wird die NamespaceClassLoader Extension auch nicht benötigt, da dann der Autoloader von Composer benutzt wird.

    Dass da trotzdem eine Fehlermeldung kommt müsste genauer Analysiert werden.
    Geändert von Spooky (03.04.2017 um 08:13 Uhr)

  15. #15
    Contao-Fan Avatar von k-webdesign
    Registriert seit
    07.06.2010.
    Ort
    Karlsruhe
    Beiträge
    645
    Partner-ID
    5911
    User beschenken
    Wunschliste

    Standard

    Könnt ihr bitte testweise mal den develop-Branch installieren? Kamil hat was geändert, aber weder er noch ich haben gerade die Zeit um es wirklich zu testen :s

  16. #16
    Contao-Fan Avatar von mandrake
    Registriert seit
    19.06.2009.
    Ort
    Düsseldorf
    Beiträge
    461

    Standard

    Beim aktuellen DEV Branch funktioniert die Installation - im Gegensatz zur 1.0.1 Version - problemlos.

  17. #17
    Contao-Fan Avatar von mandrake
    Registriert seit
    19.06.2009.
    Ort
    Düsseldorf
    Beiträge
    461

    Standard

    Zwar werden bei der Installation vom DEV Branch immerhin die DB Tabellen eingerichtet (was bei der 1.0.1 Version nicht der Fall ist) aber bei Aufruf eines Artikels geht dann nichts mehr.

    Code:
    [28-May-2017 08:54:48 Europe/Berlin] 
    PHP Warning: in_array() expects parameter 2 to be array, null given in /var/www/clients/client1/web24/web/system/modules/core/library/Contao/System.php on line 140
    #0 [internal function]: __error(2, 'in_array() expe...', '/var/www/client...', 140, Array)
    #1 /var/www/clients/client1/web24/web/system/modules/core/library/Contao/System.php(140): in_array('getInstance', NULL)
    #2 /var/www/clients/client1/web24/web/system/modules/core/drivers/DC_Table.php(206): Contao\System->import('ElementsFilter\\...')
    #3 /var/www/clients/client1/web24/web/system/modules/core/classes/Backend.php(408): Contao\DC_Table->__construct('tl_content', Array)
    #4 /var/www/clients/client1/web24/web/system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('article')
    #5 /var/www/clients/client1/web24/web/contao/main.php(20): Contao\BackendMain->run()
    #6 {main}
    
    [28-May-2017 08:54:48 Europe/Berlin] PHP Fatal error:  Class 'ElementsFilter\EventListener\ContentDataContainer' not found in /var/www/clients/client1/web24/web/system/modules/core/library/Contao/System.php on line 140
    [28-May-2017 08:54:50 Europe/Berlin] 
    PHP Warning: in_array() expects parameter 2 to be array, null given in /var/www/clients/client1/web24/web/system/modules/core/library/Contao/System.php on line 140
    #0 [internal function]: __error(2, 'in_array() expe...', '/var/www/client...', 140, Array)
    #1 /var/www/clients/client1/web24/web/system/modules/core/library/Contao/System.php(140): in_array('getInstance', NULL)
    #2 /var/www/clients/client1/web24/web/system/modules/core/drivers/DC_Table.php(206): Contao\System->import('ElementsFilter\\...')
    #3 /var/www/clients/client1/web24/web/system/modules/core/classes/Backend.php(408): Contao\DC_Table->__construct('tl_content', Array)
    #4 /var/www/clients/client1/web24/web/system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('article')
    #5 /var/www/clients/client1/web24/web/contao/main.php(20): Contao\BackendMain->run()
    #6 {main}
    Zudem werden bei der Deinstallation der Erweiterung die DB Tabellen nicht gelöscht, sodass man dies manuell übernehmen müsste.

    Aktuell ist vom Einsatz der Erweiterung daher leider nur abzuraten.

  18. #18
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Hat dies schon jemand mit der aktuellen Contao Version getestet?

    Habe darüber hinaus gerade eine GitHub Anfrage zwecks Unterstützung von filterizr (Open Source) gesetzt.

    Ansonsten:
    Ich würde gerne diese Open Source Lösung einsetzen. Würde generell ja auch ohne Erweiterung möglich sein.
    Allerdings benötigt man halt hierzu wieder die HTML5 Data Attribute.

    Bis dato hatte ich diesbezüglich dies mit RegEx Abfragen im Template gelöst siehe:
    https://community.contao.org/de/show...l=1#post501098
    Blöd hierbei ist, das man dann f. versch. Inhalselemente die Templates anpassen muß.

    Gerade gefunden auch: https://extensions.contao.org/?q=con...ributes-bundle

    Evtl. habt Ihr diesbezüglich noch weitere, elegante Lösungen ...?
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  19. #19
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    @Franko wir haben die Erweiterung von Kamil erfolgreich in eine 4.9er im Einsatz: https://sportreisebuero.de/familien-...ientoerns.html


    Gesendet von iPhone mit Tapatalk

  20. #20
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Sorry, hatte diese Antwort schon heute mittag geschrieben und vergessen abzuschicken

    Zitat Zitat von Franko Beitrag anzeigen
    Hat dies schon jemand mit der aktuellen Contao Version getestet? ...
    Kamil sollte das getestet haben, denn er hat Contao ~4.1 als Anforderung angegeben und das deckt diese Versionen ab https://semver.mwl.be/#!?package=con...ability=stable

    Wenn nicht, sollte man es einfach bei Github melden.

    Zitat Zitat von Franko Beitrag anzeigen
    ... Evtl. habt Ihr diesbezüglich noch weitere, elegante Lösungen ...?
    Ich habe schon ein paar mal isotope.js manuell eingesetzt. Hier z.B. auf einem Auflistungsmodul https://potsdam-guide.de/de/suche.html. Tabelle ist dabei tl_member. Bei solchen strukturellen Sachen muss man ja sowieso das Auflistungstemplate anpassen. Ich würde diese 48 Items nicht als Contentelemente aufsetzen wollen. Das Verwalten, hier über die Mitglieder im Be, ist dabei wesentlich einfacher.
    Geändert von Andreas (06.10.2020 um 09:34 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  21. #21
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Das funzt ned zufällig auch bei Events auf der Seite mit den entsprechenden CSS Klassen!?

    Edit: Leider nein weil das Content Element selbst CSS Klassen bekommt. Schade!
    Geändert von Kahmoon (06.10.2020 um 08:54 Uhr)

  22. #22
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Das funzt ned zufällig auch bei Events auf der Seite mit den entsprechenden CSS Klassen!?
    Hm, sollte es wohl. Man benötigt aber nicht nur die CSS Klasse "filtr-item" sondern auch das Attribut "data-category". Siehe:
    https://yiotis.net/filterizr/#/tutorials/quickstart
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  23. #23
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    So wie es aussieht geht das leider nicht denn man muss den Inhaltselementen im Artikel selbst diese Klassen zuweisen. Im habe einen Kalender dessen Termine die CSS Klassen mitbringen. Schade!

  24. #24
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich habe jetzt mal dem Kalender Reader die Klasse "filter-container" in die umschließende Tabelle gepackt

    Code:
    <table class="table table-sm table-bordered table-md-responsive filter-container">
    Dann bei jedem Event die Klasse "filtr-item" und "data-category"
    Code:
    <div class="filtr-item event cal_<?= $event['parent'] ?> <?= $event['class'] ?>" data-category="<?= str_replace(' ', ',',$event['class']) ?>">
    Dort wird dann z.B. die Klasse "theorie" ausgegeben.
    Code:
    <div class="filtr-item event cal_154  theorie current rsfh-event-6240" data-category="theorie,current,rsfh-event-6240" itemscope="" itemtype="http://schema.org/Event"></div>
    In den Einstellungen vom Artikel habe ich die Filter entsprechend eingestellt. Folgende Ausgabe erfolgt
    Code:
    <div class="filters" data-elements-filter="" data-elements="#elements-filter-417" data-handler="isotope">
    <ul>
    <li>
    <a href="#" data-filter="" class="">Alle</a>
    </li>
    <li class="btn-theorie">
    <a href="#" data-filter="theorie" class="active">Theorie</a>
    </li>
    </ul>
    </div>
    Edit: Klicke ich auf einen der Filterlink wird korrekt noch die Klasse "active" gesetzt. Es passiert also was...nur die Elemente unterhalb werden nicht gefiltert. Separate Inhaltselemente mit den entsprechenden Einstellungen hingegen schon.

    Temporärer Testlink hier
    Geändert von Kahmoon (06.10.2020 um 09:30 Uhr)

  25. #25
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Evtl. brauchen die Einträge in data-category jeweils Leerzeichen?
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  26. #26
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Hm die Texte unter dem Kalender reagieren doch auf den Filter?
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  27. #27
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Inzwischen ja. Wenn man das Modul verwendet muss man die Klassen "elements-filter" und "elments-filter-xxx" verwenden. Allerdings werden hier auch die Elemente neu platziert. Eigentlich sind alle 4 Termine an unterschiedlichen Tagen. Irgendwie schiebt er je zwei am selben Tag, also quasi sortiert er es nach den Klassen.

    PHP-Code:
    <div class="event cal_<?= $event['parent'?> <?= $event['class'?> elements-filter                 
    <?php 
    $teile 
    explode(' ',$event['class']);
    echo 
    'elements-filter-'.$teile[1];
    ?>"
    ....

    Ursache hierfür scheint das Element "elements-filter" zu sein.
    Geändert von Kahmoon (06.10.2020 um 10:00 Uhr)

  28. #28
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Verstehe gerade die Verwendung von "elements-filter" nicht.
    In der Doku https://yiotis.net/filterizr/#/tutorials/quickstart steht:

    Add to your items the class: filtr-item
    Give your items a data-category attribute.
    Multiple categories must be separated with a comma (",")
    Ich find in deinem Beispiel gerade weder die CSS Klasse filtr-item noch das Attribut data-category?
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  29. #29
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Oder benutzt du hier codefog/contao-elements-filter ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  30. #30
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Oder benutzt du hier codefog/contao-elements-filter ...
    Servus, ja...ich verwende das Modul um das es hier im Thread ging. Sorry! Vielleicht wäre es besser es manuell mit deinem Link zu bauen?

  31. #31
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Servus, ja...ich verwende das Modul um das es hier im Thread ging. Sorry! Vielleicht wäre es besser es manuell mit deinem Link zu bauen?
    Hi, Sorry ist nicht mein Tag :-). Ob es damit für deine Anforderung im Calendar funktioniert - must du ausprobieren...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  32. #32
    Contao-Nutzer
    Registriert seit
    06.01.2014.
    Beiträge
    33

    Standard Codefog Element-Filter: Startelement auswählen

    Zitat Zitat von k-webdesign Beitrag anzeigen
    Per Default sind erst mal alle Sichtbar, daher wird nichts nachgeladen, lediglich per JS gefiltert.
    Gibt es eine Möglichkeit, die Erweiterung dazu zu bringen, dass nur ein spezifisches Element angezeigt wird beim Öffnen der Seite und eben nicht alle?

    Illustration:
    In einem Projekt möchte ich nämlich mit dem Filter Gallerien als Elemente auswählen. Grundsätzlich wäre es kein Problem, dass dann anfänglich sämtliche Gallerien gezeigt werden, mit wenig CSS kann sogar der Eindruck erweckt werden, dass nur eine Gallerie angezeigt wird. Wenn ich aber mit Klick auf ein Bild die Lightbox öffne, werden jeweils nur die Fotos der einzelnen Gallerie in den Loop aufgenommen.
    Als Abhilfe kann ich eine zusätzliche Gallerie mit den Bildern sämtlicher Gallerien erstellen, dann funktioniert dies problemlos. Aber hier stört es dann, dass nicht nur diese Gallerie als Default-Gallerie gewählt werden kann, so dass nebst dieser Total-Gallerie nochmals alle Bilder in den eigentlichen Gallerien dargestellt werden, also alles doppelt.

  33. #33
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Toubibe Beitrag anzeigen
    Gibt es eine Möglichkeit, die Erweiterung dazu zu bringen, dass nur ein spezifisches Element angezeigt wird beim Öffnen der Seite und eben nicht alle?
    Das könnte aber verwirren, wenn nur ein Element angezeigt würde, ist ja ein Filter. Sinn machen würde eher, wenn eine Filteroption beim Start bereits automatisch ausgewählt würde. Dies würde z.B. so gehen:
    PHP-Code:
    <!-- templates\j_trigger-first-filter.html5 -->

    <
    script>
      
    jQuery(function($) {

        $(
    '.filters li:nth-child(2) a').trigger('click');

      });
    </script> 
    templates\j_trigger-first-filter.html5 dann im Layout einbinden.

    Zitat Zitat von Toubibe Beitrag anzeigen
    ... Wenn ich aber mit Klick auf ein Bild die Lightbox öffne, werden jeweils nur die Fotos der einzelnen Gallerie in den Loop aufgenommen. ...
    Das macht ja auch Sinn, denn wenn ich mir EINE Galerie ansehen möchte, wäre ich sehr verwirrt, wenn beim Durchblättern Bilder anderer Galerien angezeigt würden.

    Wenn du mit dem Filter Galerien präsentieren möchtest, dann kannst du es so machen, dass von jeder Galerie nur das erste Bild (quasi ein Vorschaubild auf die Galerie) sichtbar ist, man beim Klick auf dieses Bild dann aber durch die ganze Galerie blättern kann. Somit braucht der Browser dann die Vorschaubilder der Galerien nicht zu laden, sondern nur jeweils 1 Bild je Galerie.

    Das kannst du mit einer einfachen Anpassung des Templates gallery_default erreichen:
    PHP-Code:
    <!-- templates\gallery_one-image-only.html5 -->

    <ul class="cols_<?= $this->perRow ?>" itemscope itemtype="http://schema.org/ImageGallery">
      <?php foreach ($this->body as $class => $row): ?>
        <?php $i=0; foreach ($row as $col): $i++; ?> <!-- mod -->
          <?php if ($col->addImage): ?>
            <li class="<?= $class ?> <?= $col->class ?>">
              <?php if ($i === 1): ?> <!-- ++ -->
                <figure class="image_container"<?php if ($col->margin): ?> style="<?= $col->margin ?>"<?php endif; ?>>
                  <?php if ($col->href): ?>
                    <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>><?php $this->insert('picture_default'$col->picture); ?></a>
                  <?php else: ?>
                    <?php $this->insert('picture_default'$col->picture); ?>
                  <?php endif; ?>
                  <?php if ($col->caption): ?>
                    <figcaption class="caption"><?= $col->caption ?></figcaption>
                  <?php endif; ?>
                </figure>
              <?php else: ?> <!-- ++ -->
                <a class="invisible" href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>>click for image</a> <!-- ++ -->
              <?php endif; ?> <!-- ++ -->
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    An den vom Original abweichenden Zeilen habe ich HTML-Kommentar hinten angehängt. Hier nochmal nur die geänderten/ergänzten Zeilen:
    PHP-Code:
    ...
    <?php $i=0; foreach ($row as $col): $i++; ?> <!-- mod -->
    ...
    <?php if ($i === 1): ?> <!-- ++ -->
    ...
    <?php else: ?> <!-- ++ -->
      <a class="invisible" href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>>click for image</a> <!-- ++ -->
    <?php endif; ?> <!-- ++ -->
    ...
    Das Template templates\gallery_one-image-only.html5 dann den gewünschten Galerien zuweisen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  34. #34
    Contao-Nutzer
    Registriert seit
    06.01.2014.
    Beiträge
    33

    Standard

    Danke.
    Die Idee im zweiten Teil Deiner Antwort konnte ich erfolgreich übernehmen.

    Für die den ersten Teil des Problems habe ich inzwischen eine etwas basale Lösung gefunden, indem ich nebst Galerie 1, Galerie 2 und Galerie 3 auch noch eine zusätzliche Gallerie "alle" mit allen Bildern anlegte, den Gallerien 1-3 die Klasse .teilgalerie gab und der Gallerie "alle" .gesamtgalerie. Mit dem folgenden jquery script lasse ich die richtige Auswahl öffnen. Bin kein jquery-Hirsch, aber es klappt ;-)

    Code:
    <script>
    	$( document).ready(function() {
     $(".teilgalerie").css({"position": "absolute", "left": "-23000px"})
        });
       
    </script>
    <script>
    	$( document).ready(function() {
    		$(".filters a").click(function() {
    $(".gesamtgalerie").css({"position": "absolute", "left": "-23000px"}),
    $(".teilgalerie").css({"position": "static", "left": "inherit"})
        });
    	});
    </script>
    
    <script>
    	$( document).ready(function() {
    		$(".filters > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1)").click(function() {
    $(".teilgalerie").css({"position": "absolute", "left": "-23000px"}),
    $(".gesamtgalerie").css({"position": "static", "left": "inherit"})
        });
    	});
    </script>

  35. #35
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das kannst du leicht vereinfachen. Zuerst mal, du brauchst nicht jedesmal ein <script> zu öffnen und zu schließen. Eins reicht.

    Zweitens brauchst du kein CSS zu setzen. Bei sowas arbeitet man mit CSS-Klassen. Hier mal ein schematisches Beispiel. CSS setzt du dann in deiner CSS-Datei.
    PHP-Code:
    <script>
      (function($) {
        $(
    document).ready(function() {

          $(
    '.filters a').on('click', function(event) {
            
    // zum Debuggen
            
    console.log(event.target); // mit den Dev-Tools im Browser in der Konsole ansehen
            
    console.log($(this));      // mit den Dev-Tools im Browser in der Konsole ansehen

            
    allElements.removeClass('filter-active');
            
    someElement.addClass('filter-active');
          });

        });
      })(
    jQuery);
    </script> 
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 3 (Registrierte Benutzer: 0, Gäste: 3)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •