Vorlage für in phpBB eingebundene Seiten in phpBB3

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
jensven
Mitglied
Beiträge: 8
Registriert: 18.02.2008 20:42
Wohnort: Kippenheim

Beitrag von jensven »

hlstatsfun.php datei liegt im root verzeichnis des forums

Code: Alles auswählen

<?php
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
<?php
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();
$user->setup();
$auth->acl($user->data);


// Header und Titel der Seite
page_header('FunArena HL-Stats');

// Angabe eurer Content-Seite
$template->set_filenames(array(
   'body' => 'hlstats.html')
);

// Footer
page_footer();
?>
hlstats.html datie liegt im template verzeichnis des styles

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<iframe frameborder="0" align="center" scrolling="no" marginheight="0" marginwidth="0" vspace="0" hspace="0" src="http://www.fun-elite.org/web/hlstats.php" width="100%" height="1200"></iframe>

<!-- INCLUDE overall_footer.html -->
Bitti
Mitglied
Beiträge: 25
Registriert: 01.10.2006 21:27
Wohnort: Altenkunstadt

Beitrag von Bitti »

Die HTML Datei kannst du so lassen.

Für hlstatsfun.php nimmst du diesen Code.

Code: Alles auswählen

<?php
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();
$user->setup();
$auth->acl($user->data);


// Header und Titel der Seite
page_header('FunArena HL-Stats');

// Angabe eurer Content-Seite
$template->set_filenames(array(
   'body' => 'hlstats.html')
);

// Footer
page_footer();
?>
Gruß
Bitti
Benutzeravatar
SvenWie
Mitglied
Beiträge: 8
Registriert: 26.01.2008 23:01
Wohnort: Hamburg
Kontaktdaten:

Beitrag von SvenWie »

Hallo
Ich möchte eine Seite einbinden, die nur Benutzer aufrufen können, die angemeldet sind, das funktioniert auch schon.
Probleme bereitet mir aber noch die Sitzungsdaten mit in der URL zu übernehmen.

Hier ist die von mir verwendete PHP-Datei im

Code: Alles auswählen

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$user->setup();
$auth->acl($user->data);


page_header('Versuchsseite');

$template->set_filenames(array(
	'body' => 'teampage.html')
);



// make_jumpbox(append_sid("{$phpbb_root_path}teampage.$phpEx"));

page_footer();

?>
Und die dazu gehörige HTML im Template Verzeichnis

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->


<a> TEST</a>


<!-- INCLUDE overall_footer.html -->
Der Aufruf im Overall_Header lautet:

Code: Alles auswählen

			<ul class="linklist rightside">
				<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>
				<!-- Impressum Mod -->
				<li class="icon-faq"><a href="{U_IMPRESSUM}" title="{L_IMPRESSUM}" accesskey="l">{L_IMPRESSUM}</a></li>				<!-- IF not S_IS_BOT -->
					<!-- IF S_DISPLAY_MEMBERLIST --><li class="icon-members"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
					<!-- IF not S_USER_LOGGED_IN --><li class="icon-register"><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->
					<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="l">{L_LOGIN_LOGOUT}</a></li>
					<!-- IF S_USER_LOGGED_IN --><li class="icon-logout"><a href="teampage.php">Zur Seite</a></li><!-- ENDIF -->
				<!-- ENDIF -->
Wo liegt hier der Fehler??
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2454
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

Du musst die Teamseite in der Headerdatei auch per append_sid() in die Header-Template mitübergeben - das append_sid für die session_id hinzu und sorgt damit, dass du eingeloggt bleibst.

am besten in der functions.php (includes-Ordner) ziemlich am Ende hinzufügen, dann ist die Teamseite überall aufrufbar - die Stelle ist leicht zu finden, da dort viele "append_sid"s sind.
Benutzeravatar
SvenWie
Mitglied
Beiträge: 8
Registriert: 26.01.2008 23:01
Wohnort: Hamburg
Kontaktdaten:

Beitrag von SvenWie »

Hallo Gumfuzi

DANKE, jetzt funktioniert es!
Gruß Sven

Mein Forum: Plauschecke.de
Benutzeravatar
Wuppi
Mitglied
Beiträge: 732
Registriert: 14.05.2002 23:04
Wohnort: Köln
Kontaktdaten:

Beitrag von Wuppi »

Hi

hab nen Rechteproblem:

if ($auth->acl_get('a_') || $auth->acl_getf_global('m_'))


Theorie: nur Admins und Mods dürfen die Seite betreten.
Praxis: Admin, Moderator und ANGEMELDETE User sehen die Seite!

Jetzt stell ich um:
if ($auth->acl_getf_global('m_'))

Theorie/Praxis: Nur Admins und Moderatoren sehen die Seite.

Die Seite die ich einfüge ist nur für Moderatoren und natürlich Admins gedacht. Warum klappt die in Eröffnungsthread erwähnte Methode hier nicht?
EDIT: scheint doch zu klappen - geht nur nicht wenn man als Admin nicht-Teammitglieder "übernimmt" und mit deren Rechten rumläuft. Für das System ist man weiterhin Admin :(


Nächste Frage: Zugriff auf die Seite sollten idealerweise nur Mods eines bestimmten Forums haben, dazu Mods einer bestimmten Usergruppe und natürlich Admins. Kann ich das irgendwie "unkompliziert" erledigen oder isses am einfachsten ich bleibe bei alle Admins/Mods? (ist nicht sooo tragisch - bau ich halt noch ne Log-Funktion ein damit ich weiß wer was kaputt gemacht hat *G*)

Gruß
godmod23
Mitglied
Beiträge: 174
Registriert: 30.04.2008 22:20

Re: Vorlage für in phpBB eingebundene Seiten in phpBB3

Beitrag von godmod23 »

Hallo,

würde eigentlich

Code: Alles auswählen

case 'eure_seite':
         $location = 'Betrachtet "Eure Seite"';
         $location_url = append_sid("{$phpbb_root_path}eure_seite.$phpEx");
      break;
auch für Seiten funktionieren, die nicht in meinem Forumverzeichnis liegen??
Meine Datei heist "news.php" und liegt im Ordner news, während das Forum im Ordner "forum" liegt.
In meiner Sessions-Tabelle steht unter session_page "../news/news.php", deswegen hab ich für den Case '../news/news' genommen, aber damit funktioniert es anscheinend nicht bei mir...
Gibt es da eine andere Lösung?

Danke schon mal für eure Antworten,

viele Grüße, Andi
Greetings, godmod
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Vorlage für in phpBB eingebundene Seiten in phpBB3

Beitrag von Miriam »

Was kommt denn dabei raus, wenn Du die RegEx auf den String loslässt?

Code: Alles auswählen

<?php
preg_match('#^([a-z/]+)#i', '../news/news.php', $on_page);
var_dump($on_page);
?>
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
godmod23
Mitglied
Beiträge: 174
Registriert: 30.04.2008 22:20

Re: Vorlage für in phpBB eingebundene Seiten in phpBB3

Beitrag von godmod23 »

Hallo Miriam,

hier meine Ergebnisse:

bei '../news/news.php' : array(0) { }
bei 'news/news.php' : array(2) { [0]=> string(13) "news/news" [1]=> string(13) "news/news" }
bei 'news.php' : array(2) { [0]=> string(8) "news" [1]=> string(8) "news" }

Ich hab jetzt mal als case 'news/news' genommen, doch leider hat auch das vermutlich keinen Erfolg. Ich kann das ja nur testen, in dem ich im Firefox eingeloggt bin und auf der Wer-ist-online-Seite bin, und mit dem IE auf meiner news.php bin...

VG, GodMod
Greetings, godmod
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Vorlage für in phpBB eingebundene Seiten in phpBB3

Beitrag von Miriam »

Es sollte nur zum Testen sein... Diese RegEx kann es nicht leisten die news aus ../news/news.php heraus zu trennen.
Musst Du wohl etwas an der RegEx ändern oder vorher den String so zurecht stutzen, dass es passt.
z.B. so:
finde

Code: Alles auswählen

	preg_match('#^([a-z/]+)#i', $row['session_page'], $on_page);
davor füge ein:

Code: Alles auswählen

	$input = $row['session_page'];
	$input = explode('/', $input);
	$row['session_page'] = $input[count($input)-1];
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“