[gelöst] node title ausblenden eigentlich einfach
Eingetragen von oxifly (246)
am 26.08.2010 - 12:48 Uhr in
am 26.08.2010 - 12:48 Uhr in
Hallo Drupaler,
ich habe einen Inhaltstypen "media".
Dazu habe ich eine Datei node-media.tpl.php erstellt.
In dieser Datei habe ich die Zeilen 9 bis 12 entfernt, zwecks Ausblendung des Titels.
Die Datei ist gespeichert + auf dem Server + Caches geleert ABER: die Titels werden immernoch angezeigt.....I dont know why?
Kann das vielleicht daran liegen, das der Typ "media" eine Fieldgroup mit Tabs hat??? Ich glaube eher nicht, was meint ihr?ß
Grüße
Sandro
- Anmelden oder Registrieren um Kommentare zu schreiben
Kann es sein, dass in der
am 26.08.2010 - 13:11 Uhr
Kann es sein, dass in der page.tpl.php die Variable $title noch vorhanden ist?
Kommentier diese mal aus und schau was passiert.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
dann sind die Title von allen
am 26.08.2010 - 13:15 Uhr
dann sind die Title von allen Content Seiten weg, ich will aber nur die Titels , die mit dem Inhaltypen "media" erstellt worden sind
ausblenden, aber nicht die anderen, z.b. die mit Artikel erstellt worden sind....HOW?
Code?
am 26.08.2010 - 13:21 Uhr
Hallo oxifly,
würdest Du bitte einmal den Code Deines Templates hier posten? Dann können wir eventuell schneller eine Lösung finden.
Danke!
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
welche datein soll ich den
am 26.08.2010 - 13:34 Uhr
welche datein soll ich den pasten? ich habe im moment die template.php datei aussenvor,d.h. diese Datei ist nicht auf dem Server.
die node-media.tpl.php sieht folgendermassen aus:
<?php
print $node->nid;
?>
<?php
print $node_classes;
?>
<?php
print $picture
?>
<?php
print $content
?>
<?php
if ($links):
?>
<?php
print $links;
?>
<?php
endif;
?>
<?php
if ($node_bottom && !$teaser):
?>
<?php
print $node_bottom;
?>
<?php
endif;
?>
nid;
node-media.tpl.php
am 26.08.2010 - 13:40 Uhr
Hallo,
ja diese Datei solltest Du posten - aber bitte die GANZE Datei in die 'Code' Tags (Schaltfläche oben im Editor) damit man das auch richtig sehen kann. Danke Dir!
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
okay, sry... aber wie gesagt
am 26.08.2010 - 13:46 Uhr
okay, sry...
aber wie gesagt ich habe keine template.php Datei in dem Ordner meines Themes drin?
Bitte poste die Datei:
am 26.08.2010 - 13:55 Uhr
Bitte poste die Datei: node-media.tpl.php ind den Code Tags, damit man die Struktur auch korrekt angezeigt bekommt. Sorry, habe mich wohl blöd ausgedrückt.
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
<?php <!-- start node.tpl.php
am 26.08.2010 - 14:26 Uhr
<!-- start node.tpl.php -->
<div id="node-<?php print $node->nid; ?>" class="node <?php print $node_classes; ?>">
<?php print $picture ?>
<div class="content">
<?php print $content ?>
</div>
<?php if ($links): ?>
<div class="links">
<?php print $links; ?>
</div>
<?php endif; ?>
<?php if ($node_bottom && !$teaser): ?>
<div id="node-bottom">
<?php print $node_bottom; ?>
</div>
<?php endif; ?>
</div>
<!-- /#node-<?php print $node->nid; ?> -->
Hmmmm
am 26.08.2010 - 14:17 Uhr
Also bei mir sieht das ganz anders aus nämlich so:
<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"><div class="node-inner clear-block">
<?php if (!$page): ?>
<h2 class="title">
<a href="<?php print $node_url; ?>" title="<?php print $title ?>"><?php print $title; ?></a>
</h2>
<?php endif; ?>
<?php if ($unpublished): ?>
<div class="unpublished"><?php print t('Unpublished'); ?></div>
<?php endif; ?>
<div class="meta">
<?php if ($submitted): ?>
<span class="submitted"><?php echo t('Posted on ').date("d. M, Y", $created).t(' by ').$name; ?></span>
<?php endif; ?>
<?php if ($terms): ?>
<span class="terms"><?php print ' Tag: ' . $node_terms; ?></span>
<?php endif; ?>
<?php if ($page): ?><?php print $links; ?><?php endif; ?>
</div>
<div class="content">
<?php print $content; ?>
</div>
</div></div> <!-- /node-inner, /node -->
Wenn man mal von den Formatierungseinstellungen absieht, dann muß ich lediglich alles zwischen < h2> und < /h2> auskommentieren bzw. löschen und schon ist alles in Ordnung....
Ich kann aber bei Dir nicht feststellen, warum Dien Code nicht so angezeigt werden soll, wie angegeben und wo der Titel herkommt. Hast Du eventuell ein
<?php if (!$page): ?>
mitgelöscht? Wie sieht der Code aus, den Du gelöscht hast?P.S. BEVOR Du Code einfügst, erst oben auf die Schaltfläche 'Code' klicken und dann in die Klammern den gesamten Code einfügen!
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
Man kann das auch mit dem
am 26.08.2010 - 14:18 Uhr
Man kann das auch mit dem Modul automatic_nodetitel lösen!
C.A.W. Webdesign
ich habs korrigiert...hab auf
am 26.08.2010 - 14:28 Uhr
ich habs korrigiert...hab auf ausversehen auf php geklickt....
ich habe die $page mit rausgenommen....nun...ich möchte eigentlich kein weiteres Modul installieren.....
Also once again, so sieht der Code aus:
<!-- start node.tpl.php -->
<div id="node-<?php print $node->nid; ?>" class="node <?php print $node_classes; ?>">
<?php print $picture ?>
<?php if (!$page): ?>
<h2 class="title">
</h2>
<?php endif; ?>
<div class="content">
<?php print $content ?>
</div>
<?php if ($links): ?>
<div class="links">
<?php print $links; ?>
</div>
<?php endif; ?>
<?php if ($node_bottom && !$teaser): ?>
<div id="node-bottom">
<?php print $node_bottom; ?>
</div>
<?php endif; ?>
</div>
<!-- /#node-<?php print $node->nid; ?> -->
Dann sollte es so funktionieren...
am 26.08.2010 - 14:33 Uhr
<!-- start node.tpl.php -->
<div id="node-<?php print $node->nid; ?>" class="node <?php print $node_classes; ?>">
<?php print $picture ?>
<?php if (!$page): ?>
<?php endif; ?>
<div class="content">
<?php print $content ?>
</div>
<?php if ($links): ?>
<div class="links">
<?php print $links; ?>
</div>
<?php endif; ?>
<?php if ($node_bottom && !$teaser): ?>
<div id="node-bottom">
<?php print $node_bottom; ?>
</div>
<?php endif; ?>
</div>
<!-- /#node-<?php print $node->nid; ?> -->
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
Liebe Kirsten, es
am 26.08.2010 - 14:45 Uhr
Liebe Kirsten,
es funktioniert nicht..hab alles nochmals geprüft..aber irgenwie greifft noch was anderes im Moment, zumindest erscheint es mir so,
aber ich dachte das primär die Dateien im Theme Ordner relevant sind und im zweiten Schritt die System Datein usw...
Grüße
Sandro
Also erstmal - Automatic
am 26.08.2010 - 15:50 Uhr
Also erstmal - Automatic Nodetitles wird hier nichts bringen, damit entfernt man das Eingabefeld für den Titel, nicht die Titelanzeige selbst.
Außerdem @kirsten
Klar sieht deine node.tpl.php anders aus, wenn du ein anderes Theme verwendest ;)
Und zu guter letzt: Wenn du die $title-Variable aus der node-media.tpl.php entfernt hast und der Titel immer noch angezeigt wird, liegt die Vermutung nahe, dass die Ausgabe des Titels in diesem Theme nicht dort geschieht, da könnt ihr in der node.tpl.php rumschreiben wie ihr wollt. Wenn der Node angezeigt wird, dann ist das eine Seite und somit regelt die page.tpl.php die Titelausgabe, so einfach ist das. Also muss dort auch der Titel entfernt werden und das dürfte nicht so problematisch sein.
Irgendwo in der page.tpl.php dürfte man so einen Code-Abschnitt finden:
<?php if ($title): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
(So oder ähnlich)
Damit wird der Seitentitel ausgegeben. Die Titel-Ausgabe in der node.tpl.php ist zuständig für Listen usw. aber nicht für die Seitenansicht.
Also ändern wir den oben genannten Code so ab:
<?php if ($node->type != "media"):?>
<?php if ($title): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
<?php endif; ?>
Damit wird der Titel nur ausgegeben, wenn der Node-Type nicht "media" ist, also wird bei allen Nodes vom Typ "media" kein Titel angezeigt.
also wenn der typ ungleich
am 26.08.2010 - 16:02 Uhr
also wenn der typ ungleich media, dann wird der Titel ausgegeben....und
this works out !!!!!....
interessant ist aber deine Aussage:
Und zu guter letzt: Wenn du die $title-Variable aus der node-media.tpl.php entfernt hast und der Titel immer noch angezeigt wird, liegt die Vermutung nahe, dass die Ausgabe des Titels in diesem Theme nicht dort geschieht, da könnt ihr in der node.tpl.php rumschreiben wie ihr wollt
Woran kann das liegen, wenn ich die eigenen Inhaltstypen nicht steuern kann?
Wobei das auch nicht ganz korrekt ist, denn wenn ich die Variable Content von meiner node-media.tpl.php entferne, dann fehlt tatsächlich der Content...
very strange
Wie mehrere Types ausschließen?
am 26.08.2010 - 16:21 Uhr
Damit wird der Titel nur ausgegeben, wenn der Node-Type nicht "media" ist, also wird bei allen Nodes vom Typ "media" kein Titel angezeigt.
Hallo Exterior,
das ist ja eine tolle Sache - ist mir gar nicht aufgefallen, denn bei mir steht in der page.tpl.php folgender Code:
<?php if (($title) && ($node->type!= 'blog')) : ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
Nun habe ich da noch eine Frage ... wie zähle ich mehrere Types auf? Also z.B. blog, essay, story?
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
Selber gelöst ...
am 26.08.2010 - 16:25 Uhr
Hallo,
der Code muß wie folgt lauten:
<?php if (($title) && ($node->type!= 'blog') && ($node->type!= 'story')) : ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
Gruß,
Kirsten
Solange besser möglich ist, ist gut nicht genug.
http://www.net-explorer.org
Zitat: Woran kann das liegen,
am 26.08.2010 - 16:34 Uhr
Woran kann das liegen, wenn ich die eigenen Inhaltstypen nicht steuern kann?
Sorry, aber was genau meinst du mit der Aussage?
Und dabei ist nichts "very strange" ;)
Der Aufbau einer Seite wird grundsätzlich durch eine page.tpl.php beschrieben. Darin ist das ganze Grundgerüst der Seite untergebracht. Und wenn man z. B. einen einzelnen Node ausgeben will, dann greift unter anderem auch die node.tpl.php und zwar folgendermaßen:
In der page.tpl.php hat man diesen Code:
<div id="content-area">
<?php print $content; ?>
</div>
In diesem Bereich wird der Inhalt der darzustellenden Seite untergebracht. Wenn man also einen einzelnen Node anschaut, dann steht in der Variable $content der page.tpl.php der ausgewertete Inhalt der entsprechenden node.tpl.php
Die page.tpl.php gibt also an dieser Stelle die node.tpl.php aus. Aber wenn man sich einen einzelnen Node ansieht, dann ist das eine Seitenansicht, welche einen eigenen Titel hat. Und der Seitentitel wird eben von der page.tpl.php festgelegt. Das $title in der node.tpl.php regelt die Titelanzeige für die Nodes und in der page.tpl.php regelt die Variable den Seitentitel. Also hat die page.tpl.php diesbezüglich Vorrang und man muss darin den Titel ausblenden, wenn man ihn in der Seitenansicht nicht sehen will, eigentlich absolut logisch: Seitentitel soll nicht angezeigt werden --> wird in page.tpl.php entfernt.
Und natürlich fehlt der Content, wenn du ihn in der node.tpl.php entfernst, dieser wird ja von der page.tpl.php ausgegeben. Aber beim Thema Titel-Anzeige der Seitenansicht hat die node.tpl.php eben nichts zu melden (zumindest bei einigen mir bekannten Themes, weiß nicht, ob das evtl. bei anderen Themes anders ist).
@kirsten
Du hast dein "Problem" ja anscheinend selbst gelöst ;)
Damit kann man praktische Dinge machen. Ich habe es bei mir z.B. so gemacht, dass einige Inhaltstypen eine Checkbox namens "Titel ausblenden?" erhalten haben und wenn diese aktiviert wird, wird kein Titel angezeigt, damit kann man das ganze schön pro Node steuern =)
das ist sehr interessant, mir
am 27.08.2010 - 10:40 Uhr
das ist sehr interessant, mir war die Prio in der Hinsicht nicht bekannt....
D.h. ich kann die Title im Node nur zum Stylen gebrauchen, aber nicht zum entfernen... sage ich mal salop...
Ich habe bisher gedacht, das die Variable Content in der Page die Node ausgibt , UND die Variable Content in der Node, den Inhalt des jeweiligen Typen..
Thanx für die Einsicht und in der Tat kann ich nun viel mehr Sachen in der Page über PHP Befehle steuern..Ich habe zwar Grundkenntnisse, werde aber diese wieder auffrischen..
Grüße
Sandro
oxifly schrieb D.h. ich kann
am 27.08.2010 - 13:25 Uhr
D.h. ich kann die Title im Node nur zum Stylen gebrauchen, aber nicht zum entfernen... sage ich mal salop...
Kann man so nicht allgemeingültig sagen. Die Variable $title ist in so ziemlich jedem Theme sowohl in der page.tpl.php als auch in der node.tpl.php verfügbar. Wann diese wie eingesetzt wird kann von Theme zu Theme unterschiedlich sein. Eine Seite, die keinen Node abbildet, sondern etwa die Seitenansicht einer View oder eines Panel hat ja auch einen Titel. Um diesen auszugeben braucht man $title in der page.tpl.php. In der node.tpl.php wird $title oft nur für die Teaser-Ansicht ausgegeben, weil in der Vollansicht ja bereits $title in der page.tpl.php ausgegeben wird und es sonst doppelt gemoppelt wäre.
Das kann man aber nach Belieben und wie man es braucht umstricken und unterschiedliche Themes halten das von Haus aus ggf. auch anders.
Ich habe bisher gedacht, das die Variable Content in der Page die Node ausgibt , UND die Variable Content in der Node, den Inhalt des jeweiligen Typen..
Tun sie auch, wobei $content in der page.tpl.php ganz allgemein Ihalt ausgibt. Das KANN ein Node sein, das kann eine View sein, ein Panel, ein Formular, usw. usf.
Suchmaschinenoptimierung (SEO) & Drupal
Das sorgt für einen exhanced
am 27.08.2010 - 13:48 Uhr
Das sorgt für einen exhanced Sichtweite der Dinge,
danke euch!!
Sandro