/** * 删除选中的数据 * 支持单个删除 根据post数据来获取需要删除的数据的信息 */ function m__del() { global $dbm; //判断操作权限 check_level("E08"); if (isset($_POST['resource_id'])) { $_POST['params'][] = $_POST['resource_id']; } //循环删除 foreach ($_POST['params'] as $id) { $id = intval($id); $res = $dbm->query("SELECT id,info_id,resource_url from " . TB_PREFIX . "resource_list WHERE id='" . $id . "'"); if (count($res['list']) != 1) { continue; } $res = check_resource($res['list'][0]['id'], $res['list'][0]['info_id'], $res['list'][0]['resource_url']); if ($res['info']['table_name'] != 'undefined' || $res['info']['id_name'] != 'undefined' || $res['info']['id_zhi'] != 'undefined') { continue; } $img_path = str_replace('\\', '/', dirname(__FILE__)) . '/..' . $res['info']['resource_url']; @unlink($img_path); $x = strripos($img_path, '/'); $thumb_img = substr($img_path, 0, $x + 1) . "thumb_" . substr($img_path, $x + 1); @unlink($thumb_img); @rmdir(dirname($thumb_img)); $where = " id = '" . $id . "'"; $res = $dbm->single_del(TB_PREFIX . "resource_list", $where); if (!empty($res['error'])) { continue; } } logs("删除资源成功"); die('{"code":"0","msg":"删除成功"}'); }
/** *删除前 检查资源是否关联其它资源 */ function m__resource_check() { //判断操作权限 check_level("E08"); global $dbm; // 直接传过来的删除动作 if (isset($_POST['id'])) { $_POST['params'] = $_POST['id']; } if (empty($_POST['params'])) { die('{"code":"100","msg":"没有选中要删除的资源"}'); } //获取id列表 $id_str = stripslashes($_POST['params']); $id_arr = explode(',', $id_str); array_walk($id_arr, 'intval_'); //强制转换id为整数 $id_str = implode($id_arr, ','); //根据 id 获取resource_list 表的相关信息 $params['table_name'] = TB_PREFIX . "resource_list"; $params['count'] = 0; $params['suffix'] = " order by id DESC "; $params['where'] = "id in(" . $id_str . ")"; $resource_list = $dbm->single_query($params); //开始循环 进行比对数据 找出关联的资源 $result = array(); //接收check_resource()返回的数据 foreach ($resource_list['list'] as $k => $v) { //调用函数对数据进行比对 $result[] = check_resource($v['id'], $v['info_id'], $v['resource_url']); } //传递过来的动作 判断是单张图片删除 还是多张图片删除 if (isset($_GET['a']) && $_GET['a'] == 'del_all') { //是多张图片删除 不进行任何提示直接删除所有图片 及其关联资源 foreach ($result as $v) { $_POST['resource_info'][] = $v['info']; } //调用删除函数 m__del(); } else { print_r(json_encode($result)); die; } }
$message = get_string('assignresourcedeletefail', 'local_classroomresources'); $style = array('style' => 'notifyproblem'); } $hierarchy->set_confirmation($message, $returnurl, $style); } $strheading = get_string('deleteassigned', 'local_classroomresources'); $PAGE->navbar->add(get_string('pluginname', 'local_classroomresources'), new moodle_url('/local/classroomresources/view.php')); $PAGE->navbar->add($strheading); $PAGE->set_title($strheading); echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('manage', 'local_classroomresources')); $resource = cobalt_resources::get_instance(); //$resource->assignresource_tabs($currenttab); $resource->resource_tabs($currenttab, $id); //echo $OUTPUT->heading($strheading); $depend = check_resource($id); if ($depend > 0) { echo '<div align="center">'; $message = get_string('resourcecheck', 'local_classroomresources'); echo $OUTPUT->box($message); echo $OUTPUT->continue_button($returnurl); echo '</div>'; } else { $yesurl = new moodle_url('/local/classroomresources/assignresource.php', array('id' => $id, 'delete' => 1, 'confirm' => 1, 'sesskey' => sesskey())); $message = get_string('deletebuilding', 'local_classroomresources'); echo $OUTPUT->confirm($message, $yesurl, $returnurl); } echo $OUTPUT->footer(); die; } //Make the buildings to active or inactive
/** * Update module information * * @param array $arrayModule * @param $moduleLocale * @return array */ protected function updateModuleInfo($arrayModule = [], $moduleLocale) { if (count($arrayModule) == 0 || $moduleLocale == '' || $moduleLocale != 'backend' && $moduleLocale != 'frontend') { return false; } else { $arrayModuleReturn = []; foreach ($arrayModule as $module) { $filePath = APP_DIR . '/' . $moduleLocale . '/' . $module . '/Resource.php'; //Get new Module name $resource = check_resource($filePath, $module, $moduleLocale); if (file_exists($filePath) && $resource) { /** * CoreModule $coreModule */ $coreModule = CoreModules::findFirst(['conditions' => 'base_name = ?1', 'bind' => ['1' => $module]]); if (!$coreModule) { $coreModule = new CoreModules(); $coreModule->base_name = $module; $coreModule->name = $module; $coreModule->is_core = 0; $coreModule->published = 0; $coreModule->location = $moduleLocale; $coreModule->ordering = (int) CoreModules::maximum(['column' => 'ordering']) + 1; } $coreModule->name = $resource['name']; $coreModule->class_name = $resource['class_name']; $coreModule->path = $resource['path']; $coreModule->menu = ''; $coreModule->description = $resource['description']; $coreModule->author = $resource['author']; $coreModule->authorUri = $resource['authorUri']; $coreModule->version = $resource['version']; $coreModule->uri = $resource['uri']; if ($moduleLocale == 'backend') { $coreModule->menu = $this->getModuleMenu($module); } if ($moduleLocale == 'frontend') { $coreModule->router = null; //$this->getModuleRouter($module); } if (!$coreModule->save()) { //Do some thing } else { $arrayModuleReturn['success'][] = [$coreModule->name, $moduleLocale]; } } else { $arrayModuleReturn['error'][] = [$module, $moduleLocale]; } } return $arrayModuleReturn; } }
private function updateRules() { //Get active module $core_module = CoreModules::find("published = 1 AND location = 'backend'"); //Read resources foreach ($core_module as $cModule) { $filePath = APP_DIR . "/backend/" . $cModule->base_name . "/Resource.php"; $module = str_replace(' ', "", $cModule->base_name); //Save rules from resource.php to database $resource = check_resource($filePath, $cModule->base_name, 'backend'); if ($resource) { //Save rules $rules = $resource["rules"]; foreach ($rules as $rule) { $this->saveRule($resource, $module, $rule); } //Delete old rules $this->deleteOldRules($module, $rules); } else { $this->flashSession->error(__('m_system_role_message_resource_for_module_is_error', ["1" => $module])); } } //Get all module backend $allModuleBackEnd = get_child_folder(APP_DIR . '/backend/'); foreach ($allModuleBackEnd as &$aMBE) { $aMBE = '"' . $aMBE . '"'; } //Get old module to delete rules $allModuleNotExist = UserRules::find("module NOT IN(" . implode(",", $allModuleBackEnd) . ")")->toArray(); /** * @var CoreModules[] $unpublished_module */ $unpublished_module = CoreModules::find("published = 0 AND location='backend'"); $arrayModuleName = []; if (count($unpublished_module) || count($allModuleNotExist)) { foreach ($unpublished_module as $u) { $arrayModuleName[] = "'" . $u->base_name . "'"; } foreach ($allModuleNotExist as $aMNE) { $arrayModuleName[] = "'" . $aMNE['module'] . "'"; } $arrayModuleName = array_unique($arrayModuleName); if (count($arrayModuleName)) { /** * @var UserRules[] $userRuleNeedDelete */ $userRuleNeedDelete = UserRules::find("module in (" . implode(',', $arrayModuleName) . ")"); if (count($userRuleNeedDelete)) { $ids = []; foreach ($userRuleNeedDelete as $aRND) { $ids[] = $aRND->rule_id; } $deleteRuleQuery = "DELETE FROM user_role_mapping WHERE rule_id IN (" . implode(',', $ids) . ")"; $this->db->execute($deleteRuleQuery); foreach ($userRuleNeedDelete as $aRND) { $aRND->delete(); } } } } }