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

[gelöst] Textfeld gestalten

Eingetragen von tangotaenzer (64)
am 13.09.2010 - 23:41 Uhr in
  • Views
  • Drupal 6.x

Hallo,
habe mit cck ein Textfeld in einem Inhaltstyp erstellt. Dieses Textfeld möchte ich jetzt gerne in meinem eigenen Theme individuell gestalten (d. h. ich möchte einen <div> um die Ausgabe des Textfelds legen)
Habe mir hierfür die content-field.tpl.php kopiert. Allerdings muss ich gestehen ich verstehe nur Bahnhof. Als Ausgabe erhalte ich meinem Text um den sich 4 <div> legen, wovon 3 jedoch leer sind. Auf 3 davon könnte ich also gut verzichten, jedoch weiss ich nicht im geringsten wie ich diese Datei entsprechend ändern müsste. Diese Datei ist wahrlich nicht sehr lang und vielleicht kann jemand von Euch etwas Licht ins Dunkel bringen und erläutern was dort im Detail passiert???

<?php if (!$field_empty) : ?> 
<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
  <?php if ($label_display == 'above') : ?>                                                        // was bedeuted das 'above' zum Beispiel?
    <div class="field-label"><?php print t($label) ?>:&nbsp;</div>
  <?php endif;?>
  <div class="field-items">
    <?php $count = 1;
    foreach (
$items as $delta => $item) :
      if (!
$item['empty']) : ?>

        <div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>">        // diese Zeile ist mir auch sehr unklar
          <?php if ($label_display == 'inline') { ?>                                              // diese auch
            <div class="field-label-inline<?php print($delta ? '' : '-first')?>">           // was bedeutet hier z. B. -first?
              <?php print t($label) ?>:&nbsp;</div>
          <?php } ?>
          <?php print $item['view'] ?>                                                               // was ist view?
        </div>
      <?php $count++;
      endif;
    endforeach;
?>

  </div>
</div>
<?php endif; ?>

--edit(stBorchert)--
code-Tags ergänzt

‹ [gelöst] CCK: Node Reference Feld liefert nur vollständiges HTML [gelöst]Kontextabhänigige Views ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Frei kopiert aus:

Eingetragen von idle (202)
am 14.09.2010 - 08:51 Uhr

Frei kopiert aus: api.drupal.org

Zitat:

Actually, control over CCK fields can be gained using CCK's own templates. Copy content-field.tpl.php to your theme directory and copy it again for each field whose mark-up you wish to alter, naming it field-field_name.tpl.php.

So, if I have a field called field_my_field in CCK and I want to modify the mark-up for that field, I copy content-field.tpl.php to my theme directory and then make *another* copy named content-field-field_my_field.tpl.php. I can then change the mark-up in content-field-field_my_field.tpl.php and it will alter the output of that specific CCK field.

Alternativ kannst du CCK-Felder auch in der page.tpl.php einfügen. Hier ein Beispiel mit einem DIV drumrum:

<?php
print (!empty($node->FELDNAME[0]['value'])) ? '<div>'.$node->FELDNAME[0]['value'].'</div>' : '';
?>

Zu deinen Fragen im Code

<?php if ($label_display == 'above') : ?> Wenn das Label oberhalb angezeigt werden soll, dann ...
<?php if ($label_display == 'inline') { ?> Wenn das Label inline angezeigt werden soll, dann ...
<div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>"> fügt eine Klasse odd oder even hinzu.
<div class="field-label-inline<?php print($delta ? '' : '-first')?>"> "-first" wird an die Klasse angehängt.
<?php print $item['view'] ?> Best guess: gib die View-Version des Items aus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Theming in Drupal

Eingetragen von wla (9461)
am 14.09.2010 - 09:12 Uhr

Dazu braucht es folgende Kenntnisse

  • HTML "zu Fuß"
  • Wie arbeitet man in CSS
  • Etwas PHP (Abfragen, Schleifen, Operatoren und Object/Array-Strukturen)
  • Wissen, was is Drupal vorgesehen/konfiguriert ist

Ein CCK-Feld in Drupal hat ein Label, das über Felder anzeigen auf hidden, above und inline gestellt werden kann (Punkt 4). Daraus ergibt sich, das das Label auch irgendwann tatsächlich ausgegeben werden muß => die Zeilen mit den $label_display.
Ein CCK-Feld kann mehrfach Werte beinhalten (Punkt 4). Die foreach-Schleife sorgt dafür das bei Mehrfachwerten alle ausgegeben werden. Die werden gerne untereinander mit wechselnden Hintergründen ausgegeben. Die Hintergründe sind CSS, aber es braucht passende Klassen, damit man das anwenden kann (odd/even). Ach ja, $count % 2 ist die Modulo Operation und liefert genau das.
Falls das Label "inline" dargestellt werden soll, bekommt das erste label die Klasse "field-label-inline-first", die anderen nur "field-label-inline". Der Wert $delta beginnt bei 0 (Zählung der Werte) und der ?-Operator in PHP geht: Bedingung ? wahr : falsch. Hier: 0 =>falsch, andere Zahl => wahr
<?php print $item['view'] ?> ist die eigentliche Ausgabe des Feldes für den jeweiligen Wert.
Du solltest Dich mit der Basis des Themings noch ein bischen befassen, sonst wirst Du es schwer haben mit den Template-Files.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ihr seid ja super! Dank Euch

Eingetragen von tangotaenzer (64)
am 14.09.2010 - 10:41 Uhr

Ihr seid ja super! Dank Euch verstehe ich jetzt worum es hier geht.

Zitat:

<?php
print (!empty($node->FELDNAME[0]['value'])) ? '<div>'.$node->FELDNAME[0]['value'].'</div>' : '';
?>

genau so eine einfache Lösung habe ich gesucht - und sie funktioniert auch bei mir (man muss halt nur wissen wie es geht)!

Danke auch Dir Werner für Deine ausführliche Erklärung die wahrlich Licht in das große Dunkel gebracht hat. Davon werden sicherlich auch andere Drupal-Anwender profitieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • wmtbpo361x
  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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
Weiter

Neue Kommentare

  • Rollen
    vor 5 Tagen 11 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 2 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 2 Tagen
  • melde mich mal wieder, da ich
    vor 10 Wochen 50 Minuten
  • Hey danke
    vor 10 Wochen 19 Stunden
  • Update: jetzt gibt's ein
    vor 10 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 3 Tagen
  • In der entsprechenden View
    vor 11 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250239
Registrierte User: 20467

Neue User:

  • LorisBen
  • StevenEness
  • ocvk2810

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