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 - 12: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 - 20: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 - 11: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 - 12: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 - 12: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

  • 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
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Gefunden
    vor 6 Wochen 15 Stunden
  • Vielen Dank für die ausführlichen Hinweise...
    vor 6 Wochen 4 Tagen
  • Mögliche Ursachen und nächste Schritte
    vor 6 Wochen 4 Tagen
  • Was für einen Server benutzt
    vor 9 Wochen 17 Stunden
  • Wenn die Subdomain auf
    vor 9 Wochen 2 Tagen
  • ordnerstruktur
    vor 9 Wochen 3 Tagen
  • Die Subdomain muß auf den
    vor 9 Wochen 5 Tagen
  • Verwende doch das Tag dafür,
    vor 13 Wochen 7 Stunden
  • Guckst du hier: step by step
    vor 12 Wochen 6 Tagen
  • Guckst du hier: step by step
    vor 12 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250294
Registrierte User: 20535

Neue User:

  • DanielAltek
  • HilipPet
  • Henryskake

» 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 16 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