예제 #1
0
파일: resource.php 프로젝트: cranefly/crane
/**
 * 删除选中的数据
 * 支持单个删除 根据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":"删除成功"}');
}
예제 #2
0
파일: resource.php 프로젝트: cranefly/crane
/**
*删除前 检查资源是否关联其它资源
*/
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;
    }
}
예제 #3
0
            $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
예제 #4
0
 /**
  * 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;
     }
 }
예제 #5
0
 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();
                 }
             }
         }
     }
 }