[Frage] tx_news - Kategoriefilter in List-View TYPO3-Version: 6.1.1


  • 1
  • habnefrage habnefrag...
    TYPO3-Anwärter
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    22. 08. 2013, 09:42

    Hab nun doch eine Lösung gefunden.

    Als Beispiel habe ich mir folgenden Codeschnipsel genommen:
    http://www.holosystems.de/codeschnipsel/artikel/detail/typo3-news-tx-news-nach-kategorie-ausgeben-filtern/

    Allerdings habe ich dabei die Änderungen in der Newscontroller.php weggelassen und im typoscript die Zeile mit dem GET-Parameter:
    additionalParams.dataWrap = &tx_news_pi1[categories]={field:uid}
    wie folgt geändert:
    additionalParams.dataWrap = &tx_news_pi1[overwriteDemand][categories]={field:uid}

    nun funktioniert es super!

  • newbie12 newbie12
    T3PO
    0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    30. 06. 2017, 11:21

    Hallo meine lieben Freunde,
    Ich hab grad diesen Beitrag gefunden und stehe nun vor exakt der selben Herausforderung.
    Da der Link von "habnefrage" leider nicht mehr funktioniert, wollte ich fragen ob jemand dazu eine Lösung hat?
    Ziel ist es in der List View die Kategorien mit Checkbox mit aus zu geben und ist eine (oder auch mehrere) aktiv, sollen die Artikel aus der/den jeweiligen Kategorien ausgegeben werden.

    Vielen Dank für eure Hilfe

    Beste Grüße

  • 0 x
    66 Beiträge
    0 Hilfreiche Beiträge
    03. 07. 2020, 10:54

    Ich habe den Kategoriefilter in tx_news unter Typo3 9.5 wie folgt gelöst.

    TypoScript der Seite (Zwei Drop-Downs mit unterschiedlichen Kategorierubriken
    [code]lib.bundesland = COA
    lib.bundesland {
    # hole alle Hauptkategorien
    10 = CONTENT
    10 {
    # wrappe die gesamte Liste als "unsortierte Liste"
    wrap = <select class="news-catmenu" id="bundesland"><option value="">-- Alle --</option>|</select>
    table = sys_category
    select {
    # hier muss die pid eures News-Sysordners rein, bzw. wo die News-Kategorien gespeichert sind
    pidInList = 1092
    selectFields = uid, title
    orderBy = title
    where = parent=30 AND deleted=0 AND hidden=0
    }
    renderObj = COA
    renderObj {
    # zeig mir den Kategorie-Titel und mache einen Filter-Link daraus
    10 = TEXT
    10 {
    # das title-Feld soll als Text angezeigt werden (könnte man auch description... verwenden)
    field = uid
    wrap = <option value="|">
    }
    20 = TEXT
    20.field = title
    20.wrap = |</option>
    }
    }
    }
    lib.themenbereich < lib.bundesland
    lib.themenbereich.10.select.where = parent=18 AND deleted=0 AND hidden=0
    lib.themenbereich.10.wrap = <select class="news-catmenu" id="themenbereich"><option value="">-- Alle --</option>|</select>

    [/code]

    Und dann im Fluid-Template (Searchform.html)
    {namespace n=GeorgRinger\News\ViewHelpers}
    <f:layout name="General" />
    <!--
    =====================
    Templates/News/SearchForm.html
    -->

    <f:section name="content">
    <div class="news-search-form">
    <!-- Hier werden per Skript alle Gewählten Kategorien gesammelt und als Overwrite ans Plugin übergeben -->

    <f:form object="{search}" name="search" pageUid="{settings.listPid}">
    <input type="hidden" id="selectedcats" name="tx_news_pi1[overwriteDemand][categories]" value="" />
    <fieldset class="powermail_fieldset">
    <div class="powermail_fieldwrap">
    <label class="powermail_label">
    Bundesland:
    </label>
    <div class="powermail_field">
    <f:cObject typoscriptObjectPath="lib.bundesland" />
    </div>
    </div>
    <div class="powermail_fieldwrap">
    <label class="powermail_label">
    Themenbereich:
    </label>
    <div class="powermail_field">
    <f:cObject typoscriptObjectPath="lib.themenbereich" />
    </div>
    </div>
    <div class="powermail_fieldwrap">
    <label class="powermail_label">
    Suchwort:
    </label>
    <div class="powermail_field">
    <f:form.textfield id="news-subject" property="subject" class="form-control"/>
    </div>
    </div>
    <f:form.submit value="{f:translate(key:'search-start')}" class="btn btn-default"/>
    </fieldset>
    </f:form>
    </div>
    <script>
    $(".news-catmenu").change(function(){
    var selectedcats = false;
    if ($('#bundesland').val()!='')
    {
    selectedcats = $('#bundesland').val();
    }
    if ($('#themenbereich').val()!='')
    {
    if (selectedcats)
    {
    selectedcats = selectedcats+','+$('#themenbereich').val();
    }
    else
    {
    selectedcats = $('#themenbereich').val();
    }

    }

    $('#selectedcats').val(selectedcats);
    });

    </script>
    </f:section>
    [/code]

  • 1