Einige Template-Clubs haben vorgemacht, was bis heute mittels CSS nicht zu lösen ist: Das Formatieren des ersten Wortes. Natürlich kann man direkt in die Core Dateien eingreifen, was aber bei jedem Update das Risiko nach sich zieht, dass die eingebauten Funktionen neu erstellt werden. Nachhaltigkeit sieht da anders aus. Mit Erscheinen der Joomla Version 1.5 ist es jedoch mittels Template Overrides möglich, den Ausgabecode zu ändern, ohne direkt in den Programm Code einzugreifen. Dies werden wir uns in diesem Tutorial auch zu Hilfe nehmen, wenn es darum geht, das erste Wort von Joomla-Titeln bzw. Modul-Titeln zu ändern.
Nähere Informationen zu Template Overrides bei Joomla findet Ihr hier (english).
Der Einfachheit halber erkläre ich hier nur Artikel-Überschriften Die Herangehensweise ist aber bei Componentenüberschriften und Modulen recht ähnlich. Es wird per php nach dem ersten Leerzeichen gesucht, der Title wird am Leerzeichen in zwei Teile zerlegt und dem ersten Teil des Titels wird ein Span-Tag zugewiesen...
Im Templateverzeichnis wird - sofern noch nicht vorhanden, das Verzeichnis html/ erstellt. Darin das Unterverzeichnis com_content/ und darin wiederum das Verzeichnis article/ Dann kopierst Du die Datei default.php aus dem Verzeichnis components/com_content/views/article/tmpl/ in das neu erstellte Verzeichnis article/. Wenn Du Dir den Quellcode ansiehst, wirst Du feststellen, dass wir es hier mit nicht gerade optimalem Code zu tun haben. Du kannst ihn hier optimieren (orientiere Dich hier vielleicht am wirklich hervorragenden Template "beez").
Suche folgenden Code:
<?php echo $this->escape($this->article->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->article->title); ?>
<?php endif; ?>
und ersetze ihn durch
<?php $title = $this->escape($this->article->title);
$title = split(' ', $title);
$title[0] = '<span>'.$title[0].'</span>';
$title= join(' ', $title);
echo $title;?></a>
<?php else :
$title = $this->escape($this->article->title);
$title = split(' ', $title);
$title[0] = '<span>'.$title[0].'</span>';
$title= join(' ', $title);
echo $title; ?>
<?php endif; ?>
Damit kann nun per CSS das erste Wort direkt formatiert werden, z.B. mit
a.contentpagetitle span {
color: #F00;
text-transform: uppercase;
}
Freue mich über Eure Kommentare


