Interner Bereich mit Benutzerdaten von 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.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

kann mir da jemand helfen?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Kizu,

ich habe erst vor kurzem ein Beispiel hier gepostet, wie ein Counter eingebunden wird. Daraus kannst du gut erkennen, wie das mit den php, Template und Sprachdateien geht. Die deutsche Anleitung für eingebundene Seiten gibt es hier zu lesen.

Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

Die anleitung hats gebracht. danke. bei dieser hier war nähmlich gar nicht von der lang-Datei die Rede. Somit funktioniert jetzt auch fast alles.
Wenn ich nähmlich mit einem User auf die Seite gehe, der nicht in der Gruppe ist, wird trotzdem der HTML-Code angezeigt der für die Gruppenmitglieder angezeigt werden soll.

hier:
http://seriuskoesehome.se.funpic.de/intern/index.php
Benutzername: test
Passwort: testpass1
(der ist nicht in der Gruppe mit der ID 28)
Hier die Datei:
http://seriuskoesehome.se.funpic.de/intern/index.txt

hier habe ich die Template-Datei:
http://seriuskoesehome.se.funpic.de//in ... n.html.txt
Zuletzt geändert von Kizu am 24.03.2008 00:01, insgesamt 2-mal geändert.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

warum funktioniert das nicht?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Kizu,

ich wollte mich gerade bei dir auf der Seite einloggen, aber irgendwie geht es nicht mit deinen Angaben.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

ups. testpass1 und nicht Textpass1 :oops:
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Kizu,

ich habe die Abfrage für die Berechtigung mit den Code von Dr.Death gemacht und am Ende der funktions.php eingebunden, das funktioniert einwandfrei. Dann müsste deine intern/index.php etwa so aussehen:

Code: Alles auswählen

<?php

define('IN_PHPBB', true); // we tell the page that it's going to be using phpBB, this is important.
$phpbb_root_path = './../'; // See phpbb_root_path documentation
$phpEx = substr(strrchr(__FILE__, '.'), 1); // Set the File extension for page-wide usage.
include($phpbb_root_path . 'common.' . $phpEx); // include the common.php file, this is important, especially for database connects.

//Start session management -- This will begin the session for the user browsing this page.
$user->session_begin();
$auth->acl($user->data);
$user->setup();


if ($user->data['user_id'] == ANONYMOUS)
{
	login_box();
}


// Die zu prüfenden Gruppen IDs müssen mit Komma getrennt eingetragen werden
$check_group = "5";

$is_in_group = get_group_auth($check_group);

// Wenn der User in dieser Gruppe ist, liefert die Funktion den Wert TRUE zurück.
if ($is_in_group == true)
{
    // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
    // In der html Datei kann mit <!-- IF S_IN_GROUP -->  und <!-- ENDIF --> ein Bereich markiert werden.
   $template->assign_var('S_IN_GROUP', true);
}
else
{
	trigger_error($user->lang['NOT_AUTORIZED'] . '<br /><br />' . sprintf($user->lang['BACK_TO'], '<a href="' . append_sid("{$phpbb_root_path}" . 'index.' . $phpEx) . '">', '</a>',  '<a href="' . append_sid("{$phpbb_root_path}" . 'ucp.' . $phpEx . '?mode=login') . '">', '</a>'));
}

/*-----------------------------------------*/

 //Hier kommt dein weiterer Code rein



/*-----------------------------------------*/

// Output the page
page_header($user->lang['PAGE_INTERN']); // Page title, this language variable should be defined in the language file you setup at the top of this page.


// Set the filename of the template you want to use for this file.
$template->set_filenames(array(
    'header' => 'overall_header.html',
    'body' => 'intern.html',
));

// Finish the script, display the page
page_footer();
?>
In deine Sprachdatei oder in die language/de/common.php
kommt dan der Text für die Meldungen rein.

Code: Alles auswählen

	'NOT_AUTORIZED'        => 'Du bist nicht berechtigt, den internen Bereich zu betreten. Dieser Bereich kann nur von registrierten und eingeloggten Mitgliedern mit entsprechender Berechtigung betreten werden.',
	'BACK_TO'        => 'Zurück zum %1sForum%1s, oder gehe zur %2sLogin Seite%2s, um dich einloggen zu können.',
	'PAGE_INTERN'           	=> 'Interne Seite',

Damit müsstest du eigentlich klar kommen.


Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Kizu »

funktioniert jetzt. danke. nur kommt bei der Fehlermeldung folgendes:
Zur?ck zum Forum, oder gehe zur Login Seite, um dich einloggen zu k?nnen.
warum kommen denn da Fragezeichen??? (hab die Seite mit Firefox geöffnet)
den Switsh habe ich auch in der overall Header eingesetzt:

Code: Alles auswählen

<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
			<ul class="linklist leftside">
				<li class="icon-ucp">
					<a href="{U_PROFILE}" title="{L_PROFILE}" accesskey="u">{L_PROFILE}</a>
						<!-- IF S_DISPLAY_PM --> (<a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a>)<!-- ENDIF --> &bull;
					<a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a>
					<!-- IF U_RESTORE_PERMISSIONS --> &bull;
					<a href="{U_RESTORE_PERMISSIONS}">{L_RESTORE_PERMISSIONS}</a>
					<!-- ENDIF -->
                                         <!-- IF S_IN_GROUP -->
                                         &bull;<a href="http://seriuskoesehome.se.funpic.de/intern/index.php" title="">Interner Bereich</a>
                                         <!-- ELSE -->
                                         &bull;
                                         <!-- ENDIF -->
				</li>
			</ul>
			<!-- ENDIF -->
allerdings wird im header das hier angezeigt:
Persönlicher Bereich (1 neue Nachricht) • Eigene Beiträge •
warum wird der switsh als falsch erkannt?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Zum Fragezeichen: Dein Editor muss das Format UTF8 ohne BOM wählen damit diese Fragezeichen nicht angezeigt werden. Also Datei noch mal bearbeiten und in UTF8 abspeichern.

Damit du das in jeder beliebigen Datei machen kannst, musst du das in der functions.php in der page_header Funktion einbauen (also die Gruppenprüfung und das setzen des Template Switches).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo Kizu,

wenn du die Abfrage in die funktions.php einbaust, dann solltest du dort den Teil mit der Fehlermeldung weglassen und nur das hier einbauen, sonst kommt diese Meldung bei jeder Seite auch im Forum. In deiner intern.php würde ich die Fehlermeldung drinnen lassen, falls jemand die Seite vom Browser aus direkt aufruft.

Code: Alles auswählen

// Die zu prüfenden Gruppen IDs müssen mit Komma getrennt eingetragen werden
$check_group = "5";

$is_in_group = get_group_auth($check_group);

// Wenn der User in dieser Gruppe ist, liefert die Funktion den Wert TRUE zurück.
if ($is_in_group == true)
{
    // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
    // In der html Datei kann mit <!-- IF S_IN_GROUP -->  und <!-- ENDIF --> ein Bereich markiert werden.
   $template->assign_var('S_IN_GROUP', true);
}
Die Abfrage solltest du vor // The following assigns all _common_ variables that may be used at any point in a template. einbauen.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Antworten

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