Seite 1 von 2

Welcher Code ist für "viewonline.php" wichtig?

Verfasst: 18.08.2007 11:32
von Maxe
Hallo zusammen,

kurz zur Erklärung was ich mache.
Ich habe ein Wiki mit in das Forum gebaut udn möchte dass in der viewonline.php auch angezeigt wird "... Betrachtet das Wiki".

Beim Impressum habe ich es auch geschaft, aber will jeden zusätzlichen Code im Wiki vermeiden deswegen frage ich welche dafür wichtig ist.

Hier meine Impressum.php

Code: Alles auswählen

<?php

define('IN_PHPBB', true); 

$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_IMPRESSUM); 
init_userprefs($userdata); 

// Load the appropriate impressum language file START
if( isset($HTTP_GET_VARS['mode']) )
{
	switch( $HTTP_GET_VARS['mode'] )
	{
		      default:
			$lang_file = 'lang_impressum';
			$l_title = $lang['impressum'];
			break;
	}
}
else
{
	$lang_file = 'lang_impressum';
	$l_title = $lang['impressum'];
}
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/' . $lang_file . '.' . $phpEx);
// Load the appropriate impressum language file ENDE

$page_title = $lang['impressum'];

include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

$template->set_filenames(array( 
'body' => 'impressum_body.tpl') 
); 

$template->pparse('body'); 

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 
?>
Viele Grüße Maxe

PS: Ich könnte es auch einfach ausprobieren, aber mir wäre es lieber den Code zu verstehen.

Verfasst: 18.08.2007 11:43
von Seimon
als erstes mal:

Code: Alles auswählen

# 
#-----[ ÖFFNEN ]---------------------------
#
# includes/constants.php
# 
#-----[ FINDE ]-------------------------------------------------
#
define('PAGE_GROUPCP', -11);

# 
#-----[ DARUNTER EINFÜGEN ]---------------------------------------
#
# darauf achten, das Ziffer nicht schon belegt ist

define('PAGE_IMPRESSUM', -44);
statt -44 geht auch jede andere noch nicht verwendete negative zahl


dann:

Code: Alles auswählen

# 
#-----[ ÖFFNEN ]---------------------------
#
# viewonline.php
# 
#-----[ FINDE ]-------------------------------------------------
#
				case PAGE_FAQ:
					$location = $lang['Viewing_FAQ'];
					$location_url = "faq.$phpEx";
					break;
# 
#-----[ DARUNTER EINFÜGEN ]---------------------------------------
#
				case PAGE_IMPRESSUM:
					$location = $lang['Impressum'];
					$location_url = "impressum.$phpEx";
					break;


# 
#-----[ ÖFFNEN ]---------------------------
#
# admin/index.php
# 
#-----[ FINDE (2x) ]-------------------------------------------------
#
						case PAGE_FAQ:
							$location = $lang['Viewing_FAQ'];
							$location_url = "index.$phpEx?pane=right";
							break;
# 
#-----[ jeweils DARUNTER EINFÜGEN ]---------------------------------------
#
                       				case PAGE_IMPRESSUM:
	                        			$location = $lang['Impressum'];
                       					$location_url = "../impressum.$phpEx";
			                        	break;


die variable: $lang['Impressum'] kannst du in den lang-files setzen (musst sie dann im page_header laden), oder einfach stattdessen den namen in den code schreiben.
Also statt $lang['Impressum'], 'Betrachtet das Wiki'


ich hoffe ich hab mich nicht irgendwo vertan - keine gewähr - backup recommended :D

Verfasst: 18.08.2007 11:57
von Maxe
Wunderbar :)
Das hat mir schon ein ganzes Stück geholfen, aber jetzt wüsste ich noch gern, welche Zeilen ich von dem Code (ersten Post) in mein Wiki einfügen muss damit das klappt.

Da ist ja viel Müll dabei wie Pagetitel usw...

Könntest mir da noch schnell helfen.

Bin übrigens begeistert über deinen super Post und das am Samstag"morgen" ;)

Gruß Maxe

Verfasst: 18.08.2007 12:09
von Seimon
Diese Zeile:

Code: Alles auswählen

$userdata = session_pagestart($user_ip, PAGE_IMPRESSUM); 
Ich hab überlesen, dass es beim Impressum ja schon klappt und es ums wiki geht - also überall statt PAGE_IMPRESSUM, PAGE_WIKI

Ich vermute damit die Zeile funktioniert benögtigst du ohnehin:

Code: Alles auswählen

define('IN_PHPBB', true); 

$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 
am besten du gehst von:
http://www.phpbb.de/doku/kb/phpbb_seite
aus

Maxe hat geschrieben:Bin übrigens begeistert über deinen super Post und das am Samstag"morgen" ;)
danke :oops:

Verfasst: 18.08.2007 12:40
von Maxe
@Seimon:

Ah, die Hilfeseite kannte ich noch nicht. Danke!

Jetzt hab ich den Code eingebaut udn bekomme leider folgende Fehlermeldung:

Code: Alles auswählen

Fatal error: Call to a member function sql_query() on a non-object in /var/www/webX/html/includes/sessions.php on line 134
Der Fehler kommt erst wenn ich die Zeile:

Code: Alles auswählen

$userdata = session_pagestart($user_ip, PAGE_WIKI);
eingefügt hab.

Alleine mit:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
läuft die Seite ohne Fehler.

Was will mit dir Meldung sagen? Ein Problem mit gleichen Variablennamen?!

Gruß Maxe

Verfasst: 18.08.2007 12:46
von Seimon
hast du PAGE_WIKI in der constants.php schon definiert?

Verfasst: 18.08.2007 13:05
von Maxe
Ja, daran liegt es nicht. hab es sicherheitshalber mit einer Konstanten versucht die schon funktioniert.

Mist :( Das lief bis jetzt so gut.

Noch ne Idee?

Verfasst: 18.08.2007 13:20
von Seimon
komisch...

wenn du nur die seite nimmst:
http://www.phpbb.de/doku/kb/phpbb_seite (ohne /***** Inhaltsbereich ******/ )
kommt dann auch ein fehler?

Verfasst: 18.08.2007 13:27
von Maxe
Genau dass hatte ich gemacht *g* Und Siehe da, kein fehler.

Jetzt hab ich den Code einfach im Wiki wo anders platziert und was ist - GENAU :) Es geht - Jippie!

Jetzt gibt es nurnoch ein Mini problem, der Link im viewonline.php ist nicht so wie ich ihn eingegeben hab:

Code: Alles auswählen

case PAGE_WIKI:
	$location = $lang['Viewing_Wiki'];
	$location_url = "./wiki/index.php";
	break;
Durch meine htaccess wird er immer umgeschrieben auf *.html

Code: Alles auswählen

RewriteEngine On

# SEO URL [mgutt]
RewriteRule !\.html$ - [L]
RewriteRule ^[a-z0-9-]+-([pt])([0-9]+)\.html$ /viewtopic.php?$1=$2 [L]
RewriteRule ^[a-z0-9-]+-f([0-9]+)\.html$ /viewforum.php?f=$1 [L]
RewriteRule ^[a-z0-9-]+-u([0-9]+)\.html$ /profile.php?mode=viewprofile&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+),([^/,]+),([^/,]*)([^/]*\.html)$ $1$4?$2=$3 [QSA,N]
RewriteRule ^[a-z0-9-]+-([pt])([0-9]+),([^/,]+),([^/,]*)([^/]*\.html)$ viewtopic$5?$1=$2&$3=$4 [QSA,N]
RewriteRule ^[a-z0-9-]+-f([0-9]+),([^/,]+),([^/,]*)([^/]*\.html)$ viewforum$4?f=$1&$2=$3 [QSA,N]
RewriteRule ^([a-zA-Z0-9_]+)\.html$ /$1.php [L]
Wie kann ich diese Datei über irgendeine Regel rausnehmen?

Aber der Rest klappt. Danke danke für deine Hilfe.

Gruß Maxe

Verfasst: 18.08.2007 13:32
von Seimon
in der includes/sessions.php

suchst du:

Code: Alles auswählen

	$seo_forbidden = array(
		'-',
		'login',
		'mode=confirm',
		'mark=topics',
		'view=',
	);
und ersetzt mit

Code: Alles auswählen

	$seo_forbidden = array(
		'-',
		'login',
		'wiki',
		'mode=confirm',
		'mark=topics',
		'view=',
	);
oder so