Frage zu Calendar Mod von alightner
Verfasst: 23.03.2014 02:12
Hallo liebe Forengemeinde,
derzeit bin ich an etwas am basteln, bei dem mir hier eventuell jemand helfen kann. Ich habe die Calendar Mod 0.1.1 von alightner verbaut und möchte das in der Mod mitgelieferte ucp-Modul "UCP_MAIN_CALENDAR_MYEVENTS" verändern. Bisher ist es so, dass man dort im persönlichen Bereich alle Termine angezeigt bekommt, die man selbst angelegt hat.
Ich möchte jedoch erreichen, dass Benutzer alle angelegten Termine angezeigt bekommen (egal, ob selbst angelegt oder nicht), sofern diese Termine einer Gruppe zugeordnet sind, deren Mitglieder die Benutzer sind. Andernfalls sollen bestehende Termine in der Liste nicht aufgeführt werden.
Es mag komisch klingen. Diese Änderung macht in meinem Fall jedoch großen Sinn. Die kleinen Sprach- und Template-Änderungen stellen kein Problem für mich dar. Nur die Änderungen in der bereiten mir als sporadischem Laienbastler, der zudem schon seit Jahren nicht mehr aktiv war, enorme Probleme.
Den Teil, auf den es meiner Meinung nach im weiteren Sinne ankommt, stelle ich nachfolgend ein:
Ich wäre sehr dankbar, so mir denn jemand helfen könnte.
Beste Grüße
derzeit bin ich an etwas am basteln, bei dem mir hier eventuell jemand helfen kann. Ich habe die Calendar Mod 0.1.1 von alightner verbaut und möchte das in der Mod mitgelieferte ucp-Modul "UCP_MAIN_CALENDAR_MYEVENTS" verändern. Bisher ist es so, dass man dort im persönlichen Bereich alle Termine angezeigt bekommt, die man selbst angelegt hat.
Ich möchte jedoch erreichen, dass Benutzer alle angelegten Termine angezeigt bekommen (egal, ob selbst angelegt oder nicht), sofern diese Termine einer Gruppe zugeordnet sind, deren Mitglieder die Benutzer sind. Andernfalls sollen bestehende Termine in der Liste nicht aufgeführt werden.
Es mag komisch klingen. Diese Änderung macht in meinem Fall jedoch großen Sinn. Die kleinen Sprach- und Template-Änderungen stellen kein Problem für mich dar. Nur die Änderungen in der
Code: Alles auswählen
functions_calendar.php
Den Teil, auf den es meiner Meinung nach im weiteren Sinne ankommt, stelle ich nachfolgend ein:
Code: Alles auswählen
/* used to generate the UCP "manage my events" module */
function display_posters_next_events_for_x_days( $x, $user_id )
{
global $auth, $db, $user, $config, $template, $date, $available_etype_colors, $available_etype_images, $available_etype_display_names, $month_sel_code, $day_sel_code, $year_sel_code, $mode_sel_code;
global $phpEx, $phpbb_root_path;
$etype_url_opts = get_etype_url_opts();
// Is the user able to view ANY events?
$user_can_view_events = false;
if ( $auth->acl_get('u_calendar_view_events') )
{
init_calendar_data();
$subject_limit = get_calendar_config_value("display_truncated_name", 0);
$group_options = get_sql_group_options($user->data['user_id']);
$etype_options = get_etype_filter();
$start_temp_date = time();
//$end_temp_date = $start_temp_date + 31536000;
$end_temp_date = $start_temp_date + ( $x * 86400 );
// find all day events that are still taking place
$sort_timestamp_cutoff = $start_temp_date - 86400+1;
$disp_date_format = get_calendar_config_value("date_format", 'M d, Y');
$disp_date_time_format = get_calendar_config_value("date_time_format", 'M d, Y h:i a');
// don't list events that are more than 1 year in the future
$sql = 'SELECT * FROM ' . CALENDAR_EVENTS_TABLE . '
WHERE poster_id = '.$user_id.' AND( (event_access_level = 2) OR
(poster_id = '.$db->sql_escape($user->data['user_id']).' ) OR
(event_access_level = 1 AND ('.$group_options.') ) ) '.$etype_options.' AND
((( event_start_time >= '.$db->sql_escape($start_temp_date).' AND event_start_time <= '.$db->sql_escape($end_temp_date).' ) OR
( event_end_time > '.$db->sql_escape($start_temp_date).' AND event_end_time <= '.$db->sql_escape($end_temp_date).' ) OR
( event_start_time < '.$db->sql_escape($start_temp_date).' AND event_end_time > '.$db->sql_escape($end_temp_date)." )) OR (sort_timestamp > ".$db->sql_escape($sort_timestamp_cutoff)." AND sort_timestamp <= ".$db->sql_escape($end_temp_date)." AND event_all_day = 1) ) ORDER BY sort_timestamp ASC";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$events['EVENT_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=event&calEid=".$row['event_id'].$etype_url_opts);
$events['IMAGE'] = $available_etype_images[$row['etype_id']];
$events['COLOR'] = $available_etype_colors[$row['etype_id']];
$events['ETYPE_DISPLAY_NAME'] = $available_etype_display_names[$row['etype_id']];
$events['FULL_SUBJECT'] = censor_text($row['event_subject']);
$events['SUBJECT'] = $events['FULL_SUBJECT'];
if( $subject_limit > 0 )
{
if(utf8_strlen($events['SUBJECT']) > $subject_limit)
{
$events['SUBJECT'] = truncate_string($events['SUBJECT'], $subject_limit) . '...';
}
}
$events['IS_RECURRING'] = $row['recurr_id'];
$events['RECURRING_TXT'] = get_recurring_event_string_via_id( $row['recurr_id'] );
$poster_url = '';
$invite_list = '';
get_event_invite_list_and_poster_url($row, $poster_url, $invite_list );
$events['POSTER'] = $poster_url;
$events['INVITED'] = $invite_list;
$events['ALL_DAY'] = 0;
if( $row['event_all_day'] == 1 )
{
list($eday['eday_day'], $eday['eday_month'], $eday['eday_year']) = explode('-', $row['event_day']);
$row['event_start_time'] = gmmktime(0,0,0,$eday['eday_month'], $eday['eday_day'], $eday['eday_year'])- $user->timezone - $user->dst;
$row['event_end_time'] = $row['event_start_time']+86399;
$events['ALL_DAY'] = 1;
$events['START_TIME'] = $user->format_date($row['event_start_time'], $disp_date_format, true);
$events['END_TIME'] = $user->format_date($row['event_end_time'], $disp_date_format, true);
}
else
{
$events['START_TIME'] = $user->format_date($row['event_start_time'], $disp_date_time_format, true);
$events['END_TIME'] = $user->format_date($row['event_end_time'], $disp_date_time_format, true);
}
//$events['START_TIME'] = $user->format_date($row['event_start_time']);
//$events['END_TIME'] = $user->format_date($row['event_end_time']);
$edit_url = "";
$edit_all_url = "";
if( $user->data['is_registered'] && $auth->acl_get('u_calendar_edit_events') &&
(($user->data['user_id'] == $row['poster_id'])|| $auth->acl_get('m_calendar_edit_other_users_events') ))
{
$edit_url = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=edit&calEid=".$row['event_id']."&calD=".$date['day']."&calM=".$date['month_no']."&calY=".$date['year']);
if( $row['recurr_id'] > 0 )
{
$edit_all_url = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=edit&calEditAll=1&calEid=".$row['event_id']."&calD=".$date['day']."&calM=".$date['month_no']."&calY=".$date['year']);
}
}
$delete_url = "";
$delete_all_url = "";
if( $user->data['is_registered'] && $auth->acl_get('u_calendar_delete_events') &&
(($user->data['user_id'] == $row['poster_id'])|| $auth->acl_get('m_calendar_delete_other_users_events') ))
{
$delete_url = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=delete&calEid=".$row['event_id']."&calD=".$date['day']."&calM=".$date['month_no']."&calY=".$date['year'].$etype_url_opts);
if( $row['recurr_id'] > 0 )
{
$delete_all_url = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=delete&calDelAll=1&calEid=".$row['event_id']."&calD=".$date['day']."&calM=".$date['month_no']."&calY=".$date['year'].$etype_url_opts);
}
}
$events['U_EDIT'] = $edit_url;
$events['U_EDIT_ALL'] = $edit_all_url;
$events['U_DELETE'] = $delete_url;
$events['U_DELETE_ALL'] = $delete_all_url;
$template->assign_block_vars('myevents', $events);
}
$db->sql_freeresult($result);
}
}
Beste Grüße