コード例 #1
0
ファイル: lib.course.php プロジェクト: abhinay100/forma_app
 /**
  * this function detect modules useing id_module, module_name and
  * default_op and add the module to the specified course, alsoassign
  * the specified permission to the level_idst
  * @param int 		$id_course 				the id of the course
  * @param array		$level_idst 			the list of the idst assigned to each level
  * @param int 		$id_amin 				the id of the main menu
  * @param string 	$m_name 				the module name
  * @param string 	$d_op 					the default module op
  * @param array 	$level_token_to_assign 	for each level the token to assign array(level => array(token, token))
  *
  * @return bool true if success, false otherwise
  */
 function addModuleToCourse($id_course, $level_idst, $id_main, $id_m = false, $m_name = false, $d_op = false, $level_token_to_assign = false)
 {
     require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php';
     require_once $GLOBALS['where_framework'] . '/lib/lib.istance.php';
     $acl_man =& Docebo::user()->getAclManager();
     $re = true;
     $query_menu = "\r\n\t\tSELECT idModule, module_name, default_op, file_name, class_name\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_module\r\n\t\tWHERE 1";
     if ($id_m !== false) {
         $query_menu .= " AND idModule = '" . $id_m . "' ";
     }
     if ($m_name !== false) {
         $query_menu .= " AND module_name = '" . $m_name . "' ";
     }
     if ($d_op !== false) {
         $query_menu .= " AND default_op = '" . $d_op . "' ";
     }
     $re_query = sql_query($query_menu);
     if (!$re_query || mysql_num_rows($re_query) == 0) {
         return false;
     }
     $i = 0;
     while (list($id_module, $module_name, $module_op, $file_name, $class_name) = sql_fetch_row($re_query)) {
         $module_obj =& createLmsModule($module_name);
         $tokens = $module_obj->getAllToken($module_op);
         $module_role =& createModuleRoleForCourse($id_course, $module_name, $tokens);
         foreach ($level_token_to_assign as $level => $token_list) {
             foreach ($token_list as $token) {
                 $re &= $acl_man->addToRole($module_role[$token], $level_idst[$level]);
             }
             // end foreach
         }
         // end foreach
         $re &= sql_query("INSERT INTO " . $GLOBALS['prefix_lms'] . "_menucourse_under ( idCourse, idModule, idMain, sequence, my_name )\r\n\t\t\tVALUES ('" . $id_course . "', '" . $id_module . "', '" . $id_main . "', '" . $i++ . "', '')");
     }
     // end while
     return $re;
 }
コード例 #2
0
ファイル: amanmenu.php プロジェクト: abhinay100/forma_app
function removeModule($id_module, $id_main, $id_custom)
{
    $acl_man =& Docebo::user()->getAclManager();
    // Load module info
    $query_module = "\r\n\tSELECT module_name, default_name, file_name, class_name \r\n\tFROM " . $GLOBALS['prefix_lms'] . "_module \r\n\tWHERE idModule = '" . $id_module . "'";
    list($module_name, $name_db, $file_name, $class_name) = sql_fetch_row(sql_query($query_module));
    $module_obj =& createLmsModule($module_name);
    $levels = CourseLevel::getLevels();
    $all_token = $module_obj->getAllToken();
    // corresponding of token -> idst role
    $map_idst_token =& getModuleRoleSt($module_name, $all_token);
    // corresponding of level -> idst level
    $map_idst_level =& getCustomLevelSt($id_custom);
    // old permission of all module
    $actual_perm =& getAllModulesPermissionSt($map_idst_level, array_flip($map_idst_token));
    $re = true;
    foreach ($levels as $lv => $name_level) {
        $idlevel = $map_idst_level[$lv];
        foreach ($actual_perm[$lv] as $idrole => $v) {
            $acl_man->removeFromRole($idrole, $idlevel);
        }
    }
    if ($re) {
        $re = sql_query("\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_menucustom_under \r\n\t\tWHERE idMain = '" . (int) $id_main . "' AND idModule = '" . (int) $id_module . "'");
    }
    return $re;
}