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

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 3 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 3 Stunden
  • In der entsprechenden View
    vor 4 Wochen 3 Stunden
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 3 Stunden
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

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