Bestimmte Dinge nur für bestimmte Benutzergruppen

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.
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ich hab mich mal bei dir registriert damit ich besser sehen kann was du meinst... ( schalt mich frei ;-) )
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

erledigt :)

Ein Bild sagt ja doch mehr als tausend Worte...

Wie gesagt:
rechts oben (neben Mitgliederliste, benutzergruppen usw.) liegt die Ausgabe des At-a-Glance-Hacks. Direkt drunter kommt die Ausgabe des CalPeek von MyCalendar.

Beides soll nur bestimmten Benutzergruppen sichtbar und zugänglich sein.
Grüße aus Flensdorf

Arne
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

Hi saerdnaer!

Hast schon was rausgefunden?
Grüße aus Flensdorf

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

Beitrag von saerdnaer »

irgendwie hast du das 2 calpeaks eingabaut: einmal

Code: Alles auswählen

//my_cal_peek 
if ($userdata['session_logged_in']) 
{ 
$cal_num = 14;                      // number of days to look ahead 
$peeklen = 30;                     // subject character length 
$datefirst = '';                  // display the date in which order 'month' = Month/Day 
                        //    (Default: Day/Month) 
include_once('./cal_settings.php'); 
$today = date("Y-m-d") . " 00:00:00"; 
$window = date("Y-m-d", mktime(0,0,0,date("m"),date("d")+$cal_num,date("Y"))); 
$sql = "SELECT * FROM ". $table_prefix . $tablename; 
$sql .= " WHERE eventspan >= '$today' AND stamp <= '$window'"; 
$sql .= " ORDER BY eventspan"; 
$result = $db->sql_query($sql); 
$result = mysql_db_query($dbname, $sql); 
if ($result) 
   { 
   while ($row = mysql_fetch_array($result)) 
      { 
      $row[stamp] = substr($row[stamp], 0, 10); 
      $evntdate = split("-", $row[stamp]); 
      if ($datefirst == 'month') { $shortdate = $evntdate[1] . "/" . $evntdate[2]; } 
      else { $shortdate = $evntdate[2] . "/" . $evntdate[1]; } 
      $link = "calendar.php?mode=display&day=".$evntdate[2]; 
      $link .= "&month=".$evntdate[1]."&year=".$evntdate[0]; 
      $link = ereg_replace("=0", "=", $link); 
      $curevnt = $row[subject]; 
      if (strlen($curevnt) > ($peeklen+3)) 
         { 
         $curevnt = substr($curevnt, 0, $peeklen) . "..."; 
         } 
      else 
         { 
         $curevnt = $curevnt; 
         } 
      $template->assign_block_vars('calpeek', array( 
            'LINK' => $link, 
            'DATE' => $shortdate, 
            'EVENT' => $curevnt 
            ) 
         ); 
   } # end of while 
} 
}
//end of my_cal_peek
und einmal

Code: Alles auswählen

// MOD MINI CAL BEGIN
include($phpbb_root_path . 'mini_cal.'.$phpEx); 
// MOD MINI CAL END
welches meinst du denn?

ah
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

ups...

Der erste ist es (my_cal_peek)!

Der zweite ist wohl noch ein Rest von einem kalender, den ich vorher eingebaut hatte. Den Teil werde ich genauso wie mini_cal.php löschen.
Grüße aus Flensdorf

Arne
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

@saerdnaer:

So, mini_cal.php ist gelöscht und der Aufruf in der index.php ist auch raus.
Grüße aus Flensdorf

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

Beitrag von saerdnaer »

irgendwie seh ich jetzt in deiner index garnichtsmehr von dem calender...
überprüfe mal die template änderungen dieses calpeeks ....
achja und lad die neue index.php als .txt hoch...

ah
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

Hi!

Oh mann, ich werde alt... es war dann doch der erste , der überflüssig war.

Ich habe den mini_cal_peek wieder in der index.php drin und die mini_cal.php wieder hochgeladen.

hier nochmal alle links:
http://www.knfl.de/phpbb/index.txt
http://www.knfl.de/phpbb/mini_cal_body.txt
http://www.knfl.de/phpbb/mini_cal.txt
http://www.knfl.de/phpbb/index_body.txt
http://www.knfl.de/phpbb/glance.txt
http://www.knfl.de/phpbb/glance_config.txt

Ich habe den include von mini_cal.php in der index.php jetzt noch mit if ($userdata['session_logged_in']) geklammert - kommt also nur noch, wenn man eingeloggt ist (wie der include von glance.php).

Wenn ich richtig bin, müsste es doch einfach so gehen:

Code: Alles auswählen

if ($group_member($userdata, $group_id))
{
include($phpbb_root_path . 'mini_cal.'.$phpEx); 
}
Das jetzt zu 80% geraten, habe keine Ahnung von PHP.

Deine group_member-Funktion prüft ja schon von sich aus, ob der User eingeloggt ist und gibt sonst false zurück.

Bleibt nur die Frage, ob ich das if-Statement richtig habe (Syntax) und was als $userdata und $group_id rein soll.

Die group_id's sollen bei mir 7, 15 und 20 sein. Oder wenn es einfacher ist nicht 25.
Grüße aus Flensdorf

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

Beitrag von saerdnaer »

okay zuerst musst du die funktion noch ein bischen abändern... suche in der funktion folgendes

Code: Alles auswählen

AND group_id = '$group_id'
und ersetz es durch

Code: Alles auswählen

AND group_id IN($group_id)
dann suche in der index.php nach folgendem

Code: Alles auswählen

	if ($userdata['session_logged_in']) 
	{ 
		include($phpbb_root_path . 'glance.'.$phpEx);
	]
und ersetz es durch

Code: Alles auswählen

	if ( $userdata['session_logged_in'] && group_member($userdata, '7,15,20') ) 
	{ 
		include($phpbb_root_path . 'glance.'.$phpEx);
		include($phpbb_root_path . 'mini_cal.'.$phpEx);
	}
und dann lösch noch folgendes raus:

Code: Alles auswählen

// MOD MINI CAL BEGIN
if ($userdata['session_logged_in']) 
{
include($phpbb_root_path . 'mini_cal.'.$phpEx); 
}
// MOD MINI CAL END
dann sollte die ganze sache funktionieren...

ah
arnem
Mitglied
Beiträge: 26
Registriert: 23.08.2002 09:45

Beitrag von arnem »

JUHUUUUU !!!!!!! :lol:

saerdnaer, Du bist der beste!!

Es klappt!
Grüße aus Flensdorf

Arne
Antworten

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