Tutorial - Anzahl der Wörter im Artikel anzeigen lassen - Joomla 1.5


Hack, um die Anzahl der Wörter eines Artikels in Joomla 1.5 anzuzeigen

Im Joomlaportal wurde angefragt, wie man die Anzahl der Wörter im Artikel und in der Kategorieliste anzeigen lassen kann.

Das ist zum Beispiel relativ einfach mit Hilfe eines Template Overrides möglich. Dieses Tutorial erklärt diese Möglichkeit!

1. Vorbereitung des Hacks

Prüfen, ob die Datei default.php unter /html/com_content/article/ im gewählten Template existiert. Falls nicht, einfach diese Datei aus dem Template "Beez" übernehmen.

Damit wird nur die Anzahl der Wörter in der Artikelansicht angezeigt. Für andere Ansichten müssen die entsprechenden Dateien bearbeitet werden (Kategorieansicht)!
Benutzt das gewählte Template keine Overrides und wird die Tabellenstruktur bevorzugt, dann kann auch die Standarddatei von Joomla unter /components/com_content/views/article/tmpl/ verwendet werden.
Weitere Informationen zu Template Overrides

2. Anzahl Wörter zählen

default.php öffnen und folgendes ganz oben nach

<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>

eintragen:

<?php
$text = strip_tags($this->article->text);
$anzahl = str_word_count($text,0,'öäüß0123456789');
?>

Erläuterung:

Der Artikeltext ist in der Datenbank mit HTML-Tags hinterlegt. Benutzt man die Funktion strip_tags nicht, werden die HTML-Tags ebenfalls gezählt. Das wird durch den oberen Aufruf unterbunden.
Mit der Funktion str_word_count werden die Wörter gezählt. 'öäüß0123456789' ist eine Liste zusätzlicher Zeichen, die ebenfalls als Wort betrachtet werden. Benutzt man die Charlist nicht, wird zum Beispiel abcödef1ghi nicht als 1 Wort, sondern als 3 Wörter ausgegeben. Zahlen werden auch als einzelne Wörter gezählt.

Die Zusatzoption charlist ist erst ab der PHP-Version 5.1 verfügbar! Wichtig: Damit die Umlaute richtig erkannt werden, muss die Datei in die utf8-Kodierung umgewandelt werden. Einfach geht das mit dem Editor Notepad++.

3. Anzahl Wörter ausgeben

An gewünschter Stelle einfach folgendes eingeben:

<?php echo "<strong>Anzahl Wörter: ".$anzahl."</strong>";?>

Wird das ö nicht richtig dargestellt, dann ist die Datei nicht utf8 kodiert.

Demo:

Joomla - Anzahl Wörter im Artikel

Joomla - Anzahl Wörter im Artikel mit Template Overrides

Exkurs: Anzahl Wörter in der Kategorieliste

1.Vorbereitung

Für die Kategorieliste muss die Datei default_items.php unter /html/com_content/category/ bearbeitet werden. Falls sie nicht existiert, wie oben beschrieben vorgehen.

2. Zusätzliche Spalte hinzufügen

Zuerst muss eine zusätzliche Spalte für die Anzahl der Wörter hinzugefügt werden. Nach:

<th align="center" class="sectiontableheader<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>"
width="5%" nowrap="nowrap" id="hits">
<?php echo JHTML::_('grid.sort', 'Hits', 'a.hits', $this->lists['order_Dir'], $this->lists['order']); ?></th>

eintragen:

<th align="center" class="sectiontableheader<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>"
width="5%" nowrap="nowrap">Wörter</th>

3. Anzahl Wörter zählen und ausgeben

Nun müssen die Anzahl der Wörter im Artikel gezählt werden. Hier gibt es einen Unterschied zum Vorgehen von der oberen Beschreibung. In der Artikelansicht sind die zwei getrennten Bereiche (bei Nutzung von "Weiterlesen") bereits konkateniert (aneinandergereiht). Das müssen wir vor der Ausgabe noch durchführen. Nach:

<?php if ($this->params->get('show_hits')) : ?>
<td headers="hits">
<?php echo $item->hits ? (int)$item->hits : '-'; ?>
</td>
<?php endif; ?>

eingeben:

<?php
if (JString::strlen($item->fulltext) > 1) {
	$article = $item->introtext." ".$item->fulltext;
} else {
	$article = $item->introtext;
}
$text = strip_tags($article);		
$anzahl = str_word_count($text,0,'öäüß0123456789');
?>
<td><?php echo $anzahl;?></td>

Erläuterung:

Wie oben beschrieben! Hier wird jedoch noch vorher geprüft, ob es einen "Fulltext" gibt. Wenn ja, dann werden die zwei Datenbankeinträge zusammengefasst. Fulltext ist dann vorhanden, wenn die Option "Weiterlesen" benutzt wird.

Wichtig hierbei ist ebenfalls die Umwandlung in die utf8-Kodierung.

Demo:

Joomla - Anzahl Wörter in der Kategorieliste

Zuletzt aktualisiert am Mittwoch, 14. März 2012 11:59

Copyright © 2005 - 2014 Kubik-Rubik.de - Viktor Vogel