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.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

In wie weit gab es dahingehend Probleme?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

mgutt hat geschrieben:floor(($replies + 1) / $board_config['posts_per_page']) * $board_config['posts_per_page']
führt dazu, dass der Startwert für den letzten Beitrag einer Seite zu hoch ist.
Dadurch kommts zu einer Fehlermeldung (nicht gefunden)
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Im Testboard komischerweise nicht:
http://www.evop.de/event-cafe-f2.html

Auch habe ich den Code in alle meine anderen Boards kopiert :-?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Kortirion
Mitglied
Beiträge: 485
Registriert: 03.05.2004 05:07
Wohnort: Kassel
Kontaktdaten:

Beitrag von Kortirion »

easygo hat geschrieben:
mgutt hat geschrieben:floor(($replies + 1) / $board_config['posts_per_page']) * $board_config['posts_per_page']
führt dazu, dass der Startwert für den letzten Beitrag einer Seite zu hoch ist.
Dadurch kommts zu einer Fehlermeldung (nicht gefunden)
In der Tat, das kann ich bestätigen. War mir bisher noch gar nicht aufgefallen. :oops:

Nachtrag: Bei mir tritt das auch nicht bei jedem letzten Beitrag auf, allerdings habe ich noch keine Systematik dahinter identifiziert.
...mehr über mich: www.kortirion.de oder www.schwarzer-humbug.de ...oder auch nicht...egal.
Neuestes Projekt: www.das-buchforum.de
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Kleine Korrektur! Bei -1 war der Startwert für Beitrag 1 einer Seite in Topics
mit mind. 2 Seiten um Wert 'posts_per_page' zu niedrig und darum

Code: Alles auswählen

		$total_pages_topic = (($replies + 1) / $board_config['posts_per_page'] <= 1) ? '' : '&start=' . ( floor($replies / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page'])); 
müsste das dann eigentlich passen. easy
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Sorry, weil es gerade nicht in den aktuellen Diskussionsfaden passt. :oops:

Aber ein Add-on für den Recent Topics Mod wäre ebenfalls großartig, damit auch bei der Übersicht der letzten Beiträge die neuen Keyword-URLs zum Tragen kommen.

Ich denke, dass danach einem Umstieg nichts mehr im Wege stehen sollte. Habe bislang zumindest keine weiteren Fehler mehr entdeckt.

Herzlichen Dank, mgutt!

LG, IPB_Flüchtling
Kortirion
Mitglied
Beiträge: 485
Registriert: 03.05.2004 05:07
Wohnort: Kassel
Kontaktdaten:

Beitrag von Kortirion »

Den Fix für die recent.php findest Du hier: http://www.phpbb.de/viewtopic.php?p=679208#679208 ;)
...mehr über mich: www.kortirion.de oder www.schwarzer-humbug.de ...oder auch nicht...egal.
Neuestes Projekt: www.das-buchforum.de
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Hi Kortirion,

vielen Dank, aber leider funktioniert das bei mir nicht. :( Da der Code ja nur kurz ist, poste ich ihn mal hier. Vielleicht auch wichtig: Ich habe für die letzten Beiträge eine Extraseite erstellt, die aber ins phpBB eingebunden ist.

Code: Alles auswählen

<?php

if (!defined('IN_PHPBB'))
{
	die('Hacking attempt');
}

// ############         Edit below         ########################################
$topic_length = '80';	// length of topic title
$topic_limit = '30';	// limit of displayed topics
$special_forums = '1';	// specify forums ('0' = no; '1' = yes)
$forum_ids = '53,54,55,61,62';		// IDs of forums; separate them with a comma

$config_path = '/';	// path to config.php
$root_path = '/forum/';		// link path
// ############         Edit above         ########################################

$path = dirname(__FILE__);
include_once($path.$config_path .'config.php');
// die naechsten Zeilen werden nicht mehr benötigt 2.0.18
// mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Unable to select server.');
// mysql_select_db($dbname) OR die('Unable to select database.');

// ############## output ##############
echo '<table width="100%" cellpadding="10" cellspacing="0" border="0" align="center" class="forumline">
          <tr>
                <th colspan="3">Das sind die '. $topic_limit .' neuesten Beiträge in diesem Forum:</th>
          </tr>';
// ############## output ##############

$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id NOT IN ('. $forum_ids .') AND ';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
	FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
	WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id
	ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
	die('SQL Statement Error: '. mysql_error());
	exit();
}

$line = array();
while( $row = mysql_fetch_array($result) )
{
	$line[] = $row;
}

for( $i = 0; $i < count($line); $i++ )
{

   $word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $line[$i]['topic_title']) : $line[$i]['topic_title']; 
   $topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $word_censor : substr(stripslashes($word_censor), 0, $topic_length);
   
	$forum_id = $line[$i]['forum_id'];
	$forum_url = $root_path .'viewforum.php?f='. $forum_id;
	$topic_id = $line[$i]['topic_id'];
	$topic_url = $root_path .'viewtopic.php?t=' . $topic_id;

	$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';


	// ############## output ##############
	echo '<tr>
                        <td valign="top" nowrap="nowrap" class="row1"><span class="topictitle"><a href="'. $topic_url .'">'. $topic_title .'</a></span></td>
                    </tr>';
	// ############## output ##############
}

echo '</table>';

mysql_close();
?>
Mit dem Short-URL-Mod, den ich momentan verwende, klappt das vorzüglich. Musste dafür nur die Zeile

Code: Alles auswählen

$topic_url = $root_path .'viewtopic.php?t=' . $topic_id;
ersetzen durch

Code: Alles auswählen

$topic_url = $root_path .'ftopic' . $topic_id . '.html';

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

Beitrag von mgutt »

@ IPB

tolles recent was du da hast.. jeder User, der keine Cookies akzeptiert wird doch ausgeloggt?! wer schreibt den sowas :roll:

naja. du musst urls immer an die funktion append_sid() übergeben. (durch die wird überhaupt die session an die url angehangen)

nimm dir als beispiel eine url aus der viewtopic etc. dann siehst du was ich meine.

gruß
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 »

mgutt hat geschrieben:@ IPB

tolles recent was du da hast.. jeder User, der keine Cookies akzeptiert wird doch ausgeloggt?! wer schreibt den sowas :roll:
Hallo mgutt,

das ist eigentlich die recent.php, die auch im Downloadpaket des Mods mitgeliefert wird (wenn mich mein Gedächtnis jetzt nicht trügt).

Ausgeloggt wird da auch niemand - Google hat die Seite ordentlich im Index und akzeptiert ja auch keine Cookies.

Allerdings ist die recent.php, die ich gepostet habe, nur der includierte Teil meiner Seite mit den letzten Beiträgen - der Teil aber wohl, der für die Links zuständig ist. Die aufrufende Datei lautet verkürzt wie folgt:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = '../forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Die neuesten Beiträge';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);


//***** Inhaltsbereich ******/

echo '<h1>Die neuesten Beiträge</h1>
<p>&nbsp;</p>';

include($phpbb_root_path . 'recent.'.$phpEx);

?>
Hast aber Recht - muss mir die Datei(en) bei Gelegenheit einmal vornehmen. Kannte mich damals, als ich mir diesen Mod zugelegt habe, aber noch weniger mit php aus als jetzt. Erstaunlich, aber auch das ist möglich. :oops: Für Google erfüllt es aber seinen Zweck. Und für Menschen ist meine Letzte-Beiträge-Seite ohnehin nicht gemacht.
mgutt hat geschrieben:naja. du musst urls immer an die funktion append_sid() übergeben. (durch die wird überhaupt die session an die url angehangen)

nimm dir als beispiel eine url aus der viewtopic etc. dann siehst du was ich meine.
Danke für den Tipp!!! Meinst Du, es könnte so klappen:

Code: Alles auswählen

$topic_url = append_sid($root_path . 'viewtopic.php?t=' . $topic_id);
Werde es gleich einmal ausprobieren!

LG, IPB_Flüchtling
Antworten

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