Adding UTC support in agenda and announcements + improving UI

skala
Julio Montoya 15 years ago
parent e193604be0
commit fd179f4e9d
  1. 16
      main/admin/system_announcements.php
  2. 4
      main/admin/user_move_stats.php
  3. 17
      main/announcements/announcements.inc.php
  4. 78
      main/announcements/announcements.php
  5. 185
      main/calendar/agenda.inc.php
  6. 5
      main/calendar/agenda.php
  7. 22
      main/inc/lib/system_announcements.lib.php

@ -231,12 +231,13 @@ if ($show_announcement_list) {
$row = array();
$row[] = $announcement->id;
$row[] = Display::return_icon(($announcement->visible ? 'accept.png' : 'exclamation.png'), ($announcement->visible ? get_lang('AnnouncementAvailable') : get_lang('AnnouncementNotAvailable')));
$row[] = $announcement->title;
$row[] = api_convert_and_format_date($announcement->date_start);
$row[] = api_convert_and_format_date($announcement->date_end);
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_TEACHER."&amp;action=". ($announcement->visible_teacher ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_teacher ? 'visible.gif' : 'invisible.gif'), get_lang('show_hide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_STUDENT."&amp;action=". ($announcement->visible_student ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_student ? 'visible.gif' : 'invisible.gif'), get_lang('show_hide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_GUEST."&amp;action=". ($announcement->visible_guest ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_guest ? 'visible.gif' : 'invisible.gif'), get_lang('show_hide'))."</a>";
$row[] = $announcement->title;
$row[] = $announcement->lang;
$row[] = "<a href=\"?action=edit&id=".$announcement->id."\">".Display::return_icon('edit.png', get_lang('Edit'), array(), 22)."</a> <a href=\"?action=delete&id=".$announcement->id."\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"), ENT_QUOTES))."')) return false;\">".Display::return_icon('delete.png', get_lang('Delete'), array(), 22)."</a>";
$announcement_data[] = $row;
@ -244,12 +245,13 @@ if ($show_announcement_list) {
$table = new SortableTableFromArray($announcement_data);
$table->set_header(0, '', false);
$table->set_header(1, get_lang('Active'));
$table->set_header(2, get_lang('StartTimeWindow'));
$table->set_header(3, get_lang('EndTimeWindow'));
$table->set_header(4, get_lang('Teacher'));
$table->set_header(5, get_lang('Student'));
$table->set_header(6, get_lang('Guest'));
$table->set_header(7, get_lang('Title'));
$table->set_header(2, get_lang('Title'));
$table->set_header(3, get_lang('StartTimeWindow'));
$table->set_header(4, get_lang('EndTimeWindow'));
$table->set_header(5, get_lang('Teacher'));
$table->set_header(6, get_lang('Student'));
$table->set_header(7, get_lang('Guest'));
$table->set_header(8, get_lang('Language'));
$table->set_header(9, get_lang('Modify'), false, 'width="50px"');
$form_actions = array();

@ -352,7 +352,7 @@ if (isset($_REQUEST['load_ajax'])) {
$dir_name = substr($parent_data['url'], 1);
$created_dir = create_unexisting_work_directory($base_work_dir, $dir_name);
$created_dir = '/'.$created_dir;
$now = api_get_utc_datetime();
//Creating directory
$sql_add_publication = "INSERT INTO " . $TBL_STUDENT_PUBLICATION . " SET " .
"url = '".$created_dir."',
@ -362,7 +362,7 @@ if (isset($_REQUEST['load_ajax'])) {
active = '0',
accepted = '1',
filetype = 'folder',
sent_date = NOW(),
sent_date = '".$now."',
qualification = '".$parent_data['qualification'] ."',
parent_id = '',
qualificator_id = '',

@ -129,17 +129,16 @@ class AnnouncementManager {
$content = $result['content'];
$content = make_clickable($content);
$content = text_filter($content);
$last_post_datetime = $result['insert_date'];// post time format datetime de mysql
list($last_post_date, $last_post_time) = split(" ", $last_post_datetime);
$last_post_datetime = $result['insert_date'];// post time format datetime de mysql
}
echo "<table height=\"100\" width=\"100%\" cellpadding=\"5\" cellspacing=\"0\" id=\"agenda_list\">";
echo "<tr class=\"data\"><td><h2>" . $title . "</h2></td></tr>";
echo "<tr><td><h2>" . $title . "</h2></td></tr>";
echo "<tr class=\"text\"><td>$content</td></tr>";
echo "<tr><td class=\"announcements_datum\">" . get_lang('AnnouncementPublishedOn') . " : " . api_convert_and_format_date($result['end_date'], DATE_FORMAT_LONG) . "</td></tr>";
echo "<tr><td class=\"announcements_datum\">" . get_lang('LastUpdateDate') . " : " . api_convert_and_format_date($last_post_datetime, DATE_TIME_FORMAT_LONG) . "</td></tr>";
//echo "<tr><td class=\"announcements_datum\">" . get_lang('AnnouncementPublishedOn') . " : " .api_convert_and_format_date($result['end_date'], DATE_FORMAT_LONG). "</td></tr>";
echo "<tr><td class=\"announcements_datum\">" . get_lang('LastUpdateDate') . " : " .api_convert_and_format_date($last_post_datetime, DATE_TIME_FORMAT_LONG). "</td></tr>";
echo "<tr><td>";
$attachment_list = AnnouncementManager::get_attachment($announcement_id);
@ -182,9 +181,9 @@ class AnnouncementManager {
$emailTitle = Database::escape_string($emailTitle);
$newContent = Database::escape_string($newContent);
$order = intval($order);
$now = api_get_utc_datetime();
// store in the table announcement
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = NOW(), display_order ='$order', session_id=".api_get_session_id();
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = '$now', display_order ='$order', session_id=".api_get_session_id();
$result = Database::query($sql);
if ($result === false) {
return false;
@ -234,9 +233,11 @@ class AnnouncementManager {
$emailTitle = Database::escape_string($emailTitle);
$newContent = Database::escape_string($newContent);
$order = intval($order);
$now = api_get_utc_datetime();
// store in the table announcement
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = NOW(), display_order ='$order', session_id=".api_get_session_id();
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = '$now', display_order ='$order', session_id=".api_get_session_id();
$result = Database::query($sql);
if ($result === false) {
return false;

@ -814,6 +814,12 @@ if ((api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_e
echo "<a href='".api_get_self()."?".api_get_cidreq()."&action=add&origin=".(empty($_GET['origin'])?'':$_GET['origin'])."'>".Display::return_icon('new_announce.png',get_lang('AddAnnouncement'),'','32')."</a>";
}
$show_actions = true;
} else {
if (in_array($_GET['action'], array('view'))) {
echo '<div class="actions">';
echo "<a href='".api_get_self()."?".api_get_cidreq()."&origin=".(empty($_GET['origin'])?'':$_GET['origin'])."'>".Display::return_icon('back.png',get_lang('Back'),'','32')."</a>";
echo '</div>';
}
}
if (api_is_allowed_to_edit() && $announcement_number > 1) {
@ -1089,7 +1095,7 @@ if ($display_announcement_list && !$surveyid) {
if (is_array($group_memberships) && count($group_memberships)>0) {
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
@ -1099,7 +1105,7 @@ if ($display_announcement_list && !$surveyid) {
} else {
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
@ -1113,7 +1119,7 @@ if ($display_announcement_list && !$surveyid) {
// A.2. you are a course admin with a GROUP filter
// => see only the messages of this specific group
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
@ -1129,7 +1135,7 @@ if ($display_announcement_list && !$surveyid) {
if (isset($isStudentView) and $isStudentView=="true") {
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
@ -1141,7 +1147,7 @@ if ($display_announcement_list && !$surveyid) {
// A.3.a you are a course admin without user or group filter and WTIHOUT studentview (= the normal course admin view)
// => see all the messages of all the users and groups with editing possibilities
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
@ -1175,16 +1181,14 @@ if ($display_announcement_list && !$surveyid) {
}
}
$sql="SELECT
announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
$cond_user_id
$condition_session
AND ip.visibility='1'
ORDER BY display_order DESC";
$sql="SELECT announcement.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.insert_date
FROM $tbl_announcement announcement, $tbl_item_property ip
WHERE announcement.id = ip.ref
AND ip.tool='announcement'
$cond_user_id
$condition_session
AND ip.visibility='1'
ORDER BY display_order DESC";
} else {
if ($_user['user_id']) {
if ((api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
@ -1240,18 +1244,20 @@ if ($display_announcement_list && !$surveyid) {
$ths = Display::tag('th', get_lang('Title'));
//$ths .= Display::tag('th', get_lang('Content'));
$ths .= Display::tag('th', get_lang('SentTo') );
$ths .= Display::tag('th', get_lang('By') );
$ths .= Display::tag('th', get_lang('AnnouncementPublishedOn') );
if (api_is_allowed_to_edit() OR (api_is_course_coach() && api_is_element_in_the_session(TOOL_ANNOUNCEMENT,$myrow['id']))
//$ths .= Display::tag('th', get_lang('AnnouncementPublishedOn') );
$ths .= Display::tag('th', get_lang('LastUpdateDate') );
if (api_is_allowed_to_edit() OR (api_is_course_coach() && api_is_element_in_the_session(TOOL_ANNOUNCEMENT,$myrow['id']))
OR (api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())) {
$ths .= Display::tag('th', get_lang('SentTo'));
$ths .= Display::tag('th', get_lang('Modify'));
}
echo Display::tag('tr', $ths);
$displayed = array();
while ($myrow = Database::fetch_array($result)) {
while ($myrow = Database::fetch_array($result, 'ASSOC')) {
if (!in_array($myrow['id'], $displayed)) {
$title = $myrow['title'];
$content = $myrow['content'];
@ -1279,20 +1285,9 @@ if ($display_announcement_list && !$surveyid) {
$attachment = '';
$attachment_icon = '';
if (count($attachment_list)>0) {
$attachment_icon = ' '.Display::return_icon('attachment.gif',get_lang('Attachment'));
/*
$realname=$attachment_list['path'];
$user_filename=$attachment_list['filename'];
$full_file_name = 'download.php?file='.$realname;
$attachment .= Display::return_icon('attachment.gif',get_lang('Attachment'));
$attachment .= '<a href="'.$full_file_name.'"> '.$user_filename.' </a>';
$attachment .= '<span class="forum_attach_comment" >'.$attachment_list['comment'].'</span>';
if (api_is_allowed_to_edit()) {
$attachment .= '&nbsp;&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq().'&action=delete&id_attach='.$attachment_list['id'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.png',get_lang('Delete'),'',22).'</a><br />';
}*/
$attachment_icon = ' '.Display::return_icon('attachment.gif',get_lang('Attachment'));
}
/* TITLE */
$title = Display::url($title.$attachment_icon, '?action=view&id='.$myrow['id']);
echo Display::tag('td', Security::remove_XSS($title), array('class' => $style));
@ -1312,11 +1307,9 @@ if ($display_announcement_list && !$surveyid) {
$sent_to = AnnouncementManager::sent_to('announcement', $myrow['id']);
$sent_to_form = AnnouncementManager::sent_to_form($sent_to);
$user_info = api_get_user_info($myrow['insert_user_id']);
echo Display::tag('td', $sent_to_icon.$sent_to_form);
echo Display::tag('td', api_get_person_name($user_info['firstName'], $user_info['lastName']));
echo Display::tag('td', api_convert_and_format_date($myrow['end_date'], DATE_FORMAT_LONG));
echo Display::tag('td', api_get_person_name($user_info['firstName'], $user_info['lastName']));
echo Display::tag('td', api_convert_and_format_date($myrow['insert_date'], DATE_TIME_FORMAT_LONG));
/* RESOURCES */
@ -1342,18 +1335,20 @@ if ($display_announcement_list && !$surveyid) {
} else {
$image_visibility="invisible";
$alt_visibility=get_lang('Visible');
}
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&origin=".(!empty($_GET['origin'])?Security::remove_XSS($_GET['origin']):'')."&action=showhide&id=".$myrow['id']."&sec_token=".$stok."\">".
}
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&origin=".(!empty($_GET['origin'])?Security::remove_XSS($_GET['origin']):'')."&action=showhide&id=".$myrow['id']."&sec_token=".$stok."\">".
Display::return_icon($image_visibility.'.png', $alt_visibility,'',22)."</a>";
// DISPLAY MOVE UP COMMAND only if it is not the top announcement
if ($iterator != 1) {
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&up=".$myrow["id"]."&sec_token=".$stok."\">".Display::return_icon('up.gif', get_lang('Up'))."</a>";
}
} else {
$modify_icons .= Display::return_icon('up_na.gif', get_lang('Up'));
}
if ($iterator < $bottomAnnouncement) {
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&down=".$myrow["id"]."&sec_token=".$stok."\">".Display::return_icon('down.gif', get_lang('Down'))."</a>";
} else {
$modify_icons .= Display::return_icon('down_na.gif', get_lang('Down'));
}
if (api_is_allowed_to_edit(false,true)) {
@ -1361,6 +1356,7 @@ if ($display_announcement_list && !$surveyid) {
Display::return_icon('delete.png', get_lang('Delete'),'',22).
"</a>";
}
echo Display::tag('td', $sent_to_icon.$sent_to_form);
echo Display::tag('td', $modify_icons);
$iterator ++;
}

@ -1077,14 +1077,15 @@ function store_agenda_item_as_announcement($item_id){
$table_agenda = Database::get_course_table(TABLE_AGENDA);
$table_ann = Database::get_course_table(TABLE_ANNOUNCEMENT);
//check params
if(empty($item_id) or $item_id != strval(intval($item_id))){return -1;}
if(empty($item_id) or $item_id != strval(intval($item_id))) {return -1;}
//get the agenda item
$item_id=Database::escape_string($item_id);
$sql = "SELECT * FROM $table_agenda WHERE id = '".$item_id."'";
$item_id = Database::escape_string($item_id);
$sql = "SELECT * FROM $table_agenda WHERE id = ".$item_id;
$res = Database::query($sql);
if (Database::num_rows($res)>0) {
$row = Database::fetch_array($res);
//we have the agenda event, copy it
//get the maximum value for display order in announcement table
$sql_max = "SELECT MAX(display_order) FROM $table_ann";
@ -1092,13 +1093,13 @@ function store_agenda_item_as_announcement($item_id){
$row_max = Database::fetch_array($res_max);
$max = intval($row_max[0])+1;
//build the announcement text
$content = api_get_local_time($row['start_date'])." - ".api_get_local_time($row['end_date'])."\n".$row['content'];
$content = $row['content'];
//insert announcement
$session_id = api_get_session_id();
$sql_ins = "INSERT INTO $table_ann (title,content,end_date,display_order,session_id) " .
"VALUES ('".Database::escape_string($row['title'])."','".Database::escape_string($content)."','".Database::escape_string($row['end_date'])."','$max','$session_id')";
$res_ins = Database::query($sql_ins);
if($res > 0) {
if ($res > 0) {
$ann_id = Database::insert_id();
//Now also get the list of item_properties rows for this agenda_item (calendar_event)
//and copy them into announcement item_properties
@ -1108,7 +1109,7 @@ function store_agenda_item_as_announcement($item_id){
if(Database::num_rows($res_props)>0) {
while($row_props = Database::fetch_array($res_props)) {
//insert into announcement item_property
$time = date("Y-m-d H:i:s", time());
$time = api_get_utc_datetime();
$sql_ins_props = "INSERT INTO $table_props " .
"(tool, insert_user_id, insert_date, " .
"lastedit_date, ref, lastedit_type," .
@ -2005,11 +2006,10 @@ function display_agenda_items($select_month, $select_year) {
//DISPLAY: NO ITEMS
if (empty($my_events)) {
echo Display::display_warning_message(get_lang('NoAgendaItems'));
} else {
} else {
echo '<table class="data_table">';
$th = Display::tag('th', get_lang('Title'));
$th .= Display::tag('th', get_lang('Content'));
$th .= Display::tag('th', get_lang('SentTo'));
//$th .= Display::tag('th', get_lang('Content'));
$th .= Display::tag('th', get_lang('StartTimeWindow'));
$th .= Display::tag('th', get_lang('EndTimeWindow'));
@ -2017,13 +2017,15 @@ function display_agenda_items($select_month, $select_year) {
if ((api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous()))) {
if (!(api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id']))) {
// a coach can only delete an element belonging to his session
//$th .= Display::tag('th', get_lang('SentTo'));
$th .= Display::tag('th', get_lang('Modify'));
}
} else {
$th .= Display::tag('th', get_lang('Detail'));
//$th .= Display::tag('th', get_lang('Detail'));
}
echo Display::tag('tr', $th);
foreach ($my_events as $myrow) {
$is_repeated = !empty($myrow['parent_event_id']);
// Make the month bar appear only once.
@ -2060,86 +2062,58 @@ function display_agenda_items($select_month, $select_year) {
$stylenotbold="datanotboldnow";
$text_style="textnow";
}
//Title
echo "<td>";
// adding an internal anchor
//echo "<a name=\"".(int)api_format_date($myrow["start_date"], "%d")."\"></a>";
// the icons. If the message is sent to one or more specific users/groups
// we add the groups icon
// 2do: if it is sent to groups we display the group icon, if it is sent to a user we show the user icon
if ($myrow['calendar_type'] == 'course') {
//Display::display_icon('event.png', get_lang('Course'),'',22);
if ($myrow['to_group_id']!=='0') {
//echo Display::return_icon('group.png', get_lang('ItemForUserSelection'),'',22);
}
echo $myrow['title'];
} elseif ($myrow['calendar_type'] == 'personal') {
//Display::display_icon('user_event.png', get_lang('Personal'),'',22);
echo $myrow['title'];
} else {
//Display::display_icon('platform_event.png', get_lang('Platform'),'',22);//TODO:check whether this still works
echo $myrow['title'];
}
$attach_icon = '';
if (!empty($attachment_list)) {
$attach_icon = ' '.Display::return_icon('attachment.gif',get_lang('Attachment'));
}
$agenda_url = api_get_path(WEB_CODE_PATH).'calendar/agenda.php?agenda_id='.$myrow['id'];
echo Display::url($myrow['title'].$attach_icon, $agenda_url);
echo '</td>';
$content = $myrow['content'];
$content = make_clickable($content);
$content = text_filter($content);
echo '<td>';
echo $content;
// show attachment list
if (!empty($attachment_list)) {
$realname=$attachment_list['path'];
$user_filename=$attachment_list['filename'];
$full_file_name = 'download.php?file='.$realname;
echo Display::return_icon('attachment.gif',get_lang('Attachment'));
echo '<a href="'.$full_file_name.'"> '.$user_filename.'</a>';
if (api_is_allowed_to_edit()) {
echo '&nbsp;&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;origin='.Security::remove_XSS($_GET['origin']).'&amp;action=delete_attach&amp;id_attach='.$attachment_list['id'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.png',get_lang('Delete'),'',22).'</a><br />';
}
echo '<br /><span class="forum_attach_comment" >'.$attachment_list['comment'].'</span>';
}
echo '</td>';
if ($myrow['calendar_type'] == 'course') {
// the message has been sent to
echo "<td>";
$sent_to=sent_to(TOOL_CALENDAR_EVENT, $myrow["ref"]);
$sent_to_form = sent_to_form($sent_to);
if ($myrow['to_group_id']!=='0') {
echo ' '.Display::return_icon('group.png', get_lang('ItemForUserSelection'),'',22);
}
echo $sent_to_form;
echo '</td>';
} elseif ($myrow['calendar_type'] == 'personal') {
echo '<td>'.get_lang('Personal').'</td>';
} elseif ($myrow['calendar_type'] == 'global') {
echo '<td>'.get_lang('GlobalEvent').'</td>';
}
/* display: the title */
//Start date
echo '<td>';
echo api_format_date($myrow['start_date']);
echo '</td>';
//End date
echo '<td>';
if ($myrow['calendar_type'] == 'course') {
if ($myrow['end_date']<>'0000-00-00 00:00:00') {
echo api_convert_and_format_date($myrow['end_date']);
}
}
echo '</td>';
echo '</td>';
// attachment list
$attachment_list = get_attachment($myrow['id']);
echo '<td align="center">';
$attachment_list = get_attachment($myrow['id']);
/*
if ((api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous()))) {
echo "<td>";
if ($myrow['calendar_type'] == 'course') {
// the message has been sent to
$sent_to = sent_to(TOOL_CALENDAR_EVENT, $myrow["ref"]);
$sent_to_form = sent_to_form($sent_to);
if ($myrow['to_group_id']!=='0') {
echo ' '.Display::return_icon('group.png', get_lang('ItemForUserSelection'),'',22);
}
echo $sent_to_form;
} elseif ($myrow['calendar_type'] == 'personal') {
echo get_lang('Personal');
} elseif ($myrow['calendar_type'] == 'global') {
echo get_lang('GlobalEvent');
}
echo '</td>';
} */
/*Display: edit delete button (course admin only) */
if (!$is_repeated && (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous())) && $myrow['calendar_type'] == 'course') {
if (!(api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id']))) {
if (!(api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id']))) {
echo '<td align="center">';
// a coach can only delete an element belonging to his session
$mylink = api_get_self().'?'.api_get_cidreq().'&amp;origin='.Security::remove_XSS($_GET['origin']).'&amp;id='.$myrow['id'].'&amp;';
@ -2161,17 +2135,26 @@ function display_agenda_items($select_month, $select_year) {
}
echo '<a href="'.$mylink.api_get_cidreq().'&amp;sort=asc&amp;toolgroup='.Security::remove_XSS($_GET['toolgroup']).'&amp;action=showhide&amp;next_action='.$next_action.'" title="'.$text_visibility.'">'.Display::return_icon($image_visibility.'.png', $text_visibility,'',22).'</a> ';
echo "<a href=\"".$mylink.api_get_cidreq()."&amp;sort=asc&amp;toolgroup=".Security::remove_XSS($_GET['toolgroup'])."&amp;action=delete\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset))."')) return false;\" title=\"".get_lang("Delete")."\"> ";
echo Display::return_icon('delete.png', get_lang('Delete'),'',22)."&nbsp;</a>";
echo Display::return_icon('delete.png', get_lang('Delete'),'',22)."&nbsp;</a>";
}
$mylink = 'ical_export.php?'.api_get_cidreq().'&amp;type=course&amp;id='.$myrow['id'];
//echo '<a class="ical_export" href="'.$mylink.'&amp;class=confidential" title="'.get_lang('ExportiCalConfidential').'">'.Display::return_icon($export_icon_high, get_lang('ExportiCalConfidential')).'</a> ';
//echo '<a class="ical_export" href="'.$mylink.'&amp;class=private" title="'.get_lang('ExportiCalPrivate').'">'.Display::return_icon($export_icon_low, get_lang('ExportiCalPrivate')).'</a> ';
//echo '<a class="ical_export" href="'.$mylink.'&amp;class=public" title="'.get_lang('ExportiCalPublic').'">'.Display::return_icon($export_icon, get_lang('ExportiCalPublic')).'</a> ';
echo '<a href="#" onclick="javascript:win_print=window.open(\'print.php?id='.$myrow['id'].'\',\'popup\',\'left=100,top=100,width=700,height=500,scrollbars=1,resizable=0\'); win_print.focus(); return false;">'.Display::return_icon('printer.png', get_lang('Print'),'',22).'</a>&nbsp;';
echo '<a href="#" onclick="javascript:win_print=window.open(\'print.php?id='.$myrow['id'].'\',\'popup\',\'left=100,top=100,width=700,height=500,scrollbars=1,resizable=0\'); win_print.focus(); return false;">'.Display::return_icon('printer.png', get_lang('Print'),'',22).'</a>&nbsp;';
} else {
if ($is_repeated && (api_is_allowed_to_edit(false,true))) {
echo '<td align="center">';
echo get_lang('RepeatedEvent'),' <a href="',api_get_self(),'?',api_get_cidreq(),'&amp;agenda_id=',$myrow['parent_event_id'],'" alt="',get_lang('RepeatedEventViewOriginalEvent'),'">',get_lang('RepeatedEventViewOriginalEvent'),'</a>';
echo '</td>';
}
}
/*
//Display: the added resources
if (check_added_resources("Agenda", $myrow["id"])) {
echo "<i>".get_lang("AddedResources")."</i><br/>";
@ -2181,12 +2164,11 @@ function display_agenda_items($select_month, $select_year) {
display_added_resources("Agenda", $myrow["id"], $addedresource_style);
}
$event_list.=$myrow['id'].',';
*/
$counter++;
if ($is_repeated) {
echo get_lang('RepeatedEvent'),' <a href="',api_get_self(),'?',api_get_cidreq(),'&amp;agenda_id=',$myrow['parent_event_id'],'" alt="',get_lang('RepeatedEventViewOriginalEvent'),'">',get_lang('RepeatedEventViewOriginalEvent'),'</a>';
}
echo '</td>';
@ -2241,16 +2223,11 @@ function display_one_agenda_item($agenda_id) {
global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset;
//echo "displaying agenda items";
// getting the name of the groups
$group_names=get_course_groups();
/*--------------------------------------------------
CONSTRUCT THE SQL STATEMENT
--------------------------------------------------*/
$agenda_id = Database::escape_string($agenda_id);
$group_names = get_course_groups();
$agenda_id = intval($agenda_id);
$sql="SELECT agenda.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.ref
FROM ".$TABLEAGENDA." agenda, ".$TABLE_ITEM_PROPERTY." ip
@ -2258,7 +2235,7 @@ function display_one_agenda_item($agenda_id) {
AND ip.tool='".TOOL_CALENDAR_EVENT."'
AND ip.visibility='1'
AND agenda.id='$agenda_id'";
$result=Database::query($sql) or die(Database::error());
$result=Database::query($sql);
$number_items=Database::num_rows($result);
$myrow=Database::fetch_array($result); // there should be only one item so no need for a while loop
@ -2276,8 +2253,7 @@ function display_one_agenda_item($agenda_id) {
/*--------------------------------------------------
DISPLAY: NO ITEMS
--------------------------------------------------*/
if ($number_items==0)
{
if ($number_items==0) {
echo "<table id=\"data_table\" class=\"data_table\"><tr><td>".get_lang("NoAgendaItems")."</td></tr></table>";
}
@ -2310,7 +2286,6 @@ function display_one_agenda_item($agenda_id) {
$stylenotbold="datanotboldnow";
$text_style="textnow";
}
echo "<th>";
// adding an internal anchor
@ -2360,8 +2335,7 @@ function display_one_agenda_item($agenda_id) {
if (!$repeat && api_is_allowed_to_edit(false,true)) {
// edit
$mylink = api_get_self()."?".api_get_cidreq()."&amp;origin=".Security::remove_XSS($_GET['origin'])."&amp;id=".$myrow['id'];
if (!empty($_GET['agenda_id']))
{
if (!empty($_GET['agenda_id'])) {
// rather ugly hack because the id parameter is already set above but below we set it again
$mylink .= '&amp;agenda_id='.Security::remove_XSS($_GET['agenda_id']).'&amp;id='.Security::remove_XSS($_GET['agenda_id']);
}
@ -2402,6 +2376,23 @@ function display_one_agenda_item($agenda_id) {
echo '<td '.(api_is_allowed_to_edit()?'colspan="3"':'colspan="2"'). '>';
echo $content;
echo '</td></tr>';
echo '<tr class="row_even" ><td colspan="2">';
$attachment_list = get_attachment($agenda_id);
if (!empty($attachment_list)) {
$realname=$attachment_list['path'];
$user_filename=$attachment_list['filename'];
$full_file_name = 'download.php?file='.$realname;
echo Display::return_icon('attachment.gif',get_lang('Attachment'));
echo '<a href="'.$full_file_name.'"> '.$user_filename.'</a>';
if (api_is_allowed_to_edit()) {
echo '&nbsp;&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;origin='.Security::remove_XSS($_GET['origin']).'&amp;action=delete_attach&amp;id_attach='.$attachment_list['id'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.png',get_lang('Delete'),'',22).'</a><br />';
}
echo '<br /><span class="forum_attach_comment" >'.$attachment_list['comment'].'</span>';
}
echo '</td></tr>';
/*--------------------------------------------------
DISPLAY: the added resources

@ -278,7 +278,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
case "announce":
//copying the agenda item into an announcement
$id=(int)$_GET['id'];
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $id))) {
if (!(api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $id))) {
// a coach can only delete an element belonging to his session
$ann_id = store_agenda_item_as_announcement($id);
$tool_group_link = (isset($_SESSION['toolgroup'])?'&toolgroup='.$_SESSION['toolgroup']:'');
@ -297,8 +297,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
if ($_GET['view'] == 'month' || $_SESSION['view'] == 'month' ) {
} else {
} else {
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>';
// THE LEFT PART

@ -146,8 +146,7 @@ class SystemAnnouncementManager
}
}
public static function display_arrow($user_id)
{
public static function display_arrow($user_id) {
$start = (int)$_GET['start'];
$nb_announcement = SystemAnnouncementManager :: count_nb_announcement($start,$user_id);
$next = ((int)$_GET['start']+19);
@ -159,27 +158,20 @@ class SystemAnnouncementManager
}
} else {
echo '<a href="news_list.php?start='.$prev.'"> << '.get_lang('Prev').'</a>';
if($nb_announcement > 20) {
if ($nb_announcement > 20) {
echo '<a href="news_list.php?start='.$next.'">'.get_lang('NextBis').' >> </a>';
}
}
}
public static function count_nb_announcement($start = 0,$user_id = '')
{
public static function count_nb_announcement($start = 0, $user_id = '') {
$start = intval($start);
$visibility = api_is_allowed_to_create_course() ? VISIBLE_TEACHER : VISIBLE_STUDENT;
$user_selected_language = api_get_interface_language();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$sql = 'SELECT id
FROM '.$db_table.'
WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) ';
$sql = 'SELECT id FROM '.$db_table.' WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) ';
if (isset($user_id)) {
switch ($visibility)
{
switch ($visibility) {
case VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
@ -203,8 +195,7 @@ class SystemAnnouncementManager
$sql .= 'LIMIT '.$start.',21';
$announcements = Database::query($sql);
$i = 0;
while($rows = Database::fetch_array($announcements))
{
while($rows = Database::fetch_array($announcements)) {
$i++;
}
return $i;
@ -237,6 +228,7 @@ class SystemAnnouncementManager
}
return $all_announcements;
}
/**
* Adds an announcement to the database
* @param string Title of the announcement

Loading…
Cancel
Save