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

  • Koordination der Aktivitäten zum Marketing
  • Halla los mejores refugios burbuja en Madrid, Andalucia y la costa catalana
  • 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

  • Coordination of marketing
    vor 2 Stunden 47 Minuten
  • Verwende doch das Tag dafür,
    vor 2 Wochen 17 Stunden
  • Guckst du hier: step by step
    vor 2 Wochen 6 Stunden
  • Guckst du hier: step by step
    vor 2 Wochen 6 Stunden
  • Ich habe ja keine Angst vor
    vor 3 Wochen 2 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 3 Wochen 4 Tagen
  • Vielen Dank erst einmal, aber
    vor 3 Wochen 6 Tagen
  • Du hast die "Trusted host
    vor 4 Wochen 24 Minuten
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 5 Wochen 5 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250286
Registrierte User: 20505

Neue User:

  • growthnaavik
  • MonroeScobe
  • Marvinkep

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 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