Seite 1 von 1

Navigation ober erweitert, aber für alle Sichtbar!

Verfasst: 01.01.2005 19:04
von Starlight
Hallo Leute bin neu hier,
und hab auch direkt nen Problem!
Ich habe meine Navigationsleiste oben in der Datei

overall_header.tpl

im verzeichnis

\templates\Odyssey

um eine Zeile erweitert, aus dem Grund weil ich eine Zeile mit individuellen Links zu selber geschriebenen PHP Seiten schaffen wollte.

Das ganze sieht jetzt so aus:

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
<meta http-equiv="Content-Style-Type" content="text/css">
{META}
{NAV_LINKS}
<title>{SITENAME} :: {PAGE_TITLE}</title>
<!-- link rel="stylesheet" href="templates/Odyssey/{T_HEAD_STYLESHEET}" type="text/css" -->
<style type="text/css">
<!--
...
-->
</style>
<!-- BEGIN switch_enable_pm_popup -->
<script language="Javascript" type="text/javascript">
<!--
	if ( {PRIVATE_MESSAGE_NEW_FLAG} )
	{
		window.open('{U_PRIVATEMSGS_POPUP}', '_phpbbprivmsg', 'HEIGHT=225,resizable=yes,WIDTH=400');;
	}
//-->
</script>
<!-- END switch_enable_pm_popup -->
</head>
<body bgcolor="{T_BODY_BGCOLOR}" text="{T_BODY_TEXT}" link="{T_BODY_LINK}" vlink="{T_BODY_VLINK}" background="templates/Odyssey/images/pc_bg.gif">

<a name="top"></a>

<table width="800" cellspacing="0" cellpadding="0" border="0" align="center"> 
	<tr> 
		<td class="bodyline"><table width="100%" cellspacing="0" cellpadding="0" border="0">
			<tr> 
				<td><a href="{U_PORTAL}">
				<img src="templates/Odyssey/images/newlogo.jpg" border="0" alt="{L_INDEX}" vspace="1" /></a></td></tr><tr>
				<td align="center" width="100%" valign="middle">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr> 
						<td align="center" valign="top" nowrap="nowrap" height="15" background="templates/Odyssey/images/headbg.gif"><span class="mainmenu"> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_PORTAL}" class="mainmenu">Home</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_FAQ}" class="mainmenu">{L_FAQ}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_SEARCH}" class="mainmenu">{L_SEARCH}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_MEMBERLIST}" class="mainmenu">{L_MEMBERLIST}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_GROUP_CP}" class="mainmenu">{L_USERGROUPS}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_REGISTER}" class="mainmenu">{L_REGISTER}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_PROFILE}" class="mainmenu">{L_PROFILE}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_PRIVATEMSGS}" class="mainmenu">{PRIVATE_MESSAGE_INFO}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="{U_LOGIN_LOGOUT}" class="mainmenu">{L_LOGIN_LOGOUT}</a> <img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> </span></td></tr>

<tr> 
						<td align="center" valign="top" nowrap="nowrap" height="15" background="templates/Odyssey/images/headbg.gif"><span class="mainmenu">
<img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="#" onclick=window.open("ts_info-off.php","NeuesFenster","height=700,width=500,scrollbars=yes,toolbar=no,directories=no,status=no,resize=yes,menubar=no") class="mainmenu">TS-Server</a>
<img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <img border=0 src=templates/Odyssey/images/spacer.gif width=740 height=1> 



					
				</table></td>
			</tr>
		</table>
Nicht erschrecken aber zur vervollständigung habe ich den ganzen source reingepackt.

Code: Alles auswählen

                  <td align="center" valign="top" nowrap="nowrap" height="15" background="templates/Odyssey/images/headbg.gif"><span class="mainmenu"> 
<img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <a href="#" onclick=window.open("ts_info-off.php","NeuesFenster","height=700,width=500,scrollbars=yes,toolbar=no,directories=no,status=no,resize=yes,menubar=no") class="mainmenu">TS-Server</a> 
<img src=templates/Odyssey/images/divider.gif width=2 height=15 hspace=5 align=texttop> <img border=0 src=templates/Odyssey/images/spacer.gif width=740 height=1>
Das ist meine erweiterte Zeile die auch wunderbar funktioniert, nur der ganze hacken an der Sache ist,
wie sage ich er soll den link nur anzeigen wenn der User eingeloggt ist?
Gehn muss es ja irgendwie weil er zeigt ja auch nicht "Login" ein wenn man eingeloggt ist sondern "Logout".

Wäre sehr wichtig, wenn ihr mir dort helfen könnt!
PS: PHP, MySQL code ich seit 4 jahren also kein problem wenn ich dort nen php code einbetten muss.

LG Starlight

Verfasst: 01.01.2005 19:28
von Nico Haase
pack vornedran

Code: Alles auswählen

<!-- BEGIN switch_user_logged_in -->
und hintendran

Code: Alles auswählen

<!-- END switch_user_logged_in -->

Verfasst: 01.01.2005 19:35
von Starlight
danke dir geht einwandfrei,

kannst mir noch sagen was ich schreiben muss dass es nur:

1. Mods sehen
2. Admins sehen?

Gibs dazu vllt nen tutourial?

Starlight

Verfasst: 01.01.2005 19:46
von Nico Haase
für nur mods / admins wirds komplizierter: jetzt müsstest du nämlich in die datei page_header.php eingreifen (ich gehe jetzt davon aus, dass du im kopf des forums was hinzufügst, ebenso gehts im fuß einer jeden seite). aber fangen wir von vorne an. leg dir einen weiteren block an, begonnen mit bspw.

Code: Alles auswählen

<!-- BEGIN switch_user_admin -->
. dort kommen alle admin-sachen rein, hintendran wieder

Code: Alles auswählen

<!-- END switch_user_admin -->
. um den block jetzt für admins verfügbar zu machen, öffnest du die page_header.php und suchst die zeilen

Code: Alles auswählen

//
// Login box?
//
if ( !$userdata['session_logged_in'] )
davor baust du jetzt folgendes ein:

Code: Alles auswählen

if ( $userdata['user_level'] == ADMIN )
{
	$template->assign_block_vars('switch_user_admin', array());
}
ebenso kannst du einen block für mods anlegen, da musst du dann halt einen anderen namen für benutzen im <!-- BEGIN / END-part und beim aufruf von assign_block_vars, ebenso muss das userlevel aud MOD geändert werden.

da gibts aber ein problem: die templates liegen in einem offenen verzeichnis, auf das jeder zugreifen kann. entweder schützt du hier den zugriff auf .tpl-dateien per .htaccess mit folgendem code:

Code: Alles auswählen

<FilesMatch "\.(tpl)$">
    Deny from all
</FilesMatch>
(diesen code speicherst du als .htaccess ab und lädst ihn in /templates/$temlatename/ hoch, wobei diese datei in jedes template-verzeichnis muss) oder du setzt die links mit php-code ein

Verfasst: 01.01.2005 20:32
von Starlight
super das geht nu alles,
danke für deine großartige hilfe!

Nur noch ein Problem.
Der Status Moderator (also MOD) hat die "user_rank" id 2
(Moderator steht unter spezialränge).
Nu wenn ich einen User unter seinen Einstellungen auf "Moderator" stelle
dann ist der link aber nicht aktiv obwohl ich

Code: Alles auswählen

if ( $userdata['user_level'] == MOD || $userdata['user_level'] == ADMIN ) 
{ 
   $template->assign_block_vars('switch_user_mod', array()); 
}
gemacht habe. Anzumerken ist dass dieser User mit status Moderator aber auch keine Foren sieht die unter "Foren -> Befugnisse" auf "Moderatoren [Versteckt]" stehen!
Warum geht der status MOD nicht?

Starlight

Verfasst: 01.01.2005 20:34
von Nico Haase
hmm, das liegt am sonderrang. mach ihn zu einem richtigen moderator und das klappt auch

Verfasst: 01.01.2005 20:48
von Starlight
blöde frage ich weis aber wie/wo mache ich das?

Verfasst: 01.01.2005 21:49
von Nico Haase
im acp kannst du die berechtigungen einstellen und dort setzt du dann für die entsprechenden foren den benutzer auf "ist hier moderator". dann sieht er die links aber nur in den foren, in denen er mod ist, glaube ich ;)