req: links nur für bestimmte usergroups sichtbar

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

war im timeout, war mein posting
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

kann mir jemand helfen, oder ist meine anfrage vielleicht doch zu aufwendig?
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

öffne die includes/functions.php und füge vor ?> folgende funktion ein:

Code: Alles auswählen

function group_member($userdata, $group_id)
{
	global $db;
        if ( !$userdata['session_logged_in'] )
        {
        	return false;
        }
        $sql = "SELECT count(*) FROM " . USER_GROUP_TABLE . " WHERE user_id = '" . $userdata['user_id'] . "' AND group_id = '$group_id'";
        if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get bwc auth', '', __LINE__, __FILE__, $sql);
	}

	$row = $db->sql_fetchrow($result);
	if ( $row['num'] > 0 )
        {
        	return true;
        }
        return false;
}
dann brauch ich noch dem html-code aus deiner overall-header.tpl in dem die links angezeigt werden.... markiere bitte die links frabig die nur für die mitglieder der einzelnen gruppen angezeigt werden sollen...

ah
Zuletzt geändert von saerdnaer am 22.12.2002 19:56, insgesamt 1-mal geändert.
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

hi saerdnaer!

danke für deine antwort.
es ist der BMan1Blue Style
hier auszug aus der overall_header.tpl

Code: Alles auswählen

                <td class="mainmenu" align="center" width="11.1%" style="cursor:hand" onMouseover="this.style.backgroundColor='#A9A9A9'" onMouseout="this.style.backgroundColor=''" onClick="window.location.href='{U_REGISTER}'"><a href="{U_REGISTER}" class="mainmenu">Register</a></td>
              <!-- END switch_user_logged_out -->
              <!-- BEGIN switch_user_logged_in -->
                <td class="mainmenu" align="center" width="11.1%"><span class="mainmenu">Register</span></td>
              <!-- END switch_user_logged_in -->
              <td class="mainmenu" align="center" width="11.1%" style="cursor:hand" onMouseover="this.style.backgroundColor='#A9A9A9'" onMouseout="this.style.backgroundColor=''" onClick="window.location.href='{U_LOGIN_LOGOUT}'"><a href="{U_LOGIN_LOGOUT}" class="mainmenu">
                <!-- BEGIN switch_user_logged_out -->
	           Login</a></td>
	        <!-- END switch_user_logged_out -->
	        <!-- BEGIN switch_user_logged_in -->
	           Logout</a></td>
                <!-- END switch_user_logged_in -->
            </tr>
          </table></td>
        </tr>
    </table>
<br />

<table width="100%" align="center">
<tr>
<td width="50%" align="center">HIER STEHT DER CODE FÜR DIE XGROUP</td>
<td width="50%" align="right">
<!-- BEGIN gelber_chat_switch -->
<a href="http://hexenzauber.mainchat.de/" target="_blank">
<IMG SRC="http://hexenzauber.mainchat.de/userinfo.php3?null=j&hrot=0&hgruen=0&hblau=0&vrot=255&vgruen=185 &vblau=3&size=14&text=user+online+im+gelben+chat" border=0></a>
<!-- END gelber_chat_switch -->
</td>
</tr>
</table> 
der code/link soll stehen in der 11. zeile von unten und soll ähnlich aussehen, wie der darunter liegende code.
sorry, mit dem highlighten hats nicht funktioniert.

der darunterliegende code ist eine umbenannte abfrage "user_logged_in".
dieser link soll von den registrierten sichtbar sein (und ist es auch).
dieser link sieht im moment so aus
http://www.hexenzauber.info/boardpic5.jpg

danke dir
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

okay mach für den neuen code ne zusätzliche abfrage in die overall_header.tpl

dann öffne die page header und suchst nach folgendem:

Code: Alles auswählen

header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
davor einfügen

Code: Alles auswählen

if ( $userdata['session_logged_in'] && group_member($userdata, 1234)
{
	$template->assign_block_vars('switch_name_blblablalbla', array());
}
das switch_name_blblablalbla musst du durch den namen der abfrage und das 1234 durch die gruppen_id der entsprechenden gruppe ersetzen...

ah
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

sag mir bitte noch, die gruppen ID, ist das der gruppenname oder ist das der numerischer wert aus der datenbank?

und noch eine frage:
falls ich statt des links eine PHP datei einbinden will (ev. ein I-Frame erstellen), siehst du ein problem?
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

hi saerdnaer!

nochmals danke für den code.
habe es eingebaut, eine klammer ergänzt (parse error), doch der TESTLINK wird nicht angezeigt.
die eingetragene group_id 20 ist aus der datenbank und die gruppenmitgliedschaft in der gruppe eingetragen.

hier sind die codes, vielleicht ist irgendwo ein kleiner fisch.
sehe es dir bitte mal kurz an.

danke dir

functions.php

Code: Alles auswählen

//
//BEGINN Funktion gruppenlink
//
function group_member($userdata, $group_id) 
{ 
   global $db; 
        if ( !$userdata['session_logged_in'] ) 
        { 
           return false; 
        } 
        $sql = "SELECT count(*) FROM " . USER_GROUP_TABLE . " WHERE user_id = '" . $userdata['user_id'] . "' AND group_id = '$group_id'"; 
        if( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not get bwc auth', '', __LINE__, __FILE__, $sql); 
   } 

   $row = $db->sql_fetchrow($result); 
   if ( $Row['num'] > 0 ) 
        { 
           return true; 
        } 
        return false; 
}
//
//ENDE Funktion Gruppenlink



page_header.php

Code: Alles auswählen

// BEGIN Switch Group Link
//
if ( $userdata['session_logged_in'] && group_member($userdata, 20) ) 
{ 
   $template->assign_block_vars('group_link_switch', array()); 
}
//
// ENDE Switch Group Link

header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');

$template->pparse('overall_header');

?>


overall_header.tpl

Code: Alles auswählen

<table width="100%" align="center">
<tr>
<td width="50%" align="center">
<!-- BEGIN group_link_switch -->
<a href="http://www.google.com" target="_blank">TESTLINK</a>
<!-- END group_link_switch -->
</td>
<td width="50%" align="right">
<!-- BEGIN gelber_chat_switch -->
<a href="http://hexenzauber.mainchat.de/" target="_blank">
<IMG SRC="http://hexenzauber.mainchat.de/userinfo.php3?null=j&hrot=0&hgruen=0&hblau=0&vrot=255&vgruen=185 &vblau=3&size=14&text=user+online+im+gelben+chat" border=0></a>
<!-- END gelber_chat_switch -->
</td>
</tr>
</table>
[/b]
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ach mit hab ich doch glatt nen fehler gemacht...
suchen in der functions.php nach folgendem:

Code: Alles auswählen

if ( $Row['num'] > 0 ) 
und mach das R klein....
caipirinha
Mitglied
Beiträge: 32
Registriert: 05.12.2002 20:22

Beitrag von caipirinha »

hi saerdnaer!

NOPE, geht trotzdem nicht.
sag, kann es sein, dass der fehler in der page_header.php liegt?

Code: Alles auswählen

if ( $userdata['session_logged_in'] && group_member($userdata, 20) )
die gruppen ID ist laut tabelle richtig, doch kommt mir die syntax nicht vollständig vor.

frage:
könnte man nicht die gleiche abfrage verwenden, wie bei den gruppenforen?
bzw. wenn man es über user_level macht? allerdings habe ich noch nicht probiert, was insgesamt passiert, wenn mann user_level:id umstellt.

danke dir
robert
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

da hat sich noch einf fehler in die funktion eingeschlichen suche nach folgendem

Code: Alles auswählen

count(*)
und füge danach

Code: Alles auswählen

AS num 
ein...

ah
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“