tas2580
Blog über Webentwicklung

Mods in SEO phpBB3 verwenden

tas2580  

Es gibt immer wieder Mods die Links auf ein Forum oder einen Beitrag setzen. Wenn ein solcher Mod in ein SEO phpBB installiert wird muss man bei der Ausgabe der URLs eine kleine Änderung vornehmen damit die URLs die der Mod erzeugt auch suchmaschinenfreundlich ausgegeben werden. Natürlich kann man auch einfach auf die URL-Prüffunktion von SEO phpBB zurückgreifen, dabei wird aber immer ein 301 Redirect gemacht den man sich sparen kann wenn man den Mod ein wenig anpasst. SEO phpBB liefert dazu einige Funktionen die ich hier kurz erklären will.

Links auf ein Forum

Gehen wir davon aus ein Mod schickt einen Link zu einem Forum an das Template, dann wird der Link in einem originalen phpBB3 folgendermaßen ausgegeben:

'U_VIEW_FORUM'    => append_sid("{$phpbb_root_path}viewforum.$phpEx""f=$forum_id"),

Um den Link jetzt an ein SEO phpBB anzupassen muss diese Zeile folgendermaßen abgeändert werden:

'U_VIEW_FORUM'    => generate_seourl_forum($forum_id$forum_name),

Hier wird also zusätzlich noch der Forenname benötigt, oft wird der Forenname wenige Zeilen über oder unter dem Link auch an das Template geschickt, man kann sich die Variable also von da kopieren. Sollte der Forenname nicht verfügbar sein muss man entweder die dazugehörige Datenbankabfrage anpassen oder man führt die Funktion ohne Forenname aus:

'U_VIEW_FORUM'    => generate_seourl_forum($forum_id),

Bei dieser Variante wird der Forenname in der Funktion extra aus der Datenbank ausgelesen, das sollte nach Möglichkeit vermieden werden da es wenn die Funktion in einer Schleife ausgeführt wird den Server stark belasten kann.

Links auf ein Thema

Der Link zu einem Thema ist in einem normalen phpBB folgendermasen aufgebaut:

'U_VIEW_TOPIC'    => append_sid("{$phpbb_root_path}viewtopic.$phpEx"'f=' $forum_id '&t=' $topic_id),

Um den Link an ein SEO phpBB anzupassen kann folgende Funktion verwendet werden:

'U_VIEW_TOPIC'    => generate_seourl_topic($topic_id$topic_title$forum_id$forum_name),

Hier werden auch wieder der Foren-Name und der Topic-Titel als zusätzliche Angaben benötigt, mit ein wenig Glück sind die Angaben schon vorhanden und können Problemlos an die Funktion übergeben werden. Wenn es nicht ohne weiteres möglich ist an die Angaben zu kommen können sie weg gelassen werden. Pflicht ist nur die Topic ID, man sollte aber versuchen so viele Angaben wie möglich zu machen da sonst die Funktion die fehlenden Angaben aus der Datenbank holen muss. Sollte man z.B. nur Informationen zum Thema aber nicht zum Forum in dem das Thema liegt haben kann man die Funktion auch folgendermaßen aufrufen:

'U_VIEW_TOPIC'    => generate_seourl_topic($topic_id$topic_title),

Wenn man zwar die Themen-ID und die Foren-ID hat, aber nicht die benötigten Titel kann der Aufruf folgendermaßen aussehen:

'U_VIEW_TOPIC'    => generate_seourl_topic($topic_idnull$forum_id),

Anmerkungen

Beide Funktionen sollten immer mit so vielen Angaben wie möglich ausgeführt werden, man sollte allerdings nicht selber eine Anfrage an die Datenbank machen nur um die Funktion mit allen Angaben auszuführen da das in der Funktion bei Bedarf automatisch erledigt wird. Pflicht ist immer nur die erste Angabe, Werte die nicht bekannt sind können duch "null" ersetzt werden oder wenn danach kein Wert mehr kommt einfach weg gelassen werden.

Die Session ID wird an den zurückgegebenen Wert schon angehängt, die Funktionen müssen also ohne addend_sid() ausgeführt werden.

Falsch
'U_VIEW_FORUM'    => append_sid(generate_seourl_forum($forum_id$forum_name)),

Richtig
'U_VIEW_FORUM'    => generate_seourl_forum($forum_id$forum_name),

Link zum letzten Beitrag in einem Thema

Wenn man den Link zu den letzten Beitrag in einem Thema ausgeben will kann man das mit folgender Funktion machen:

generate_seo_lastpost($replies$url)

Hier muss also bekannt sein wieviele Beiträge es in dem Thema gibt, außerdem muss die URL zu dem Thema vorher schon erstellt werden.

$url generate_seourl_topic($topic_id$topic_title$forum_id$forum_name);
$url generate_seo_lastpost($replies$url);

Eigene Titel formatieren

Wenn man z.B. eine Downloaddatenbank oder Bildergalerie einbauen möchte die die auch den Seitentitel in der URL enthalten soll kann man sich mit folgender Funktion den Titel so formatieren lassen das er URL tauglich wird.

$url title_to_url($titel);

In dieser Funktion werden alle Sonderzeichen und Leerzeichen so umgewandelt das sie für eine URL tauglich sind, aus "ä" wird also "ae". Hier wird nur der formatierte Text zurück gegeben, alle anderen Angaben zur URL müssen extra eingefügt werden, auch die Session ID wird hier nicht angehängt.

$url append_sid(title_to_url($titel) . '-' $id 'html');


Ähnliche Beiträge


Kommentare


Bitte warten ...

Kommentar schreiben

URLs werden automatisch umgewandelt.
[b]DEIN TEXT[/b] für Fett gedruckt
[quote]DEIN ZITAT[/quote] für Zitate
[code]DEIN CODE[/code] für Code
captcha