Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Internet Allgemein Flatrates, Webspace, Protokolle und alles rund ums Internet hier rein.

Wordpress Glossar

Diskussion: Wordpress Glossar im Forum Internet Allgemein, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo ! Ich komme eigentlich aus der Typo3 Ecke, dort gibt es einige nette Extensions. Ich suche nun etwas ...

Antwort
Alt 28.06.10, 11:27   #1 (permalink)
 
Registriert seit: 19.08.04
Dawen Leistung: Addierstift
Likes: 1
Standard Wordpress Glossar

Anzeige

Hallo !

Ich komme eigentlich aus der Typo3 Ecke, dort gibt es einige nette Extensions. Ich suche nun etwas für Wordpress.


Ich habe mir folgendes vorgestellt :


Eine Maske zum anlegen von einem Wort + Beschreibung. Die URL soll dann wie folgt aussehen :

www.domain.de/glossar/wort.html

Schön wäre noch folgendes :

Sollte das Wort in einem Text vorkommen, so sollte automatisch ein Link zu dem Wort im Glossar eingefügt werden.

Kennt jemand da was netter ?

Dawen ist offline   Mit Zitat antworten
Alt 28.06.10, 13:29   #2 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

Ich habe selbst für Wordpress noch keine Plugins geschrieben, aber hier mal ein genereller Weg:

Wenn es was statisches sein soll, dann erstellst du einfach eine Datei glossarWords.php mit folgendem Inhalt:

PHP-Code:
<?php
return array(
    
'wort1' => 'Dies ist die Beschreibung zu Wort 1',
    
'wort2' => 'Dies ist die Beschreibung zu Wort 2',
);
Wenn es dynamisch von mehreren Leuten geändert werden soll, musst du dir halt alles in 'ne Datenbank-Tabelle hauen und ein kleines Backend zur Administration für schreiben.

Dann gibt es meinetwegen eine glossarList.php, welche das Array im einfachsten Falle in eine Definitions-Liste packt und wenn Parameter word=... übergeben wurde, wird nur dieses Wort angezeigt:
PHP-Code:
<?php
$words 
= include 'glossarWords.php';

//Sicherheits-Check
if (!is_array($words)) {
    
$words = array();
}


$wordlist = array();
$w '';

//Wenn ein gesuchtes Wort per Parameter übergeben wurde, dann nur dieses anzeigen
if (isset($_GET['word']) && !empty($_GET['word'])) {

    
//wenn man mit dem Wort direkt 'ne Datenbank-Abfrage machen wollte, wäre hier
    //ein Escapen angebracht - z.B. mit mysql_real_escape_string()
    
$w trim($_GET['word']);

    if (
array_key_exists($w$words)) {
        
$wordlist[$w] = $words[$w];
    }
//Ansonsten eine komplette Glossar-Wortliste anzeigen
} else {
    
//Array nach keys sortieren
    
ksort($words);
    
$wordlist $words;
}

$content '';
foreach (
$wordlist as $word => $description) {
    
$content .= '  <dt>' $word '</dt>' chr(10);
    
$content .= '  <dd>' $description '</dd>' chr(10) . chr(10);
}

if (!empty(
$content)) {
    
$content '<dl>' $content '</dl>';
} else {
    
$msg 'Das Glossar enthält keine Wörter!';
    if (!empty(
$w)) {
        
$msg 'Das Wort &quot;' $w '&quot; wurde nicht im Glossar gefunden';
    }
    
$content '<div class="error">' $msg '</div>';
}

echo 
$content;
und nun kommt die Geschichte mit dem gewünschten Pfad glossar/wort.html

Hierzu nutzt du einfach mod_rewrite mit folgender Regel in der .htaccess:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^glossar/([^\?\\/]+).html$ /glossar/glossarList.php?word=$1 [L,QSA]
RewriteRule ^glossar$ /glossar/glossarList.php [L,QSA]
RewriteRule ^glossar/.*$ /glossar/glossarList.php [L,QSA]

</IfModule>
und nun willst du ja auch die Verlinkung im Text haben - das könnte dann so aussehen:
PHP-Code:
<?php
<?php
$words 
= include 'glossarWords.php';

//Sicherheits-Check
if (!is_array($words)) {
    
$words = array();
}


$myText 'Dies ist mein Text, in welchem Wort1 und Wort2 vorkommen.';

function 
getGlossarLink($word)
{
    
$glossarword strtolower($word);
    return 
'<a href="./glossar/' $glossarword '.html">' $word '</a>';
}

if (
sizeof($words)>0) {
    
$pattern '/(' implode('|',array_keys($words)) . ')/ie';
    
$myText preg_replace($pattern'getGlossarLink(\\1);'$myText);
}

echo 
$myText;
(das musst du natürlich nun so als Wordpress-Plugin umsetzen, dass der auszugebende Text statt $myText mit den Links ersetzt wird)


Vielleicht gibt es sowas ja auch schon fertig als Plugin - aber so wäre jedenfalls meine Herangehensweise, wie ich das selbst als Plugin umsetzen würde...

man könnte das ganze natürlich sogar noch mit bissl AJAX schön machen, dass die Definition gleich beim Hovern angezeigt wird...
beavisbee ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » Internet Allgemein » Wordpress Glossar
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61