chamilo/chamilo-lms

View on GitHub
public/plugin/advanced_subscription/src/open_session.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

/* For licensing terms, see /license.txt */
/**
 * Validate requirements for a open session.
 *
 * @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
 */
require_once __DIR__.'/../config.php';

$plugin = AdvancedSubscriptionPlugin::create();

if (!isset($_GET['session_id'], $_GET['user_id'], $_GET['profile_completed'])) {
    exit;
}

$sessionInfo = api_get_session_info($_GET['session_id']);

$tpl = new Template(
    $plugin->get_lang('plugin_title'),
    false,
    false,
    false,
    false,
    false
);
$tpl->assign('session', $sessionInfo);

if (SessionManager::isUserSubscribedAsStudent(
    $_GET['session_id'],
    $_GET['user_id']
)) {
    $tpl->assign('is_subscribed', false);
    $tpl->assign(
        'errorMessages',
        [sprintf(
            $plugin->get_lang('YouAreAlreadySubscribedToSessionX'),
            $sessionInfo['title']
        )]
    );
} else {
    if (!$plugin->isAllowedSubscribeToOpenSession($_GET)) {
        $tpl->assign('is_subscribed', false);
        $tpl->assign('errorMessages', $plugin->getErrorMessages());
    } else {
        SessionManager::subscribeUsersToSession(
            $_GET['session_id'],
            [$_GET['user_id']],
            SESSION_VISIBLE_READ_ONLY,
            false
        );

        $tpl->assign('is_subscribed', true);
    }
}

$content = $tpl->fetch('/advanced_subscription/views/open_session.tpl');

$tpl->assign('content', $content);
$tpl->display_one_col_template();