MyBB.de Forum

Normale Version: Plugin - Events on Index manipulieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Tag,

Habe mir folgendes Addon herunter geladen:

http://mods.mybboard.net/view/events-on-index-1.5.3

Dieses Plugin habe ich soweit meinen Ansprüchen angepasst, nur habe noch 1 kleines Problem: Nutzerrestrictions werden leiter nicht so weit übernommen, dass die Anzeige verborgen wird, wenn man keine "Sehen"-Rechte hat - Leider ist meine MyBB Kenntnis nicht so weit fortgeschritten, dass ich dieses Problem in absehbarer Zeit nicht selbst lösen könnte.

Ich bitte um Rat:

PHP-Code:
function add_events()
{
    global 
$db$mybb$templates$index_events$lang$theme;
    
$index_events '';

    if(
$mybb->settings['events_on_index'] == 1)
    {
        
$lang->load("events");
        require_once 
MYBB_ROOT."inc/class_parser.php";
        require_once 
MYBB_ROOT."inc/functions_calendar.php";
        
$parser = new postParser;
        
$day my_date("j");
        
$month my_date("n");
        
$year my_date("Y");

        
$query $db->simple_select("calendars""*""cid='".intval($mybb->settings['eoi_calendar'])."'");
        
$calendar $db->fetch_array($query);
        
        
$start_timestamp gmmktime(000$month$day$year);
        
$end_timestamp $start_timestamp+(86400*intval($mybb->settings['eoi_days']));

        
$events_cache get_events($calendar['cid'], $start_timestamp$end_timestamp);

        
$comma $events '';
        
        
$arrWeek=array("(So)","(Mo)","(Di)","(Mi)","(Do)","(Fr)","(Sa)");
        
        if(
is_array($events_cache)) {
        
// Notes: Falls innerhalb der nächsten  xTage Events anstehen, steht das im $events_cache
        // Notes: Abfrage der nächsten xTage, dazu muss jedesmal aktueller timestamp in j-n-Y umgerechnet werden , damit es keine Komplikationen gibt
            
for($i=0$i<=intval($mybb->settings['eoi_days']); $i++) {
                
//$intZeit = mktime(0,0,0,$month,$day,$year);
                
$intPlusTage $i 24 60 60;
                
$strDatum date('j-n-Y'$start_timestamp+$intPlusTage);
                if(
is_array($events_cache[$strDatum]))
                {
                    foreach(
$events_cache[$strDatum] as $event)
                    {
                        
$comma "<br />";
                        
$strDatumTempl date('d-m-Y'$start_timestamp+$intPlusTage)." ".$arrWeek[date("w",$start_timestamp+$intPlusTage)];
                        
$event['name'] = htmlspecialchars_uni($parser->parse_badwords($event['name']));
                        
                        
$query $db->simple_select("users""username, usergroup, displaygroup""uid='".$event['uid']."'");
                        
$user $db->fetch_array($query);
                        
                        
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
                        
$user['profilelink'] = build_profile_link($user['username'], $event['uid']);
                        eval(
"\$events .= \"".$templates->get("events_row"10)."\";");
                    }
                }
            }
        }
        if(
$events != "")
        {
            eval(
"\$index_events = \"".$templates->get("events_on_index")."\";");
        }
    }


Ich weiß, das die Zeilen der Querrys für die Userabfrage noch nicht sehr elegant ist, wird aber noch angepasst Toungue
Dafür gibt es die Funktion get_calendar_permissions(), an die du die ID des Kalenders übergeben musst:
PHP-Code:
$perms get_calendar_permissions($cid);
if(
$perms['canviewcalendar'] != 1) {
    
// Benutzer hat nicht das Recht diesen Kalender zu sehen.

Perfekt - vielen Dank