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

Contemplate .. Wie sieht ein standard Template für node aus?

Eingetragen von florianr (122)
am 17.10.2007 - 00:52 Uhr in
  • Module
  • Drupal 5.x

Hallo!

Ich habe etwas Probleme mit contemplate, ich bekomme zwar die Ausgabe der Felder hin, wie ich es haben möchte, aber dann bekomme ich es nicht hin, dass der restliche Node wie üblich formatiert wird.

Gibt es irgendwo eine Vorlage für ein Standard Template, wie es auch vom drupal core ausgegeben würde?

‹ Downloadbereich Subscriptions Automode ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau Dir doch einfach mal

Eingetragen von c (79)
am 17.10.2007 - 03:10 Uhr

Schau Dir doch einfach mal die node.tpl.php im Garland-Theme an.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Soweit ich das verstanden

Eingetragen von florianr (122)
am 17.10.2007 - 14:01 Uhr

Soweit ich das verstanden habe, gibt node.tpl.php doch mit $content gerade das aus, was ich mit contemplate theme.
Dann finde ich doch in nodes.tpl.php nichts dazu, wie ein contemplate ausfgebeuat sein muss?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hat eine Logik

Eingetragen von eigentor (1424)
am 17.10.2007 - 15:52 Uhr

also die Templates haben eine Hierarchie,
höhere Zahl bedeutet übergeordnet:

1. template.php
2. page.tpl.php
3. node.tpl.php

Wenn du reinguckst in die node.tpl.php, ist da zwar auch
eine Variable $content, aber die bedeutet was anderes als
in der page.tpl.php

in der node.t... ich krieg nen Krampf in der Zunge beim Schreiben...
bezeichnet die $content nur das Haupt-Textfeld, in das du per
Wysiwyg-Editor oder was auch immer deine Inhalte eingibst.
Sozusagen die kleinste Einheit.

In der page.tpl.php bedeutet das $content hingegen, dass dort
das reinkommt, was vorher durch die node.tpl.php gethemed wurde.
Wenn man das einmal geschnackelt hat, wird es super einfach.

Das wird nur durch diverse if-Abfragen verschleiert, da in der page.tpl.php
wieder andere Sachen festgelegt werden können.

Drupal zwingt einen quasi, etwas PHP zu lernen. Wenn man das gar nicht will,
ist zu Template-Engines zu raten, die eine proprietäre Template-Sprache haben.
Das sieht dann zwar einfacher aus, aber dann muss man sich wieder mit den proprietären Tags rumschlagen.

Siehs mal so: es geht nicht ganz so schnell bei Drupal, aber wenn du es gerafft hast, geht es ab wie Opas Turborollstuhl...

Dabei sein ist alles

rufzeichen-logo

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nun, so hatte ich das auch

Eingetragen von florianr (122)
am 17.10.2007 - 16:31 Uhr

Nun, so hatte ich das auch verstanden, allerdings hatte ich bisher das Problem, dass $content in der node.tpl.php immer auch z.B. alle cck felder in einer art "Standard" Ausgabe mit ausgegeben haben.

Wollte ich z.B. ein CCK Feld vor dem Titel ausgeben lassen und wählte in der node.tpl.php folgenden (verinfachten) Aufbau:
CCK Feld
$title
$content

enthielt die Ausgabe von $content immer auch noch zusätzlich das cck feld.
Ich schließe daraus, dass $content vom drupal core generiert wird.

Machte ich aber folgendes:
ein Contemplate, dass nur die Textarea ausgibt (ohne cck felder usw.)

und dann node.tpl.php wie oben, habe ich, was ich will,
CCK Feld,
Titel
Text
Links

Daraus schließe ich, dass contemplate noch eine Ebene höher noch ansetzt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kenne das

Eingetragen von c (79)
am 17.10.2007 - 16:42 Uhr

Ich kenne das Contemplate-Modul nicht wirklich, aber zumindest im Node-Template wirft Dir $node->body alleine das Body-Feld aus.

  • Anmelden oder Registrieren um Kommentare zu schreiben

CCK natürlich anders

Eingetragen von eigentor (1424)
am 17.10.2007 - 16:42 Uhr

Ich glaube, ich weiss was du meinst:
das Standard-body-Textfeld, das man scheinbar
nicht beeinflussen kann. Jaja, fiese Falle... ;)
Es gibt auf der Einstellungsseite zu deinem Content
Type eine Zeile für den Titel des body-Feldes.
Da steht dann drunter: wenn sie dieses Feld
leer lassen, wird das $body ausgeblendet.
So geht das. Einfach, aber gut versteckt.
Da ich das untere schon geschrieben hatte, bevor
ich deine Frage genau las, lass ich es jetzt drin,
Supportspam... ;)

Content Template arbeitet noch anders.
Du könntest den Bereich "affect Teaser" auch in der
page.tpl.php definieren mit irgendeinem Konstrukt if Teaser, dann show..
(bin mieser Programmierer)
Contemplate nimmt dir das nur ab.
Du kannst aber auch den kompletten Code aus der
"affect page" Abteilung rauskopieren und in deine node.tpl.php
reinkopieren. Da gibts dann nur noch die Anweisung,

<?php
if ($page == 0) {
?>

damit z.B. der Titel nur angezeigt wird, wenn der
Artikel in der Teaseransicht z.B. auf der
Startseite erscheint. Denn sonst hättest du in
der Komplettansicht des Nodes den Titel doppelt:
einmal aus der page.tpl.php und einmal aus der node.tpl.php

Klingt kompliziert - ist es auch. ;)
Nein, ist es eigentlich nicht.

Du hast grundsätzlich zwei Möglichkeiten, dich da reinzufuchsen:
Einmal der harte Weg (so habe ich es gemacht) über Tutorials
zum Themen von cck auf Drupal.org, wo du dich mit jedem einzelnen
gerenderten Element auseinandersetzt. Dauert länger, aber per Try
und error wird einem schliesslich klar, was der ganze Mist soll.
So hab ich es gemacht, weil ich damals weder CCK noch contemplate
gerafft und dann mit Flexinode gearbeitet habe.

Oder eben der komfortablere Weg über contemplate, allerdings
ist einem da die Logik unklar.
Aber so ist es doch eigentlich immer: entweder komfortabel
oder komplett anpassbar.

Dabei sein ist alles

rufzeichen-logo

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mal ein anderer Ansatz. Wenn

Eingetragen von Jan Krummrey (117)
am 18.10.2007 - 11:21 Uhr

Mal ein anderer Ansatz.

Wenn du Contemplate benutzt überschreibst du die Ausgabe für eben diesen Ausgabetyp, also teaser, full oder rss. Das bedeutet, dass wirklich nur das ausgegebn wird, was du in dem Contemplate-Feld angegeben hast.

Leider gibt Contemplate nicht immer das vollständige "Original" aus. In dem Kasten daneben werden dir aber alle möglichen Variablen angezeigt, die dir zur Verfügung stehen. Ich kopiere mir den Inhalt immer in einen Editor und suche mir die Teile raus, die ich ausgeben möchte. Da gibt es immer verschiedene Ausführungen. Mal schon in HTML formatierte, aber auch noch "nackte" Ausgaben, die du dann neu mit HTML Markup versehen kannst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Jan, ja, genauso mache ich

Eingetragen von florianr (122)
am 25.10.2007 - 10:42 Uhr

@Jan,
ja, genauso mache ich es auch, ich möchte aber eigentlich nur wissen, welche Variablen ich wie (vorallem mit welchem html code) ich dort einfügen muss, um die Ausgabe exact so zu bekommen, wie drupal den node ausgeben würde, wenn ich contemplate nicht nutzen würde.
Das würde es einfacher machen, wenn man nur kleine Anpassungen an der Ausgabe vornehmen muss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • MariaDB 10.6
  • Entity Reference - Title Felder werden als Link angezeigt
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
  • Update V. 9.3.12 auf V. 9.4 mit Fehler: Modul mySQL fehlt. Bitte Hilfe.
  • Sprachpfad, in Drupal Korrekt einstellen, auch bei den Meta-Tags
  • Update von Drupal 9.3 auf 9.4 oder bei 9.3 bleiben
Weiter

Neue Kommentare

  • Danke fürs Feedback. Gut dass
    vor 2 Stunden 1 Minute
  • Patch angewandt
    vor 5 Stunden 13 Minuten
  • core_version_requirement: ^8
    vor 2 Tagen 6 Stunden
  • core_version_requirement: ^8
    vor 2 Tagen 6 Stunden
  • ok. Wenn ich das mache
    vor 2 Tagen 6 Stunden
  • Bei gleichem Namen hat das
    vor 2 Tagen 7 Stunden
  • Sorry, dass ich mich hier
    vor 2 Tagen 7 Stunden
  • Habe Patch versucht
    vor 2 Tagen 14 Stunden
  • Hier wird ein Patsch
    vor 2 Tagen 16 Stunden
  • Mit Drupal geht das um 150
    vor 3 Tagen 3 Stunden

Statistik

Beiträge im Forum: 247866
Registrierte User: 19592

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

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