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

[gelöst] CCK-Feld formatiert und mit Theme versehen ausgeben

Eingetragen von forschi (52)
am 13.05.2009 - 08:45 Uhr in
  • Views
  • Drupal 6.x

Moin zusammen,

ich bastel gerade ein wenig am CCK_Blocks-Modul. Das hat anscheinend das Problem, dass es nur Felder ausgeben kann, die im CCK-Modul mitgeliefert werden und die auch nur halblebig. Das liegt daran, dass nur die Rohdaten der felder ausgegeben werden und kein Theme auf die Felder angewendet wird.

Weiß jemand, über welchen Funktionsaufruf ich das content-modul dazu bewegen kann, mir ein fertig mit Theme versehenes Feld zurückzuliefern?

content_format macht schon mal nicht, was ich will.

Ich bin mir sicher, dass das geht, weil sich das content_module auch um das theming der Felder unter dem Node kümmert. Ich bin nur noch nicht ganz durchgestiegen, an welcher Stelle im Code das geschieht, bzw. wo der Node das content_modul aufruft um die fertigen Felder für die Anzeige auszuwerfen.

Grüße,
forschi

‹ Content Type bei speichern prüfen [gelöst] Anzeige pro Kategorie begrenzen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kenne das CCK_Blocks

Eingetragen von bv (3924)
am 13.05.2009 - 08:57 Uhr

Ich kenne das CCK_Blocks Modul nicht, aber normalerweise kannst Du für jedes CCK-Feld ein eigenes Template erzeugen, ohne das man irgendwas kompliziertes tricksen musst. Hast Du hier schon mal reingesehen: http://drupal.org/node/206980

--
"Jeder Mensch ist lieb." Peter Ludolf

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das hab' ich überflogen,

Eingetragen von forschi (52)
am 13.05.2009 - 09:04 Uhr

Das hab' ich überflogen, aber ich will ja ansich erst mal nicht das Theme eines Feldes verändern sondern lediglich den fertigen HTML-Code erhalten, der entsteht wenn man ein Theme auf ein Feld anwendet.

Für ein feld mit zwei Links sieht der so aus:

<div class="field field-type-link field-field-link">
      <div class="field-label">testlink:&nbsp;</div>
    <div class="field-items">
            <div class="field-item odd">
                    <a href="http://forschi.de">aaa</a>        </div>
              <div class="field-item even">
                    <a href="http://forschi.de">bbb</a>        </div>

        </div>
</div>

Das steht unter den Nodes und genau das hätt' ich gerne als Rückgabe einer Funktion. Man muss CCK_blocks nicht kennen, es reicht, wenn jemand weiß, welche Funktion den HTML-Code erzeugt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

forschi schrieb Man muss

Eingetragen von bv (3924)
am 13.05.2009 - 10:06 Uhr
forschi schrieb

Man muss CCK_blocks nicht kennen, es reicht, wenn jemand weiß, welche Funktion den HTML-Code erzeugt.

Evtl. verstehe ich Dich nicht richtig: Aber wie unter o.g. Link beschrieben, enthält die Datei content-field.tpl.php den HTML-Code...

--
"Jeder Mensch ist lieb." Peter Ludolf

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann verstehst du mich

Eingetragen von forschi (52)
am 13.05.2009 - 10:33 Uhr

Dann verstehst du mich falsch :-)

Ich kann ja einem Block als Inhalt nicht einfach den Inhalt der Datei content-field.tpl.php zuweisen. Diese muss ja in meinen Augen erst geparst werden, damit die dort enthaltenen Variablen ausgewertet werden.

In der tpl.php ist ja nur der HTML-Code enthalten, in den die Daten eines Feldes eingebettet werden. Ich hätte aber gerne das HTML, in dem der Inhalt des Feldes schon enthalten ist.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Drupal ist in PHP

Eingetragen von Tobias Bähr (4019)
am 13.05.2009 - 15:49 Uhr

Drupal ist in PHP geschrieben. Und PHP ist dynamisch. Und Inhalte kommen bei Drupal aus der DB.
Dh. Drupal wäre nicht dynamisch, wenn CCK tpls anlegen würde, wo Daten drin wäre, die du via Webinterface eingegeben und sich in der Datenbank befinden.

Aber wenn du in der tpl mit IFs-Abfragen das so einschränkst, das es nur das eine Feld anspricht. Dann kannste ja anstatt die $variabel, wenn sie nicht selbst auch HTML entält, direkt dein Text eingeben.

Das würde allerdings alles in den Haufen schmeißen. Und du könntest gleich deine Seiten in statischen HTML weitermachen. Und die Vorzüge von PHP vergessen.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Au Weia. Da hab' ich mich

Eingetragen von forschi (52)
am 13.05.2009 - 16:42 Uhr

Au Weia. Da hab' ich mich wohl extrem missverständlich ausgedrückt.

Mir ist schon klar, wie diese Dynamik in Drupal funktioniert. Ruft ein Benutzer die Seite auf, schnappt sich CCK das Template, füllt die Variablen mit Inhalt und liefert das fertige HTML an den Browser aus.

Irgendeine Funktion muss aber CCK dazu veranlassen, dieses Rendering vorzunehmen, sonst würden die Felder ja nicht zusammen mit dem passenden Node angezeigt werden. Ich suche also die Funtkion, die erkennt, dass an einem Node CCK-Felder "hängen" und die dann CCK anweist, diese Felder mit dem zum Node passenden Inhalt zusammen als HTML auszugeben.

Ich weiß nicht, wie ich's besser formulieren kann. Wenn's so noch nicht klar ist, mal' ich nachher mal ein Bildchen, wenn ich daheim bin.

Danke soweit,
forschi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nodes werden mit Hilfe der

Eingetragen von Tobias Bähr (4019)
am 13.05.2009 - 16:44 Uhr

Nodes werden mit Hilfe der Node-Api erweitert. http://api.drupal.org/api/file/developer/examples/nodeapi_example.module/6

Den Rest kannste Dir ja selbst denken.

----------------------------------------

http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke :)

Eingetragen von forschi (52)
am 13.05.2009 - 16:55 Uhr

Danke, ich glaub', jetzt hast du mich verstanden :-)

Dann schauen wir nachher mal, ob ich die theming-funktion aus "meinem" Modul heraus aufgerufen bekomme. So oder so hört ihr wieder von mir.

Grüße,
forschi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, also das

Eingetragen von forschi (52)
am 13.05.2009 - 20:09 Uhr

Okay, also das hier:

module_invoke('content', 'format', $fields[$delta], $item, $settings['formatter'], $node)

liefert mir ein einen formatierten Wert aus einem Feld. Ich muss wohl alle Werte formatieren und sie dann in mein eigenes Theme einpflegen. Das scheint mir im Moment das vernünftigste zu sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Patch für cck_blocks

Eingetragen von cezaryrk (3)
am 17.06.2009 - 11:34 Uhr

Hi,

hab das gleiche Problem gehabt, aber mit einer kleinen Änderung im cck_blocks.module kannst du die in content-fields[*].tpl.php definierten Themes gleich einbinden

<?php
// cck_blocks.module
// (...)
case 'view':
    default:
       
$block = array();
   
        if (
arg(0) == 'node' && is_numeric(arg(1)) && !arg(2) && $fields[$delta]) {
           
$node = node_load(arg(1));
            if (
$items = $node->$delta)
              {
               
           
$settings = variable_get('cck_blocks_' . $delta, array('formatter' => 'default'));           

                       
// PATCH
           
$fields[$delta]['display_settings']['label']['format'] = 'normal';
           
$fields[$delta]['display_settings']['full']['format'] = $settings['formatter'];
           
$block['subject'] = $fields[$delta]['widget']['label'] ? $fields[$delta]['widget']['label'] : $delta;
           
$block['content'] = content_view_field($fields[$delta], $node);
           
           
/* ALTER CODE   
            if ($items = $node->$delta) {
                $block['subject'] = $fields[$delta]['widget']['label'] ? $fields[$delta]['widget']['label'] : $delta;
                $block['content'] = '';
               
                $settings = variable_get('cck_blocks_' . $delta, array('formatter' => 'default'));               
                foreach ($items as $item) {
                    $block['content'] .= module_invoke('content', 'format', $fields[$delta], $item, $settings['formatter'], $node);
                }
            */
           
}           
        }
        return
$block;
    }
?>

Siehe auch: http://api.zzolo.org/api/function/content_panels_render_field/drupal-6

Gruß Robert

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20462

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

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