public function deleteAttachment($attachment) { require_once _base_ . '/lib/lib.upload.php'; $path = _PATH_MESSAGE; sl_open_fileoperations(); $re = sl_unlink($path . $attachment); sl_close_fileoperations(); return $re; }
function loadImportCourseUser2() { require_once _base_ . '/lib/lib.upload.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.import.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.table.php'; $lang =& DoceboLanguage::CreateInstance('subscribe', 'lms'); $back_url = 'index.php?modname=course&op=course_list'; $acl_man =& Docebo::user()->getAclManager(); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $id_course = importVar('id_course', true, 0); $id_course_edition = importVar('edition', true, 0); $level_idst =& getCourseLevel($id_course); if (count($level_idst) == 0) { $level_idst =& DoceboCourse::createCourseLevel($id_course); } // ----------- file upload ----------------------------------------- if ($_FILES['file_import']['name'] == '') { $_SESSION['last_error'] = Lang::t('_FILEUNSPECIFIED'); Util::jump_to($back_url . '&import_result=-1'); } else { $path = '/appCore/'; $savefile = mt_rand(0, 100) . '_' . time() . '_' . $_FILES['file_import']['name']; if (!file_exists($GLOBALS['where_files_relative'] . $path . $savefile)) { sl_open_fileoperations(); if (!sl_upload($_FILES['file_import']['tmp_name'], $path . $savefile)) { sl_close_fileoperations(); $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD'); Util::jump_to($back_url . '&import_result=-1'); } sl_close_fileoperations(); } else { $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD'); Util::jump_to($back_url . '&create_result=-1'); } } $out->add(getTitleArea($lang->def('_SUBSCRIBE')) . '<div class="std_block">'); $separator = importVar('import_separator', false, ','); if ($separator == '') { $separator = ','; } $first_row_header = importVar('import_first_row_header', false, false); $import_charset = importVar('import_charset', false, 'UTF-8'); if (trim($import_charset) === '') { $import_charset = 'UTF-8'; } $src = new DeceboImport_SourceCSV(array('filename' => $GLOBALS['where_files_relative'] . $path . $savefile, 'separator' => $separator, 'first_row_header' => $first_row_header, 'import_charset' => $import_charset)); $src->connect(); $user_added = 0; $user_error = 0; $user_not_needed = 0; $id_user_added = array(); $counter = 0; if (is_array($row = $src->get_first_row()) && !empty($row)) { $user_info = $acl_man->getUser(false, $row[0]); if ($user_info) { $id_user = $user_info[ACL_INFO_IDST]; // Add in group for permission $acl_man->addToGroup($level_idst['3'], $id_user); // Add to edition group if ($id_course_edition > 0) { $group = '/lms/course_edition/' . $id_course_edition . '/subscribed'; $group_idst = $acl_man->getGroupST($group); if ($group_idst === FALSE) { $group_idst = $acl_man->registerGroup($group, 'all the user of a course edition', true, "course"); } $acl_man->addToGroup($group_idst, $id_user); } // Add in table $re = sql_query("\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t( idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr )\r\n\t\t\tVALUES\r\n\t\t\t( '" . $id_user . "', '" . $id_course . "', '" . $id_course_edition . "', '3', '0', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "' )\t"); if ($re) { addUserToTimeTable($id_user, $id_course, $id_course_edition); $user_added++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_CORRECT'; } else { $query = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idUser = '******'" . " AND idCourse = '" . $id_course . "'" . " AND edition_id = '" . $id_course_edition . "'"; list($control) = sql_fetch_row(sql_query($query)); if ($control) { $user_not_needed++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_NOT_NEEDED'; } else { $user_error++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } } $counter++; } else { $user_error++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } } while (is_array($row = $src->get_next_row()) && !empty($row)) { $user_info = $acl_man->getUser(false, $row[0]); if ($user_info) { $id_user = $user_info[ACL_INFO_IDST]; // Add in group for permission $acl_man->addToGroup($level_idst['3'], $id_user); // Add to edition group if ($id_course_edition > 0) { $group = '/lms/course_edition/' . $id_course_edition . '/subscribed'; $group_idst = $acl_man->getGroupST($group); if ($group_idst === FALSE) { $group_idst = $acl_man->registerGroup($group, 'all the user of a course edition', true, "course"); } $acl_man->addToGroup($group_idst, $id_user); } // Add in table $re = sql_query("\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t( idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr )\r\n\t\t\tVALUES\r\n\t\t\t( '" . $id_user . "', '" . $id_course . "', '" . $id_course_edition . "', '3', '0', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "' )\t"); if ($re) { addUserToTimeTable($id_user, $id_course, $id_course_edition); $user_added++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_CORRECT'; } else { $query = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idUser = '******'" . " AND idCourse = '" . $id_course . "'" . " AND edition_id = '" . $id_course_edition . "'"; list($control) = sql_fetch_row(sql_query($query)); if ($control) { $user_not_needed++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_NOT_NEEDED'; } else { $user_error++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } } $counter++; } else { $user_error++; $id_user_added[$counter]['id_user'] = $id_user; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } } $src->close(); unset($row); $type_h = array('align_center', 'align_center', 'align_center', 'align_center'); $cont_h = array($lang->def('_USERNAME'), $lang->def('_LASTNAME'), $lang->def('_FIRSTNAME'), $lang->def('_INSER_STATUS')); $tb = new Table(false, $lang->def('_USER_SUBSCRIBED'), $lang->def('_USER_SUBSCRIBED')); $tb->addHead($cont_h, $type_h); while (list(, $id_user_added_detail) = each($id_user_added)) { $cont = array(); $user_info = $acl_man->getUser($id_user_added_detail['id_user'], false); $cont[] = $acl_man->relativeId($user_info[ACL_INFO_USERID]); $cont[] = $user_info[ACL_INFO_FIRSTNAME]; $cont[] = $user_info[ACL_INFO_LASTNAME]; $cont[] = $lang->def($id_user_added_detail['status']); $tb->addBody($cont); } sl_open_fileoperations(); sl_unlink($path . $savefile); sl_close_fileoperations(); $out->add(getBackUi($back_url, $lang->def('_BACK')) . '<b>' . $lang->def('_INSERT_CORRECT') . ' : ' . '</b>' . $user_added . ' ' . '<b>' . $lang->def('_OPERATION_FAILURE') . ' : ' . '</b>' . $user_error . ' ' . '<b>' . $lang->def('_INSERT_NOT_NEEDED') . ' : ' . '</b>' . $user_not_needed . '<br/>' . '<br/>' . $tb->getTable() . '<br/>' . getBackUi($back_url, $lang->def('_BACK')) . '</div>'); }
function selSendTo() { checkPerm('view'); // [TODO] check write or mod. permissions // http://127.0.0.1:82/claudio/lms_cvs/appCore/index.php?modname=public_newsletter_admin&op=selsendto&id_send=1 if (isset($_GET["id_send"]) && $_GET["id_send"] > 0) { $id_send = $_GET["id_send"]; } else { die("Newsletter setup error."); } require_once $GLOBALS['where_lms'] . "/class.module/class.public_user_admin.php"; $mdir = new Module_Public_User_Admin(); require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $mdir->setUserFilter('user', $admin_users); $mdir->setUserFilter('group', $admin_tree); $out =& $GLOBALS['page']; $out->setWorkingZone("content"); $lang =& DoceboLanguage::createInstance('admin_newsletter', 'framework'); $back_url = "index.php?modname=public_newsletter_admin&op=selsendto&id_send=" . $id_send; if (isset($_POST['okselector'])) { $arr_selection = $mdir->getSelection($_POST); $send_to_idst = array(); foreach ($arr_selection as $idstMember) { $arr = Docebo::aclm()->getGroupAllUser($idstMember); if (is_array($arr) && count($arr) > 0) { $send_to_idst = array_merge($arr, $send_to_idst); $send_to_idst = array_unique($send_to_idst); } else { $send_to_idst[] = $idstMember; } $send_to_idst = array_intersect($send_to_idst, $admin_users); } foreach ($send_to_idst as $key => $val) { $qtxt = "INSERT INTO " . $GLOBALS["prefix_fw"] . "_newsletter_sendto (id_send, idst, stime) "; $qtxt .= "VALUES ('" . (int) $id_send . "', '" . (int) $val . "', NOW())"; $q = sql_query($qtxt); } $qtxt = "SELECT language FROM " . $GLOBALS["prefix_fw"] . "_newsletter WHERE id='" . $id_send . "'"; $q = sql_query($qtxt); list($lang) = sql_fetch_row($q); if ($lang != _ANY_LANG_CODE) { $tot = count(Docebo::aclm()->getUsersIdstByLanguage($lang, $send_to_idst)); } else { $tot = count($send_to_idst); } $qtxt = "UPDATE " . $GLOBALS["prefix_fw"] . "_newsletter SET tot='" . $tot . "' WHERE id='{$id_send}'"; $q = sql_query($qtxt); $back_url = "index.php?modname=public_newsletter_admin&op=summary&tot=" . $tot . "&id_send=" . $id_send; Util::jump_to(str_replace("&", "&", $back_url)); } else { if (isset($_POST['cancelselector'])) { $info = get_send_info($id_send); $file = $info['file']; $path = '/appCore/newsletter/'; require_once _base_ . '/lib/lib.upload.php'; if ($file != '') { sl_open_fileoperations(); sl_unlink($path . $file); sl_close_fileoperations(); } Util::jump_to('index.php?modname=newsletter&op=newsletter'); } else { if (isset($_GET['load'])) { $mdir->resetSelection(array()); } $url = "index.php?modname=public_newsletter_admin&op=selsendto&id_send=" . $id_send . "&stayon=1"; $mdir->show_user_selector = TRUE; $mdir->show_group_selector = TRUE; if (Get::sett('use_org_chart') == '1') { $mdir->show_orgchart_selector = TRUE; $mdir->show_orgchart_simple_selector = TRUE; } else { $mdir->show_orgchart_selector = FALSE; } $acl_manager =& Docebo::user()->getAclManager(); if (defined("IN_LMS")) { $id_course = (int) $_SESSION['idCourse']; $arr_idstGroup = $acl_manager->getGroupsIdstFromBasePath('/lms/course/' . $id_course . '/subscribed/'); $mdir->setUserFilter('group', $arr_idstGroup); $mdir->setGroupFilter('path', '/lms/course/' . $id_course . '/group'); $mdir->show_orgchart_selector = FALSE; } // Exclude anonymous user! $mdir->setUserFilter('exclude', array($acl_manager->getAnonymousId())); $mdir->loadSelector($url, array(Lang::t('_NEWSLETTER', 'admin_newsletter'), Lang::t('_RECIPIENTS', 'admin_newsletter')), "", TRUE); } } }
/** * @param int $id contains the resource id * @param string $back_url contain the back url (not used yet) */ function copy($id, $back_url = NULL) { require_once _base_ . '/lib/lib.upload.php'; //find source info list($title, $descr, $file) = sql_fetch_row(sql_query("\r\n\t\tSELECT title, description, path \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_materials_lesson \r\n\t\tWHERE idLesson = '" . (int) $id . "'")); //create the copy filename $path_to_file = '/appLms/' . Get::sett('pathlesson'); $savefile = $_SESSION['idCourse'] . '_' . mt_rand(0, 100) . '_' . time() . '_' . implode('_', array_slice(explode('_', $file), 3)); //copy fisic file sl_open_fileoperations(); if (!sl_copy($path_to_file . $file, $path_to_file . $savefile)) { sl_close_fileoperations(); return false; } //insert new item $insertQuery = "\r\n\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_materials_lesson \r\n\t\tSET author = '" . getLogUserId() . "',\r\n\t\t\ttitle = '" . mysql_escape_string($title) . "',\r\n\t\t\tdescription = '" . mysql_escape_string($descr) . "',\r\n\t\t\tpath = '" . mysql_escape_string($savefile) . "'"; if (!sql_query($insertQuery)) { sl_unlink($path_to_file . $savefile); sl_close_fileoperations(); return false; } sl_close_fileoperations(); list($idLesson) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()")); return $idLesson; }
public function mod() { if (!$this->permissions['mod']) { $this->render('invalid', array('message' => $this->_getMessage('no permission'), 'back_url' => 'index.php?r=alms/label/show')); return; } $id_common_label = Get::req('id_common_label', DOTY_INT, 0); if (isset($_POST['undo'])) { Util::jump_to('index.php?r=alms/label/show'); } $all_languages = Docebo::langManager()->getAllLangCode(); $res = true; if (isset($_POST['update'])) { require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/label/'; if (isset($_POST['del_label_image'])) { $file_name = $this->model->getLabelFile($id_common_label); if ($file_name !== '' && sl_file_exists($path . $file_name)) { sl_open_fileoperations(); sl_unlink($path . $file_name); sl_close_fileoperations(); } $file_name = ''; } else { $file_name = $this->model->getLabelFile($id_common_label); } if ($_FILES['label_image']['error'] == 0) { $extension = end(explode('.', $_FILES['label_image']['name'])); $file_name = 'label_image_' . $id_common_label . '.' . $extension; sl_open_fileoperations(); $file_name_del = $this->model->getLabelFile($id_common_label); if ($file_name_del !== '' && sl_file_exists($path . $file_name_del)) { sl_unlink($path . $file_name_del); } sl_upload($_FILES['label_image']['tmp_name'], $path . $file_name); sl_close_fileoperations(); } foreach ($all_languages as $lang_code) { $title = Get::req($lang_code . '_title', DOTY_MIXED, ''); $description = Get::req($lang_code . '_description', DOTY_MIXED, ''); $tmp_res = $this->model->updateLabel($id_common_label, $lang_code, $title, $description, $file_name); if (!$tmp_res) { $res = false; } } if ($res) { Util::jump_to('index.php?r=alms/label/show&res=_ok_mod'); } Util::jump_to('index.php?r=alms/label/show&err=_err_mod'); } $label_info = $this->model->getLabelInfo($id_common_label); $params = array('model' => $this->model, 'all_languages' => $all_languages, 'label_info' => $label_info, 'id_common_label' => $id_common_label); $this->render('mod', $params); }
/** * delete the current user avatar */ function deleteAvatarData($id_user) { require_once _base_ . '/lib/lib.upload.php'; $user_info = $this->getUserDataNoRestriction($id_user); if ($user_info[ACL_INFO_AVATAR] != '') { if (!sl_unlink(substr($this->getPAPath(), 1) . $user_info[ACL_INFO_AVATAR])) { return false; } if (!$this->acl_man->updateUser($id_user, false, false, false, false, false, '', false)) { return false; } } return true; }
function deleteFile($id_file) { require_once _base_ . '/lib/lib.upload.php'; require_once _base_ . '/lib/lib.user.php'; $user_data = new DoceboUser(); $file_info = $this->getFileInfo($id_file); sl_open_fileoperations(); sl_unlink($this->getFilePath() . $file_info[MYFILE_FILE_NAME]); sl_close_fileoperations(); $query = "\r\n\t\tDELETE FROM " . $this->getFilesTable() . "\r\n\t\tWHERE owner = '" . $this->id_user . "' AND id_file = '" . $id_file . "'"; if (!$this->_query($query)) { return false; } $result = $user_data->updateUserUsedSpace($this->id_user); return true; }
function importCode_step2() { require_once _base_ . '/lib/lib.upload.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.import.php'; require_once _base_ . '/lib/lib.table.php'; if ($_FILES['file_import']['name'] == '') { Util::jump_to('index.php?modname=code&op=list&result=err'); } else { $path = '/appCore/'; $savefile = mt_rand(0, 100) . '_' . time() . '_' . $_FILES['file_import']['name']; if (!file_exists($GLOBALS['where_files_relative'] . $path . $savefile)) { sl_open_fileoperations(); if (!sl_upload($_FILES['file_import']['tmp_name'], $path . $savefile)) { sl_close_fileoperations(); Util::jump_to('index.php?modname=code&op=list&result=err'); } sl_close_fileoperations(); } else { Util::jump_to('index.php?modname=directory&op=listgroup&import_result=-1'); } } $lang =& DoceboLanguage::createInstance('code'); $code_manager = new CodeManager(); $id_code_group = Get::req('id_code_group', DOTY_INT, '0'); cout(getTitleArea($lang->def('_CODE')) . '<div class="std_block">'); $separator = Get::req('import_separator', DOTY_MIXED, ','); $first_row_header = isset($_POST['import_first_row_header']) ? $_POST['import_first_row_header'] == 'true' : FALSE; $import_charset = Get::req('import_charset', DOTY_MIXED, 'UTF-8'); if (trim($import_charset) === '') { $import_charset = 'UTF-8'; } $src = new DeceboImport_SourceCSV(array('filename' => $GLOBALS['where_files_relative'] . $path . $savefile, 'separator' => $separator, 'first_row_header' => $first_row_header, 'import_charset' => $import_charset)); $src->connect(); $code_added = array(); $code_error = array(); $code_present = array(); if (is_array($row = $src->get_first_row()) && !empty($row)) { $code = addslashes($row[0]); $result = $code_manager->addCode($code, $id_code_group); if ($result === 'dup') { $code_present[] = $code; } elseif ($result) { $code_added[] = $code; } else { $code_error[] = $code; } } while (is_array($row = $src->get_next_row()) && !empty($row)) { $code = addslashes($row[0]); $result = $code_manager->addCode($code, $id_code_group); if ($result === 'dup') { $code_present[] = $code; } elseif ($result) { $code_added[] = $code; } else { $code_error[] = $code; } } $src->close(); unset($row); sl_open_fileoperations(); sl_unlink($path . $savefile); sl_close_fileoperations(); cout(getBackUi('index.php?modname=code&op=list', $lang->def('_BACK')) . '<br/>' . $lang->def('_CODE_ADDED') . ' : ' . count($code_added) . '<br/>' . $lang->def('_CODE_PRESENT') . ' : ' . count($code_present) . '<br/>' . $lang->def('_CODE_ERROR') . ' : ' . count($code_error) . '<br/>'); if (count($code_present)) { $tb = new Table(false, $lang->def('_CODE_PRESENT'), $lang->def('_CODE_PRESENT')); $type_h = array('align_center'); $cont_h = array($lang->def('_CODE')); $tb->setColsStyle($type_h); $tb->addHead($cont_h); foreach ($code_present as $code) { $cont = array(); $cont[] = stripslashes($code); $tb->addBody($cont); } cout($tb->getTable()); } if (count($code_error)) { $tb = new Table(false, $lang->def('_CODE_ERROR'), $lang->def('_CODE_ERROR')); $type_h = array('align_center'); $cont_h = array($lang->def('_CODE')); $tb->setColsStyle($type_h); $tb->addHead($cont_h); foreach ($code_error as $code) { $cont = array(); $cont[] = stripslashes($code); $tb->addBody($cont); } cout($tb->getTable()); } cout(getBackUi('index.php?modname=code&op=list', $lang->def('_BACK')) . '</div>'); }
function del_item_now($id, $itemid, $type) { include_once _base_ . '/lib/lib.upload.php'; switch ($type) { case "news": $query = sql_query("DELETE FROM " . $GLOBALS["prefix_lms"] . "_prj_news WHERE id='" . $itemid . "' AND pid='" . $id . "' LIMIT 1;"); break; case "todo": $query = sql_query("DELETE FROM " . $GLOBALS["prefix_lms"] . "_prj_todo WHERE id='" . $itemid . "' AND pid='" . $id . "' LIMIT 1;"); break; case "task": $query = sql_query("DELETE FROM " . $GLOBALS["prefix_lms"] . "_prj_tasks WHERE id='" . $itemid . "' AND pid='" . $id . "' LIMIT 1;"); break; case "file": $query = sql_query("SELECT * FROM " . $GLOBALS["prefix_lms"] . "_prj_files WHERE id='" . $itemid . "' AND pid='" . $id . "'"); $row = @mysql_fetch_array($query); @sl_unlink(_FPATH_INTERNAL . $row["fname"]); $query = sql_query("DELETE FROM " . $GLOBALS["prefix_lms"] . "_prj_files WHERE id='" . $itemid . "' and pid='" . $id . "' LIMIT 1;"); break; } }
public function import_csv() { if (!$this->permissions['subscribe_course']) { $this->render('invalid', array('message' => $this->_getErrorMessage('no permission'), 'back_url' => 'index.php?r=' . $this->link_course . '/show')); return; } require_once _base_ . '/lib/lib.form.php'; //Step info $step = Get::req('step', DOTY_INT, 1); if (isset($_POST['next'])) { $step++; } if (isset($_POST['back'])) { $step--; } if (isset($_POST['undo'])) { $step = 0; } switch ($step) { case '0': Util::jump_to('index.php?r=' . $this->link_course . '/show'); break; case '1': $course_info = $this->model->getCourseInfoForSubscription(); $course_name = ($course_info['code'] !== '' ? '[' . $course_info['code'] . '] ' : '') . $course_info['name']; $params = array('table' => $tb, 'id_course' => $this->id_course, 'id_date' => $this->id_date, 'id_edition' => $this->id_edition, 'course_name' => $course_name, 'model' => $this->model); $this->render('import_csv_step_1', $params); break; case '2': require_once _lms_ . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.upload.php'; require_once _adm_ . '/lib/lib.import.php'; $separator = Get::req('import_separator', DOTY_MIXED, ','); $first_row_header = Get::req('import_first_row_header', DOTY_BOOL, false); $import_charset = Get::req('import_charset', DOTY_MIXED, 'UTF-8'); $docebo_course = new DoceboCourse($this->id_course); $level_idst =& $docebo_course->getCourseLevel($this->id_course); if (count($level_idst) == 0 || $level_idst[1] == '') { $level_idst =& $docebo_course->createCourseLevel($this->id_course); } $back_url = 'index.php?r=' . $this->link . '/show&id_course=' . $this->id_course . '&id_edition=' . $this->id_edition . '&id_date=' . $this->id_date; // ----------- file upload ----------------------------------------- if ($_FILES['file_import']['name'] == '') { $_SESSION['last_error'] = Lang::t('_FILEUNSPECIFIED'); jumpTo($back_url . '&err=_file_unspecified'); } else { $path = '/appCore/'; $savefile = mt_rand(0, 100) . '_' . time() . '_' . $_FILES['file_import']['name']; if (!file_exists($GLOBALS['where_files_relative'] . $path . $savefile)) { sl_open_fileoperations(); if (!sl_upload($_FILES['file_import']['tmp_name'], $path . $savefile)) { sl_close_fileoperations(); $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD', 'subscribe'); jumpTo($back_url . '&err=_err_upload'); } sl_close_fileoperations(); } else { $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD', 'subscribe'); jumpTo($back_url . '&err=_err_upload'); } } $src = new DeceboImport_SourceCSV(array('filename' => $GLOBALS['where_files_relative'] . $path . $savefile, 'separator' => $separator, 'first_row_header' => $first_row_header, 'import_charset' => $import_charset)); $src->connect(); $user_added = 0; $user_error = 0; $user_not_needed = 0; $id_user_added = array(); $counter = 0; $course_info = $this->model->getCourseInfoForSubscription(); $can_subscribe = true; $max_num_subscribe = $course_info['max_num_subscribe']; $subscribe_method = $course_info['subscribe_method']; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { $limited_subscribe = Docebo::user()->preference->getAdminPreference('admin_rules.limit_course_subscribe'); $max_subscribe = Docebo::user()->preference->getAdminPreference('admin_rules.max_course_subscribe'); $direct_subscribe = Docebo::user()->preference->getAdminPreference('admin_rules.direct_course_subscribe'); if ($limited_subscribe == 'on') { $limited_subscribe = true; } else { $limited_subscribe = false; } if ($direct_subscribe == 'on') { $direct_subscribe = true; } else { $direct_subscribe = false; } } else { $limited_subscribe = false; $max_subscribe = 0; $direct_subscribe = true; } if (is_array($row = $src->get_first_row()) && !empty($row)) { $user_info = $this->acl_man->getUser(false, $row[0]); if ($user_info) { $id_user = $user_info[ACL_INFO_IDST]; if ($can_subscribe) { require_once _lms_ . '/lib/lib.course.php'; $docebo_course = new DoceboCourse($this->id_course); $level_idst =& $docebo_course->getCourseLevel($this->id_course); if (count($level_idst) == 0 || $level_idst[1] == '') { $level_idst =& $docebo_course->createCourseLevel($this->id_course); } if (!$direct_subscribe) { $waiting = 1; } else { $waiting = 0; } if (!$limited_subscribe || $max_subscribe) { //$this->acl_man->addToGroup($level_idst['3'], $id_user); $this->_addToCourseGroup($level_idst['3'], $id_user); if ($this->model->subscribeUser($id_user, '3', $waiting)) { $user_added++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_CORRECT'; $user_subscribed[] = $id_user; $max_subscribe--; } else { $query = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idUser = '******'" . " AND idCourse = '" . $this->id_course . "'"; list($control) = sql_fetch_row(sql_query($query)); if ($control) { $user_not_needed++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_NOT_NEEDED'; } else { $user_error++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; $this->acl_man->removeFromGroup($level_idst['3'], $id_user); } } } } } else { $user_error++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } $counter++; } while (is_array($row = $src->get_next_row()) && !empty($row)) { $user_info = $this->acl_man->getUser(false, $row[0]); if ($user_info) { $id_user = $user_info[ACL_INFO_IDST]; if ($can_subscribe) { require_once _lms_ . '/lib/lib.course.php'; $docebo_course = new DoceboCourse($this->id_course); $level_idst =& $docebo_course->getCourseLevel($this->id_course); if (count($level_idst) == 0 || $level_idst[1] == '') { $level_idst =& $docebo_course->createCourseLevel($this->id_course); } if (!$direct_subscribe) { $waiting = 1; } else { $waiting = 0; } if (!$limited_subscribe || $max_subscribe) { //$this->acl_man->addToGroup($level_idst['3'], $id_user); $this->_addToCourseGroup($level_idst['3'], $id_user); if ($this->model->subscribeUser($id_user, '3', $waiting)) { $user_added++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_CORRECT'; $user_subscribed[] = $id_user; $max_subscribe--; } else { $query = "SELECT COUNT(*)" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idUser = '******'" . " AND idCourse = '" . $this->id_course . "'"; list($control) = sql_fetch_row(sql_query($query)); if ($control) { $user_not_needed++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_NOT_NEEDED'; } else { $user_error++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; $this->acl_man->removeFromGroup($level_idst['3'], $id_user); } } } } } else { $user_error++; $id_user_added[$counter]['id_user'] = $row[0]; $id_user_added[$counter]['status'] = '_OPERATION_FAILURE'; } $counter++; } $src->close(); unset($row); require_once _base_ . '/lib/lib.table.php'; $type_h = array('align_center', 'align_center', 'align_center', 'align_center'); $cont_h = array(Lang::t('_USERNAME', 'subscribe'), Lang::t('_LASTNAME', 'subscribe'), Lang::t('_FIRSTNAME', 'subscribe'), Lang::t('_INSER_STATUS', 'subscribe')); $tb = new Table(false, Lang::t('_USER_SUBSCRIBED', 'subscribe'), Lang::t('_USER_SUBSCRIBED', 'subscribe')); $tb->addHead($cont_h, $type_h); while (list(, $id_user_added_detail) = each($id_user_added)) { $cont = array(); $user_info = $this->acl_man->getUser(false, $id_user_added_detail['id_user']); $cont[] = $this->acl_man->relativeId($user_info[ACL_INFO_USERID]); $cont[] = $user_info[ACL_INFO_FIRSTNAME]; $cont[] = $user_info[ACL_INFO_LASTNAME]; $cont[] = Lang::t($id_user_added_detail['status'], 'subscribe'); $tb->addBody($cont); } sl_open_fileoperations(); sl_unlink($GLOBALS['where_files_relative'] . $path . $savefile); sl_close_fileoperations(); $course_info = $this->model->getCourseInfoForSubscription(); $course_name = ($course_info['code'] !== '' ? '[' . $course_info['code'] . '] ' : '') . $course_info['name']; $params = array('table' => $tb, 'id_course' => $this->id_course, 'id_date' => $this->id_date, 'id_edition' => $this->id_edition, 'course_name' => $course_name, 'back_link' => getBackUi('index.php?r=' . $this->link . '/show&id_course=' . $this->id_course . '&id_edition=' . $this->id_edition . '&id_date=' . $this->id_date, Lang::t('_BACK', 'subscribe'))); $this->render('import_csv_step_2', $params); break; } }
/** * execute the close of the connection **/ function close() { if ($this->filehandle !== NULL) { if (!@fclose($this->filehandle)) { return FALSE; } if ($this->is_writeonly()) { rename($this->curr_file, DOCEBOIMPORT_BASEDIR . date('Ymd') . basename($this->curr_file)); } else { if (file_exists(DOCEBOIMPORT_BASEDIR . 'processed' . basename($this->curr_file))) { require_once _base_ . '/lib/lib.upload.php'; sl_unlink(DOCEBOIMPORT_BASEDIR . 'processed' . basename($this->curr_file)); rename($this->curr_file, DOCEBOIMPORT_BASEDIR . 'processed' . basename($this->curr_file)); } else { rename($this->curr_file, DOCEBOIMPORT_BASEDIR . 'processed' . basename($this->curr_file)); } } } $this->filehandle = NULL; $this->row_index = 0; return TRUE; }
function deleteFile($id_file) { require_once _base_ . '/lib/lib.upload.php'; $old_file = sql_fetch_row($this->getFileInfo($id_file)); sl_open_fileoperations(); sl_unlink($this->getFilePath() . $old_file[LR_FILE_NAME]); sl_close_fileoperations(); $query = "" . " DELETE FROM " . $this->_tableFile() . " " . " WHERE id_author = " . (int) $old_file[LR_FILE_AUTHOR] . " " . " \t\tAND id_file = " . (int) $id_file . ""; if (!sql_query($query)) { return false; } return true; }
function delete_file($name) { $path = '/common/comment/'; require_once _base_ . '/lib/lib.upload.php'; if ($name != '') { return sl_unlink($path . $name); } }
function uploadImageWitouthResize($tmp_pathfile, $dst_pathfile) { sl_unlink($dst_pathfile); if (sl_upload($tmp_pathfile, $dst_pathfile)) { return 0; } return -2; }
/** * delete the old answer * * @param int $id_track the relative id_track * * @return bool true if success false otherwise * * @access public * @author Fabio Pirovano (fabio@docebo.com) */ function deleteAnswer($id_track) { require_once _base_ . '/lib/lib.upload.php'; list($file_path) = sql_fetch_row(sql_query("\r\n\t\tSELECT more_info \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_testtrack_answer \r\n\t\tWHERE idTrack = '" . (int) $id_track . "' AND \r\n\t\t\tidQuest = '" . $this->id . "'")); $path = '/appLms/' . Get::sett('pathtest'); sl_open_fileoperations(); sl_unlink($path . $file_path); sl_close_fileoperations(); return sql_query("\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_testtrack_answer \r\n\t\tWHERE idTrack = '" . (int) $id_track . "' AND \r\n\t\t\tidQuest = '" . $this->id . "'"); }
function delete_file($name) { require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/' . Get::sett('pathforum'); if ($name != '') { return sl_unlink($path . $name); } }
function del_report_certificate() { checkPerm('view'); require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.certificate.php'; $certificate = new Certificate(); $form = new Form(); $lang =& DoceboLanguage::createInstance('certificate', 'lms'); $id_certificate = importVar('certificate_id', true, 0); $id_course = importVar('course_id', true, 0); $id_user = importVar('user_id', true, 0); $certificate_info = array(); $certificate_info = $certificate->getCertificateInfo($id_certificate); $c_infos = $certificate->getInfoForCourseCertificate($id_course, $id_certificate, $id_user); $certificate_info = current($c_infos); if (Get::req('confirm_del_report_certificate', DOTY_INT, 0) == 1 || isset($_GET['confirm']) && $_GET['confirm'] == 1) { require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/certificate/'; $deletion_result = true; if ($certificate_info[CERT_NAME] != '') { $deletion_result = sl_unlink($path . $certificate_info[ASSIGN_CERT_FILE]); } if ($deletion_result) { $deletion_result = $certificate->delCertificateForUserInCourse($id_certificate, $id_user, $id_course); if ($deletion_result) { Util::jump_to('index.php?modname=pcertificate&op=view_report_certificate&id_certificate=' . $id_certificate . '&id_course=' . $id_course . '&deletion=1'); } else { Util::jump_to('index.php?modname=pcertificate&op=view_report_certificate&id_certificate=' . $id_certificate . '&id_course=' . $id_course . '&deletion=2'); } } else { Util::jump_to('index.php?modname=pcertificate&op=view_report_certificate&id_certificate=' . $id_certificate . '&id_course=' . $id_course . '&deletion=3'); } } elseif (isset($_POST['undo_del_report_certificate'])) { Util::jump_to('index.php?modname=pcertificate&op=view_report_certificate&id_certificate=' . $id_certificate . '&id_course=' . $id_course); } else { $GLOBALS['page']->add(getTitleArea($lang->def('_VIEW_REPORT_DELETION'), 'certificate') . '<div class="std_block">' . $form->openForm('del_certificate', 'index.php?modname=pcertificate&op=del_report_certificate&certificate_id=' . $id_certificate . '&course_id=' . $id_course . '&user_id=' . $id_user) . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_NAME') . ' : </span>' . $certificate_info[$id_certificate][CERT_NAME] . '<br />' . '<span>' . $lang->def('_DESCRIPTION') . ' : </span>' . $certificate_info[$id_certificate][CERT_DESCR], false, 'confirm_del_report_certificate', 'undo_del_report_certificate') . $form->closeForm() . '</div>', 'content'); } }
function delCurriculum($id_portfolio, $id_user) { $sel_query = "\r\n\t\tSELECT curriculum_file \r\n\t\tFROM " . $this->getTableCurriculum() . " \r\n\t\tWHERE id_portfolio = '" . $id_portfolio . "' \r\n\t\t\tAND id_user = '******' "; if (!($re_curriculum = $this->_query($sel_query))) { return false; } list($old_curriculum_file) = sql_fetch_row($re_curriculum); sl_unlink($old_curriculum_file); $query = "\r\n\t\tDELETE FROM " . $this->getTableCurriculum() . " \r\n\t\tWHERE id_portfolio = '" . $id_portfolio . "' \r\n\t\t\tAND id_user = '******'"; if (!$this->_query($query)) { return false; } return true; }
function delReleased() { checkPerm('mod'); require_once _base_ . '/lib/lib.form.php'; require_once _base_ . '/lib/lib.upload.php'; $id_certificate = importVar('id_certificate', true, 0); $id_meta = importVar('idmeta', true, 0); $id_user = importVar('iduser', true, 0); $lang =& DoceboLanguage::createInstance('certificate', 'lms'); $acl_man =& Docebo::user()->getAclManager(); if (Get::req('confirm', DOTY_INT, 0) == 1) { $query = "SELECT cert_file" . " FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_assign" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'"; list($cert_file) = sql_fetch_row(sql_query($query)); $path = '/appLms/certificate/'; sl_open_fileoperations(); $res = sl_unlink($path . $cert_file); sl_close_fileoperations(); if (!$res) { Util::jump_to('index.php?modname=meta_certificate&op=create&id_certificate=' . $id_certificate . '&result=err_del_cert'); } $query = "DELETE FROM " . $GLOBALS['prefix_lms'] . "_certificate_meta_assign" . " WHERE idUser = '******'" . " AND idMetaCertificate = '" . $id_meta . "'"; if (!sql_query($query)) { Util::jump_to('index.php?modname=meta_certificate&op=create&id_certificate=' . $id_certificate . '&result=err_del_cert'); } else { Util::jump_to('index.php?modname=meta_certificate&op=create&id_certificate=' . $id_certificate . '&result=ok'); } } else { list($name, $descr) = sql_fetch_row(sql_query("\r\n\t\tSELECT name, description\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_certificate\r\n\t\tWHERE id_certificate = '" . $id_certificate . "'")); $user_info = $acl_man->getUser($id_user, false); $user = $user_info[ACL_INFO_LASTNAME] . ' ' . $user_info[ACL_INFO_FIRSTNAME] . ' (' . $acl_man->relativeId($user_info[ACL_INFO_USERID]) . ')'; $form = new Form(); $page_title = array('index.php?modname=meta_certificate&op=meta_certificate' => $lang->def('_TITLE_CERTIFICATE'), $lang->def('_DEL_RELEASED')); $GLOBALS['page']->add(getTitleArea($page_title, 'certificate') . '<div class="std_block">' . $form->openForm('del_certificate', 'index.php?modname=meta_certificate&op=del_released') . $form->getHidden('id_certificate', 'id_certificate', $id_certificate) . $form->getHidden('idmeta', 'idmeta', $id_meta) . $form->getHidden('iduser', 'iduser', $id_user) . getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_NAME') . ' : </span>' . $name . '<br />' . '<span>' . $lang->def('_DESCRIPTION') . ' : </span>' . $descr . '<br />' . '<span>' . $lang->def('_USER') . ' : </span>' . $user, false, 'confirm', 'undo') . $form->closeForm() . '</div>', 'content'); } }
function remfiles() { checkPerm('mod'); $lang =& DoceboLanguage::createInstance('course'); require_once _base_ . '/lib/lib.upload.php'; if (isset($_GET['confirm']) && $_GET['confirm'] == '1') { list($old_file) = sql_fetch_row(sql_query("\r\n\t\tSELECT path \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_course_file \r\n\t\tWHERE id_course='" . $_SESSION['idCourse'] . "' AND id_file='" . (int) $_GET['id_file'] . "'")); $size = Get::file_size($GLOBALS['where_files_relative'] . _PATH_COURSE . $old_file); if (!sl_unlink(_PATH_COURSE . $old_file)) { $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); return; } $GLOBALS['course_descriptor']->subFileToUsedSpace(false, $size); if (!sql_query("\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_course_file \r\n\t\tWHERE id_course = '" . (int) $_SESSION['idCourse'] . "' AND id_file = '" . (int) $_GET['id_file'] . "'")) { $GLOBALS['page']->add(getErrorUi($lang->def('_OPERATION_FAILURE'))); return; } Util::jump_to('index.php?modname=course&op=infocourse'); } else { list($title, $file) = sql_fetch_row(sql_query("\r\n\t\tSELECT title, path \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_course_file \r\n\t\tWHERE id_course = '" . (int) $_SESSION['idCourse'] . "' AND id_file = '" . (int) $_GET['id_file'] . "'")); //request erase confirm $GLOBALS['page']->add(getTitleArea(array('index.php?modname=course&op=infocourse' => $lang->def('_INFO'), $lang->def('_DEL')), 'infocourse') . '<div class="std_block">' . getDeleteUi($lang->def('_AREYOUSURE'), '<img src="' . getPathImage('fw') . mimeDetect($file) . '" alt="mime-type" /> ' . $title, true, 'index.php?modname=course&op=remfiles&id_file=' . (int) $_GET['id_file'] . '&confirm=1', 'index.php?modname=course&op=infocourse') . '</div>', 'content'); } }
function removeCourseEdition($id_course_edition) { require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $query_course_edition = "\r\n\tSELECT img_material,img_othermaterial,idCourse\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_course_edition\r\n\tWHERE idCourseEdition = '" . $id_course_edition . "'"; $res = sql_query($query_course_edition); $course_ed_info = mysql_fetch_array($res); $old_material = $course_ed_info["img_material"]; $old_othermaterial = $course_ed_info["img_othermaterial"]; $id_course = $course_ed_info["idCourse"]; require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/' . Get::sett('pathcourse'); if (substr($path, -1) != '/' && substr($path, -1) != '\\') { $path = $path . '/'; } sl_open_fileoperations(); if ($old_material != '') { if (!sl_unlink($path . $old_material)) { return false; } } if ($old_othermaterial != '') { if (!sl_unlink($path . $old_othermaterial)) { return false; } } sl_close_fileoperations(); if (!sql_query("DELETE FROM " . $GLOBALS['prefix_lms'] . "_course_edition WHERE idCourseEdition = '{$id_course_edition}'")) { return false; } $query_control = "SELECT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE edition_id <> 0" . " AND edition_id <> {$id_course_edition}" . " AND idUser IN " . " (" . " SELECT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE edition_id = '" . $id_course_edition . "'" . " )"; $result_control = sql_fetch_row($query_control); $array_user_to_delete = array(); $array_idst_group = array(); if (mysql_num_rows($result_control)) { $array_user = array(); while (list($id_user) = sql_fetch_row($result_control)) { $array_user[] = $id_user; } $query_user_to_delet = "SELECT idUser" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE edition_id = '" . $id_course_edition . "'" . " AND idUser NOT IN (" . implode(', ', $array_user) . ")"; $result_user_to_delet = sql_query($query_user_to_delet); while (list($id_user) = sql_fetch_row($result_user_to_delet)) { $array_user_to_delete[] = $id_user; } } else { $query_user = "******" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE edition_id = '" . $id_course_edition . "'"; $result_user = sql_query($query_user); while (list($id_user) = sql_fetch_row($result_user)) { $array_user_to_delete[] = $id_user; } } $query_group = "SELECT idst" . " FROM " . $GLOBALS['prefix_fw'] . "_group" . " WHERE groupid LIKE '%/lms/course/" . $id_course . "/%'"; $result_group = sql_query($query_group); while (list($id_group) = sql_fetch_row($result_group)) { $array_idst_group[] = $id_group; } $query_delete = "DELETE FROM " . $GLOBALS['prefix_fw'] . "_group_member" . " WHERE idst IN (" . implode(', ', $array_idst_group) . ")" . " AND idstMember IN (" . implode(', ', $array_user_to_delete) . ")"; if (!sql_query($query_delete)) { return false; } if (!sql_query("DELETE FROM " . $GLOBALS['prefix_lms'] . "_courseuser WHERE edition_id = '{$id_course_edition}' AND idCourse = '{$id_course}'")) { return false; } $acl_manager =& Docebo::user()->getAclManager(); $group = '/lms/course_edition/' . $id_course_edition . '/subscribed'; $group_idst = $acl_manager->getGroupST($group); $acl_manager->deleteGroup($group_idst); return true; }
function insitem() { //checkPerm( 'view', FALSE, 'storage' ); require_once _base_ . '/lib/lib.upload.php'; require_once _base_ . '/addons/pclzip/pclzip.lib.php'; require_once dirname(__FILE__) . '/RendererDb.php'; require_once dirname(__FILE__) . '/CPManager.php'; $back_url = urldecode($_POST['back_url']); // there is a file? if ($_FILES['attach']['name'] == '') { $_SESSION['last_error'] = _FILEUNSPECIFIED; Util::jump_to('' . $back_url . '&create_result=0'); } $path = str_replace('\\', '/', '/appLms/' . Get::sett('pathscorm')); $savefile = getLogUserId() . '_' . rand(0, 100) . '_' . time() . '_' . $_FILES['attach']['name']; if (!file_exists($GLOBALS['where_files_relative'] . $path . $savefile)) { sl_open_fileoperations(); if (!sl_upload($_FILES['attach']['tmp_name'], $path . $savefile)) { //if( !move_uploaded_file($_FILES['attach']['tmp_name'], $GLOBALS['where_files_relative'].$path.$savefile ) ) { sl_close_fileoperations(); $_SESSION['last_error'] = _ERROR_UPLOAD; Util::jump_to('' . $back_url . '&create_result=0'); } } else { sl_close_fileoperations(); $_SESSION['last_error'] = _ERROR_UPLOAD; Util::jump_to('' . $back_url . '&create_result=0'); } // compute filepath $filepath = $path . $savefile . STRPOSTCONTENT; // extract zip file $zip = new PclZip($path . $savefile); // check disk quota -------------------------------------------------- if (isset($_SESSION['idCourse']) && defined("LMS")) { $zip_content = $zip->listContent(); $zip_extracted_size = 0; while (list(, $file_info) = each($zip_content)) { $zip_extracted_size += $file_info['size']; } $quota = $GLOBALS['course_descriptor']->getQuotaLimit(); $used = $GLOBALS['course_descriptor']->getUsedSpace(); if (Util::exceed_quota(false, $quota, $used, $zip_extracted_size)) { sl_unlink($path . $savefile); $_SESSION['last_error'] = Lang::t('_QUOTA_EXCEDED'); Util::jump_to('' . $back_url . '&create_result=0'); } $GLOBALS['course_descriptor']->addFileToUsedSpace(false, $zip_extracted_size); } // extract zip ------------------------------------------------------ $zip->extract(PCLZIP_OPT_PATH, $filepath); if ($zip->errorCode() != PCLZIP_ERR_NO_ERROR && $zip->errorCode() != 1) { sl_unlink($path . $savefile); $_SESSION['last_error'] = _ERROR_UPLOAD; sl_close_fileoperations(); Util::jump_to('' . $back_url . '&create_result=0'); } /* remove zip file */ sl_unlink($path . $savefile); sl_close_fileoperations(); $cpm = new CPManager(); // try to open content package if (!$cpm->Open($GLOBALS['where_files_relative'] . $filepath)) { $_SESSION['last_error'] = 'Error: ' . $cpm->errText . ' [' . $cpm->errCode . ']'; Util::jump_to('' . $back_url . '&create_result=0'); } // and parse the manifest if (!$cpm->ParseManifest()) { $_SESSION['last_error'] = 'Error: ' . $cpm->errText . ' [' . $cpm->errCode . ']'; Util::jump_to('' . $back_url . '&create_result=0'); } // create entry in content package table $query = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_scorm_package" . " (idpackage,idProg,path,defaultOrg,idUser,scormVersion) VALUES" . " ('" . addslashes($cpm->identifier) . "','0','" . $savefile . STRPOSTCONTENT . "','" . addslashes($cpm->defaultOrg) . "','" . (int) getLogUserId() . "','" . $cpm->scorm_version . "')"; if (!($result = sql_query($query))) { $_SESSION['last_error'] = _OPERATION_FAILURE; Util::jump_to('' . $back_url . '&create_result=0'); } $idscorm_package = mysql_insert_id(); // create the n entries in resources table for ($i = 0; $i < $cpm->GetResourceNumber(); $i++) { $info = $cpm->GetResourceInfo($cpm->GetResourceIdentifier($i)); $query = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_scorm_resources (idsco,idscorm_package,scormtype,href)" . " VALUES ('" . addslashes($info['identifier']) . "','" . (int) $idscorm_package . "','" . $info['scormtype'] . "','" . addslashes($info['href']) . "')"; $result = sql_query($query); if (!$result) { $_SESSION['last_error'] = _OPERATION_FAILURE; Util::jump_to('' . $back_url . '&create_result=0'); } else { if (mysql_affected_rows() == 0) { $_SESSION['last_error'] = _OPERATION_FAILURE; Util::jump_to('' . $back_url . '&create_result=0'); } } } $rdb = new RendererDb($GLOBALS['dbConn'], $GLOBALS['prefix_lms'], $idscorm_package); $orgElems = $cpm->orgElems; // save all organizations for ($iOrg = 0; $iOrg < $orgElems->getLength(); $iOrg++) { $org = $orgElems->item($iOrg); $cpm->RenderOrganization($org->getAttribute('identifier'), $rdb); } if ($_POST['lesson_resources'] == 'import' || $cpm->defaultOrg == '-resource-') { // save flat organization with resources $cpm->RenderOrganization('-resource-', $rdb); } $so = new Scorm_Organization($cpm->defaultOrg, $idscorm_package, $GLOBALS['dbConn']); if ($so->err_code > 0) { $_SESSION['last_error'] = 'Error: ' . $so->getErrorText() . ' [' . $so->getErrorCode() . ']'; Util::jump_to('' . $back_url . '&create_result=0'); } else { //Util::jump_to( ''.$back_url.'&id_lo='.$so->idscorm_organization.'&create_result=1' ); Util::jump_to('' . $back_url . '&id_lo=' . $idscorm_package . '&create_result=2'); } }
public function delLabel($id_common_label) { if (!$this->toggleLabelAssociation($id_common_label)) { return false; } $file_name = $this->getLabelFile($id_common_label); $path = '/appLms/label/'; require_once _base_ . '/lib/lib.upload.php'; if ($file_name !== '' && sl_file_exists($path . $file_name)) { sl_open_fileoperations(); sl_unlink($path . $file_name); sl_close_fileoperations(); } $query = "DELETE FROM %lms_label" . " WHERE id_common_label = " . (int) $id_common_label; return sql_query($query); }
public function delCourse($id_course) { if ((int) $id_course <= 0) { return false; } require_once _lms_ . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.upload.php'; $course_man = new Man_Course(); //remove course subscribed------------------------------------------ $levels =& $course_man->getCourseIdstGroupLevel($id_course); foreach ($levels as $lv => $idst) { Docebo::aclm()->deleteGroup($idst); } $alluser = getIDGroupAlluser($id_course); Docebo::aclm()->deleteGroup($alluser); $course_man->removeCourseRole($id_course); $course_man->removeCourseMenu($id_course); $query = "DELETE FROM %lms_courseuser WHERE idCourse = '" . (int) $id_course . "'"; $qres = sql_query($query); if (!$qres) { return false; } //--- remove course data --------------------------------------------------- $query_course = "SELECT imgSponsor, img_course, img_material, img_othermaterial, course_demo, course_type, has_editions\n\t\t\tFROM %lms_course\n\t\t\tWHERE idCourse = '" . (int) $id_course . "'"; $qres = sql_query($query_course); list($file_sponsor, $file_logo, $file_material, $file_othermaterial, $file_demo, $course_type, $course_edition) = sql_fetch_row($qres); require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/' . Get::sett('pathcourse'); if (substr($path, -1) != '/' && substr($path, -1) != '\\') { $path .= '/'; } sl_open_fileoperations(); if ($file_sponsor != '') { sl_unlink($path . $file_sponsor); } if ($file_logo != '') { sl_unlink($path . $file_logo); } if ($file_material != '') { sl_unlink($path . $file_material); } if ($file_othermaterial != '') { sl_unlink($path . $file_othermaterial); } if ($file_demo != '') { sl_unlink($path . $file_demo); } sl_close_fileoperations(); //if the scs exist delete course rooms if ($GLOBALS['where_scs'] !== false) { require_once _scs_ . '/lib/lib.room.php'; $re = deleteRoom(false, 'course', $id_course); } //--- delete classroom or editions ----------------------------------------- if ($course_type == 'classroom') { require_once _lms_ . '/admin/model/ClassroomAlms.php'; $classroom_model = new ClassroomAlms($id_course); $classroom = $classroom_model->classroom_man->getDateIdForCourse($id_course); foreach ($classroom as $id_date) { if (!$classroom_model->classroom_man->delDate($id_date)) { return false; } } } elseif ($course_edition == 1) { require_once _lms_ . '/admin/model/EditionAlms.php'; $edition_model = new EditionAlms($id_course); $editions = $edition_model->classroom_man->getEditionIdFromCourse($id_course); foreach ($editions as $id_edition) { if (!$edition_model->edition_man->delEdition($id_edition)) { return false; } } } //--- end classrooms or editions ------------------------------------------- //--- clear LOs ------------------------------------------------------------ require_once _lms_ . '/lib/lib.module.php'; require_once _lms_ . '/lib/lib.param.php'; require_once _lms_ . '/class.module/track.object.php'; $arr_lo_param = array(); $arr_lo_track = array(); $arr_org_access = array(); $query = "SELECT * FROM %lms_organization WHERE idCourse = " . (int) $id_course; $ores = sql_query($query); while ($obj = sql_fetch_object($ores)) { $deleted = true; if ($obj->idResource != 0 && $obj->objectType != "") { $lo = createLO($obj->objectType); $deleted = $lo->del($obj->idResource); //delete learning object } if ($deleted) { $arr_lo_track[] = $obj->idOrg; $arr_org_access[] = $obj->idOrg; //collect org access ids $arr_lo_param[] = $obj->idParam; //collect idParams ids } } //delete all organizations references for the course $query = "DELETE FROM %lms_organization WHERE idCourse = " . (int) $id_course; $res = sql_query($query); //delete LOs trackings if (!empty($arr_lo_track)) { $track_object = new Track_Object(false, 'course_lo'); $track_object->delIdTrackFromCommon($arr_lo_track); } //delete org accesses if (!empty($arr_org_access)) { $query = "DELETE FROM %lms_organization_access\n\t\t\t\tWHERE idOrgAccess IN (" . implode(",", $arr_org_access) . ")"; $res = sql_query($query); } //delete lo params if (!empty($arr_lo_param)) { $query = "DELETE FROM %lms_lo_param\n\t\t\t\tWHERE idParam IN (" . implode(",", $arr_lo_param) . ")"; } //--- end LOs -------------------------------------------------------------- //--- clear coursepath references ------------------------------------------ require_once _lms_ . '/lib/lib.coursepath.php'; $cman = new CoursePath_Manager(); $cman->deleteCourseFromCoursePaths($id_course); //--- end coursepath references -------------------------------------------- //--- clear certificates assignments --------------------------------------- require_once _lms_ . '/lib/lib.certificate.php'; $cman = new Certificate(); $cman->deleteCourseCertificateAssignments($id_course); //--- end certificates assignments ----------------------------------------- //--- clear labels --------------------------------------------------------- $lmodel = new LabelAlms(); $lmodel->clearCourseLabel($id_course); //--- end labels ----------------------------------------------------------- //--- clear advices -------------------------------------------------------- require_once _lms_ . '/lib/lib.advice.php'; $aman = new Man_Advice(); $aman->deleteAllCourseAdvices($id_course); //--- end advices ---------------------------------------------------------- //--- clear coursereports -------------------------------------------------- require_once _lms_ . '/lib/lib.coursereport.php'; $cman = new CourseReportManager(); $cman->deleteAllReports($id_course); //--- end coursereports ---------------------------------------------------- //--- clear competences ---------------------------------------------------- $cmodel = new CompetencesAdm(); $cmodel->deleteAllCourseCompetences($id_course); //--- end competences ------------------------------------------------------ //--- finally delete course from courses table ----------------------------- if (!sql_query("DELETE FROM %lms_course WHERE idCourse = '" . $id_course . "'")) { return false; } return true; }
/** * store the value inserted by a user into the database, if a entry exists it will be overwrite * * @param int $id_user the user * @param int $no_overwrite if a entry exists do not overwrite it * * @return bool true if operation success false otherwise * * @access public */ function store($id_user, $no_overwrite) { require_once _base_ . '/lib/lib.upload.php'; $path = '/appCore/field/'; $file = ''; sl_open_fileoperations(); if (isset($_FILES['field_' . $this->getFieldType()]['tmp_name'][$this->id_common]) && $_FILES['field_' . $this->getFieldType()]['tmp_name'][$this->id_common] != '') { $file = $id_user . '_' . $this->id_common . '_' . time() . '_' . $_FILES['field_' . $this->getFieldType()]['name'][$this->id_common]; if (!sl_upload($_FILES['field_' . $this->getFieldType()]['tmp_name'][$this->id_common], $path . $file)) { $error = 1; $file = ''; } } sl_close_fileoperations(); if (empty($_FILES['field_' . $this->getFieldType()]['name'][$this->id_common])) { return true; } $re_entry = sql_query("\r\n\t\tSELECT user_entry\r\n\t\tFROM " . $this->_getUserEntryTable() . "\r\n\t\tWHERE id_user = '******' AND\r\n\t\t\tid_common = '" . (int) $this->id_common . "' AND\r\n\t\t\tid_common_son = '0'"); $some_entry = mysql_num_rows($re_entry); list($old_file) = sql_fetch_row($re_entry); if ($some_entry) { if ($no_overwrite) { return true; } sl_unlink($path . $old_file); if (!sql_query("\r\n\t\t\tUPDATE " . $this->_getUserEntryTable() . "\r\n\t\t\tSET user_entry = '" . addslashes($file) . "'\r\n\t\t\tWHERE id_user = '******' AND\r\n\t\t\tid_common = '" . (int) $this->id_common . "' AND\r\n\t\t\tid_common_son = '0'")) { return false; } } else { if (!sql_query("\r\n\t\t\tINSERT INTO " . $this->_getUserEntryTable() . "\r\n\t\t\t( id_user, id_common, id_common_son, user_entry ) VALUES\r\n\t\t\t(\t'" . (int) $id_user . "',\r\n\t\t\t\t'" . (int) $this->id_common . "',\r\n\t\t\t\t'0',\r\n\t\t\t\t'" . $file . "')")) { return false; } } return true; }
function upitem() { //checkPerm('view', false, 'storage'); require_once _base_ . '/lib/lib.upload.php'; $back_url = urldecode($_POST['back_url']); //scanning title if (trim($_POST['title']) == "") { $_POST['title'] = Lang::t('_NOTITLE', 'item', 'lms'); } //save file if ($_FILES['attach']['name'] != '') { $path = '/appLms/' . Get::sett('pathlesson'); // retrive and delte ld file -------------------------------------------------- list($old_file) = sql_fetch_row(sql_query("\r\n\t\tSELECT path \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_materials_lesson \r\n\t\tWHERE idLesson = '" . (int) $_POST['idItem'] . "'")); $size = Get::file_size($GLOBALS['where_files_relative'] . $path . $old_file); if (!sl_unlink($path . $old_file)) { sl_close_fileoperations(); $_SESSION['last_error'] = Lang::t('_OPERATION_FAILURE', 'item', 'lms'); Util::jump_to($back_url . '&id_lo=' . (int) $_POST['idItem'] . '&mod_result=0'); } $GLOBALS['course_descriptor']->subFileToUsedSpace(false, $size); // control course quota --------------------------------------------------- $quota = $GLOBALS['course_descriptor']->getQuotaLimit(); $used = $GLOBALS['course_descriptor']->getUsedSpace(); if (Util::exceed_quota($_FILES['attach']['tmp_name'], $quota, $used)) { $_SESSION['last_error'] = Lang::t('_QUOTA_EXCEDED'); Util::jump_to($back_url . '&create_result=0'); } // save new file ------------------------------------------------------------ sl_open_fileoperations(); $savefile = $_SESSION['idCourse'] . '_' . mt_rand(0, 100) . '_' . time() . '_' . $_FILES['attach']['name']; if (!file_exists($GLOBALS['where_files_relative'] . $path . $savefile)) { if (!sl_upload($_FILES['attach']['tmp_name'], $path . $savefile)) { sl_close_fileoperations(); $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD', 'item', 'lms'); Util::jump_to($back_url . '&id_lo=' . (int) $_POST['idItem'] . '&mod_result=0'); } sl_close_fileoperations(); } else { $_SESSION['last_error'] = Lang::t('_ERROR_UPLOAD', 'item', 'lms'); Util::jump_to($back_url . '&id_lo=' . (int) $_POST['idItem'] . '&mod_result=0'); } $new_file = ", path = '" . $savefile . "'"; } $insert_query = "\r\n\tUPDATE " . $GLOBALS['prefix_lms'] . "_materials_lesson \r\n\tSET author = '" . getLogUserId() . "',\r\n\t\ttitle = '" . $_POST['title'] . "',\r\n\t\tdescription = '" . $_POST['description'] . "'\r\n\t\t{$new_file}\r\n\tWHERE idLesson = '" . (int) $_POST['idItem'] . "'"; if (!sql_query($insert_query)) { sl_unlink($path . $savefile); $_SESSION['last_error'] = Lang::t('_OPERATION_FAILURE', 'item', 'lms'); Util::jump_to($back_url . '&id_lo=' . (int) $_POST['idItem'] . '&mod_result=0'); } if (isset($_SESSION['idCourse']) && defined("LMS")) { $GLOBALS['course_descriptor']->addFileToUsedSpace($GLOBALS['where_files_relative'] . $path . $savefile); require_once $GLOBALS['where_lms'] . '/class.module/track.object.php'; Track_Object::updateObjectTitle($_POST['idItem'], 'item', $_POST['title']); } Util::jump_to($back_url . '&id_lo=' . (int) $_POST['idItem'] . '&mod_result=1'); }