SEO (Search Engine Optimierungen) für phpBB2

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
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.
Benutzeravatar
bisi
Mitglied
Beiträge: 21
Registriert: 09.06.2005 13:36
Wohnort: Ge
Kontaktdaten:

Beitrag 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
easymade...

easymade.de
toddy_itn
Mitglied
Beiträge: 11
Registriert: 14.12.2004 16:37

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

Beitrag 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
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Such einfach nach der Definition für $topic_title

Dort sollte dein Minus auftauchen... easy
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

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

Beitrag 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 ) 
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Stemmi
Mitglied
Beiträge: 258
Registriert: 06.07.2001 02:00
Kontaktdaten:

Beitrag 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*
Demnächst im Kino
"Brüder, in der Ewigkeit wird man sich eurer Taten erinnern! "
Benutzeravatar
Harki
Mitglied
Beiträge: 144
Registriert: 25.04.2005 16:03
Wohnort: Hannover
Kontaktdaten:

Beitrag 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)) )
?
Benutzeravatar
Harki
Mitglied
Beiträge: 144
Registriert: 25.04.2005 16:03
Wohnort: Hannover
Kontaktdaten:

Beitrag 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
Otti1234
Mitglied
Beiträge: 12
Registriert: 24.03.2005 20:09

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

Beitrag 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.
Benutzeravatar
Harki
Mitglied
Beiträge: 144
Registriert: 25.04.2005 16:03
Wohnort: Hannover
Kontaktdaten:

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

Beitrag 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,
Otti1234
Mitglied
Beiträge: 12
Registriert: 24.03.2005 20:09

Danke

Beitrag 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
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“