@ -27,6 +27,8 @@
==============================================================================
*/
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
/*
==============================================================================
DISPLAY FUNCTIONS
@ -534,6 +536,21 @@ function to_javascript()
cbList[i].selected = !(cbList[i].selected)
}
}
function plus_attachment() {
if (document.getElementById('options').style.display == 'none') {
document.getElementById('options').style.display = 'block';
document.getElementById('plus').innerHTML=' < img style = \"vertical-align:middle;\" src = \"../img/div_hide.gif\" alt = \"\" / > ".get_lang('AddAnAttachment')."';
} else {
document.getElementById('options').style.display = 'none';
document.getElementById('plus').innerHTML=' < img style = \"vertical-align:middle;\" src = \"../img/div_show.gif\" alt = \"\" / > ".get_lang('AddAnAttachment')."';
}
}
// End -->
< / script > ";
}
@ -744,8 +761,7 @@ function change_visibility_announcement($tool,$id)
STORE_ADVALVAS_ITEM
====================================================*/
function store_advalvas_item($emailTitle,$newContent, $order, $to)
{
function store_advalvas_item($emailTitle,$newContent, $order, $to, $file_comment='') {
global $_course;
global $nameTools;
@ -757,10 +773,14 @@ function store_advalvas_item($emailTitle,$newContent, $order, $to)
$emailTitle = Database::escape_string(Security::remove_XSS($emailTitle));
$newContent = Database::escape_string(Security::remove_XSS($newContent,COURSEMANAGERLOWSECURITY));
$order = intval($order);
// store in the table announcement
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = NOW(), display_order ='$order', session_id=".intval($_SESSION['id_session']);
$result = Database::query($sql,__FILE__,__LINE__) or die (mysql_error());
//store the attach file
$last_id= Database::insert_id();
$save_attachment = add_announcement_attachment_file($last_id, $_FILES['user_upload'], $file_comment);
// store in item_property (first the groups, then the users
if (!is_null($to)) // !is_null($to): when no user is selected we send it to everyone
@ -788,9 +808,7 @@ function store_advalvas_item($emailTitle,$newContent, $order, $to)
{
api_item_property_update($_course, TOOL_ANNOUNCEMENT, $last_id, "AnnouncementAdded", $_user['user_id'], '0');
}
return $last_id;
}
@ -803,14 +821,18 @@ function store_advalvas_group_item($emailTitle,$newContent, $order, $to, $to_use
global $tbl_announcement;
global $tbl_item_property;
// database definitions
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
$newContent=stripslashes($newContent);
$emailTitle = Database::escape_string(Security::remove_XSS($emailTitle));
$newContent = Database::escape_string(Security::remove_XSS($newContent,COURSEMANAGERLOWSECURITY));
$order = intval($order);
// store in the table announcement
$sql = "INSERT INTO $tbl_announcement SET content = '$newContent', title = '$emailTitle', end_date = NOW(), display_order ='$order', session_id=".intval($_SESSION['id_session']);
$result = Database::query($sql,__FILE__,__LINE__) or die (mysql_error());
$last_id= Database::insert_id();
$last_id = Database::insert_id();
// store in item_property (first the groups, then the users
if (!isset($to_users)) // !isset($to): when no user is selected we send it to everyone
@ -849,7 +871,7 @@ function store_advalvas_group_item($emailTitle,$newContent, $order, $to, $to_use
* This function stores the announcement Item in the table announcement
* and updates the item_property also
*/
function edit_advalvas_item($id,$emailTitle,$newContent,$to)
function edit_advalvas_item($id,$emailTitle,$newContent,$to, $file_comment='' )
{
global $_course;
@ -862,12 +884,21 @@ function edit_advalvas_item($id,$emailTitle,$newContent,$to)
$newContent=stripslashes($newContent);
$emailTitle = Database::escape_string(Security::remove_XSS($emailTitle));
$newContent = Database::escape_string(Security::remove_XSS($newContent,COURSEMANAGERLOWSECURITY));
$order = intval($order);
// store the modifications in the table announcement
$sql = "UPDATE $tbl_announcement SET content='$newContent', title = '$emailTitle' WHERE id='$id'";
$sql = "UPDATE $tbl_announcement SET content='$newContent', title = '$emailTitle' WHERE id='$id'";
$result = Database::query($sql,__FILE__,__LINE__) or die (mysql_error());
if(empty($last_id)){
$last_id = $id;
$save_attachment = add_announcement_attachment_file($last_id, $_FILES['user_upload'], $file_comment);
}
$last_id = $id;
$edit_attachment = edit_announcement_attachment_file($last_id, $_FILES['user_upload'], $file_comment);
// we remove everything from item_property for this
$sql_delete="DELETE FROM $tbl_item_property WHERE ref='$id' AND tool='announcement'";
$result = Database::query($sql_delete,__FILE__,__LINE__) or die (mysql_error());
@ -991,3 +1022,145 @@ function get_all_annoucement_by_user_course($course_db, $user_id)
return '';
}
}
/*
==============================================================================
ATTACHMENT FUNCTIONS
==============================================================================
*/
/**
* Show a list with all the attachments according to the post's id
* @param the post's id
* @return array with the post info
* @author Arthur Portugal
* @version November 2009, dokeos 1.8.6.2
*/
function get_attachment($announcement_id) {
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$announcement_id=Database::escape_string($announcement_id);
$row=array();
$sql = 'SELECT id,path, filename,comment FROM '. $tbl_announcement_attachment.' WHERE announcement_id = '.(int)$announcement_id.'';
$result=Database::query($sql, __FILE__, __LINE__);
if (Database::num_rows($result)!=0) {
$row=Database::fetch_array($result,ASSOC);
}
return $row;
}
/**
* This function add a attachment file into announcement
* @param string a comment about file
* @param int last id from announcement table
*
*/
function add_announcement_attachment_file($last_id, $file = array(), $file_comment) {
global $_course;
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
// Storing the attachments
if(empty($_FILES['user_upload'])) {
$upload_ok = process_uploaded_file($_FILES['user_upload']);
}
if (!empty($upload_ok)) {
$courseDir = $_course['path'].'/upload/announcements';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$updir = $sys_course_path.$courseDir;
// Try to add an extension to the file if it hasn't one
$new_file_name = add_ext_on_mime(stripslashes($_FILES['user_upload']['name']), $_FILES['user_upload']['type']);
// user's file name
$file_name =$_FILES['user_upload']['name'];
if (!filter_extension($new_file_name)) {
Display :: display_error_message(get_lang('UplUnableToSaveFileFilteredExtension'));
} else {
$new_file_name = uniqid('');
$new_path=$updir.'/'.$new_file_name;
$result= @move_uploaded_file($_FILES['user_upload']['tmp_name'], $new_path);
$safe_file_comment= Database::escape_string($file_comment);
$safe_file_name = Database::escape_string($file_name);
$safe_new_file_name = Database::escape_string($new_file_name);
// Storing the attachments if any
//if ($result) {
$sql='INSERT INTO '.$tbl_announcement_attachment.'(filename,comment, path,announcement_id,size) '.
"VALUES ( '".$safe_file_name."', '".$file_comment."', '".$safe_new_file_name."' , '".$last_id."', '".$_FILES['user_upload']['size']."' )";
$result=Database::query($sql, __LINE__, __FILE__);
$message.=' / '.get_lang('FileUploadSucces').'< br / > ';
//$last_id_file=Database::insert_id();
//api_item_property_update($_course, 'announcement_attachment', $last_id_file ,'AnnouncementAttachmentAdded', api_get_user_id());
//}
}
}
}
/**
* This function edit a attachment file into announcement
* @param string a comment about file
* @param int Agenda Id
* @param int attachment file Id
*/
function edit_announcement_attachment_file($last_id, $file = array(), $file_comment) {
global $_course;
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
// Storing the attachments
if(!empty($_FILES['user_upload'])) {
$upload_ok = process_uploaded_file($_FILES['user_upload']);
}
if (!empty($upload_ok)) {
$courseDir = $_course['path'].'/upload/announcements';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$updir = $sys_course_path.$courseDir;
// Try to add an extension to the file if it hasn't one
$new_file_name = add_ext_on_mime(stripslashes($_FILES['user_upload']['name']), $_FILES['user_upload']['type']);
// user's file name
$file_name =$_FILES['user_upload'] ['name'];
if (!filter_extension($new_file_name)) {
Display :: display_error_message(get_lang('UplUnableToSaveFileFilteredExtension'));
} else {
$new_file_name = uniqid('');
$new_path=$updir.'/'.$new_file_name;
$result= @move_uploaded_file($_FILES['user_upload']['tmp_name'], $new_path);
$safe_file_comment= Database::escape_string($file_comment);
$safe_file_name = Database::escape_string($file_name);
$safe_new_file_name = Database::escape_string($new_file_name);
// Storing the attachments if any
//if ($result) {
$sql="UPDATE $tbl_announcement_attachment SET filename = '$safe_file_name', comment = '$safe_file_comment', path = '$safe_new_file_name', announcement_id = '$last_id', size ='".$_FILES['user_upload']['size']."'
WHERE announcement_id = '$last_id'";
$result=Database::query($sql, __FILE__,__LINE__);
$message.=' / '.get_lang('FileUploadSucces').'< br / > ';
//api_item_property_update($_course, 'announcement_attachment', $last_id ,'AnnouncementAttachmentUpdated', api_get_user_id());
//}
}
}
}
/**
* This function delete a attachment file by id
* @param integer attachment file Id
*
*/
function delete_announcement_attachment_file($id) {
global $_course;
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$id=Database::escape_string($id);
$sql="DELETE FROM $tbl_announcement_attachment WHERE id = $id";
error_log($sql);
$result=Database::query($sql, __FILE__,__LINE__);
// update item_property
//api_item_property_update($_course, 'announcement_attachment', $id,'AnnouncementAttachmentDeleted', api_get_user_id());
}