Ich habe ein bißchen an larsneos Skript herumgebastelt. Sinn der Übung ist dieser:
Wenn ein Topic abgerufen wird (z.B.
http://www.meineseite.de/viewtopic.php?t=9618), werden die Keywords weiterhin aus dessen erstem Post generiert und die Description folgt diesem Schema:
<meta name="description" content="Board-Name :: Kategorie :: Forum :: Topic" />
[Das mit dem Board-Namen ist auch von mir. Ich weiß nicht: Ist das sinnvoll?]
Wenn aber ein Post abgerufen wird (z.B.
http://www.meineseite.de/viewtopic.php?p=5430#3074), werden die Keywords aus dessen Text generiert, nicht aus dem Text des ersten Posts des Topics. Die Description sieht dann so aus:
<meta name="description" content="Board-Name :: Kategorie :: Forum :: Topic :: Post-Titel" />
(Allerdings nur, wenn es einen eigenen Post-Titel gibt und der nicht der gleiche ist, wie der Titel des Topics - sonst weiterhin so wie oben...)
Wenn man nicht in viewtopic ist, werden Standard-Tags ausgegeben. Ebenso werden für eingeloggte User grundsätzlich nur Standard-Tags generiert.
(Vorsicht, bitte, ich habe das zwar bei mir getestet und es läuft, es können aber alle möglichen Fehler drin sein. Das versteht sich aber eigentlich von selbst. Auch könnte man das vermutlich elegangter schreiben, aber dazu langt's bei mir nicht.)
Code: Alles auswählen
// larsneos META-Tag-Generierungs-MOD / (modifiziert von Harki) ANFANG
if ( isset($HTTP_GET_VARS[POST_POST_URL]) )
{
$post_id = intval($HTTP_GET_VARS[POST_POST_URL]);
}
else if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) )
{
$topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);
}
else if ( isset($HTTP_GET_VARS['topic']) )
{
$topic_id = intval($HTTP_GET_VARS['topic']);
}
if ( $post_id && !$userdata['session_logged_in'] )
{
$sql = "SELECT pt.post_subject, c.cat_title, f.forum_name, t.topic_title
FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
WHERE f.forum_id = t.forum_id
AND pt.post_id = p.post_id
AND c.cat_id = f.cat_id
AND t.topic_id = p.topic_id
AND p.post_id = $post_id";
if( ($result = $db->sql_query($sql)) )
{
if ( $meta_row = $db->sql_fetchrow($result) )
{
$meta_description = '<meta name="description" content="' . $board_config['sitename'] . ' :: ' . $meta_row['cat_title'] . ' :: ' . $meta_row['forum_name'] . ' :: ' . $meta_row['topic_title'];
if ($meta_row['post_subject'] && ($meta_row['post_subject'] != $meta_row['topic_title']) )
{
$meta_description .= ' :: ' . $meta_row['post_subject'];
}
$meta_description .= '" />';
}
}
$sql = "SELECT w.word_text
FROM " . POSTS_TABLE . " p, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w
WHERE p.post_id = m.post_id
AND m.word_id = w.word_id
AND p.post_id = $post_id";
if( ($result = $db->sql_query($sql)) )
{
$meta_keywords = '';
while ( $meta_row = $db->sql_fetchrow($result) )
{
$meta_keywords .= ($meta_keywords=='') ? $meta_row['word_text'] : ', ' . $meta_row['word_text'];
}
$meta_keywords = '<meta name="keywords" content="' . $meta_keywords . '" />';
}
}
else if ( $topic_id && !$userdata['session_logged_in'] )
{
$sql = "SELECT c.cat_title, f.forum_name, t.topic_title
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c
WHERE f.forum_id = t.forum_id
AND c.cat_id = f.cat_id
AND t.topic_id = $topic_id";
if( ($result = $db->sql_query($sql)) )
{
if ( $meta_row = $db->sql_fetchrow($result) )
{
$meta_description = '<meta name="description" content="' . $board_config['sitename'] . ' :: ' . $meta_row['cat_title'] . ' :: ' . $meta_row['forum_name'] . ' :: ' . $meta_row['topic_title'] . '" />';
}
}
$sql = "SELECT w.word_text
FROM " . TOPICS_TABLE . " t, " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w
WHERE t.topic_first_post_id = m.post_id
AND m.word_id = w.word_id
AND t.topic_id = $topic_id";
if( ($result = $db->sql_query($sql)) )
{
$meta_keywords = '';
while ( $meta_row = $db->sql_fetchrow($result) )
{
$meta_keywords .= ($meta_keywords=='') ? $meta_row['word_text'] : ', ' . $meta_row['word_text'];
}
$meta_keywords = '<meta name="keywords" content="' . $meta_keywords . '" />';
}
}
else
{
$meta_description = '<meta name="description" content="Standard-Beschreibung" />' . "\n";
$meta_keywords = '<meta name="keywords" content="wort, sinn, mensch, zeit, raum" />' . "\n";
}
// larsneos META-Tag-Generierungs-MOD / (modifiziert von Harki) ENDE