Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Benutzerhandbuch › Fortgeschrittene › Tutorials & How To's - Tipps & Tricks ›

Titel mit Stil

Eingetragen von stBorchert (6003) am 01.05.2009 - 13:04 Uhr in
  • Drupal 6.x

Manchmal hat man das Verlangen, den Titel einer Seite etwas aufzupeppen und bestimmte Teile des Titels andersfarbig oder in einer anderen Schrift darzustellen. Jedoch ist es in Drupal nicht möglich, HTML im Titelfeld zu verwenden.
Dieses Tutorial zeigt, wie man trotzdem ein wenig Stil in den Titel bekommt.

Voraussetzungen
Bevor wir starten, müssen sowohl das Content Construction Kit, als auch Automatic Nodetitles installiert sein.
Bei CCK muss das Untermodul "Text" auf jeden Fall aktiviert sein, sonst lässt sich das Tutorial nicht umsetzen.

Umsetzung
Zuerst verändern wir die Datei template.php unseres Themes (hier im Beispiel "Garland") ein wenig, damit die gestylten Titel auch richtig umgesetzt werden können.
Zuerst fügen wir eine neue Funktion hinzu:

<?php

/**
* Function to replace '[::]' tags with span elements to allow title styling.
*/
function style_title($title) {
 
// Remove all html tags.
 
$styled_title = strip_tags($title, array());
 
$styled_title = check_plain($styled_title);
 
// Check if at least one start marker is present.
 
if (strpos($styled_title, '[:') > -1) {
   
$cnt_open = 0;
   
$cnt_closed = 0;
   
// Replace all start markers.
   
while (($pos = strpos($styled_title, '[:')) > -1) {
     
$cnt_open++;
     
$replace = '<span class="styled-title style-'. $cnt_open .'">';
     
$styled_title = substr_replace($styled_title, $replace, $pos, 2);
    }
   
$cnt_closed = substr_count($styled_title, ':]');
   
// Replace all end markers with closing tags.
   
$styled_title = str_replace(':]', '</span>', $styled_title);
   
// Close all elements that are still open.
   
for ($i = 0; $i < ($cnt_open - $cnt_closed); $i++) {
     
$styled_title .= '</span>';
    }
  }
  return
$styled_title;
}
?>

Dann erweitern wir die Funktion phptemplate_preprocess_page(&$vars) folgendermassen:

<?php
function phptemplate_preprocess_page(&$vars) {
 
// bestehender Code der Funktion ...
 
  // Styled titles
 
if (isset($vars['node']) && isset($vars['node']->field_styled_title[0])) {
   
$styled_title = $vars['node']->field_styled_title[0]['value'];
   
$vars['title'] = style_title($styled_title);
  }
}
?>

Wie zu sehen ist, wird hier auf das Feld field_styled_title verwiesen. Dieses wird jetzt unter admin/content/node-type/page/fields angelegt:
Feld hinzufügen
Ich habe folgende Einstellungen für das Feld verwendet:
Feld Einstellungen

Schnell noch die Reihenfolge der Felder ändern, so dass das neue Titelfeld auch oben angezeigt wird und dann noch die Einstellungen zur Anzeige des Feldes beim Betrachten der Seite anpassen (unter admin/content/node-type/page/display):
Feld verschieben
Feld Ansichtseinstellungen

Da wir jedoch nur ein Titelfeld angezeigt haben wollen, müssen wir jetzt noch den automatischen Titel für den Inhaltstyp konfigurieren.
Unter admin/content/node-type/page finden wir ganz oben den Bereich "Automatic title generation". Dort werden diese Einstellungen vorgenommen:
AutomaticNodetitle Einstellungen
Dies hat zur Folge, dass sämtliche Marker im eigentlich Titel der Seite nicht auftauchen, so dass auch nach dem Titel gesucht werden kann.

Um den Titeln von Seiten jetzt ein wenig Stil beizubringen werden einfach die Marker [: und :] im Titel verwendet.
"Dies ist [:ein:] [:bunter [:Titel" wird so zu "Dies ist ein <span class="styled-title style-1">ein</span> <span class="styled-title style-2">bunter <span class="styled-title style-3">Titel</span></span>".
Wie man sieht, werden die Tags auch automatisch am Ende des Titels geschlossen (falls mal ein Endmarker vergessen wurde).

‹ Themen eines Node-Formulars nach oben Umkreissuche mit Location- und Views-Modul ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du könntest sogar ne

Eingetragen von aschiwi (1113)
am 20.05.2009 - 19:29 Uhr

Du könntest sogar ne Waschmaschine mit Drupal bauen ;-)

http://www.twitter.com/aschiwi
Drupal-Initiative e.V.

undpaul

  • Anmelden oder Registrieren um Kommentare zu schreiben

Stefan bohrt es auf

Eingetragen von eigentor (1424)
am 08.07.2009 - 12:08 Uhr

Ah, sogar ne schöne Anleitung dafür. Das wird gnadenlos verwendet. Danke an den edlen Spender.

Drupal Usability Edition - Goddammit, put it on the Internet!

rufzeichen-logo

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dankeschön :-)

Eingetragen von minou (nicht überprüft) (0)
am 08.07.2009 - 13:00 Uhr

Hallo Stefan Borchert,

Das ist wirklich eine super Anleitung und gut verständlich. Ich habe diese gleich in meine "gemerkten Seiten" aufgenommen.
Das kann ich sicher mal brauchen ...

Gruss und ein Dankeschön aus der Schweiz

Fredi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktionierte ebenfalls auf

Eingetragen von SkullSplitter (81)
am 23.03.2010 - 21:06 Uhr

Funktionierte ebenfalls auf Anhieb :)

Das einzige was mich stört, aber womit man leben kann ist, wenn man den Befehl am Anfang des Titels setzt, t.B.: [:here:] You Text !!!
dann schreibt er es auch [:here:] Your Text !!! ... wenn man ein Leerzeichen davor setzt, funktioniert es auch mit dem ersten Wort im Titel :)

Cheers

Skull

edit: Die Anzeige funktioniert soweit :) Wenn ich nun Blöcke speichern, oder den Cache löschen, oder Nodes abspeichern möchte, bekomme ich:
Referrer http://drupaltest.....org/admin/build/block
Nachricht Cannot modify header information - headers already sent by (output started at /www/htdocs/.../drupaltest/sites/all/themes/framework/template.php:1) in /www/htdocs/w009e5c5/drupaltest/includes/common.inc in Zeile 345.
Schweregrad Fehler

edit2: Hab das ganze mal auf ne frisch augesetzte Drupal 6.16-DE oberfläche und dem integrierten Garland Theme ausprobiert. Leider auch hier derselbe Fehler.
Das muss an der Template.php liegen ... so sieht die aus: http://pastebin.org/120551

edit3: habs jetzt mal mit Zen probiert, nu gehts :)O

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Vom jeweiligen User die Kunstwerke ausgeben.
  • Fullcalendar - Grösse Dialogfenster
  • Notify-Modul: Einmalige Benachrichtigung ueber neue Nodes senden
  • [gelöst]Drupal 9 und Ubuntu 20.04
  • [gelöst] Swiftmailer installieren um Simplenews zum Laufen zu bringen
  • Installiert ja, aber kein einziger link funktioniert
  • Drupal 9 - "read more" übersetzen nun anders, nur wie?
  • [gelöst] Nur editierbare Medien in Media-View anzeigen
  • Probleme mit dem Adminmenü
  • Inhalte ändern/erstellen nicht möglich - Problem mit Datenbank-Verbindung?
  • Groups und Drupal 9
  • Verschachtelte UND / ODER Abfrage mit hook_views_query_alter
Weiter

Neue Kommentare

  • irgendwo wird doch die nutzer
    vor 3 Stunden 11 Minuten
  • inst schrieb Hallo, ich
    vor 3 Stunden 15 Minuten
  • Kein Problem. Ich helfe dir
    vor 2 Tagen 2 Stunden
  • ?????Bahnhof,
    vor 2 Tagen 2 Stunden
  • Wenn du es geschafft hast
    vor 2 Tagen 4 Stunden
  • All-Inkl und Composer 2
    vor 2 Tagen 4 Stunden
  • dinmikkith schrieb xampp auf
    vor 2 Tagen 4 Stunden
  • Ich bin auch bei All-Inkl und
    vor 2 Tagen 4 Stunden
  • Hallo, ok, verstehe. Aktuell
    vor 2 Tagen 4 Stunden
  • d.h. ohne Know How wie z.B.
    vor 2 Tagen 4 Stunden

Statistik

Beiträge im Forum: 246301
Registrierte User: 18906

Neue User:

  • JorgeClayton
  • fel
  • kuldeep

» Alle User anzeigen

User nach Punkten sortiert:
wla9036
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3917
ronald3834
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

DrupalCenter durchsuchen:

Benutzerhandbuch

  • FAQ - Häufig gestellte Fragen.
  • Links & Downloads
  • Über Drupalcenter.de und das deutschsprachige Benutzerhandbuch
  • Über Drupal
  • Einsteiger
  • Fortgeschrittene
    • Best Practice - Drupal Sites - Guidelines
    • Die beliebtesten Themes und Module
    • Tutorials & How To's - Tipps & Tricks
      • Kurztipps - Dinge die Stunden sparen können.
      • Notfallpläne - Tipps die Deine Drupalinstallation retten können
      • Anleitung zur Erstellung eines einfachen Kontaktformulars
      • Arbeiten mit dem Drupal Taxonomie-System [beinhaltet veraltete Inhalte]
      • Bearbeiten-Tab zu jeden Block hinzufügen
      • Block View mit Argument
      • Das Tagebuch einer Site
      • Drupal 6 - Automatisch unterschiedliche Bildgröße bei Teaser und Artikel
      • Drupal 6 - Eigene CSS Datei in ein Theme integrieren
      • Drupal 6 - Einfache Bildergalerie mit Image und Lightbox2
      • Drupal 6 - Einrichten eines Kalenders
      • Drupal 6 - Google Adsense ohne Zusatzmodul einbinden
      • Drupal 6 - Hauptnavigation mit DropDown Effekt ab Ebene Zwei
      • Drupal 6 - ImageMagick mit XAMPP Lite nutzen
      • Drupal 6 - Imagefield mit Imagecache und Colorbox
      • Drupal 6 - Installation FCK Editor
      • Drupal 6 - Installieren der WYSIWYG API inkl. Editoren
      • Drupal 7: mehrere Bilder in Node: 1 Bild in Anrisstext
      • Drupal Code Highlighting in Redmine Projektarchiv (CodeRay)
      • Drupal Theming: JavaScript einhängen in Abhängigkeit von Page-Variablen
      • Drush - Das Schweizermesser für Drupal auf Kommandozeile
      • Einfaches und erfolgreiches Patchen unter Windows
      • Eingabeformat & Inputfilter
      • Einrichten eines einfachen, statischen Menüsystems
      • Erstellen von Patches
      • Gallery mit CCK und Views erstellen (Drupal 5)
      • Header image Modul einrichten
      • Inhaltsübersicht für einen User mit einem View erstellen
      • Javascript und CSS-Dateien einbinden
      • Kontaktformular mit Jquery aufwerten
      • Leitfaden zur Erstellung von Suchmaschinenoptimierten Drupal-Sites
      • Mac OSX - Backupskript für Websites auf MAMP
      • Module updaten via Shell auf Windows
      • Module übersetzen
      • Perl-Script zum Erzeugen einer statischen Kopie einer Drupal-Website
      • Portierung eine Themes von openwebdesign.org
      • Prozentbalken bei Views (Balkendiagramm)
      • Themen eines Node-Formulars
      • Titel mit Stil
      • Umkreissuche mit Location- und Views-Modul
      • Usergalerie mit ImageCache, CCK, Views + Thickbox
      • Userprofil mit Usernodes erstellen
      • Validierung von Usereingaben bei Nodes
      • Variation vom Showroom auf drupalcenter.de
      • View mit Eingabeformular für neue Beiträge
      • WebSVN mit Drupal Code Highlighting
      • Zusätzliche Submit-Schaltfläche in Node-Formularen
      • i18n Language Switcher Block, die Links mit den Flaggen themen
      • ui.slider als Ersatz für den Ajax-Pager von Views
      • Zugriffsbeschränkungen für Nodes - eine Übersicht der Möglichkeiten
  • Entwicklung von Modulen und Themes
  • Drupalcenters Community
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal-Testumgebung erstellen
  • Drupal 6 Module
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Das Copyright des deutschsprachigen Drupal-Benutzerhandbuches unterliegt den jeweiligen Autoren. Übersetzungen des englischsprachigen Drupal-Benutzerhandbuches unterliegen der Creative Commons License, Attribution-ShareAlike 2.0.

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