Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

views: exposed filter formatieren?

Eingetragen von patcher (217)
am 07.10.2008 - 11:56 Uhr in
  • Views
  • Drupal 5.x

hallo zusammen,

ich habe eine ansicht mit vier verschiedenen hervorgehobenen filtern erstellt, funktioniert einwandfrei, aber: die hervorgehobenen filter (multiselect-boxen) werden alle in einer tabellen-reihe nebeneinander (plus absenden-button) dargestellt. dies zerschiesst mir total mein layout 600px.

wie kann ich (per css?) diese reihe "aufbrechen" und jeweils zwei filterauswahlen untereinandersetzen?? ich weiss gar nicht wo die tabelle generiert wird.

zweite frage wäre; ob es auch möglich ist, die hervorgehobenen filter und view-ergebnisse zu trennen, sprich z.B. ein suchfeld (view-fastsearch) und multiselect-filter auf der homepage, ergebnis aber auf einer andreen seite. wie liesse sich das realisieren?

besten dank
patcher

‹ CCK & Imagefield: Mehrere Bilder einem Artikel hinzufügen Views 2 Anzeigen: Standards, Block, Seite ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hat hier niemand ne

Eingetragen von patcher (217)
am 09.10.2008 - 19:34 Uhr

hat hier niemand ne idee?
ist das ein thema für node.tpl.php? als php-laie habe ich mich da bisher nicht rangetraut...

danke
patcher

  • Anmelden oder Registrieren um Kommentare zu schreiben

so nun habe ich auf

Eingetragen von patcher (217)
am 10.10.2008 - 10:13 Uhr

so nun habe ich auf drupal.org noch einen ersten hinweis zu meiner frage gefunden:

"views module: theming exposed filters" http://drupal.org/node/79302

aber nun stehe ich als anfänger vor dem nächsten problem: wie bringe ich eine template.php zum laufen?

ich arbeite mit dem chameleon-theme. bisher hatte ich keine template.php.

folgende fragen drängen sich mir auf:
gehört die template.php richtigerweise in das verzeichnis /themes/chameleon oder /themes/engines/phptemplate ??

habe nun aus obigem threat unterschiedliche codes übernommen, aber es passiert gar nichts. muss die template.php irgendwo verknüpft werden??

müssen noch andere infos in die datei?

danke
patcher

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bei mir klappt das

Eingetragen von aschiwi (1113)
am 10.10.2008 - 11:29 Uhr

Bei mir klappt das folgendermaßen. In template.php, die in meinem Theme-Ordner liegt (sites/all/themes/meintheme). Dein Theme in sites/all/themes zu legen ist empfohlen, genauso wie alle Nicht-Core Module in sites/all/modules zu legen. Dann hast du bei Updates und Backups weniger Schwierigkeiten. So also ich habe folgenden Code in der template.php:

function phptemplate_views_filters($form) { //this call overrides all views filters so I need a condition
  $view = $form['view']['#value'];

  if ($view->name == 'VIEWNAMEHIER'){ //so I used the view's name, in this case the view I want to do refactoring is 'vista'
    foreach ($view->exposed_filter as $count => $expose) {
      $row[] = drupal_render($form["op$count"]) ;
      $box[] = drupal_render($form["filter$count"]);
      $label[] = $expose['label'];
    }
    $row[] = drupal_render($form['submit']);
    $label[] = ''; // so the column count is the same.
    $title = $view->page_title;

    return _phptemplate_callback('views-filters-VIEWNAMEHIER', array('title' => $title, 'row' => $row, 'box' => $box, 'label'=>$label));
    // I use a callback to a tpl called views-filters-VIEWNAMEHIER.tpl.php
  }
  else{ // in the case it isn't 'vista' it goes through the normal flow as defined in views.module
    foreach ($view->exposed_filter as $count => $expose) {
      $row[] = drupal_render($form["op$count"]) . drupal_render($form["filter$count"]);
      $label[] = $expose['label'];
    }
    $row[] = drupal_render($form['submit']);
    $label[] = ''; // so the column count is the same.

    // make the 'q' come first
    return drupal_render($form['q']) . theme('table', $label, array($row)) . drupal_render($form);
  }
}

Beachte bitte, dass du in diesen Code anstelle von VIEWNAMEHIER den Namen deines Views angeben musst.

Und dann habe ich eine Datei im selben Ordner (sites/all/themes/meintheme) namens views-filters-VIEWNAMEHIER.tpl.php und dort kommt dein spezielles HTML rein und an die richtigen Stellen den Code, der die Filter-Felder ausgibt, also z.B.:

<h3><?php echo $label[1] . ': '; ?></h3>
<p><?php echo $row[1]; ?></p>

Die Zahl 1 ist Feld 1 im exposed filter. Weitere Felder gibst du mit weiteren Zahlen, also 2 und 3 usw. aus. Musst ausprobieren, welche Felder dann kommen, ich erinnere mich nicht mehr woher man das kriegt.

Viel Glück :-)
-------------------------------------------------
I don't know the question but the answer is Views

  • Anmelden oder Registrieren um Kommentare zu schreiben

so ähnlich habe ich es auch

Eingetragen von patcher (217)
am 10.10.2008 - 11:59 Uhr

so ähnlich habe ich es auch realisiert, nur alles in einer datei.
mein problem war, das mein theme "chameleon" nicht mit phptemplate zusammenarbeite und ich daher alles direkt in das chameleon template schreiben musste:

function chameleon_views_filters($form) {
  $view = $form['view']['#value'];
  $number_exp_filters = count($view->exposed_filter);
  $i = 0;
  $output='<table border="1" width="">';
  foreach ($view->exposed_filter as $count => $expose) {
    $i++;
    $label = '<div class="form-element-label">'.$expose['label'].'</div>';
    $formelement = drupal_render($form["op$count"]) . drupal_render($form["filter$count"]);
    $filter ='<div class="form-element-'.$count.' form-element-'.$expose['label'].'">'.$label.$formelement.'</div>';

if ($i % 4 == 1) {
  $output .= '<tr><td colspan="2">'.$filter.'</td></tr>';
}
else
{
  $output .= '<td width="33%">'.$filter.'</td>';
}
  }
  if ($number_exp_filters % 4 != 0) {
    $output .= '<td></td></tr>';
  }
  $output .= '<tr><td colspan="3">' . '<div class="form-submit-button">' . drupal_render($form['submit']) . '</div>' . '</td></tr>';
  $output .= '</table>';
  return $output . drupal_render($form);
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • Danke ich werde mir die
    vor 5 Wochen 3 Tagen
  • Vielen Dank für Ihren
    vor 5 Wochen 6 Tagen
  • Composer ist sehr ratsam
    vor 6 Wochen 1 Tag
  • Vielen Dank für den
    vor 6 Wochen 3 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 6 Wochen 4 Tagen
  • Gut gemacht
    vor 6 Wochen 4 Tagen
  • Layout Builder etc. z.B. für Landing Pages
    vor 6 Wochen 4 Tagen
  • Links
    vor 6 Wochen 6 Tagen
  • Moin,wow, sehr gutes
    vor 7 Wochen 19 Stunden
  • Dass ist eine spannende
    vor 7 Wochen 1 Tag

Statistik

Beiträge im Forum: 250316
Registrierte User: 20567

Neue User:

  • Philiphelve
  • Robertspaft
  • drupalthemes

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 9 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association