Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Text mir Bild ersetzen

Eingetragen von joya (190)
am 01.03.2012 - 14:18 Uhr in
  • Anfängerfragen
  • Drupal 7.x

hallo,

ich gebe mit der Hilfe Properties - Moduls , eine Produkteigenschaften-Tabelle aus. Diese beinhaltet verschiedene Produktmerkmale, inkl. Gewicht, Maße, Kamera:JA, UMTS:NEIN, Lieferbar: JA und so weiter....

Ich möchte jetzt aber alle Werte so einer Tabelle die ein "JA" beinhalten mit einem "Häckchen-Bild" ersetzen und die Werte "NEIN" mit einem grafischen Minus.
ähnl. wie in dieser Tabelle hier:

Wo mache ich das? Vielleicht als preprocess Variable irgendwo in template.php ?! Wie sollte das gehen.

Bin für jede Hilfe dankbar.

‹ Inhalte gelöscht Posted by entfernen / deaktivieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst du den Zellen der

Eingetragen von Exterior (2903)
am 01.03.2012 - 15:03 Uhr

Kannst du den Zellen der einzelnen Eigenschaften eigene Klassen geben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

also, ich kann die einzelnen

Eingetragen von joya (190)
am 01.03.2012 - 16:15 Uhr

also, ich kann die einzelnen Werte über node.tpl.php ausgeben, wie z.B

<?php print_r($field_props1[0][value]); ?>
<?php print_r($field_props1[1][value]); ?>
.
.
.
.
<?php print_r($field_props1[n][value]); ?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was aber erstmal nicht so

Eingetragen von Exterior (2903)
am 01.03.2012 - 20:48 Uhr

Was aber erstmal nicht so wirklich meine Frage beantwortet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du schreibst:

Eingetragen von leda.ch (977)
am 01.03.2012 - 22:26 Uhr
Zitat:

ich kann die einzelnen Werte über node.tpl.php ausgeben, wie z.B

dann kannst Du auch sowas mit einem DIV umklammern und dem, abhängig vom Inhalt des Feldes, unterschiedliche Klassen geben.
Damit kannst Du im Stylesheet der jeweiligen Klasse das gewünschte Background-Image verpassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior schrieb Kannst du

Eingetragen von joya (190)
am 02.03.2012 - 08:24 Uhr
Exterior schrieb

Kannst du den Zellen der einzelnen Eigenschaften eigene Klassen geben?

sorry, ich verstehe leider Deine Frage nicht ganz.... wo könne man das machen? und wie?

ja, das mit CSS war auch mein Vorhaben, weiss ich aber nicht, wie komme ich zur Funktion die diese TAbelle mit Eigenschaften ausgibt.....
Ich möchte nicht den Code im Modul selber ändern, sonder es (wenn möglich) aus template.php oder node.tpl.php nachträglich übersteuern (ändern)

ich habe es schon mal gemacht, vor 2-3 Jahren, in Drupal6, aber ich kann es nicht mehr finden wo das war...... Das ist, wenn man sich nicht regelmäßig mit Drupal beschäftigt, dann vergisst man so schnell die Sachen.....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior meint

Eingetragen von sepp68 (444)
am 02.03.2012 - 08:30 Uhr

<div class="DEINE_KLASSE_ABHÄNGIG_VOM_VALUE">
<?php print_r($field_props1[0][value]); ?>
</div>

Je nach value setzt du DEINE_KLASSE_ABHÄNGIG_VOM_VALUE auf z.B. "umts-ja" oder "umts-nein" und dann mit CSS themen:

  • Anmelden oder Registrieren um Kommentare zu schreiben

sepp68 schrieb <div

Eingetragen von joya (190)
am 02.03.2012 - 08:53 Uhr
sepp68 schrieb

<div class="DEINE_KLASSE_ABHÄNGIG_VOM_VALUE">
<?php print_r($field_props1[0][value]); ?>
</div>

Je nach value setzt du DEINE_KLASSE_ABHÄNGIG_VOM_VALUE auf z.B. "umts-ja" oder "umts-nein" und dann mit CSS themen:

nein, das kann ich eben nicht, da ich diese Ausgabe nicht selber durch node.tpl.php (oder ähnl.) ausgebe, sondern wird direkt vom Modull (Properties) generiert und ausgegeben. Diese Ausgabe oben, war nur von mir als Test in node.tpl.php ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie heisst dein Modul ?

Eingetragen von sepp68 (444)
am 02.03.2012 - 10:00 Uhr

Wie heisst dein Modul ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dynamic Properties (übrigens,

Eingetragen von joya (190)
am 02.03.2012 - 10:22 Uhr

Dynamic Properties

(übrigens, sehr gutes Modul, noch in dev-Fase, aber echt zu empfehlen)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Im Modul gibt es das

Eingetragen von sepp68 (444)
am 02.03.2012 - 11:21 Uhr

Im Modul gibt es das Template

properties-properties-form.tpl.php

Damit müsstest du die Ausgabe themen können.

  • Anmelden oder Registrieren um Kommentare zu schreiben

sepp68 schrieb Im Modul gibt

Eingetragen von joya (190)
am 02.03.2012 - 11:52 Uhr
sepp68 schrieb

Im Modul gibt es das Template

properties-properties-form.tpl.php

Damit müsstest du die Ausgabe themen können.

ja, aber damit mache ich eigentlich Änderungen direkt an diesem Modul, was ich vermeiden möchte.... (falls Modul-Update kommt, oder neuere Version....)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du solltest die

Eingetragen von sepp68 (444)
am 02.03.2012 - 11:56 Uhr

Du solltest die properties-properties-form.tpl.php in deinen Theme-Ordner kopieren und dann verändern.

Damit überschreibst du die modul-eigene properties-properties-form.tpl.php.

Nach der Änderung Cache leeren !

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich glaube,

Eingetragen von joya (190)
am 02.03.2012 - 13:10 Uhr

ich glaube, properties-properties-form.tpl.php ist nicht das richtige Template.

Hier kommt gar keine Tabelle und/oder UL LI Liste wie im Quell-Code:

<div class="field field-name-field-props1 field-type-properties field-label-above">
<div class="field-label">Eigenschaften:&nbsp;</div>
<div class="field-items">
<div class="field-item even">
<table>
<tbody>
<tr class="even">
    <td>3D Display</td>
    <td><strong>nein</strong></td>

das ist was ich suche....aber irgendwie bin ich auf dem falschen Weg

  • Anmelden oder Registrieren um Kommentare zu schreiben

findest du das<div

Eingetragen von sepp68 (444)
am 02.03.2012 - 14:00 Uhr

findest du das

<div class="form-item field-widget-properties-table">

im Quellcode wieder ?

Eigentlich müsstest du auch die Felder themen können:
http://api.drupal.org/api/drupal/modules!field!theme!field.tpl.php/7

  • Anmelden oder Registrieren um Kommentare zu schreiben

[quote=sepp68]findest du

Eingetragen von joya (190)
am 08.03.2012 - 09:39 Uhr

[quote=sepp68]findest du das

<div class="form-item field-widget-properties-table">

im Quellcode wieder ?

nein, dies taucht nicht im Quellcode auf....

hat jemand eine Idee?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Poste doch den Quellcode mal

Eingetragen von sepp68 (444)
am 08.03.2012 - 10:33 Uhr

Poste doch den Quellcode mal auf http://drupal.pastebin.com/ wenn möglich ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

hier:

Eingetragen von joya (190)
am 08.03.2012 - 11:46 Uhr

hier:

paste.bin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Guck ich mir heute abend an

Eingetragen von sepp68 (444)
am 08.03.2012 - 15:15 Uhr

Guck ich mir heute abend an ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also, ich habe kein

Eingetragen von sepp68 (444)
am 08.03.2012 - 23:09 Uhr

Also, ich habe kein spezielles Template gefunden.

Deine Tabelle wird wohl mit theme_table aufgebaut.

http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7

Nun kannst du in deinem Tehme eine eigene theme_table-Funktion implementieren, die die Standard-Funktion überschreibt:

http://drupal.org/node/173880

kopiere einfach die Funktion theme.inc aus der Datei \includes\themes.inc
und in die template.php deines Themes und benenne sie MYTHEME_table (MYTHEME ist dein Theme-Name)

Leere den Cache und verändere deine MYTHEME_table-Funktion.

Tut sich da was ?
Wenn ja kannst du jetzt die Parameter auslesen und zum Beispiel als Klasse beim td hinzufügen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

die Funktion habe ich

Eingetragen von joya (190)
am 12.03.2012 - 16:02 Uhr

die Funktion habe ich gefunden und richtig in template.php eingebunden. Vielen Dank erstmal,..

function marinelli_table($variables) {
  $header = $variables['header'];
  $rows = $variables['rows'];
  $attributes = $variables['attributes'];
  $caption = $variables['caption'];
  $colgroups = $variables['colgroups'];
  $sticky = $variables['sticky'];
  $empty = $variables['empty'];

  // Add sticky headers, if applicable.
  if (count($header) && $sticky) {
    drupal_add_js('misc/tableheader.js');
    // Add 'sticky-enabled' class to the table to identify it for JS.
    // This is needed to target tables constructed by this function.
    $attributes['class'][] = 'sticky-enabled';
  }

  $output = '<table' . drupal_attributes($attributes) . ">\n";

  if (isset($caption)) {
    $output .= '<caption>' . $caption . "</caption>\n";
  }

  // Format the table columns:
  if (count($colgroups)) {
    foreach ($colgroups as $number => $colgroup) {
      $attributes = array();

      // Check if we're dealing with a simple or complex column
      if (isset($colgroup['data'])) {
        foreach ($colgroup as $key => $value) {
          if ($key == 'data') {
            $cols = $value;
          }
          else {
            $attributes[$key] = $value;
          }
        }
      }
      else {
        $cols = $colgroup;
      }

      // Build colgroup
      if (is_array($cols) && count($cols)) {
        $output .= ' <colgroup' . drupal_attributes($attributes) . '>';
        $i = 0;
        foreach ($cols as $col) {
          $output .= ' <col' . drupal_attributes($col) . ' />';
        }
        $output .= " </colgroup>\n";
      }
      else {
        $output .= ' <colgroup' . drupal_attributes($attributes) . " />\n";
      }
    }
  }

  // Add the 'empty' row message if available.
  if (!count($rows) && $empty) {
    $header_count = 0;
    foreach ($header as $header_cell) {
      if (is_array($header_cell)) {
        $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1;
      }
      else {
        $header_count++;
      }
    }
    $rows[] = array(array('data' => $empty, 'colspan' => $header_count, 'class' => array('empty', 'message')));
  }

  // Format the table header:
  if (count($header)) {
    $ts = tablesort_init($header);
    // HTML requires that the thead tag has tr tags in it followed by tbody
    // tags. Using ternary operator to check and see if we have any rows.
    $output .= (count($rows) ? ' <thead><tr>' : ' <tr>');
    foreach ($header as $cell) {
      $cell = tablesort_header($cell, $header, $ts);
      $output .= _theme_table_cell($cell, TRUE);
    }
    // Using ternary operator to close the tags based on whether or not there are rows
    $output .= (count($rows) ? " </tr></thead>\n" : "</tr>\n");
  }
  else {
    $ts = array();
  }

  // Format the table rows:
  if (count($rows)) {
    $output .= "<tbody>\n";
    $flip = array('even' => 'odd', 'odd' => 'even');
    $class = 'even';
    foreach ($rows as $number => $row) {
      $attributes = array();

      // Check if we're dealing with a simple or complex row
      if (isset($row['data'])) {
        foreach ($row as $key => $value) {
          if ($key == 'data') {
            $cells = $value;
          }
          else {
            $attributes[$key] = $value;
          }
        }
      }
      else {
        $cells = $row;
      }
      if (count($cells)) {
        // Add odd/even class
        if (empty($row['no_striping'])) {
          $class = $flip[$class];
          $attributes['class'][] = $class;
        }

      <strong>  // Build row
        $output .= ' <tr' . drupal_attributes($attributes) . '>';
        $i = 0;
        foreach ($cells as $cell) {
          $cell = tablesort_cell($cell, $header, $ts, $i++);
          $output .= _theme_table_cell($cell);
        }
        $output .= " </tr>\n";</strong>
      }
    }
    $output .= "</tbody>\n";
  }

  $output .= "</table>\n";
  return $output;
}

Problem, ich finde keine TD (HTML Zeile) Anweisung im Code... (nur TR für Rows)
Wie kann ich jetzt in dieser Funktion eine Anfrage stellen, z.B:
IF Daten innerhalb TD beinhalten "ja" dann füge CSS-Klasse "JA" hinzu

  • Anmelden oder Registrieren um Kommentare zu schreiben

        $output .= ' <tr' .

Eingetragen von wla (9461)
am 12.03.2012 - 16:25 Uhr

        $output .= ' <tr' . drupal_attributes($attributes) . '>';
        $i = 0;
        foreach ($cells as $cell) {
          $cell = tablesort_cell($cell, $header, $ts, $i++);
          $output .= _theme_table_cell($cell);
        }
        $output .= " </tr>\n";</strong>

Hier wird die Zeile gebildet, wobei jede Zelle (also <td> ... </td>) über die Funktion _theme_table_cell($cell) gebaut wird. Das wird eine weitere Funktion sein, die Du übernehmen mußt.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen vielen Dank, Werner &

Eingetragen von joya (190)
am 12.03.2012 - 16:42 Uhr

Vielen vielen Dank, Werner & Sepp,

ich habe jetzt Function _theme_table_cell() so verändert und es funktioniert :

function marinelli_table_cell($cell, $header = FALSE) {
  $attributes = '';

  if (is_array($cell)) {
    $data = isset($cell['data']) ? $cell['data'] : '';
    // Cell's data property can be a string or a renderable array.
    if (is_array($data)) {
      $data = drupal_render($data);
    }
    $header |= isset($cell['header']);
    unset($cell['data']);
    unset($cell['header']);
    $attributes = drupal_attributes($cell);
  }
  else {
    $data = $cell;
  }

  if ($header) {
    $output = "<th$attributes>$data</th>";
  }
  else {
  if ($data == "nein") {
   $output = "<td class='hacken_nein' $attributes>$data</td>";
    }
     else if ($data == "ja") {
    $output = "<td class='hacken_ja' $attributes>$data</td>";
    }
    else {
    $output = "<td  $attributes>$data</td>";
    }
  }

  return $output;
}

Mein Custom-Code:;

                    if ($data == "nein") {
   $output = "<td class='hacken_nein' $attributes>$data</td>";
    }
     else if ($data == "ja") {
    $output = "<td class='hacken_ja' $attributes>$data</td>";
    }

man könnte es vielleicht eleganter lösen (bin für jeden Vorschlag dankbar), aber mir ist jetzt wichtig dass es funktioniert.

Eine Frage hätte ich noch, diese Änderung ist jetzt in meiner template.php Datei erstellt, d.h. betrifft die Ganze Seite. Wie kann ich das auf nur ein Inhalt-Typ begrenzen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Warum willst du es auf einen

Eingetragen von sepp68 (444)
am 12.03.2012 - 18:38 Uhr

Warum willst du es auf einen Inhaltstyp begrenzen ?

Der Code "schadet" ja nicht.

btw:
Ich hätte das $cell-array manpuliert:

<?php

  
if ($cell['data'] == "nein") {
      
$cell['class']='hacken_nein';
    }
    else if (
$cell['data'] == "ja") {
      
$cell['class']=''hacken_ja';
    }
?>

jetzt ungetestet aber so ähnlich ...

siehe http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_attributes/7

  • Anmelden oder Registrieren um Kommentare zu schreiben

sepp68 schrieb Warum willst

Eingetragen von joya (190)
am 13.03.2012 - 08:59 Uhr
sepp68 schrieb

Warum willst du es auf einen Inhaltstyp begrenzen ?

Der Code "schadet" ja nicht.

ja, im Prinzip schon. Ich verwende auf dieser Seite oft Tabellen und ich möchte nicht dass dieser Script (Funktion) jede Tabelle (wo Zeilen "ja" "nein") ändert, sonder nur bei einem speziellen Inhaltstyp , z.B Handys...

Wenn ich diese Funtion so in der template.php -Datei belasse, dann greift diese allgemein bei jedem Inhaltstyp an.

  • 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 1 Woche 4 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 23 Stunden
  • In der entsprechenden View
    vor 3 Wochen 23 Stunden
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 23 Stunden
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

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