Seite 3 von 11

Verfasst: 06.07.2005 15:59
von bisi
Problem dabei ist jedoch, wenn das erste Postuing einfach zu lang ist!
Ich habe es getestet und bei zu langem Beitrag macht er den

Code: Alles auswählen

<meta name="keywords" content=
leer

Re: SEO (Search Engine Optimierungen) für phpBB2

Verfasst: 10.07.2005 21:22
von toddy_itn
larsneo hat geschrieben: in viewtopic.php:
anstelle von

Code: Alles auswählen

$page_title = $lang['View_topic'] .' - ' . $topic_title;
nur

Code: Alles auswählen

$page_title = $topic_title;
benutzen - 'Thema anzeigen -' ist überflüssig.
Sorry, muss das Thema noch mal aufrollen.

Wenn ich die Änderung mache habe ich immer ein "- " vor dem eigentlichen Topic Titel.
Ich habe schon überall gesucht aber nix gefunden.
Wie bekomme ich das Minus vor dem Titel weg.
Hier im Forum ist ja auch keins.

Vielen Dank

Verfasst: 11.07.2005 15:54
von easygo
Such einfach nach der Definition für $topic_title

Dort sollte dein Minus auftauchen... easy

Re: SEO (Search Engine Optimierungen) für phpBB2

Verfasst: 08.08.2005 00:20
von mgutt
larsneo hat geschrieben:

Code: Alles auswählen

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 ( $topic_id ) 
    { 
        $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="' . $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 . '">'; 
        }    
    } 
folgender Hinweis:
Notice: Undefined variable: topic_id in /www/htdocs/marcg/includes/page_header.php on line 62
betrifft:

Code: Alles auswählen

  if ( $topic_id ) 

Verfasst: 24.08.2005 12:59
von Stemmi
Hab das jetzt gemacht was im ersten Topic stand.

Wo sehe ich denn jetzt ob das richtig eingebaut wurde von mir?

www.cineforen.de da habe ich es gemacht.

Edit: Ich Esel. Hat sich erledigt *schäm*

Verfasst: 24.08.2005 14:17
von Harki
Ich habe das gerade bei mir eingebaut - Dank an larsneo. (Wieder einmal.)

Mir scheint es aber sinnvoll, das MOD nur bei nichteingeloggten Usern loslegen zu lassen, oder? Es betrifft ja nur die SuMas und für eingeloggte User könnte man sich die MySQL-Abfrage doch auch sparen.

Also so:
else if ( isset($HTTP_GET_VARS['topic']) )
{
$topic_id = intval($HTTP_GET_VARS['topic']);
}

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)) )
?

Verfasst: 25.08.2005 18:55
von Harki
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

Re: SEO (Search Engine Optimierungen) für phpBB2

Verfasst: 11.09.2005 13:12
von Otti1234
Bin da sehr Laienhaft, aber was bedeutet das genau? Hab bis hierher sonst alles wie beschrieben umgesetzt?

die entsprechenden variablen-zuweisungen

Code: Alles auswählen

    'META_DESCRIPTION' => $meta_description, 
    'META_KEYWORDS' => $meta_keywords, 
setzen.

Re: SEO (Search Engine Optimierungen) für phpBB2

Verfasst: 11.09.2005 13:20
von Harki
Otti1234 hat geschrieben:Bin da sehr Laienhaft, aber was bedeutet das genau? Hab bis hierher sonst alles wie beschrieben umgesetzt?

die entsprechenden variablen-zuweisungen

Code: Alles auswählen

    'META_DESCRIPTION' => $meta_description, 
    'META_KEYWORDS' => $meta_keywords, 
setzen.
Du mußt in includes/page_header.php nach dem Block mit den Variablenzuweisungen suchen. Also danach:

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point
// in a template.
//
$template->assign_vars(array(
	'SITENAME' => $board_config['sitename'],
	'SITE_DESCRIPTION' => $board_config['site_desc'],
	'PAGE_TITLE' => $page_title,
Da bastelst Du dann die beiden neuen Zeilen rein. Also so:

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point
// in a template.
//
$template->assign_vars(array(
	'META_DESCRIPTION' => $meta_description, 
	'META_KEYWORDS' => $meta_keywords,
	'SITENAME' => $board_config['sitename'],
	'SITE_DESCRIPTION' => $board_config['site_desc'],
	'PAGE_TITLE' => $page_title,

Danke

Verfasst: 11.09.2005 13:28
von Otti1234
Hi Harki,

danke. hab das jetzt mal gemacht. Hoffentlich ist das alles korrekt von mir gemaht. Hab noch eine blöde Frage: Wo kann ich die Meta-Tags entsprechend reinschreiben, also die Key-words, etc.?

Gibt es eine Kontrollmöglichkeit?

Gruß

Otti