SEO Urls V2

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Malz hat geschrieben:da ich diese Code stellen auch nirgends finde. :oops:
Ich nicht einmal ansatzweise. :( Es liegt also nicht am Keep Unread Flags - Mod, denn diesen hast Du ja nicht eingebaut.

@mgutt: Wäre nett, wenn Du Dir die Sache mit dem Simple Subforums Mod noch einmal anschauen könntest: Dein Fix scheint sich gar nicht auf diesen Mod zu beziehen. Gemeint ist der hier:

http://www.phpbbstyles.com/viewtopic.php?t=5553

Danke!

LG, IPB_Flüchtling
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Dann probiert mal selber. Ist nicht wirklich schwer. Hier ein Beispiel:

Zur Erklärung:
append_sid() ist die Funktion, die dafür zuständig ist die Urls in Seo Urls umzuwandeln. Sie versteht drei Teilbereiche:

Code: Alles auswählen

append_sid(URL, HTML_AMPERSAND, TITEL) 
URL = die Url, die wir an die Funktion übergeben
HTML_AMPERSAND = das ist ein Switch, ob das Ampersand in der Url in html, also: & oder in Klarschrift verwendet werden soll: & (das nutzt aber keiner bzw. alle Modschreiber machen wie sie es wollen und ignorieren diesen Switch )
TITEL = Diese Eigenschaft ist neu, die habe ich "erfunden". Sie ermöglicht es, dass man die Titel per Hand an die Funktion übergibt.

Bei dem Code von Simple Subforums machen wir genau das. Hier der Originalcode:
mach mal in der index.php aus dem:

Code: Alles auswählen

append_sid ('viewforum.php?f=' . $value['forum_id'] )

Code: Alles auswählen

append_sid('viewforum.php?f=' . $value['forum_id'], '', $value['forum_name']) 
Denn "$value['forum_name']" enthält in diesem Fall den Forenname. Die richtige Variable zu finden ist in der Regel auch nicht schwer. Meist erkennt man an Hand der Templatezuweisung Dinge wie "FORUM_NAME" oder man erkennt an Hand einer html url den Namen (fett geschrieben):

Code: Alles auswählen

<a href="FORENLINK">FORENNAME</a>
Im Originalcode wird dafür in der Regel "POST_FORUM_URL" verwendet. In dem genannten Beispiel wurde aber "f" verwendet. (was eigentlich falsch ist). Also sucht einfach nach "append_sid" wo in der Klammer das "f" oder das "POST_FORUM_URL" zu finden ist und passt sie nach meinem Beispiel an. Ich hoffe ich habe es halbwegs verständlich erklärt.

Gruß

P.S. Eine kurze FIND & REPLACE Anleitung ist Pflicht ;)
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Ahoi,

ist jetzt ein bisschen off-topic: Um mir zwei Queries zu ersparen, habe ich die Zeile

Code: Alles auswählen

make_jumpbox_ref('viewforum.'.$phpEx, $forum_id, $all_forums);
in der viewforum.php und in der viewtopic.php auskommentiert. Das ist nicht zu empfehlen!

Die Funktion make_jumpbox_ref ist offenbar nicht nur für die Jumpbox zuständig (die bei mir im Forum sowieso nicht angezeigt wird) sondern auch für die Navigation: Wenn Ihr obige Zeile mit einem // auskommentiert, verliert Ihr in der Viewforum und Viewtopic einen Teil der Navigation (nämlich die Möglichkeit, zum PARENT_FORUM zu springen.)

LG, IPB_Flüchtling

EDIT: BACK TO TOPIC:

In der viewtopic.php müssen auch noch Änderungen vorgenommen werden - dort werden nämlich zum Teil auch falsche Forennamen angezeigt. Die Funktion des Boards ist davon aber überhaupt nicht negativ betroffen.
darklordi
Mitglied
Beiträge: 323
Registriert: 13.12.2004 16:26
Wohnort: Langenfeld
Kontaktdaten:

Beitrag von darklordi »

IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Ist schon alles klar, darklordi - fanrpg hat das "Fehlerchen" ja schon korrekt beschrieben. :wink:

Jetzt liegt es an uns, den Fehler auszumerzen. mgutt hat uns hier bereits einige interessante Tipps diesbezüglich gegeben:

http://www.phpbb.de/viewtopic.php?p=728051#728051

Muss mir selbst die Sache aber erst ansehen. Ehrlich gesagt, hat sie für mich keine Priorität, weil Gäste/Sumas auf die Unterforen bei mir ohnehin nicht zugreifen können (auf die meisten Foren übrigens mittlerweile auch nicht mehr :-? ). Und die Funktion des Boards wird dadurch ohnehin nicht beeinträchtigt - ist nur ein kleiner Schönheitsfehler.

LG, IPB_Flüchtling
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Der genannte Fehler von darklordi betrifft was anderes. Es betrifft Links aus dem Metatag. Deren Funktion ich aber nicht kenne.

Weiß jemand was es damit auf sich hat?

EDIT: OK, das ist die Zusammenstellung von Links, die von heutigen Browser kaum verwendet, aber ein Standard im phpBB ist, den ich berücksichtigen muss.

Das Update folgt gleich :D

EDIT2:

UPDATE:
öffne includes/functions.php und suche nach:

Code: Alles auswählen

'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id']),
ersetze gegen:

Code: Alles auswählen

'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_rows[$j]['forum_id'], '', $forum_rows[$j]['forum_name']),
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
darklordi
Mitglied
Beiträge: 323
Registriert: 13.12.2004 16:26
Wohnort: Langenfeld
Kontaktdaten:

Beitrag von darklordi »

Ah, wunderbar =) Danke
hab ich bei sonem sitemap tool endeckt (test da atm alles mögliche, da google mein seite irgendwie nicht indizieren mag ... steht da zwar, aber gefunden werden kann nix bei google -.- )
bazillus
Mitglied
Beiträge: 149
Registriert: 15.12.2005 17:53
Wohnort: NWM
Kontaktdaten:

Beitrag von bazillus »

mgutt hat geschrieben:P.S. Eine kurze FIND & REPLACE Anleitung ist Pflicht ;)
Danke für die kleine Anleitung!

Simple Subforums FIX - zum testen!
In Zusammenarbeitmit IPB_Flüchtling!
index.php
FIND

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $forum_data['forum_id'])
		);
		$item['HAS_SUBFORUMS'] ++;
IN LINE, FIND

Code: Alles auswählen

$forum_data['forum_id']
IN LINE AFTER, ADD

Code: Alles auswählen

, '', $forum_data['forum_name']
Viewforum.php
FIND

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$subforum_id")
REPLACE, WITH

Code: Alles auswählen

'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$subforum_id", '', $subforum_data[$j]['forum_name'] ))
FIND

Code: Alles auswählen

'U_VIEW_PARENT_FORUM'	=> append_sid("viewforum.$phpEx?" . POST_FORUM_URL .'=' . $all_forums[$i]['forum_id']),
REPLACE, WITH

Code: Alles auswählen

'U_VIEW_PARENT_FORUM'	=> append_sid("viewforum.$phpEx?" . POST_FORUM_URL .'=' . $all_forums[$i]['forum_id'], '', $all_forums[$i]['forum_name']),
IPB_Flüchtling hat geschrieben: Und in der viewtopic.php ist ebenfalls eine kleine Änderung durchzuführen:

FIND

Code: Alles auswählen

'U_VIEW_PARENT_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL .'=' . $all_forums[$i]['forum_id']),
REPLACE, WITH

Code: Alles auswählen

'U_VIEW_PARENT_FORUM'	=> append_sid("viewforum.$phpEx?" . POST_FORUM_URL .'=' . $all_forums[$i]['forum_id'], '', $all_forums[$i]['forum_name']),
edit: 14.07.06
Avoid double content addon für simple subforums

Viewforum.php

Code: Alles auswählen

#
#-----[ FIND ]------------------------------------------
#
				default:
		$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
			FROM (( " . FORUMS_TABLE . " f
			LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
			LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
			WHERE f.forum_parent = '{$forum_id}'
			ORDER BY f.cat_id, f.forum_order";
			break;
#
#-----[ REPLACE WITH ]------------------------------------------
#
//-- mod : seo urls v2 ---------------------------------------------------------
//-- delete
/*
		default:
		$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
			FROM (( " . FORUMS_TABLE . " f
			LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
			LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
			WHERE f.forum_parent = '{$forum_id}'
			ORDER BY f.cat_id, f.forum_order";
			break;
*/
//-- add
		default:
			$sql = "SELECT f.*, p.topic_id, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_replies
				FROM ((( " . FORUMS_TABLE . " f
				LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
				LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
				LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
				WHERE f.forum_parent = '{$forum_id}'
				ORDER BY f.cat_id, f.forum_order";
			break;
//-- fin mod : seo urls v2 -----------------------------------------------------
#
#-----[ FIND ]------------------------------------------
#
	$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $subforum_data);
#
#-----[ REPLACE WITH ]------------------------------------------
#
//-- mod : seo urls v2 ---------------------------------------------------------
//-- delete
/*
	$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $subforum_data);
*/
//-- add
	$is_auth_ary = auth(AUTH_VIEW_READ, AUTH_LIST_ALL, $userdata, $subforum_data);
	//
	// Define censored word matches
	//
	$orig_word = array();
	$replacement_word = array();
	obtain_word_list($orig_word, $replacement_word);
//-- fin mod : seo urls v2 -----------------------------------------------------
#
#-----[ FIND ]------------------------------------------
#
								$last_post_time = create_date($board_config['default_dateformat'], $subforum_data[$j]['post_time'], $board_config['board_timezone']);

#
#-----[ BEFORE, ADD ]------------------------------------------
#
//-- mod : seo urls v2 ---------------------------------------------------------
//-- add
								$total_pages_topic = ($subforum_data[$j]['topic_replies'] + 1) / $board_config['posts_per_page'] <= 1 ? '' : '&start=' . floor($subforum_data[$j]['topic_replies'] / $board_config['posts_per_page']) * intval($board_config['posts_per_page']);

								if ( $is_auth_ary[$subforum_data[$j]['forum_id']]['auth_read'] )
								{
									//
									// Censor topic title
									//
									if ( count($orig_word) )
									{
										$topic_title = preg_replace($orig_word, $replacement_word, $subforum_data[$j]['topic_title']);
									}
									else
									{
										$topic_title = $subforum_data[$j]['topic_title'];
									}

									//
									// Shorten the topic title
									//
									if ( strlen($topic_title) > 25 )
									{
										$last_topic_title = substr($topic_title, 0, 22) . '...';
									}
									else
									{
										$last_topic_title = $topic_title;
									}
									$last_post_title = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $subforum_data[$j]['topic_id'] . $total_pages_topic) . '#' . $subforum_data[$j]['forum_last_post_id'] . '">' . $last_topic_title . '</a>';
								}
								else
								{
									$last_post_title = '';
									$topic_title = '';
								}
//-- fin mod : seo urls v2 -----------------------------------------------------
#
#-----[ FIND ]------------------------------------------
#
								$last_post = $last_post_time . '<br />';
#
#-----[ REPLACE WITH ]------------------------------------------
#
//-- mod : seo urls v2 ---------------------------------------------------------
//-- delete
/*
								$last_post = $last_post_time . '<br />';
*/
//-- add
								$last_post = $last_post_title . '<br />' . $last_post_time . '<br />';
//-- fin mod : seo urls v2 -----------------------------------------------------
#
#-----[ FIND ]------------------------------------------
#
								$last_post .= '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $subforum_data[$j]['forum_last_post_id']) . '#' . $subforum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
#
#-----[ REPLACE WITH ]------------------------------------------
#
//-- mod : seo urls v2 ---------------------------------------------------------
//-- delete
/*
								$last_post .= '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $subforum_data[$j]['forum_last_post_id']) . '#' . $subforum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
*/
//-- add
								$last_post .= '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $subforum_data[$j]['topic_id'] . $total_pages_topic) . '#' . $subforum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a>';
//-- fin mod : seo urls v2 -----------------------------------------------------


Ich hoffe das ist alles, vielleicht findet ja jemand von euch noch etwas :)
Zuletzt geändert von bazillus am 11.10.2006 23:16, insgesamt 6-mal geändert.
Malz
Mitglied
Beiträge: 195
Registriert: 30.05.2006 22:26

Beitrag von Malz »

Hallo

Den Subforen werden jetzt die richtigen Foren Namen zugeordnet. Nur die URL vom "Oberforum" sieht nocht so aus:
http://grosshandelskaufleute.cnhost.de/ ... 711fe37c4d
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ich habe so das Gefühl, dass Du meine Posts überließt. Der von Dir genannte Link wird nicht umgeschrieben, weil er eine Session enthält. Der Link der nicht nach Deinen Bedürfnissen umgeschrieben wird lautet so:
http://grosshandelskaufleute.cnhost.de/ ... m,f,1.html

Und die Generierung dieses Links findest Du in der index.php

Und wie Du den Link in den Griff bekommst steht hier:
http://www.phpbb.de/viewtopic.php?p=728051#728051

Mit den Beispielen von bazillus Beitrag sollte das eine Kleinigkeit sein.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“