ConPresso4 Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Artikelfilter

 
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7078

BeitragVerfasst am: 19.07.2006 13:28    Titel: Artikelfilter Antworten mit Zitat

Dateien und Bilder lassen sich ja wunderbar filtern, was aufgrund der möglichen hohen Anzahl auch sinnvoll ist.

Leider existiert sowas nicht für die Artikel. Da ich aber Rubriken mit fast 600(!) Artikeln habe ist das Klicken durch mehrere Seiten echt nervig.

Aber glücklicherweise hatte mich ein Kunde mit einem sog. Artikelfilter beauftragt und stellt diesen auch der "ConPresso-Gemeinde" zur Verfügung.

In der Anlage ist die modifizierte articles.php.

Wer in dieser noch andere Änderungen vorgenommen hat, modifiziert diese von Hand folgendermaßen:

SUCHE (ab Zeile 800)
Code:
        $_q = "FROM ".CPO_NEWS." "
             ."WHERE artikel_archiv=0 "
             ."AND rubric_id='".addslashes($_SESSION['SID_rubric_id'])."' ";

ERSETZEN MIT
Code:
      // Start Artikelfilter Teil 1 *****************
      switch ($_REQUEST['action']) {
      case 'togglefilter':
         $_SESSION['filter_files']['enabled'] = !$_SESSION['filter_files']['enabled'];
         break;
      case 'setfilter':
         $_SESSION['SID_pagers'][$pager] = 0;

         $_SESSION['filter_files']['phrase'] = $_POST['phrase'];
         break;
      }
      if (!$_SESSION['filter_files']['enabled']) {
         $_SESSION['filter_files']['phrase'] = '';
      }

      $join_phrase = '';
      $q_phrase = '';
      if ($_SESSION['filter_files']['phrase']) {
         $join_phrase .= "LEFT JOIN ".CPO_CONTENT_TEXT." t ON ".CPO_NEWS.".nr = t.article_id "
                     ."LEFT JOIN ".CPO_CONTENT_HTML." h ON ".CPO_NEWS.".nr = h.article_id "
                     ."LEFT JOIN ".CPO_CONTENT_URLS." u ON ".CPO_NEWS.".nr = u.article_id ";

         $q_phrase .= "AND (titel LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%' "
                  ."OR commentary LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%' "
                  ."OR keywords LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%' "
                  ."OR t.text LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%' "
                  ."OR h.html LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%' "
                  ."OR u.urltext LIKE '%".addslashes($_SESSION['filter_files']['phrase'])."%') "
                  ."GROUP BY ".CPO_NEWS.".nr ";
      }

        $_q = "FROM ".CPO_NEWS." "
          .$join_phrase
             ."WHERE artikel_archiv=0 "
             ."AND rubric_id='".addslashes($_SESSION['SID_rubric_id'])."' "
          .$q_phrase;
      // Ende Artikelfilter Teil 1 *****************

SUCHE
Code:
        printPageHeader(
            __('Work on articles'),
            __('In this view you can choose the article you want to manage.')
        );

DANACH EINFÜGEN
Code:
      // Start Artikelfilter Teil 2 *****************
      if (!$_SESSION['filter_files']['enabled']) {
         print('<table style="width: 100%;" class="colored filter"><thead>');
         print('<tr>');
         printf('<th><span><a href="%1$s">'
              .'<img src="'.SKIN_URL.'sym_filteron.gif" width="13" height="13" style="vertical-align: text-bottom;" alt="%2$s" title="%2$s" ></a>'
              .'&nbsp;<a href="%1$s">%2$s</a>'.help('').'</span></th>',
            $_SERVER['PHP_SELF'].'?action=togglefilter',
            htmlspecialchars(__('Enable filter')));
         print('</tr></table>');
      } else {
         print('<table style="width: 100%;" class="colored"><thead>');
         print('<tr>');
         printf('<th colspan="3"><span><a href="%1$s">'
              .'<img src="'.SKIN_URL.'sym_filteroff.gif" width="13" height="13" style="vertical-align: text-bottom;" alt="%2$s" title="%2$s" ></a>'
              .'&nbsp;<a href="%1$s">%2$s</a>'.help('').'</span></th>',
            $_SERVER['PHP_SELF'].'?action=togglefilter',
            htmlspecialchars(__('Disable filter')));
         print('</tr></thead><tbody><tr>');

         print('<form method="post" action="'.$_SERVER["PHP_SELF"].' " name="newsentry">');
         print('<td class="leftrow">');
            print(__('Filter by phrase:').'</td><td>');
            printf('<input type="text" name="%s" value="%s" class="inputwidth">'.help(''),
               'phrase',
               htmlspecialchars($_SESSION['filter_files']['phrase']));
         print('</td></tr><td>&nbsp;</td><td>');
            print('<input type="hidden" name="action" value="setfilter">');
            print('<input type="submit" class="button" value="'.htmlspecialchars(__('Set filter parameters')).'">');
         print('</td>');
         print('</form>');
         print('</tr></tbody></table>');
      }
      // Ende Artikelfilter Teil 2 *****************

SUCHE
Code:
        if ($_SESSION['SID_stufe2']==1 && $cpoRubricSettings['sorting']=='sort_id desc') {

ERSETZEN MIT
Code:
      // Start Artikelfilter Teil 3 *****************
        if ($_SESSION['SID_stufe2']==1 && $cpoRubricSettings['sorting']=='sort_id desc' && $_SESSION['filter_files']['phrase'] == '') {
       // Ende Artikelfilter Teil 3 *****************

SUCHE (ein paar Zeilen danach kommt der gleiche Code nochmal!)
Code:
            if ($_SESSION['SID_stufe2']==1 && $cpoRubricSettings['sorting']=='sort_id desc') {

ERSETZEN MIT
Code:
         // Start Artikelfilter Teil 4 *****************
            if ($_SESSION['SID_stufe2']==1 && $cpoRubricSettings['sorting']=='sort_id desc' && $_SESSION['filter_files']['phrase'] == '') {
         // Ende Artikelfilter Teil 4 *****************

Nicht wundern: Der eingegebene Suchbegriff wird auch beim Dateifilter und umgekehrt benutzt!





artikelfilter.gif
Klicken für Originalbild! artikelfilter.gif (14.39KB) - 667 mal angeklickt



articles.zip - 11.11 KB
633 mal


_________________
Ciao Markus
ConPresso-Module

Succi recentis officinalis
Frische, hochwertige Kräutersäfte und -Öle für Pferde, Hunde und Katzen direkt aus unserer Manufaktur

 
Für dieses Posting bedanken sich die folgenden User: CPS, Ralf, Marky, Matthias V, Mr. Magpie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Rappi
ConPresso-User


Anmeldungsdatum: 05.05.2006
Beiträge: 97
Wohnort: Magdeburg

BeitragVerfasst am: 24.07.2006 12:31    Titel: Antworten mit Zitat

Die Funktion habe ich soeben bei mir eingebaut.

Das ist eine super Idee von dir, damit erspare ich mit viel Arbeit.

weiter so...

_________________
Marko Rappholz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1748

BeitragVerfasst am: 24.07.2006 22:43    Titel: Antworten mit Zitat

Hi Markus,

schoenes Feature! Aber mir kam gerade (beim schnellen Ueberfliegen) der Gedanke - wie verhaelt es sich, wenn die manuelle Sortierung aktiv ist?

Sehe ich das richtig, dass die Sortierung abgeschaltet wird, wenn man den Filter aktiviert?

Balu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7078

BeitragVerfasst am: 24.07.2006 23:14    Titel: Antworten mit Zitat

Genau!

Weil man sonst ja blind Plätze wechseln würde. Oder man glaubt, daß es nicht funktioniert, weil sich die Artikel nicht bewegen (weil ihre "Nachbarn" ja ausgeblendet sind).

Es haben sich schon genügend Leute in Excel bei aktiven Filtern komplexe Tabellen zerschossen Twisted Evil

_________________
Ciao Markus
ConPresso-Module

Succi recentis officinalis
Frische, hochwertige Kräutersäfte und -Öle für Pferde, Hunde und Katzen direkt aus unserer Manufaktur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 07.10.2006 01:32    Titel: Antworten mit Zitat

Hallo MarkusR,

hast du evtl. auch einen Ansatz für so einen Filter bei "Benutzer bearbeiten"??

Da es mir evtl. bald so gehen wird das ich mehrere Hundert User haben werde. Und da wäre so ein Filter auch nicht schlecht ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7078

BeitragVerfasst am: 07.10.2006 02:00    Titel: Antworten mit Zitat

Nein.
Ich warte noch darauf, daß mich jemand mit so vielen Usern mit der Entwicklung beauftragt (wie das ja auch beim Artikelfilter war).

_________________
Ciao Markus
ConPresso-Module

Succi recentis officinalis
Frische, hochwertige Kräutersäfte und -Öle für Pferde, Hunde und Katzen direkt aus unserer Manufaktur
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> Implementierung/Anpassung ConPresso 4 Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen