/**
  * Get a list of sessions (id, coach_id, name, courses_num, users_num, classes_num,
  * access_start_date, access_end_date, access_days_before_num, session_admin_id, visibility,
  * session_category_id, promotion_id,
  * validated_user_num, waiting_user_num,
  * extra, course) the validated_usernum and waiting_user_num are
  * used when have the plugin for advance incsription enables.
  * The extra data (field_name, field_value)
  * The course data (course_id, course_code, course_title,
  * coach_username, coach_firstname, coach_lastname)
  * @param array $params List of parameters (id, category_name, access_url_id, secret_key)
  * @return array|soap_fault Sessions list (id=>[title=>'title',url='http://...',date_start=>'...',date_end=>''])
  */
 public static function WSListSessionsDetailsByCategory($params)
 {
     global $debug;
     if ($debug) {
         error_log('WSListSessionsDetailsByCategory');
         error_log('Params ' . print_r($params, 1));
     }
     $secretKey = $params['secret_key'];
     // Check if secret key is valid
     if (!WSHelperVerifyKey($secretKey)) {
         return return_error(WS_ERROR_SECRET_KEY);
     }
     // Check if category ID is set
     if (!empty($params['id']) && empty($params['category_name'])) {
         $sessionCategoryId = $params['id'];
     } elseif (!empty($params['category_name'])) {
         // Check if category name is set
         $sessionCategoryId = SessionManager::getSessionCategoryIdByName($params['category_name']);
         if (is_array($sessionCategoryId)) {
             $sessionCategoryId = current($sessionCategoryId);
         }
     } else {
         // Return soap fault Not valid input params
         return return_error(WS_ERROR_INVALID_INPUT);
     }
     // Get the session List by category
     $sessionList = SessionManager::getSessionListAndExtraByCategoryId($sessionCategoryId);
     if (empty($sessionList)) {
         // If not found any session, return error
         return return_error(WS_ERROR_NOT_FOUND_RESULT);
     }
     // Get validated and waiting queue users count for each session
     $plugin = AdvancedSubscriptionPlugin::create();
     foreach ($sessionList as &$session) {
         // Add validated and queue users count
         $session['validated_user_num'] = self::$plugin->countQueueByParams(array('sessions' => array($session['id']), 'status' => array(ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED)));
         $session['waiting_user_num'] = self::$plugin->countQueueByParams(array('sessions' => array($session['id']), 'status' => array(ADVANCED_SUBSCRIPTION_QUEUE_STATUS_START, ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_APPROVED)));
     }
     return $sessionList;
 }
Exemplo n.º 2
0
function WSDeleteUserFromGroup($params)
{
    if (!WSHelperVerifyKey($params['secret_key'])) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $userGroup = new UserGroup();
    return $userGroup->delete_user_rel_group($params['user_id'], $params['group_id']);
}
Exemplo n.º 3
0
function WSRemoveCourseFromPortal($params)
{
    if (!WSHelperVerifyKey($params['secret_key'])) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $courseInfo = CourseManager::getCourseInfoFromOriginalId($params['original_course_id_value'], $params['original_course_id_name']);
    $courseId = $courseInfo['real_id'];
    $portalId = $params['portal_id'];
    UrlManager::delete_url_rel_course($courseId, $portalId);
    $result = UrlManager::relation_url_course_exist($courseId, $portalId);
    if (empty($result)) {
        return true;
    }
    return false;
}
/**
 * Get a list of sessions (id, title, url, date_start, date_end) and
 * return to caller. Date start can be set to ask only for the sessions
 * starting at or after this date. Date end can be set to ask only for the
 * sessions ending before or at this date.
 * Function registered as service. Returns strings in UTF-8.
 * @param array List of parameters (security key, date_start and date_end)
 * @return array Sessions list (id=>[title=>'title',url='http://...',date_start=>'...',date_end=>''])
 */
function WSListSessions($params)
{
    if (!WSHelperVerifyKey($params)) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $sql_params = array();
    // Dates should be provided in YYYY-MM-DD format, UTC
    if (!empty($params['date_start'])) {
        $sql_params['date_start >='] = $params['date_start'];
    }
    if (!empty($params['date_end'])) {
        $sql_params['date_end <='] = $params['date_end'];
    }
    $sessions_list = SessionManager::get_sessions_list($sql_params);
    $return_list = array();
    foreach ($sessions_list as $session) {
        $return_list[] = array('id' => $session['id'], 'title' => $session['name'], 'url' => api_get_path(WEB_CODE_PATH) . 'session/index.php?session_id=' . $session['id'], 'date_start' => $session['date_start'], 'date_end' => $session['date_end']);
    }
    return $return_list;
}
Exemplo n.º 5
0
/**
 * Web service to tell if a given user is subscribed to the course
 * @param array $params Array of parameters (course and user_id)
 * @return bool|null|soap_fault A simple boolean (true if user is subscribed, false otherwise)
 */
function WSUserSubscribedInCourse ($params)
{
    global $debug;

    if ($debug) error_log('WSUserSubscribedInCourse');
    if ($debug) error_log('Params '. print_r($params, 1));
    if (!WSHelperVerifyKey($params)) {

        return return_error(WS_ERROR_SECRET_KEY);
    }
    $courseCode  = $params['course']; //Course code
    $userId      = $params['user_id']; //chamilo user id

    return (CourseManager::is_user_subscribed_in_course($userId,$courseCode));
}
Exemplo n.º 6
0
/**
 * @param array $params
 * @return null|soap_fault
 */
function WSCreateLp($params)
{
    global $debug;
    if (!WSHelperVerifyKey($params)) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    if ($debug) {
        error_log('WSCreateLp');
    }
    $courseIdName = $params['course_id_name'];
    $courseIdValue = $params['course_id_value'];
    $lpName = $params['lp_name'];
    $lpItemList = $params['lp_item_list'];
    /*$sessionIdName = isset($params['session_id_name']) ? $params['session_id_name'] : null;
      $sessionIdValue = isset($params['session_id_value']) ? $params['session_id_value'] : null;*/
    $courseInfo = CourseManager::getCourseInfoFromOriginalId($courseIdValue, $courseIdName);
    if (empty($courseInfo)) {
        if ($debug) {
            error_log('Course not found');
        }
    }
    $courseId = $courseInfo['real_id'];
    $courseCode = $courseInfo['code'];
    /*$sessionId = 0;
        if (!empty($sessionIdName) && !empty($sessionIdValue)) {
            $sessionId = SessionManager::get_session_id_from_original_id(
                $sessionIdValue,
                $sessionIdName
            );
    
            if (empty($sessionId)) {
    
                if ($debug) {
                    error_log('Session not found');
                }
    
                return 'Session not found';
            }
        }*/
    $lpId = learnpath::add_lp($courseCode, $lpName, '', 'chamilo', 'manual');
    if ($lpId) {
        if ($debug) {
            error_log('LP created');
        }
        $lp = new learnpath($courseCode, $lpId, null);
        $previousId = 0;
        foreach ($lpItemList as $lpItem) {
            $info = pathinfo($lpItem['filename']);
            $extension = $info['extension'];
            $data = base64_decode($lpItem['data']);
            $documentId = $lp->create_document($courseInfo, $data, $info['filename'], $extension);
            if ($documentId) {
                if ($debug) {
                    error_log("Document created {$documentId}");
                    $itemId = $lp->add_item(null, $previousId, 'document', $documentId, $lpItem['title'], '', '');
                    $previousId = $itemId;
                    if ($itemId) {
                        if ($debug) {
                            error_log("Item added");
                        }
                    } else {
                        if ($debug) {
                            error_log("Item not added");
                        }
                    }
                }
            } else {
                if ($debug) {
                    error_log("Document NOT created");
                }
            }
        }
        return 1;
    } else {
        if ($debug) {
            error_log('LP not created');
        }
    }
    return 0;
}