- Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#
includes/sessions.php
#
#----------[ FIND ]-------------------------------------
#
function append_sid($url, $non_html_amp = false)
{
global $SID;
#
#----------[ REPLACE WITH ]-----------------------------
#
function append_sid($url, $non_html_amp = false)
{
global $SID,$HTTP_SERVER_VARS,$db,$board_config,$phpEx;
if( strstr($url,'viewtopic.php') && !strstr($url,'viewtopic.php?replace') )
{
if( preg_match('#viewtopic.php\?'.POST_POST_URL.'=#', $url) )
{
$prg=str_replace("viewtopic.php?","",$url);
parse_str($prg, $prg_output);
$sql = "SELECT topic_id
FROM " . POSTS_TABLE . "
WHERE post_id = '".$prg_output[POST_POST_URL]."'";
if ($result = $db->sql_query($sql))
{
$row = $db->sql_fetchrow($result);
$prg_output[POST_TOPIC_URL] = $row['topic_id'];
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE post_id < '".$prg_output[POST_POST_URL]."'
AND topic_id = '".$prg_output[POST_TOPIC_URL]."'";
if ($result = $db->sql_query($sql))
{
$c = $db->sql_numrows($result)+1;
if ($board_config['posts_per_page'] < $c)
{
$prg_output['start'] = floor(($c-1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];
}
}
if (isset($prg_output['start']))
{
$url = 'viewtopic.'.$phpEx.'?'.POST_TOPIC_URL.'='.$prg_output[POST_TOPIC_URL].'&start='.$prg_output['start'];
}
else
{
$url = 'viewtopic.'.$phpEx.'?'.POST_TOPIC_URL.'='.$prg_output[POST_TOPIC_URL].'#';
unset($prg_output[POST_POST_URL]);
}
}
# $url=$board_config['script_path']."$url";
}
}
#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
Und zwar werden hiermit die Direktlinks, zu Beiträgen, so umgeschrieben das der jeweilige Beitrag nicht mehr anhand seiner id aufgerufen sondern mittels Textanker angesprungen wird. Da die Textanker, in URLs, von Suchmaschinen nicht beachtet werden; Sehen diese nur die URL zum Topic, die sich ja nun nicht mehr ändert.
(Basiert auf diesen Codeschnipseln.)
Zugefügt nach 17 Tag(en) 21 Stunde(n) 23 Minute(n):
Ein Nachteil dieses Snippets sollte vielleicht noch erwähnt werden:
Da absolut jeder, mittels append_sid(), erstellte Link, in form von viewtopic.php?p=xxx, umgeschrieben wird; Erzeugt auch jeder dieser Links mindestens eine zusätzliche Querie. Das bedeutet, die Datenbankbelastung kann unter umständen nicht unerheblich sein und, je nach Server, das Board etwas verlangsamen.
Das betrift besonders Boards mit vielen Foren (index), einer hohen anzahl von Themen pro Seite (viewforum) und einer hohen Anzahl von Beiträgen pro Seite (viewtopic); Sowie umfangreichem Recent-Topics Listen!