Contao-Camp 2024
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 46

Thema: Nachrichtenarchiv Menü als Drop-Down-Menü

  1. #1
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Frage Nachrichtenarchiv Menü als Drop-Down-Menü

    Halli hallo,

    ich bin noch relativ neu bei Typolight und bastle mir gerade eine neue Seite. Vorher war die Seite als reine HTML-Datei gebaut und musste per Hand gepflegt werden, was jetzt TL übernehmen soll Ich hab bereits einige erfahrungen mit Typo3, jedoch denke ich, dass Typo3 einfach zu groß für mein jetziges Projekt ist und bin durch meinen Bruder auf Typolight aufmerksam geworden.

    Und hab jetzt eine Frage:
    das Nachrichtenarchiv-Menü möchte ich nicht so wie als Default gegeben lassen (als Liste), sondern als Drop-Down-Menü (Auswahlmenü: select/option). wenn mich nicht alles täuscht ist das Template "mod_newsmenue.tpl" verantwortlich. Hab das Menü testweiste geändert und kann jedoch bei der Modulbearbeitung des Archiv-Menüs nix finden, wo ich das geänderte Template angeben kann. Ich kann dort nur auswählen ob ich Jahr, Monat oder Tagweise die Liste ausgeben haben möchte.

    Kann mir hier jemand helfen? wäre echt nett =)

    Viele Grüße
    µaTh

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo µaTh,

    willkommen im TYPOlight-Forum.

    Zitat Zitat von µaTh Beitrag anzeigen
    Und hab jetzt eine Frage:
    das Nachrichtenarchiv-Menü möchte ich nicht so wie als Default gegeben lassen (als Liste), sondern als Drop-Down-Menü (Auswahlmenü: select/option). wenn mich nicht alles täuscht ist das Template "mod_newsmenue.tpl" verantwortlich. Hab das Menü testweiste geändert und kann jedoch bei der Modulbearbeitung des Archiv-Menüs nix finden, wo ich das geänderte Template angeben kann.
    Wenn Du im Backend das Modul "Template" aufrufst, dort ein "Neues Template" erstellst und aus der Liste die Vorlage "mod_newsmenu.tpl" auswählst, dann legt TYPOlight von diesem Template eine Kopie im Template-Ordner "/templates" ab. In dieser duplizierten Vorlagen-Datei kannst Du dann Deine Änderungen und Anpassungen machen (entweder direkt im Backend oder per Texteditor) und - sofern Du diese Datei nicht explizit umbenannt hast - sollte TL eigentlich auf Dein geändertes Template zurückgreifen und dieses entsprechend parsen. Wichtig ist im gegenständlichen Fall eben, dass das modifizierte Template den selben Namen trägt wie das Original!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Computer

    ahhhh, der eine Kniff hat mir gefehlt... Ich hab extra das Template umbenannt
    Habs jetzt wieder zurück in den org. Namen umbenannt und schon funktionierts, supi. jetzt kann ich da fleißig dran rumbasteln.

    DANKE

  4. #4
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    für die Nachwelt:

    hab das Skript mod_newsmenu.tpl umgeschrieben, jetzt kann man im Archivmenü mit einem Drop-Down-Menü navigieren.

    [Hinweis: weiter unten befinden sich Template Updates]
    PHP-Code:
    <!-- indexer::stop -->
    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
    <?php if ($this->headline): ?>

    <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>>
    <?php endif; ?>
    <form>
    <select id="ArchivNavi" onChange="parent.location.href=this.form.ArchivNavi.options[this.form.ArchivNavi.options.selectedIndex].label;">
    <?php foreach ($this->items as $year=>$months): ?>
      <optgroup label="<?php echo $year?>">
    <?php foreach ($months as $month): ?>
    <?php 
    if($month['isActive']): ?>
        <option selected label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php else: ?>
        <option label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    <?php 
    endforeach; ?>
    </optgroup>
    <?php endforeach; ?>
    </select>
    </form>

    </div>
    <!-- indexer::continue -->
    Geändert von µaTh (26.08.2010 um 19:43 Uhr) Grund: Hinweis hinzugefügt

  5. #5
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo µaTh,

    vielen Dank für die Bereitstellung Deines Templates - so ist der Thread hier vollständig und wird sicherlich auch einigen anderen weiterhelfen.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  6. #6
    Contao-Nutzer Avatar von wkoecker
    Registriert seit
    20.08.2009.
    Ort
    Seekirchen, Österreich
    Beiträge
    101

    Computer

    Hallo!

    Schließe mich meinem Vorposter an und bedanke mich ebenfalls. Leider werden etliche Treads zwar beantwortet, aber oft wird die Lösung dann nicht mehr richtig gepostet. Das finde ich sehr schade. Daher nochmals Danke für das Template.
    Liebe Grüße
    Wolfgang

  7. #7
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.224
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Ich sag auch mal Danke.
    Hat irgendjemand eine Idee, warum bei mir im Dropdown nicht die Monatsnamen ausgegeben werden, sondern die URLs? Also anstatt Mai z.B. "nachrichtenarchiv.html?month=201005"

    Als Liste wurden vorher die Monatsnamen angegeben.

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  8. #8
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    HTML

    Ich hab die Sache noch etwas erweitert, so dass bei deaktivierten JavaScript eine kurze Meldung angezeigt wird und die Dropdownliste ausgeblendet wird.
    Und als erster Eintrag in der Dropdownliste befindet sich jetzt "(Auswahl Zeitraum)".

    [Änderungen fett markiert]
    Code:
    <!-- indexer::stop -->
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <noscript><span class="noscript">Sorry, für das Archiv-Menü muss JavaScript eingeschalten sein</span></noscript>
    
    <form id="ArchivNaviForm" style="display:none;">
    <select id="ArchivNavi" onChange="parent.location.href=this.form.ArchivNavi.options[this.form.ArchivNavi.options.selectedIndex].label;">
    <option selected label="">(Auswahl Zeitraum)</option>
    <?php foreach ($this->items as $year=>$months): ?>
      <optgroup label="<?php echo $year; ?>">
    <?php foreach ($months as $month): ?>
    <?php if($month['isActive']): ?>
        <option selected label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php else: ?>
        <option label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    <?php endforeach; ?>
    </optgroup>
    <?php endforeach; ?>
    </select>
    </form>
    <script type="text/javascript">
    document.getElementById("ArchivNaviForm").style.display='inline';
    </script>
    
    
    </div>
    <!-- indexer::continue -->
    Als Alternative könnte man natürlich in den NoScript-Tags auch den orginal-Code vom ursprünglichen Menü einfügen. Meiner Meinung nach jedoch ein ziemlicher Overhead, da die Liste im Quelltext aufgebaut und übertragen wird, egal ob JavaScript aktiviert ist oder nicht.


    Zitat Zitat von tblumrich Beitrag anzeigen
    Ich sag auch mal Danke.
    Hat irgendjemand eine Idee, warum bei mir im Dropdown nicht die Monatsnamen ausgegeben werden, sondern die URLs? Also anstatt Mai z.B. "nachrichtenarchiv.html?month=201005"

    Als Liste wurden vorher die Monatsnamen angegeben.

    Gruß
    Thomas
    Hat sich dein Problem gelöst, oder besteht es immer noch?

  9. #9
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.224
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von µaTh Beitrag anzeigen
    Hat sich dein Problem gelöst, oder besteht es immer noch?
    Hat sich erledigt... aber frag mich nicht wann und warum... irgendwann gings.
    Und danke auch für die neue Erweiterung - hatte mich immer genervt, das man den aktuellen Monat ja quasi nur noch über Umwege auswählen konnte (da schon ausgewählt).

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  10. #10
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    eine kleine Korrektur hab ich noch oben eingebaut. Das "selected"-Attribut ist beim hin und her kopieren und bearbeiten verloren gegangen (wichtig, dass der ausgewählte Monat weiterhin angezeigt wird).

  11. #11
    Gesperrt
    Registriert seit
    25.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard Problem besteht bei mir

    Hallo,

    bisher bin ich mit den Anleitungen aus dem Forum so gut klargekommen, dass ich mich nicht registrieren musste.

    Von der Idee des Dropdownmenüs war ich sehr angetan und es funktioniert auch weitestgehend, nur tritt der folgende Fehler auch bei mir auf:

    Ich sag auch mal Danke.
    Hat irgendjemand eine Idee, warum bei mir im Dropdown nicht die Monatsnamen ausgegeben werden, sondern die URLs? Also anstatt Mai z.B. "nachrichtenarchiv.html?month=201005"

    Als Liste wurden vorher die Monatsnamen angegeben.
    Ich nutze Contao 2.9.1. Ändere ich im Template folgende Zeile

    Code:
    <?php if($month['isActive']): ?>
        <option selected label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php else: ?>
        <option label="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    so um:

    Code:
    <?php if($month['isActive']): ?>
        <option selected label="<?php echo $month['link']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php else: ?>
        <option label="<?php echo $month['link']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    ('href' zu 'link'), so zeigt er die Monatsnamen zwar an (zB Juni 2010), aber er kann das entsprechende Archiv nicht aufrufen, da er folgende Adresse aufrufen will:

    .../Juni%202010 (anstelle der korrekten Adresse .../?month=201006).

    Weiß jemand vielleicht eine Lösung?

    Gruß r13

  12. #12
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    ich kann das Problem leider nicht nachvollziehen. Vllt. haben wir unterschiedliche Einstellungen im Modul "Nachrichtenarchiv-Menü"?

    Das Template "mod_newsmenu.tpl" habe ich bearbeitet und ebenfalls unter "mod_newsmenu.tpl" gespeichert. Als Archivformat habe ich "Monat" ausgewählt.

    Das Template nutze ich in Typolight 2.8.1 und Contao 2.9.1 ohne Probleme.

    @r13: ich glaube nicht, dass dein Lösungsversuch zum Ziel führt:
    $month['href'] sollte meiner Meinung nach die URL liefern
    $month['link'] sollte hier meiner Meinung nach nur einen Text liefern, der als Link nicht zu gebrauchen ist.

    Leider lassen sich in der Demo die Templates nicht bearbeiten.

  13. #13
    Gesperrt
    Registriert seit
    25.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard

    Hab ich alles soweit genau so. Einen "Fehler" hab ich zB schon gefunden. Das Menü funktionierte in IE 8 und IE8+Kompatibilitätsansicht nicht.

    Code:
    <?php else: ?>
        <option label="../<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    Das ../ hats behoben. Mein eigentliches Problem besteht weiterhin...

  14. #14
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    so, Freunde der HTML-Kunst. Hier kommt jetzt die Lösung zu allen Problemen der Welt... ähm... Probleme des Archiv-Menüs

    Code:
    <!-- indexer::stop -->
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <noscript><div class="noscript">Sorry, für das Archiv-Menü muss JavaScript eingeschalten sein</div></noscript>
    
    <form id="ArchivNaviForm" style="display:none;" action="">
    <div class="ArchivNaviBlock">
    <select id="ArchivNavi" onchange="parent.location.href=this.form.ArchivNavi.options[this.form.ArchivNavi.options.selectedIndex].value;">
    <option selected="selected" value="Auswahl">*** Auswahl Zeitraum *************************</option>
    <?php foreach ($this->items as $year=>$months): ?>
      <optgroup label="<?php echo $year; ?>">
    <?php foreach ($months as $month): ?>
    <?php if($month['isActive']): ?>
        <option selected="selected" value="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php else: ?>
        <option value="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endif; ?>
    <?php endforeach; ?>
    </optgroup>
    <?php endforeach; ?>
    </select>
    </div>
    </form>
    <script type="text/javascript">
    document.getElementById("ArchivNaviForm").style.display='inline';
    </script>
    
    
    </div>
    <!-- indexer::continue -->
    Das Template habe ich jetzt durch den W3C-Validator gejagt und angepasst. Nun ist es auch valide.

    Und dank dem Tipp von r13 hab ich mir die Sache mit dem IE8 angeschaut und feststellen müssen, dass das Option-Attribut "label" an dieser Stelle falsch ist und durch "value" ersetzt werden muss (und somit das Stück JavaScript in onchange-Event angepasst).

    Ich hoffe, dass es jetzt die "richtige" Lösung ist.

    Danke für eure zahlreichen Feedbacks, ohne euch bestünde das Problem im (ungeliebten) IE weiterhin.

  15. #15
    Gesperrt
    Registriert seit
    25.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard

    Funktioniert! Danke für dein tolles Template ^^

  16. #16
    Contao-Nutzer
    Registriert seit
    11.02.2010.
    Beiträge
    30

    Standard

    Ganz tolles Template!!!!

    Ich hatte nur folgendes Problem, dass wenn ich einen anderen Monat als den Aktuellen aus gewählt habe und dann zurück auf *** Auswahl Zeitraum ********** klicke, was beim normalo User vielleicht mal vorkommt, dann wurde ../Auswahl aufgerufen was natürlich einen Error 404 zur Folge hatte.

    ich habe einfach Zeile 11 so verändert:
    <option selected="selected" value="../index.php/aktuelles-archiv.html">*** Auswahl Zeitraum *************************</option>

    Jetzt ruft es den aktuellen Monat auf...

    Gibt es vielleicht ne Möglichkeit dass nichts passiert also der gleiche Monat wie zuvor stehen bleibt?
    Wenn nicht wäre es für mich nicht so schlimm...

    Gruß

    Alexander

  17. #17
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    mhm, ok. Der Fehler ist mir noch garnicht aufgefallen. Danke Spencer.

    Als workaround könnte ich folgendes anbieten:
    - die Zeile
    PHP-Code:
    <option selected="selected" value="Auswahl">*** Auswahl Zeitraum *************************</option
    löschen und
    - im Modul mit dem Modultyp "Nachrichtenarchiv" unter der Option "Kein Zeitraum ausgewählt" statt "Das Modul ausblenden" den Eintrag "Zum aktuellen Zeitraum springen" wählen.

    Der Effekt des Workarounds wäre:
    - der fehlerhafte Eintrag "Auswahl Zeitraum" wäre nicht mehr in der Liste vorhanden und kann somit nicht mehr ausgewählt werden. Automatisch wird dann der oberste Monat in der Selectbox ausgewählt. Und da der aktuelle Monat angezeigt wird, dürfte es überein stimmen.

    Was ich nicht getestet habe (bitte mal testen) wenn der aktuelle Monat keine Einträge hat, bleibt dann die Liste (Modul "Nachrichtenarchiv") leer (wäre doof)? Oder wird der letzte Monat mit Newseinträgen angezeigt (wäre gut)?

    Vielleicht hat noch jemand eine bessere Idee?

  18. #18
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Fehler

    so, hier habe ich die Lösung. Der Workaround von dem Post davor ist nicht wirklich das gelbe vom Ei.

    Hier meine neue Version, die ich jetzt einfach mal als Version 1.0.0 bezeichne. Das davor waren einfach Beta-Versionen
    Hab auch gleich den Quelltext weiter optimiert und kommentiert

    PHP-Code:
    <!-- indexer::stop -->

    <!--
    * @template: mod_newsmenu.tpl
    * @module:   News archive menu (Archive format: Month)
    * @function: news archiv menu as a drop-down-menu
    * @version:  1.0.0 (2010-09-17)
    * @tested:   Contao 2.9.1
    * @author:   µaTh
    *
    * needs JavaScript enabled
    *
    * help and new free versions: (German bulletin board) http://www.contao-community.de/showthread.php?9291
    *
    -->


    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
    <!-- headline start -->
    <?php if ($this->headline): ?>
    <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>>
    <?php endif; ?>
    <!-- headline end -->

    <!-- noscript: if JavaScript is enabled show this message and do not show archiv menu -->
    <noscript><div class="noscript">Sorry, für das Archiv-Menü muss JavaScript in Ihrem Broswer eingeschalten sein</div></noscript>

    <!-- style="display:none;"
    hide the formular, if JavaScript is enabled.
    Form will shown by JavaScript at the end of code of this template
    -->
    <form id="ArchivNaviForm" style="display:none;" action="">
    <div class="ArchivNaviBlock">

    <!-- drop-down-menu start -->

    <!-- 
    JavaScript tests the selected row in drop-down-menu. 
    If it is not the first item (cause it is only text) 
    than reload the page and show the selected month 
    -->
    <select id="ArchivNavi" onchange="if (document.getElementById('ArchivNavi').selectedIndex != 0)  parent.location.href = this.form.ArchivNavi.options[ this.form.ArchivNavi.options.selectedIndex ].value;">

    <option selected="selected" value="">*** Auswahl Zeitraum *************************</option>

    <!-- each YEAR in drop-down-menu -->
    <?php foreach ($this->items as $year=>$months): ?>
      <!-- label YEAR -->
      <optgroup label="<?php echo $year?>">
      <!-- label MONTH start-->
    <?php foreach ($months as $month): ?>
      <option <?php if($month['isActive']): ?>selected="selected"<?php endif; ?> value="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endforeach; ?>
    <!-- label MONTH end -->
    </optgroup>
    <?php endforeach; ?>

    </select>
    <!-- drop-down-menu end -->

    </div>
    </form>

    <!--
      JavaScript: show formular
    -->
    <script type="text/javascript">
    document.getElementById("ArchivNaviForm").style.display='inline';
    </script>


    </div>
    <!-- indexer::continue -->
    getestet mit: FF 3.6.10, FF 4.0 b6, IE 8 und IE 8 Kompatibilitätsmodus, Opera 10.61 + 10.62, Safari Mac 5.0.2 (6533.18.5)
    Geändert von µaTh (01.10.2010 um 18:27 Uhr) Grund: ADD: getestete Browser; ADD2: Safari als getester Browser

  19. #19
    Contao-Fan
    Registriert seit
    08.12.2009.
    Beiträge
    719

    Standard

    Lassen sich auch anstatt des Zeitraums die Archive auswählen? So dass man den Archivnamen auswählt und alle News des Archives aufgelistet bekommt?

  20. #20
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    Zitat Zitat von Chris87 Beitrag anzeigen
    Lassen sich auch anstatt des Zeitraums die Archive auswählen? So dass man den Archivnamen auswählt und alle News des Archives aufgelistet bekommt?
    Nein, das funktioniert mit dem Template nicht. Es geht ja auch viel einfacher. Einfach für jeden Archivnamen eine neue Seite anlegen und per Seitennavigation kannst du dir dann das entsprechende Archiv aussuchen.
    Für weitere Fragen dazu bitte ein seperates Thema hier im Forum öffnen, damit das Thema hier nur auf das Theme bezogen bleibt

  21. #21
    Contao-Fan
    Registriert seit
    08.12.2009.
    Beiträge
    719

    Standard

    Ja, so kann man das natürlich machen, das war mir auch klar. Nur wäre es mMn komfortabler, wenn man das auch über das Menü machen könnte bzw. wenn man in Contao im Modul "Archiv Menü" statt Jahr, Monat, Tag auch Archiv auswählen könnte.

  22. #22
    Contao-Nutzer Avatar von drefsa
    Registriert seit
    25.06.2009.
    Ort
    0°0'0''
    Beiträge
    186

    Standard

    µaTh:
    Wäre das nicht auch in der Wiki gut aufgehoben?
    Grüße
    drefsa

  23. #23
    Contao-Nutzer
    Registriert seit
    11.02.2010.
    Beiträge
    30

    Standard

    Hab es mit Safari Mac 5.0.2 (6533.18.5) getestet funktioniert!

  24. #24
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    Zitat Zitat von drefsa Beitrag anzeigen
    µaTh:
    Wäre das nicht auch in der Wiki gut aufgehoben?
    Wenn du es in das Wiki eintragen möchtest, dann kannst du es gerne machen. Bitte einen entsprechenden Link auf den Thread hier setzen, falls es mal Updates geben sollte.


    Zitat Zitat von Spencer Beitrag anzeigen
    Hab es mit Safari Mac 5.0.2 (6533.18.5) getestet funktioniert!
    Danke! Hab ich mit zu den getesteten Browsern hinzugefügt.

  25. #25
    Gesperrt
    Registriert seit
    25.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard

    Ich denke viele sind auch so drauf gekommen, aber ich poste es trotzdem nochmal: Das Modul hier funktioniert auch super für die Terminlisten

    .....

    edit: Wenn man die index.php in Contao-Adressen vom CMS nicht wegtrimmen lässt, benötigt man für IE-Kompatiblität ein " ../ " innerhalb von value="" an dieser Stelle:

    Code:
      <!-- label MONTH start--> 
    <?php foreach ($months as $month): $month['link'] = ereg_replace(trim($year), '', $month['link']); ?> 
      <option <?php if($month['isActive']): ?>selected="selected"<?php endif; ?> value="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option> 
    <?php endforeach; ?> 
    <!-- label MONTH end -->
    Geändert von r13 (07.10.2010 um 18:26 Uhr)

  26. #26
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    Zitat Zitat von r13 Beitrag anzeigen
    Ich denke viele sind auch so drauf gekommen, aber ich poste es trotzdem nochmal: Das Modul hier funktioniert auch super für die Terminlisten

    .....

    edit: Wenn man die index.php in Contao-Adressen vom CMS nicht wegtrimmen lässt, benötigt man für IE-Kompatiblität ein " ../ " innerhalb von value=""
    Danke für die beiden Hinweise. Dass das Template auch für Terminlisten genutzt werden kann, ist mir neu (hab den Kalender bis heute noch nicht genutzt).

  27. #27
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    ich bin gerade dabei an der Version 1.1 zu basteln. Und zwar kommt als zusätzliches Feature ein "Monat rauf/runter"-Link hinzu. So dass man einfach in den nächsten/vorherigen Monat springen kann, ohne die lange <Option>-Liste zu nutzen.

    Die Links schauen wie folgt aus:

    HTML-Code:
    <a href="javascript:if ( 1 < document.getElementById('ArchivNavi').options.selectedIndex ) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex -1].value;">Monat vor</a> | 
    <a href="javascript:if ( document.getElementById('ArchivNavi').length > document.getElementById('ArchivNavi').options.selectedIndex +1) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex +1].value;">Monat zurück</a>
    Leider hab ich noch keine so richtig gute Idee, wie man die Links bezeichnen kann bzw. wie die Links besser positioniert werden könnten.

    Hier und jetzt ist eure Kreativität gefragt! Entweder per PM oder hier im Forum. Über Anregungen bin ich gespannt.

  28. #28
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    So, jetzt gibts hier die Version 1.1.0 für das Archivmenü für Monat und Jahr!

    Archivmenü "Jahr": mod_newsmenu_year.tpl

    Code:
    <!-- indexer::stop -->
    
    <?php/*
    * @template: mod_newsmenu_year.tpl
    * @module:   News archive menu (Archive format: Year)
    * @function: news archiv menu as a drop-down-menu
    * @version:  1.1.0.y (2011-04-29)
    * @tested:   Contao 2.9.4
    * @author:   µaTh
    *
    * needs JavaScript enabled
    *
    * help and new free versions: (German bulletin board) http://www.contao-community.de/showthread.php?9291
    **/
    ?>
    
    
    
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    
    <!-- headline start -->
    <?php if ($this->headline): ?>
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <!-- headline end -->
    
    <!-- noscript: if JavaScript is enabled show this message and do not show archiv menu -->
    <noscript><div class="noscript">Sorry, für das Archiv-Menü muss JavaScript in Ihrem Broswer eingeschalten sein</div></noscript>
    
    <!-- style="display:none;"
    hide the formular, if JavaScript is enabled.
    Form will shown by JavaScript at the end of code of this template
    -->
    <form id="ArchivNaviForm" style="display:none;" action="">
    <div class="ArchivNaviBlock">
    
    
    
    <!-- drop-down-menu start -->
    
    <!-- 
    JavaScript tests the selected row in drop-down-menu. 
    If it is not the first item (cause it is only text) 
    than reload the page and show the selected month 
    -->
    <select id="ArchivNavi" onchange="if (document.getElementById('ArchivNavi').selectedIndex != 0)  parent.location.href = this.form.ArchivNavi.options[ this.form.ArchivNavi.options.selectedIndex ].value;">
    
    <option selected="selected" value="">*** Auswahl Zeitraum *************************</option>
    
    <!-- each YEAR in drop-down-menu -->
    <?php foreach ($this->items as $year=>$month): ?>
      <!-- label MONTH start-->
      <option <?php if($month['isActive']): ?>selected="selected"<?php endif; ?> value="<?php echo $month['href']; ?>">
        <?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?>
      </option>
    <!-- label MONTH end -->
    <?php endforeach; ?>
    
    </select>
    <!-- drop-down-menu end -->
    
    <a href="javascript:if ( 1 < document.getElementById('ArchivNavi').options.selectedIndex ) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex -1].value;">Jahr vor</a> | 
    <a href="javascript:if ( document.getElementById('ArchivNavi').length > document.getElementById('ArchivNavi').options.selectedIndex +1) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex +1].value;">Jahr zurück</a>
    
    </div>
    </form>
    
    <!--
      JavaScript: show formular
    -->
    <script type="text/javascript">
    document.getElementById("ArchivNaviForm").style.display='inline';
    </script>
    
    
    </div>
    <!-- indexer::continue -->

    Archivmenü "Monat": mod_newsmenu.tpl

    Code:
    <!-- indexer::stop -->
    
    <?php
    /*
    * @template: mod_newsmenu.tpl
    * @module:   News archive menu (Archive format: Month)
    * @function: news archiv menu as a drop-down-menu
    * @version:  1.1.0.m (2011-04-29)
    * @tested:   Contao 2.9.4
    * @author:   µaTh
    *
    * needs JavaScript enabled
    *
    * help and new free versions: (German bulletin board) http://www.contao-community.de/showthread.php?9291
    */
    ?>
    
    
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <!-- headline start -->
    <?php if ($this->headline): ?>
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <!-- headline end -->
    
    <!-- noscript: if JavaScript is enabled show this message and do not show archiv menu -->
    <noscript><div class="noscript">Sorry, für das Archiv-Menü muss JavaScript in Ihrem Broswer eingeschalten sein</div></noscript>
    
    <!-- style="display:none;"
    hide the formular, if JavaScript is enabled.
    Form will shown by JavaScript at the end of code of this template
    -->
    <form id="ArchivNaviForm" style="display:none;" action="">
    <div class="ArchivNaviBlock">
    
    <!-- drop-down-menu start -->
    
    <!-- 
    JavaScript tests the selected row in drop-down-menu. 
    If it is not the first item (cause it is only text) 
    than reload the page and show the selected month 
    -->
    <select id="ArchivNavi" onchange="if (document.getElementById('ArchivNavi').selectedIndex != 0)  parent.location.href = this.form.ArchivNavi.options[ this.form.ArchivNavi.options.selectedIndex ].value;">
    
    <option selected="selected" value="">*** Auswahl Zeitraum *************************</option>
    
    <!-- each YEAR in drop-down-menu -->
    <?php foreach ($this->items as $year=>$months): ?>
      <!-- label YEAR -->
      <optgroup label="<?php echo $year; ?>">
      <!-- label MONTH start-->
    <?php foreach ($months as $month): ?>
      <option <?php if($month['isActive']): ?>selected="selected"<?php endif; ?> value="<?php echo $month['href']; ?>"><?php echo $month['link']; ?><?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)<?php endif; ?></option>
    <?php endforeach; ?>
    <!-- label MONTH end -->
    </optgroup>
    <?php endforeach; ?>
    
    </select>
    <!-- drop-down-menu end -->
    
    <a href="javascript:if ( 1 < document.getElementById('ArchivNavi').options.selectedIndex ) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex -1].value;">Monat vor</a> | 
    <a href="javascript:if ( document.getElementById('ArchivNavi').length > document.getElementById('ArchivNavi').options.selectedIndex +1) parent.location.href = document.getElementById('ArchivNavi').options[ document.getElementById('ArchivNavi').options.selectedIndex +1].value;">Monat zurück</a>
    
    </div>
    </form>
    
    <!--
      JavaScript: show formular
    -->
    <script type="text/javascript">
    document.getElementById("ArchivNaviForm").style.display='inline';
    </script>
    
    
    </div>
    <!-- indexer::continue -->
    Viel Spaß damit.
    Angehängte Grafiken Angehängte Grafiken

  29. #29
    Contao-Nutzer
    Registriert seit
    31.08.2010.
    Beiträge
    72

    Standard

    Super Template!

    Funktionier allerdings bei mir nur wenn ich das template im ordner modules/news überschreibe (Contao 2.10.1).
    Übers Backend in Templates werden die Änderungen nicht übernommen.

    Habe allerdings festgestellt das die Buttons "Monat vor | Monat zurück" vertauscht sind.
    denn wenn ich im April bin und auf Monat zurück drücke, lande ich im Mai

  30. #30
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    Zitat Zitat von TheKidRocker Beitrag anzeigen
    Funktionier allerdings bei mir nur wenn ich das template im ordner modules/news überschreibe (Contao 2.10.1).
    Übers Backend in Templates werden die Änderungen nicht übernommen.
    Ich habe bis jetzt noch keine Contao 2.10 Erfahrungen und kann dir da leider kein Tipp dazu geben und ist unabhängig von diesem Code hier.


    Zitat Zitat von TheKidRocker Beitrag anzeigen
    Habe allerdings festgestellt das die Buttons "Monat vor | Monat zurück" vertauscht sind.
    denn wenn ich im April bin und auf Monat zurück drücke, lande ich im Mai
    Bei dir sind die Einträge in der Select-Box anders rum sortiert. Woran das liegt (evtl. Contao 2.10-spezifisch?) kann ich nicht sagen.

  31. #31
    Gesperrt
    Registriert seit
    25.08.2010.
    Ort
    NRW
    Beiträge
    49

    Standard

    Ich benutze das Menü unter 2.10 (sowohl für News als auch Events) und es läuft einwandfrei. Welches Ausgabeformat hat deine Frontpage? HTML (5) oder XHTML?

    Das Template unter modules/news auf keinen Fall überschreiben. Am besten wieder auf 2.10 Standard zurücksetzen und stattdessen im Backend unter "Layout" -> "Templates" ein neues Template mod_newsmenu.AUSGABEFORMAT im Ordner deines Seitentemplates anlegen. Dort dann µaTh's Code einfügen und speichern.

  32. #32
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Besten Dank für das geniale Template!! Genau das habe ich gesucht!
    Contao ist echt !

  33. #33
    Contao-Nutzer Avatar von cb-schwimmen
    Registriert seit
    22.04.2011.
    Beiträge
    29

    Standard

    Zitat Zitat von Michael Beitrag anzeigen
    Besten Dank für das geniale Template!! Genau das habe ich gesucht!
    Wir nutzen das Template auch schon ein weilchen. Auch von uns ein Danke für das Template!

    Besser kann man wohl kein größeres Archiv als Liste darstellen.
    mein erstes Contao-Projekt: http://www.psvcottbus-schwimmen.de - für Anregungen, Kritiken und Tipps bin ich jederzeit dankbar.

  34. #34
    Contao-Nutzer
    Registriert seit
    04.12.2009.
    Beiträge
    86

    Standard

    Danke für dieses Template und diesen Thread sehr interessant.

    Was muss ich tun um bei dem Menü statt Monat (XY Einträge) nur Monat (XY) stehen zu haben?

    <?php if ($this->showQuantity): ?> (<?php echo $month['quantity']; ?>)

    Oder das irgendwie über die Sprachendatei anpassen ?

    VG
    Zwergenmeister

  35. #35
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Das Template funktioniert leider nur bis Contao 3.1.5. Ab Version 3.2.x löscht Contao die URI, weshalb der Javascriptsprung mit parent.location.href nicht mehr funktioniert.

    Hat jemand schon eine Lösung?
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  36. #36
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Hat jemand diese Template schon mit Contao 3.5 im Einsatz?
    Finde eine Dropwdown viel praktischer als eine mit den Jahren lange Auflistung.

    Beste Grüsse
    Michael
    Contao ist echt !

  37. #37
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    Zitat Zitat von Michael Beitrag anzeigen
    Hat jemand diese Template schon mit Contao 3.5 im Einsatz?
    Finde eine Dropwdown viel praktischer als eine mit den Jahren lange Auflistung.
    Habe eben eine Installation von 2.9 auf 3.5 geupdatet. Dort läufts problemlos.

  38. #38
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Kann es sein, dass es mit 3.4.4 nicht funktioniert und mit 3.5 schon? Dann würde ich eine Update in Erwägung ziehen..
    Beste Dank für einen Tipp!
    Michael
    Contao ist echt !

  39. #39
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    950

    Standard

    auf Grund eines Bugs in Contao 3.5 (evtl. auch in vorherigen Versionen...) funktioniert die Eventliste Menü nicht korrekt: https://github.com/contao/core/issues/7953
    Newsliste Menü funktioniert

  40. #40
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Besten Dank für die Info!
    Ich möchte das Template nur das News-Archivmenü. Ich habe nun herausgefunden. dass wenn ich im Modul das geänderte Template auswähle, dies wahrscheinlich gar nicht berücksichtig.
    An was kann dies liegen?
    Contao ist echt !

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Nachrichtenarchiv-Menü-Archiv
    Von BerndDaniel im Forum Nachrichten/Events/FAQ
    Antworten: 4
    Letzter Beitrag: 23.01.2011, 23:45
  2. Drop-down Menü (select) mit default-Werten?
    Von somoza im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 23.08.2010, 11:43
  3. CSS - Drop Down Menü für IE6 mit HTC-Datei (behaviour)
    Von Hueso im Forum Layout / Templates / Holy Grail
    Antworten: 6
    Letzter Beitrag: 11.05.2010, 18:19
  4. Hover Effekt / Drop Down Menü
    Von Fiete im Forum Layout / Templates / Holy Grail
    Antworten: 4
    Letzter Beitrag: 27.04.2010, 16:58

Lesezeichen

Lesezeichen

Berechtigungen

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