Seite 2 von 4

Verfasst: 20.03.2008 19:52
von Kizu
kann mir da jemand helfen?

Verfasst: 20.03.2008 20:43
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:

Verfasst: 20.03.2008 23:45
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

Verfasst: 22.03.2008 22:14
von Kizu
warum funktioniert das nicht?

Verfasst: 23.03.2008 20:39
von Helmut
Hallo Kizu,

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

Gruß Helmut

Verfasst: 24.03.2008 00:02
von Kizu
ups. testpass1 und nicht Textpass1 :oops:

Verfasst: 24.03.2008 01:04
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:

Verfasst: 24.03.2008 14:21
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?

Verfasst: 24.03.2008 16:11
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).

Verfasst: 24.03.2008 17:06
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