[gelöst] Node Titel ausblenden über 2te node.tpl.php funktioniert nicht
am 11.09.2009 - 12:15 Uhr in
Hallo Forum,
ich möchte meinen Nodetitel ausblenden aber es klappt nicht...
hab im forum gefunden das man für einen inhaltstyp den titel ausblenden kann indem man eine neue node.tpl.php erstellt und den namen des inhaltstyps dazu angibt.
also zum beispiel:
node-ohnetitel.tpl.php
ich hab erst ein bisschen dran rumgespielt aber getan hat sich nichts, dann habe ich die datei einfach mal komplett ausgeräumt und leer abgespeichert.
Ergebnis: Tatsächlich alles weg, bis auf den Node Titel.
Was muss ich noch tun damit der Titel verschwindet!?!?
Browser und Theme-Cache mehrmals geleert.
mfg
Chris
-][- Zusammenfassung -][-
Lösung 1:
http://www.drupalcenter.de/node/21340#comment-75365
Prinzip:
Jeden Titel über eine ID Ansprechbar machen, dann per CSS display:none; ausblenden.
Lösung 2:
http://www.drupalcenter.de/node/21340#comment-75400
Prinzip:
Optionsfeld im Backend das es ermöglicht den Titel ein/aus zu blenden.
Lösung 3:
http://www.drupalcenter.de/node/21340#comment-75384
Prinzip:
Ähnlich dem Optionsfeld, die "Option" wird mit im Titel-Feld unter gebracht.
- Anmelden oder Registrieren um Kommentare zu schreiben

page.tpl.php?
am 11.09.2009 - 12:24 Uhr
Hört sich so an, als würde der Titel noch an anderer Stelle ausgespielt, zum Beispiel in der page.tpl.php?
--
textformer mediendesign | Webkrauts
Ja wird er auch, hab ich
am 11.09.2009 - 12:40 Uhr
Ja wird er auch, hab ich bereits registriert. hab auch das selbe spielchen wie oben getrieben nur mit einer
page-ohnetitel.tpl.phpTitel bleibt erhalten :(
ich weiss aber allerdings nicht ob es überhaupt sinnvoll ist eine
page-ohnetitel.tpl.phpzu erstellen. also ob das überhaupt so gedacht ist das man die page.tpl auch einfach mit dem inhaltstyp ergänzen kann. das hab ich jetz einfach mal auf gut glück gemacht ;)aber egal funktionieren tuts nicht.
mfg
chris
Nee, so nicht
am 11.09.2009 - 13:00 Uhr
Nee, so geht das bei pages nicht. Bei page-xxx.tpl.php ist das xxx ein interner Pfad. Wenn du also page-node.tpl.php erstellt, gilt das für alle Seiten, die intern den Pfad meineseite.de/node/... benutzen. Wenn du tatsächlich page-ohnetitel.tpl.php erstellt hast, greift diese Datei nur bei Seiten, die intern über meineseite.de/ohnetitel/... liefen.
Siehe http://drupal.org/node/190815
Kommentier den title mal in der page.tpl.php aus und schau, ob es überhaupt diese Stelle ist, die du bearbeiten musst.
--
textformer mediendesign | Webkrauts
Ja wenn man den Title in der
am 11.09.2009 - 13:40 Uhr
Ja wenn man den Title in der page.tpl.php entfernt ist er wirklich weg. Aber auf allen Seiten.
Hab noch eine beobachtung nebenbei gemacht:
In der normalen node.tpl.php ist der Titel von H2-Tags umgeben.
Wenn man aber an der page.tpl und an der node.tpl noch nichts gemacht hat und sich den quelltext im browser anschaut von einer Seite ist der Titel zwischen H1-Tags. So wie ich das verstanden habe müssten laut node.tpl aber H2-Tags da sein oder ?
Vielleicht Pack ich das auch falsch an, ich will lediglich auf einer einzigen Seite einen Titel ausblenden. Habe gehört das es mit display:none auch irgendwie geht, aber das soll wohl eine nicht so "schöne" lösung sein. weiss leider nicht was es für nachteile hat aber es raten viele davon ab wenn man etwas weg haben will es "nur" über display zu tun... (muss ja was dran sein wenn es so viele ablehnen)
mfg
chris
title mit css ändern
am 11.09.2009 - 14:54 Uhr
Hi der h1 title "(
<h1 class="title"><?php print $title; ?></h1>)" wird in der page.tpl.php erzeugt.du kannst den node title einfach mit css ausblenden
.title{
display:none;
}
dies bezieht sich aber auch auf alle title der class=“title"auf deiner Website
Wenn du einen bestimmten titel deiner website ausblenden möchtest kannst du in deiner page.tpl.php
diese line :
<h1 class="title"><?php print $title; ?></h1>gegen diese ersetzen:
<h1 <?php print 'id="title_'.preg_replace( '/\s*/m', '', $title ).'"'.'class="title">'. $title; ?> </h1>jetzt hast du für jeden titel eine id angelegt der aus dem node titel ohne Leerzeichen besteht
bsp. aus Kaufen Sie dieses Auto wird Kaufensiediesesauto
damit kannst du individuell auf jede überschritt zugreifen
.css file kannst den den title mit diesem code ausblende
#title_KaufenSiediesesAuto{
display:none;
}
da haben wir wohl
am 11.09.2009 - 14:02 Uhr
da haben wir wohl gleichzeitig geschrieben, ich habe meinen Beitrag gerade editiert ;)
Gut das du die ominöse display methode ansprichst, kannst du zufällig erklären was manche/viele gegen die display methode haben ?
Nebenbei:
Kann es sein das die node.tpl sich eher auf die ansicht einer node in einem View auswirkt, anstatt auf eine Node die komplett angezeigt wird?
schliesse ich jetzt mal so aus dem das der Titel in der node.tpl von H2 Tags umgeben ist und in der vollständig angezeigten node aber von H1 Tags. in einem view ist der node titel jedoch von H2 tags umgeben!
mfg
chris
Seo
am 11.09.2009 - 14:09 Uhr
Soviel ich weiss indexiert google
<h2>title schnappen würde.[edit] habe den code tag vergessen jetzt stimmts
welchen title ? ;) mfg chris
am 11.09.2009 - 14:03 Uhr
welchen title ? ;)
mfg
chris
[EDIT] Habs geschnallt, du meinst H2 ;)
Per CSS ausblenden
am 11.09.2009 - 14:39 Uhr
Gut das du die ominöse display methode ansprichst, kannst du zufällig erklären was manche/viele gegen die display methode haben ?
Wenn du willst, dass eine Info gar nicht auf der Seite erscheint, ist es besser, sie gar nicht erst auszugeben. Wenn du die Info (in deinem Fall den Titel) per CSS versteckst, wird man sie nicht auf der Webseite sehen, auch Screenreader ignorieren es dann, Suchmaschinen normalerweise auch.
Die Info steht aber immer noch im HTML. Man würde sie finden, wenn man sich den Quelltext ansieht (oder natürlich wenn jemand CSS ausgeschaltet hat).
Für die meisten User ist es aber einfacher eine Info per CSS auszuschalten - und bei vielen Infos ist es auch egal, ob sie jemand im Quelltext finden kann.
Kommt also immer darauf an, wie wichtig es dir ist, dass die Info wirklich nicht erscheint.
--
textformer mediendesign | Webkrauts
Ich bereite das ganze mal
am 11.09.2009 - 14:39 Uhr
Ich bereite das ganze mal auf:
Lösung 1:
Schritt 1:
Titel der Ausgeblendet werden soll: "KEIN TITEL"
Öffne: page.tpl.php
Suche:
<h1 class="title"><?php print $title; ?></h1>Ersetze durch:
<h1 <?php print 'id="title_'.preg_replace( '/\s*/m', '', $title ).'"'.'class="title">'. $title; ?> </h1>Speichern
Schritt 2:
Öffne: Haupt CSS Datei des Themes
Einfügen:
#title_KEINTITEL{
display:none;
}
Gibts noch mehr Lösungen?
Ich habe einen Thread gefunden aber leider konnte ich die Lösung nicht nachahmen, fand sie aber von der Idee her Super Genial, va weil sich das Prinzip dahinter für andere Sachen nutzen lässt.
http://www.drupalcenter.de/node/8988
Grober Ansatz ist das man ein "Ja/Nein" Optionsfeld per CCK ergänzt und in der page.tpl eine abfrage generiert. bei Ja title ausgeben, bei nein, keinen title ausgeben.
Wäre Super wenn das nochmal jemand aufgreift und genauer erklärt.
mfg
chris
Ich mache es einfach über
am 11.09.2009 - 14:57 Uhr
Ich mache es einfach über ein vorgesetztes [NO] beim Titel und habe dann in der page.tpl.php an 2 Stellen eine Änderung
1. Titel der Webseite im Browser soll erhalten bleiben
<head><title><?php if (substr($title,0,4) != "[NO]") { print $head_title; } else { print substr($head_title, 4); } ?></title>
Hier wird das [NO] weggenommen und der normale Titel für das Browserfenster als Überschrift gesetzt.
2. Ausgabe des Titels der Seite
<?php if ($title && substr($title,0,4) != "[NO]"): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>Ein Titel, der aber nur angezeigt wird, wenn er nicht mit [NO] anfängt.
Beste Grüße
Werner
Und wie kriegst du das NO da
am 11.09.2009 - 15:11 Uhr
Und wie kriegst du das NO da hin ?
mfg
chris
Indem ich in das Titelfeld
am 11.09.2009 - 15:20 Uhr
Indem ich in das Titelfeld schreibe "[NO]diesen Titel nicht anzeigen" :-)
Eine Page will ja eigenlich immer einen Titel haben, aber ich will den nicht immer angezeigt sehen.
Beste Grüße
Werner
Achso! LOL ! ich dachte
am 11.09.2009 - 15:30 Uhr
Achso! LOL ! ich dachte deine antwort hat was mit dem Optionsfeld zu tun ;)
Alles klar wenn ich also deine 2 Snipets einfüge kann ich einfach [NO] vor den Titel schreiben und er wird einmal oben im Browser und einmal auf der Webseite ausgeblendet, richtig ?
mfg
chris
Hm wenn ich nur das einfüge
am 11.09.2009 - 15:42 Uhr
Hm wenn ich nur das einfüge damit die Ausgabe auf der Seite unterdrückt wird:
<?php if ($title && substr($title,0,4) != "[NO]"): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>ist die komplette Seite tot:
Parse error: parse error in C:\web\xampp\htdocs\tastatur\sites\all\themes\zen\activekey\page.tpl.php on line 177
mfg
chris
Im Browser bleibt er stehen
am 11.09.2009 - 15:43 Uhr
Im Browser bleibt er stehen als Fensterüberschrift. Da stört er ja gewöhnlich nicht. Nur auf der Seite will ich ihn nicht sehen.
Beste Grüße
Werner
Ja ich auch, aber wenn ich
am 11.09.2009 - 15:54 Uhr
Ja so hätte ich das auch gern, aber wenn ich dein snipet einfüge das ihn auf Seite entfernen soll dann kommt der Error.
Muss ich beide einfügen damit es funktioniert oder ist da ein kopierfehler drin ?
mfg
chris
Sollte klappen
am 11.09.2009 - 16:08 Uhr
Also, ich denke, der Code sollte so klappen. Weil ich oft blind bin bei kleinen Fehlern, habe ich es eben in eins meiner Themes geworfen: Klappt bei mir, so wie es da steht.
Du musst nicht beide einfügen, damit es klappt. Aber wenn du das "[NO]" verwendest, solltest du es sinnigerweise im title auch ausfiltern, so wie Werner es macht.
--
textformer mediendesign | Webkrauts
Zitat: Ja so hätte ich das
am 11.09.2009 - 16:16 Uhr
Ja so hätte ich das auch gern, aber wenn ich dein snipet einfüge das ihn auf Seite entfernen soll dann kommt der Error.
Muss ich beide einfügen damit es funktioniert oder ist da ein kopierfehler drin ?
Habs geschafft, hatte einmal
<?php endif; ?>zu viel drin.Dafür habe ich jetzt andere Nebenwirkungen !!! *heul*
Breadcrumb hat jetzt ein [NO] dabei und meine URL Leiste natürlich auch ...
KANN SICH BITTE JEMAND DER LÖSUNG MIT DEM OPTIONSFELD ANNEHMEN. THX
mfg
chris
Fast am Ziel
am 11.09.2009 - 16:29 Uhr
Wozu jetzt mit dem Optionsfeld anfangen? Du bist doch fast am Ziel.
Was meinst du mit der URL-Leiste? Doch nicht den title oben im Browser?
Und bei den Breadcrumbs kannst du im Theme einfach schreiben:
<?php print str_replace("[NO]", "", $breadcrumb); ?>statt
<?php print $breadcrumb; ?>--
textformer mediendesign | Webkrauts
titel ausblenden durch cck feld
am 11.09.2009 - 19:23 Uhr
erstelle ein cck feld zum beispiel:
bezeichnung: titelschalter
feldname: (field_) titelschalter
Der zu speichernde Datentyp: text
Formularelement zum Bearbeiten der Daten: textfeld
Dann
Größe des Textfeldes:2
Dann erstellst du dir deine seite. Im feld titelschlater gibst du "no" ein
in der page.tpl.php ersetzt du
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
durch
<?php if ($node->field_titelschalter[0]['safe'] != 'no'):?>
<?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
<?php endif; ?>
damit das feld titelschalter nicht angezeigt wird vergibst du nur die berechtigung edit unter berechtigungen
ich werd das bei zeit nochmal noch mit einer checkbox versuchen aber so sollte es klappen ;)
@karl1120 Vielen lieben
am 15.09.2009 - 11:34 Uhr
@karl1120
Vielen lieben Dank, funktioniert genau so wie ich mir das vorgestellt habe! Gooooooiles Ding !
@Nikolai
Wozu jetzt mit dem Optionsfeld anfangen?
Als ich das Problem mit der URL Leiste und dem Breadcrumb hatte, war mir sofort klar das die Lösung problematisch ist im Hinblick auf zukunftsicherheit. Ein neues Modul installiert und wieder darf ich an irgend einer stelle nachregeln. nachdem ich kein PHP/SQL vollprofi bin schrecke ich davor natürlich gleich 2 mal zurück ;)
mfg
chris
Hallo, kann mir jemand
am 02.03.2010 - 18:49 Uhr
Hallo,
kann mir jemand behilflich sein, die Lösung von karl1120 für das Minnelli-Theme umzusetzen?
Vorab danke für die Hilfe.
Gruß Mad Elk
edit: ich eröffne mal einen neuen Thread für mein Problem. Sorry.
Kleineres module zum ausblenden des title
am 14.03.2010 - 12:07 Uhr
Hi ich hab jetzt mal zeit gefunden ein kleiner modul zum ausblenden der title zu schreiben, ich hoffe das ihr mal zeit findet es auszuprobieren.
!Dieses modul ist für Drupal 6.x
Funktion:
fügt jedem activiertem content-type 2 checkboxen hinzu. Damit kann man den node-title oder den page-title auschalten.
Die content-typen die ihr aktivieren wollt findet ihr unter ''admin/settings/dontshowtitles''.
Bei der erstellung des content-types z.B Page einfache die gewünschten einstellungen vornehmen.
Installation :
Das modul besteht aus 2 dateien:
1. dontshowtitle.info
2. dontshowtitle.module
Diese zwei dateien erstellt ihr in einem unterordner von ''sites/all/modules/'' z.B ''sites/all/modules/dontshowtitle/''
Jetzt folgt der inhalt der beiden dateien ACHTUNG beim kopieren entfernt auf jeden fall die tags für das php ende.
?> <------ -entfernen
dontshowtitle.info
<?php; $Id$
name = dontshowtitle
description = turn off title display.
core = 6.x
?>
dontshowtitle.module
<?php
/**
*
* Implementation of hook_menu().
*
*/
function dontshowtitle_menu() {
$items['admin/settings/dontshowtitles'] = array(
'title' => 'dontshowtitle settings',
'description' => 'turn off title display output.',
'weight' => 0,
'access arguments' => array('access dontshowtitle settings'),
'page callback' => 'drupal_get_form',
'page arguments' => array('dontshowtitle_admin_settings'),
);
return $items;
}
function dontshowtitle_admin_settings() {
// Get an array of node types with internal names as keys and
// "friendly names" as values. E.g.,
// array('page' => 'Page', 'story' => 'Story')
$options = node_get_types('names');
$form['dontshowtitle_node_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Choose content typs '),
'#options' => $options,
'#default_value' => variable_get('dontshowtitle_node_types', array('0')),
'#description' => t('choose node types to hide title.'),
);
return system_settings_form($form);
}
//this function set the variable node[title] and [title] to false
function dontshowtitle_preprocess_page(&$variables) {
// Find out which node types we should simpleplugin.
$dst_options = variable_get( 'dst_options_' . $variables['node']->nid, array());
$types_to_dontshowtitle = variable_get( 'dontshowtitle_node_types', array( '0' ) );
if ( in_array( $variables['node']->type, $types_to_dontshowtitle, TRUE ) ) {
if ($dst_options['dst_page']) {
$variables['title'] = FALSE;
}
if ($dst_options['dst_node']) {
$variables['node']->title = FALSE;
}
}
}
/**
*
* Implementation of hook_form_alter ().
*
*/
function dontshowtitle_form_alter( &$form, $form_state, $form_id ) {
// Find out which node types we should simpleplugin.
$node = $form['#node'];
$types_to_dontshowtitle = variable_get( 'dontshowtitle_node_types', array( '0' ) );
if ( in_array( $node->type, $types_to_dontshowtitle, TRUE ) ) {
$form['dst_options'] = array(
'#type' => 'checkboxes',
'#title' => t('Default options'),
'#default_value' => variable_get('dst_options_'. $node->nid, array('0')),
'#options' => array(
'dst_page' => t('Dont show title on page'),
'dst_node' => t('Dont show title on node'),
),
'#description' => t('check titles you dont want to show'),
);
}
}
/**
*
* Implementation of hook_nodeapi ().
*
*/
function dontshowtitle_nodeapi( &$node, $op, $teaser, $page ) {
switch ($op) {
case 'submit' :
case 'update' :
variable_set('dst_options_'. $node->nid, $node->dst_options);
break;
}
}
?>
Viel spass beim testen ;)
Modul
am 14.03.2010 - 11:28 Uhr
<?php ?>Tags. Nie.hth,
Stefan
auch danach gesucht und Module exclude_node_title gefunden
am 11.04.2014 - 14:12 Uhr
diese Modul könnte auch helfen.
https://drupal.org/project/exclude_node_title