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 - 12: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 - 18: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 - 11: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 - 12: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 - 20: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

  • Drupal 10 und Thema Bartik
  • Wie in hook_views_query_alter() einen join auf Tabelle url_alias durchführen?
  • Strukturierte Daten Fehler
  • fbsmp\plugins Hilfe
  • Migration über feeds von D6 auf D8
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Composer 1 zu Composer 2
  • Bitte um Einschätzung: Upgrade von Drupal 7 auf 9
  • Scroll zu View-Ergebnissen nachdem Filter angewendet ist
  • SQL-Injection? User hat sich Zugriff aufs Admin-Konto geholt und Änderungen vorgenommen.
  • [gelöst] Persönliches Kontaktformular, oder interne User Nachrichten
  • Webform Progress Symbol (Loading icon)?
Weiter

Neue Kommentare

  • Superfish
    vor 3 Tagen 7 Minuten
  • Auch für superfish gibt es
    vor 3 Tagen 3 Stunden
  • Versuchs mal mit
    vor 3 Tagen 3 Stunden
  • Drupal 10 läuft
    vor 3 Tagen 4 Stunden
  • Da wirst Du den Bug wohl selbst beheben müssen
    vor 4 Tagen 23 Stunden
  • Gleiches Problem: bootstrap 4
    vor 1 Woche 1 Stunde
  • Da wirst Du den Bug wohl
    vor 1 Woche 4 Stunden
  • Immer noch composer 1 zu 2
    vor 1 Woche 18 Stunden
  • Beziehung Branche Adresse!
    vor 6 Tagen 4 Stunden
  • Sorry, dann gab es das bei
    vor 1 Woche 20 Stunden

Statistik

Beiträge im Forum: 248398
Registrierte User: 19752

Neue User:

  • Aman_Musani
  • Dustinjex
  • Rickywap

» Alle User anzeigen

User nach Punkten sortiert:
wla9289
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 8 Gäste online.

Benutzer online

  • wla
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