Titel ausblenden - was ist die beste Möglichkeit
am 14.02.2010 - 13:44 Uhr in
Hallo alle zusammen,
ich versuche schon seit einer Weile den Titel auf meiner Seite auszuschalten. Hat jemand eine Ahnung wie man das am besten machen kann? Habe schon versucht mit dem Modul automatic.nodetitles aber bislang ohne Erfolg. Nach anwenden dieses Moduls steht dann immer Seite 1. Ich würde gerne selber entscheiden, wann ich einen Titel eingeben möchte und wann dieser nicht sichtbar sein soll. Ich danke Euch.
- Anmelden oder Registrieren um Kommentare zu schreiben

Titel
am 14.02.2010 - 14:12 Uhr
Hallo.

Die (meines Erachtens) beste Möglichkeit wäre ein zusätzliches Feld (checkbox) "Titel anzeigen" (Feldname "field_show_title") in Verbindung mit auto_nodetitle.
Stelle auto_nodetitle so ein, dass ein Titel automatisch vergeben wurde, wenn kein Titel manuell eingegeben wurde:
Dann musst Du noch ein Pattern für den automatisch zu vergebenen Titel einstellen. Beispiel:
<?php
return $node->type . '_' . time() . '-' . rand(0, 1000);
?>
Dies setzt den Titel dann beispielsweise auf "story_1234567890-123" (jedoch nur, wenn Du keinen Titel per Hand eingegeben hattest. Es ist wichtig, einen halbwegs sinnvollen Titel zu vergeben, damit Du die Beiträge später auch wiederfinden kannst. Evtl. wäre ein Titel der Form "story_2020-02-14_14:10:00_123" noch besser. Das ist jedoch Geschmackssache.
Den Wert der Checkbox verwendest Du dann um die Sichtbarkeit des Titels zu steuern.
Dazu musst Du ein wenig Code in die template.php Deines Themes schreiben (Beispiel "garland").
Erweitere die Funktion
phptemplate_preprocess_page:<?phpfunction phptemplate_preprocess_page(&$vars) {
// bestehender Code ...
if (isset($vars['node']) && !$vars['node']->field_show_title[0]['value']) {
// Titel nicht anzeigen!
$vars['title'] = '';
}
}
?>
Erweitere die Funktion
phptemplate_preprocess_node:<?phpfunction phptemplate_preprocess_node(&$vars) {
// bestehender Code ...
if (isset($vars['node']) && !$vars['node']->field_show_title[0]['value']) {
// Titel nicht anzeigen!
$vars['title'] = '';
}
}
?>
Das könnte so funktionieren.
Stefan
--
Sei nett zu Deinem Themer!
Hallo Stefan, da ich von PHP
am 14.02.2010 - 14:35 Uhr
Hallo Stefan,
da ich von PHP leider keine Ahnung habe muss ich noch einmal nachfragen.
Also ich bin jetzt in meine template.php rein folgenden Code habe ich da gefunden, zunächst unter phptemplate_preprocess_page:
<?php
function phptemplate_preprocess_page(&$vars) {
$vars['tabs2'] = menu_secondary_local_tasks();
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
}
?>
und unter
<?php
function phptemplate_node_submitted($node) {
return t('!datetime — !username',
array(
'!username' => theme('username', $node),
'!datetime' => format_date($node->created),
));
}
?>
Kannst Du mir noch einmal genau zeigen, wo Deine Codeschnipsel reinkommen? Ich danke Dir.
Code
am 14.02.2010 - 14:38 Uhr
<?php
function phptemplate_preprocess_page(&$vars) {
$vars['tabs2'] = menu_secondary_local_tasks();
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
// neuer Code ...
if (isset($vars['node']) && !$vars['node']->field_show_title[0]['value']) {
// Titel nicht anzeigen!
$vars['title'] = '';
}
}
?>
function phptemplate_node_submitted($node) {
Die hat nichts damit zu tun. Füge einfach die von mir beschriebene
phptemplate_preprocess_nodeder Datei hinzu.hth,
Stefan
--
Sei nett zu Deinem Themer!
Jetzt habe ich einfach
am 14.02.2010 - 14:45 Uhr
Jetzt habe ich einfach keinen Titel auf meiner Seite angegeben und da erscheint jetzt
<p> <span style="color: rgb(0, 0, 187);"><?php </span><span style="color: rgb(0, 119, 0);">return </span><span style="color: rgb(0, 0, 187);">$node</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">type </spaWas ist da schief gelaufen?
PHP-Code
am 14.02.2010 - 15:06 Uhr
Du hast 1. keinen gültigen PHP-Code bei den Einstellungen für auto_nodetitle angegeben und 2. vermutlich vergessen, das Häkchen zu machen, mit dem Du das Pattern als PHP markierst.
Stefan
--
Sei nett zu Deinem Themer!
Also ich habe eigentlich
am 14.02.2010 - 15:46 Uhr
Also ich habe eigentlich alles so wie Du beschrieben hast gemacht.
Jetzt steht bei mir in der Titelzeile:
Seite <?php return $node->type . '_' . time() . '-' . rand(0, 1000);?> wurde aktualisiert.
Leicowitz schrieb Also ich
am 14.02.2010 - 15:52 Uhr
Also ich habe eigentlich alles so wie Du beschrieben hast gemacht.
Du hast den Haken nicht gesetzt. Ansonsten würde der PHP-Code zu einem Text beginnend mit dem Typ des Nodes umgesetzt und als Titel gespeichert werden.
Stefan
--
Sei nett zu Deinem Themer!
Also den Haken hatte ich
am 14.02.2010 - 16:00 Uhr
Also den Haken hatte ich gesetzt. Ich habe aber den Editor gewechselt, von CKEditor zum plain text editor. Jetzt habe ich folgende Zeile in der Titelzeile stehen
page_1266159451-874
Editor
am 14.02.2010 - 16:54 Uhr
Ich habe aber den Editor gewechselt, von CKEditor zum plain text editor.
Du merkst, ohne diese wichtige Information war nur eine bedingt korrekte Hilfe nötig.
Tipp: WYSIWYG-Editoren haben in den Admin-Seiten nichts verloren. Deaktiviere den einfach für alle Seiten unter admin/.
hth,
Stefan
--
Sei nett zu Deinem Themer!
Jetzt muss ich mal ganz dumm
am 14.02.2010 - 19:42 Uhr
Jetzt muss ich mal ganz dumm fragen, wo genau kann ich nur für den Admin-Bereich den CKEditor ausschalten?
titel ausblenden
am 14.02.2010 - 23:53 Uhr
3 ansätze
titel ausblenden
Die Vorschläge habe ich mir
am 16.02.2010 - 10:39 Uhr
Die Vorschläge habe ich mir auch schon angeschaut und ausprobiert, aber bei keinem verschwand der Titel.
Mit dem cck-Feld habe ich Schritt für Schritt nachempfunden.
Hier noch einmal. Bei den ersten Schritten kann man ja nichts falsch machen.
Dann habe ich den Codeschnipsel, ich verwende übrigens als Theme Garland,
<?php if ($title): print '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif; ?>durch den aufgeführten
<?php if ($node->field_titelschalter[0]['safe'] != 'no'):?><?php if ($title): ?>
<h1 class="title"><?php print $title; ?></h1>
<?php endif; ?>
<?php endif; ?>
ausgetauscht.
Beim Test muss ich nach wie vor einen Titel eingeben und dieser wird auch angezeit, wenn ich im Feld "Titelschalter" no eintippe.
Woran kann es nur liegen, bin langsam am verzweifeln.
Ich kann dir versichern das
am 17.02.2010 - 16:34 Uhr
Ich kann dir versichern das alle 3 funktionieren, ich habe mich letztendlich für die von Karl1120 entschieden weil die einfach am komfortabelsten/übersichtlichtstem/wenigsten nachpflege aufwand hat. habe den "titelschalter" immernoch in gebrauch und er funzt. ein einfaches no in das neue cck feld geschreiben und der titel ist weg!
hier nochmal der link direkt zum comment von Karl
http://www.drupalcenter.de/node/21340#comment-75400
vielen herzlichen dank nochmal für Karls super lösung!
mfg
chris
Also ich handhabe das auch
am 17.02.2010 - 19:42 Uhr
Also ich handhabe das auch über einen extra "CCK-Schalter", allerdings habe ich kein Text-Feld, in das man "no" eingeben muss, sondern habe mir eine einzelne kleine Checkbox dort hin gemacht. Haken rein --> Titel wird ausgeblendet, Haken raus --> Titel da (oder andersrum, je nachdem, wie man's will). Geht super
Das klingt ja richtig gut.
am 17.02.2010 - 19:59 Uhr
Das klingt ja richtig gut. Könntest Du mal posten, wie Du das genau angestellt hast. Möglichst detailiert, da ich irgendwie nicht weiterkomme (siehe vorangegangene Postings). Danke Dir.
Also erstmal legst du ein
am 17.02.2010 - 21:23 Uhr
Also erstmal legst du ein neues CCK-Feld für deinen Inhaltstyp an.
Als Feldtyp wählst du "Text" und als Steuerelement nimmst du "Ankreuzfelder/Auswahlknöpfe".
Einstellungen bleiben eigentlich dir überlassen, außer, dass du bei "Anzahl von Werten" auf "unbegrenzt" stellst.
Bei "Zulässige Werteliste:" habe ich lediglich "Nein" eingetragen.
Danach muss noch eine kleine Änderung in der node.tpl.php vorgenommen werden.
Und zwar ersetzt du diesen Teil (In Garland):
<?phpif ($title): print '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif;
?>
damit:
<?php if ($node->field_titelanzeige[0]['value'] != "Nein"):?><?php if ($title): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
<?php endif; ?>
Das müsste so eigentlich funktionieren.
Wenn du dann das Häkchen rein setzt, wird bei der Ausgabe kein Titel angezeigt.
Bedenke aber, dass solche Maßnahmen dich nicht davon befreien, einen Titel einzugeben.
Bei mir ist der Wurm drin
am 17.02.2010 - 21:44 Uhr
Hallo Exterior,
also pass auf so bin ich vorgegangen:
1. Verwalten_Inhaltsverwaltung_Inhaltstypen: Seite_Felder verwalten
2. Neues Feld: Bezeichnung: schalter Feldname: schalter Feldtyp: Text Steuerelement: Ankreuzfelder/Auswahlknöpfe
3. Speichern
4. CCk-Feld: alles gelassen außer Anzahl von Werten: unbegrenzt und Werteliste: Nein
5. Speichern
Anschließend habe ich in der ! page.tpl.php den Umtausch vorgenommen.
6. Neue Seite erstellt, einen Titel reingeschrieben abgespeichert.
Titel sichtbar.
Ich werde noch verrückt. Bei allen funktioniert es nur bei mir nicht.
Übrigens hatte ich mal ein bischen experimentiert und den Code
<?php if ($page == 0): ?><h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
Kleineres modul zum ausblenden der title
am 13.03.2010 - 16:11 Uhr
Ich hab mal ein kleiners modul zum ausblenden des titles geschrieben
probierts mal aus ;)
http://www.drupalcenter.de/node/21340