Hello Bodo,
hast du eine Lösung gefunden? Ich bin auch auf der Suche nach dieser Möglichkeit.
Die Extension ods_newsfilter hat den Ansatz, nur funktioniert irgendwie die zweite Auswahl nicht...
Grüsse
BENCH
Über das CATMENU ist es möglich dem FE_User die Möglichkeit zu geben die angezeigten Nachrichten in der LIST-Ansicht nach einer Kategorie zu filtern.
Ich möchte dem FE_User die Möglichkeit bieten die Ansicht der List-Darstellung nach mehreren Kategorien (UND-Verknüpfung) zu filtern. Es sollen also nur Nachrichten gezeigt werden, die der Kat.A, Kat.B und Kat.C zugordnet sind.
Ich habe jetzt schon mehrere Stunden in den Weiten des Internets gesucht, aber leider nichts brauchbares gefunden. Ich hätte nicht gedacht, dass das so ein ausgefallener Wunsch ist.
Könnt Ihr mir helfen?
Grüße an Alle
Bodo
Hello Bodo,
hast du eine Lösung gefunden? Ich bin auch auf der Suche nach dieser Möglichkeit.
Die Extension ods_newsfilter hat den Ansatz, nur funktioniert irgendwie die zweite Auswahl nicht...
Grüsse
BENCH
funktioniert die ext. nun?
hat mal wer den Programmierer kontaktiert ?
gibt es eine andere Möglichkeit tt_news mit mehr "filtern" zu bestücken!?!
Danke Euch!
TYPO3 - TIPS - ANLEITUNGEN - NEWS unter: http://blog.ingeniumdesign.de/
Firma: TYPO3 - Internetagentur - Frankfurt und Wiesbaden
Nein, die Ext hatte ich nicht zum laufen gebracht. Ich ging dem Problem jedoch auch nicht nach.
Ich probierte mal noch diesen Lösungsansatz aus: Typo3 Leckeres aus der IT-Welt
Jedoch gibt es auch dort probleme. Aber grundsätzlich funktioniert es.
Ich bräuchte die Funktion primär als Filter für Bilder. D.h. ich benutze die tt_news als Galerie und möchte eine Möglichkeit die Bilder nach mehreren Kriterien zu Filtern. Vielleicht weiss sonst jemand noch einen anderen Lösungsansatz.
Grüsse
das wollte ich machen, ggf. hast du noch eine idee?
Hallo Liste,
ist es möglich, die Kategorien so aufzubauen, dass man erst eine auswählen muss und dann kommen andere:
Beispiel:
Länderfilter:
- Land1
- Land2
- Land3
Themenfilter:
- Thema1
- Thema2
- Thema3
Nun wählt man erst das Land und dann das Thema...
Danke Euch,
Basti
TYPO3 - TIPS - ANLEITUNGEN - NEWS unter: http://blog.ingeniumdesign.de/
Firma: TYPO3 - Internetagentur - Frankfurt und Wiesbaden
Hallo zusammen,
ich versuche mich gerade an so einer Lösung und bin dabei auf diesen Thread gestoßen. Es würde mich interessieren, ob Ihr dabei vorangekommen seid und vor allem WIE.
Ich hatte mich dem Thema wie folgt genähert:
Das ganze funktioniert zum Testen erst mal auch ohne die Extension, indem man den Parameter "catz" manuell in die URL schreibt. Mit "catz=-1" bekommt man die "Alles anzeigen"-Ansicht, catz="[Cat-ID],[Cat-ID]...] Filtert additiv.
- tt_news Element (Listenansicht, Auswahl "Zeige alle Beiträge") auf einer Seite angelegt
- im Template der Seite folgendes TS:
Code:[globalString = GP:catz = -1] plugin.tt_news{ code = LIST useSubCategories = 1 displaySubCategories = 1 allowCaching = 0 categoryMode = 1 categorySelection = 4 } [else] plugin.tt_news{ code = LIST useSubCategories = 0 displaySubCategories = 1 allowCaching = 0 categoryMode = 2 categorySelection.data = GP:catz } [global]- kleine Extension geschrieben, die die Kategorien aus der DB ausliest und entsprechende Links zusammenbaut
Probleme:
Wie gesagt, wenn Ihr zum Thema "tt_news-Kategorien additiv filtern" eine praktikable Lösung habt, wäre ich für jeden, auch völlig anderen Ansatz, dankbar.
- Der Filter funktioniert nur, wenn das Listenelement auf der Seite keine Kategorie-Filterung hat (siehe 1.)
- Der Filter mit categoryMode = 2 funktioniert nur auf die unterste Kategorieebene, wenn also z.B. nach der Kategorie mit der ID 4 gefiltert wird und diese Unterkategorien hat, bleibt die Anzeige leer
- categoryMode = 1 im ersten Teil der Bedingung sorgt dann dafür, dass catz=-1 die Filterung nach CatID 4 vornimmt, aber wie bekomme ich diesen Filter gleich beim Laden der Seite aktiv? Die Bedingung umzudrehen und mit [globalString = catz=*] anzufangen funktioniert nicht.
Gruß
Axel
hallo leidgeplagte ....
hat irgendwer von euch schon eine lösung dazu?
ich habe gerade die version von leckeres aus der it welt probiert und bekomme nicht mal im ersten schritt die richtigen kategorien angezeigt :-(
lg
XL
Hallo liebe Typo3 Freunde,
vielleicht hilft euch das weiter:
Code:#Newsfilter get_categories = CONTENT get_categories { table = tt_news_cat select { pidInList = 67 where = parent_category = 12 orderBy = title } renderObj = COA renderObj { 5 = LOAD_REGISTER 5.categoryUid.cObject = TEXT 5.categoryUid.cObject.field = uid 5.categoryParam.cObject = TEXT 5.categoryParam.cObject.field = uid 5.categoryParam.cObject.wrap = &tx_ttnews[cat]=| 10 = TEXT 10.field = uid 10.wrap = <option value="|" 20 = TEXT 20 { field = title wrap = selected="selected" >| if { value.field = uid equals = {$news.filter} } } 30 = TEXT 30 { field = title wrap = >| if { value.field = uid equals = {$news.filter} negate = 1 } } 40 = CONTENT 40.table = tt_news 40.select { selectFields = count(*) AS counter pidInList = 67 where = NOT deleted AND NOT hidden andWhere.data = register:categoryUid andWhere.wrap = tt_news_cat_mm.uid_foreign = | andWhere.value = 10 andWhere.wrap = tt_news_cat_mm.uid_foreign = | join = tt_news_cat_mm ON (tt_news_cat_mm.uid_local = tt_news.uid) } 40.renderObj = TEXT 40.renderObj.field = counter 40.stdWrap.noTrimWrap = | (|)| 50 = TEXT 50.value = </option> } } lib.field_filterbox = COA lib.field_filterbox { 10 = TEXT 10.value = {$news.URL} 10.wrap = <form id="filter-formular" action="|" method="get"> 15 = TEXT 15.value = <h2>News filtern</h2> 20 = TEXT 20.value = <p class="thema_label">Thema:</p> 30 = TEXT 30.value = <div class="filter_select"><select id="thema" name="categorie" size="1" onchange="document.getElementById('filter-formular').submit()"> 35 = TEXT 35.value = <option value="all">Alle Themen Anzeigen</option> 40 = TEXT 40 < get_categories 50 = TEXT 50.value = </select></div> #70 = TEXT #70.value = <a class="button tt-news-fachgebiet" href="javascript:filter_news();"><span>› Suche anzeigen</span></a> 80 = TEXT 80.value = <p><button class="button tt-news-fachgebiet filter-btn"><span>› Suche anzeigen</span></button></p></form> }
Und jetzt müsst ihr noch eine Javascriptdatei anlegen und natürlich einbinden:
VgCode:function filter_news() { var categories = ''; var subject = document.getElementById('thema').value; // nun weitere Felder auslesen, z.B. Medientyp //var mediaType = document.getElementById('medienTyp'); //var author = document.getElementById('author'); categories = subject; // neue URL mit Variable 'categories' zusammen setzen window.location = document.getElementById('filter-formular').action + '?tx_ttnews[cat]=' + categories; }
Clemens
lieber clemens,
ich fange zwar mit deinem code direkt nichts an, aber die art wie er geschrieben ist, hat mir sehr geholfen meinen filter zu realisieren ;-)
danke und lg XL
Das Problem ist, dass bei der
Einstellung 2 (categorieMode=2)
d.h. Filter mit Unterkategorien es nur angedacht war eine 'oder' Filterung durchzuführen
-- d.h. es können auch noch weitere 'oder' Kategorien kommagetrennt hinzugefügt werden Bsp.: ?tx_ttnews[cat]=1,2,3,4
(zB Subkategorien von 1->10 2->20,21 4->45 werden aufgelöst d.h. die definitive 'oder' Suche intern ist dann tx_ttnews[cat]=1,2,3,4,10,21,22,45 )
was jetzt aber interessant ist, wäre eine Mischung von 'und' / 'oder' Modus d.h.
zB Eintrag ist (1 oder 3) UND (2 oder 4) (mit Subkategorien) zugeordnet
dazu wäre dann auch ein weiterer Seperator nötig -- ich habe '-' benutzt
die GP Variable wäre dann ?tx_ttnews[cat]=1,3-2,4
der Code wäre in class.tx_ttnews.php (typo3conf/ext/tt_news/pi) in "function displayList" unter
"if ($excludeUids) { $where = ' AND tt_news.uid NOT IN (' . $excludeUids . ')';}" ca Zeile 636 hinzuzufügen
(benutzt mit tt_news 3.0)
PHP-Code:// if cat query parameter contains "-" execute uid query -- attach a "where clause" with .uid IN (list)
if ( false !== strpos($this->piVars['cat'],'-') ) {
$catArray = explode('-', $this->piVars['cat'].'-');
if ( strlen($catArray[1])>0 ){
$this->piVars['cat'] = $catArray[1];
$this->initCategoryVars();
$selectConf = $this->getSelectConf($where, $noPeriod);
$includeUids = array();
if (($res = $this->exec_getQuery('tt_news', $selectConf))) {
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
$includeUids[] = $row['uid'];
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
}
$where .= ' AND tt_news.uid IN (' . implode(',', $includeUids) . ')';
$this->piVars['cat'] = $catArray[0];
$this->initCategoryVars();
}
}
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen