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

Views bei neuem Buchstaben eine Zusatzklasse anhängen

Eingetragen von finkenmann@drup... (68)
am 20.09.2010 - 14:34 Uhr in
  • Views
  • Drupal 6.x

Hallo liebe Drupaler

Steh da mal wieder vor einem Problem, bei dem mir wohl die Übersicht etwas fehlt, was wo wann von Drupal gemacht wird.

Folgendes: Ich gebe in einer View eine 5-spaltige (Raster) Stichwortliste aus. Jeder erste Buchstaben des neuen Wortes soll geprüft werden und nach seinem letzten Vorkommen, soll eine zusätzliche Klasse ins umschliessende Dif kommen, damit ich dort eine Linie zur optischen Hilfe einfügen kann. Nun dachte ich, dass ich diese Abfrage in der Datei "views-view-fields.tpl.php" erstellen kann, wo ja alle rows ausgegeben werden. So schaut die leicht angepasste tpl-Datei aus:

<?php $i="0"; ?>

<?php foreach ($fields as $id => $field) : ?>

  <?php
    $aktuell
= $field->raw{0};
    print
$i.' '.$aktuell;
    if(
$i!=$aktuell) {$link="linie";} else{$link="";}
   
$i=$aktuell;
 
?>

     
  <?php if (!empty($field->separator)): ?>
    <?php print $field->separator; ?>
  <?php endif; ?>


  <<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?><?php print $klasse .' '.$ab.' '.$lb.' '.$nr; ?>">
    <?php if ($field->label): ?>
      <label class="views-label-<?php print $field->class; ?>">
        <?php print $field->label; ?>:
      </label>
    <?php endif; ?>
      <?php
     
// $field->element_type is either SPAN or DIV depending upon whether or not
      // the field is a 'block' element type or 'inline' element type.
     
?>

      <<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
  </<?php print $field->inline_html;?>>
 
  <?php print $i.' '.$aktuell.' '.$link; ?>
<?php endforeach; ?>

Ich prüfe innerhalb der foreach Schleife, ob der Anfangsbuchstabe des letzten Begriffs identisch mit dem aktuellen Anfangsbuchstaben ist. Nur verstehe ich nicht, wieso meine Variable $i die ich ja ausserhalb der foreach Schleife für den ersten Durchlauf initialisiere jedesmal wieder überschrieben wird. Somit kann natürlich die Abfrage nicht funktionieren, und es kommt für die if-Abfrage für die befüllung von $link immer ein false raus.

Kann mir da mal jemand auf die Sprünge helfen und mir erklären, wieso $i immer wieder auf 0 gestellt wird? Vielleicht gibts ja für das ganze auch eine viel einfachere Lösung?

Hier noch ein Link zur Musterseite (Da geb ich im Moment grad noch $i und $aktuell vor und nach dem Content aus: Musterseite

‹ CKK Feld mit nid als Standardwert CCK kombinierter Datensatz aus mehreren Feldern ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Fields <-> Rows

Eingetragen von SvenLudwig (149)
am 20.09.2010 - 14:57 Uhr

Hallo,

verwechselst Du vielleicht gerade Fields und Rows? Du bearbeitest ja in der Template-Datei gerade alle einzelnen Felder eines Datensatzes / einer View-Zeile. Macht es nicht mehr Sinn alle Zeilen des Views mit dem genannten Code zu verarbeiten? Dann wäre die views-view.tpl.php eher die richtige Stelle dafür. Aber vielleicht wirds mit nem Beispiel doch eindeutiger.

Gruß,
Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

Huch, mist... sehe grad, dass

Eingetragen von finkenmann@drup... (68)
am 20.09.2010 - 23:38 Uhr

Huch, mist... sehe grad, dass meine Antwort von Heute Mittag gar nicht raus ist.

Ein Müsterchen mit der Demoversion ist am Ende des Frageposts verlinkt.

In der views-view-grid--a-z.tpl.php, oder views-views.tpl.php habe ich gar keinen Zugriff mehr auf $fields, wo ich überhaupt per php auf die Feldinhalte zugreifen kann und somit auch die Anfangsbuchstaben auslesen kann.

Viel mehr an Beispiel fällt mir hier nicht ein zu posten. Den verwendeten Code hab ich ja schon, den Link zur Musterseite auch. Aussehen sollte es am Ende etwas so, also immer vor einem Wort mit neuem Anfangsbuchstaben soll eine Linie stehen, bzw. eine Klasse ins entsprechende Div einfügt werden:

3D-CAD-Technologie      Bolzenschweissen        Entwicklung
----------------------  ----------------------  ------------------------
Abdeckungen             Dachaufbauten           Führerstandkonsolen
                                                ------------------------
Abkanten                Druckgefässe            Gehäusebau
                        ----------------------
Aluminiumschweissen     Edelstahlschweissen     Gerüste

Anlagen und Apparatebau Eigenprodukte           Gesamtlösungen
----------------------                          ------------------------
Bahnkomponenten         Einzelanfertigungen     Handschweissen

  • Anmelden oder Registrieren um Kommentare zu schreiben

finkenmann@drupal.org

Eingetragen von PHPKode (3)
am 21.09.2010 - 07:35 Uhr
finkenmann@drupal.org schrieb

Huch, mist... sehe grad, dass meine Antwort von Heute Mittag gar nicht raus ist.

Ein Müsterchen mit der Demoversion ist am Ende des Frageposts verlinkt.

Viel mehr an Beispiel fällt mir hier nicht ein zu posten. Den verwendeten Code hab ich ja schon, den Link zur Musterseite auch. Aussehen sollte es am Ende etwas so, also immer vor einem Wort mit neuem Anfangsbuchstaben soll eine Linie stehen, bzw. eine Klasse ins entsprechende Div einfügt werden:

3D-CAD-Technologie      Bolzenschweissen        Entwicklung
----------------------  ----------------------  ------------------------
Abdeckungen             Dachaufbauten           Führerstandkonsolen
                                                ------------------------
Abkanten                Druckgefässe            Gehäusebau
                        ----------------------
Aluminiumschweissen     Edelstahlschweissen     Gerüste

Anlagen und Apparatebau Eigenprodukte           Gesamtlösungen
----------------------                          ------------------------
Bahnkomponenten         Einzelanfertigungen     Handschweissen

Great Job!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Great Antwort... hilft mir

Eingetragen von finkenmann@drup... (68)
am 21.09.2010 - 12:24 Uhr

Great Antwort... hilft mir nur nicht weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe mir den Code

Eingetragen von leda.ch (977)
am 21.09.2010 - 13:30 Uhr

Ich habe mir den Code angeschaut und kann grad auch nichts falsches finden. Wahrscheinlich aber würde ich als nächsten Schritt mal $i umbenennen in $bac_aktuell, weil $i doch
gerne als Schleifenvariable verwendet wird...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für den Tipp. Das hatte

Eingetragen von finkenmann@drup... (68)
am 21.09.2010 - 13:39 Uhr

Danke für den Tipp. Das hatte ich auch schon mal probiert, hat aber nichts geholfen. Ich finds super eigenartig, dass diese foreach-Schlaufe den ausserhalb liegenden Wert immer wieder übernimmt... :-( Manno, bin ich ratlos ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sehr strange... Was mir auch

Eingetragen von leda.ch (977)
am 21.09.2010 - 14:55 Uhr

Sehr strange...
Was mir auch schon passiert ist, dass sich ein Stückchen Code gaaaanz weit hinten im php-Source-Code versteckt hat.
Wahrscheinlich hast Du schon Copy&Paste hier ins Forum gemacht, aber vielleicht kannst Du mal auf jeder Zeile ans Ende gehen.

Mir scheint inzwischen aber der Einwand von Sven ziemlich plausibel. Wahrscheinlich bearbeitest Du gerade das falsche tpl,
welches bei JEDEM Feld einzeln aufgerufen und daher $i immer wieder initialisiert wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

views-view-grid.tpl.php

Eingetragen von SvenLudwig (149)
am 21.09.2010 - 19:40 Uhr

Hallo nochmal,

die Template-Datei, die Du angepasst hast, wird nur für die Felder und quasi Spalten einer View-Zeile verwendet. Dieses "Spalten" haben aber nichts mit Deiner tabellarischen Raster-Darstellung zu tun. In Deinem Falle willst Du die Zeilen und somit die einzelnen Datensätze des Views verarbeiten. Du muß quasi bei Deiner Raster-Darstellung die views-view-grid.tpl.php und deren Ableitungen verwenden. Die Template-Datei läuft dann nämlich auch wirklich durch alle Daten-Zeilen im herkömmlichen Sinne. War das jetzt einigermaßen verständlich? Ich glaub nicht, oder? ;-)

Gruß,
Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

Noch ein kurzer Hinweis, da

Eingetragen von SvenLudwig (149)
am 21.09.2010 - 19:54 Uhr

Noch ein kurzer Hinweis,

da Du meintest, dass Du aus der views-view-grid.tpl nicht auf die einzelnen Felder / Items zugreifen kannst. Du kommst in den Template Dateien eigentlich problemlos an die Variable $view und dort sollten auch die gesuchten Daten zu finden sein.

Gruß,
Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

Prima. Das klingt alles sehr

Eingetragen von finkenmann@drup... (68)
am 21.09.2010 - 20:17 Uhr

Prima. Das klingt alles sehr logisch. Wars eingentlich schon zu Beginn, nur check ich einfach noch nicht, wo welche Arrays mit Daten verfügbar sind und wie die weitergegeben werden. Aber $view ist tatsächlich in der grid.tpl verfügbar. Da werd ich wohl noch ein Weilchen dran rumfriemeln, denke aber, dass mich dein Hinweis ein ganzes Stück vorwärts gebracht hat. Da ich grad die Huppe voll zu tun hab, hab ich den Kunden bisschen vertröstet, werde hier dann, wenn ich ne Lösung hab das ganze auch noch posten.

Herzlichen Dank
Pierre

  • 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 4 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 3 Wochen 6 Tagen
  • In der entsprechenden View
    vor 3 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 6 Tagen
  • 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: 20458

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 24 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