/**
  * 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;
 }
<?php

/* For license terms, see /license.txt */
/**
 * A script to test session details by user web service
 * @package chamilo.plugin.advanced_subscription
 */
/**
 * Init
 */
require_once __DIR__ . '/../config.php';
// Protect test
api_protect_admin_script();
// exit;
$plugin = AdvancedSubscriptionPlugin::create();
$hookPlugin = HookAdvancedSubscription::create();
// Get params from request (GET or POST)
$params = array();
// Init result array
$params['user_id'] = intval($_REQUEST['u']);
$params['user_field'] = 'drupal_user_id';
$params['session_id'] = intval($_REQUEST['s']);
$params['profile_completed'] = 100;
$params['is_connected'] = true;
/**
 * Copied code from WSHelperVerifyKey function
 */
/**
 * Start WSHelperVerifyKey
 */
//error_log(print_r($params,1));
Beispiel #3
0
<?php

/* For license terms, see /license.txt */
/**
 * This script is included by main/admin/settings.lib.php and generally
 * includes things to execute in the main database (settings_current table)
 * @package chamilo.plugin.advanced_subscription
 */
/**
 * Initialization
 */
require_once dirname(__FILE__) . '/config.php';
if (!api_is_platform_admin()) {
    die('You must have admin permissions to install plugins');
}
AdvancedSubscriptionPlugin::create()->install();
         if ($res) {
             $result['error'] = false;
             $result['errorMessage'] = 'No error';
             $result['pass'] = true;
         } else {
             $result['errorMessage'] = 'User can not be subscribed';
             $result['pass'] = false;
         }
     } catch (\Exception $e) {
         $result['errorMessage'] = $e->getMessage();
     }
     break;
 case 'subscribe':
     // Subscription
     // Start subscription to queue
     $res = AdvancedSubscriptionPlugin::create()->startSubscription($data['studentUserId'], $data['sessionId'], $data);
     // Check if queue subscription was successful
     if ($res === true) {
         $legalEnabled = api_get_plugin_setting('courselegal', 'tool_enable');
         if ($legalEnabled) {
             // Save terms confirmation
             CourseLegalPlugin::create()->saveUserLegal($data['studentUserId'], $data['courseId'], $data['sessionId'], false);
         }
         // Prepare data
         // Get session data
         // Assign variables
         $fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
         $sessionArray = api_get_session_info($data['sessionId']);
         $extraSession = new ExtraFieldValue('session');
         $extraField = new ExtraField('session');
         // Get session fields
Beispiel #5
0
<?php

/* For license terms, see /license.txt */
/**
 * This script is a configuration file for the date plugin. You can use it as a master for other platform plugins (course plugins are slightly different).
 * These settings will be used in the administration interface for plugins (Chamilo configuration settings->Plugins)
 * @package chamilo.plugin.advanced_subscription
 */
/**
 * Plugin details (must be present)
 */
require_once __DIR__ . '/config.php';
$plugin_info = AdvancedSubscriptionPlugin::create()->get_info();