/** * 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));
<?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
<?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();