Extend buy_course plugin to include sessions - refs #7272

1.9.x
Imanol Losada 11 years ago
parent 4601849aeb
commit be487d6bee
  1. 1
      main/lang/english/trad4all.inc.php
  2. 1
      main/lang/spanish/trad4all.inc.php
  3. 30
      plugin/buycourses/js/buycourses.js
  4. 3
      plugin/buycourses/lang/english.php
  5. 11
      plugin/buycourses/lang/french.php
  6. 9
      plugin/buycourses/lang/spanish.php
  7. 99
      plugin/buycourses/src/buy_course.lib.php
  8. 220
      plugin/buycourses/src/function.php
  9. 4
      plugin/buycourses/src/list.php
  10. 10
      plugin/buycourses/src/process.php
  11. 58
      plugin/buycourses/src/success.php
  12. 2
      plugin/buycourses/view/configuration.tpl
  13. 30
      plugin/buycourses/view/list.tpl
  14. 46
      plugin/buycourses/view/success.tpl

@ -1624,4 +1624,5 @@ $LegalAgreementAccepted = "Legal agreement accepted";
$FieldTypeMobilePhoneNumber = "Mobile phone";
$CountryDialCode = "Include the country dial code";
$MobilePhoneNumberWrong = "Mobile phone number is incomplete or contains not valid characters";
$SessionName = "Session name";
?>

@ -1616,4 +1616,5 @@ $LegalAgreementAccepted = "Condiciones legales aceptadas";
$FieldTypeMobilePhoneNumber = "Número de móvil";
$CountryDialCode = "Incluya el prefijo de llamada del país";
$MobilePhoneNumberWrong = "El número de móvil que ha escrito está incompleto o contiene caracteres no válidos.";
$SessionName = "Nombre de la sesión";
?>

@ -35,7 +35,7 @@ $(document).ready(function () {
var visible = $(this).parent().parent().prev().prev().children().attr("checked");
var price = $(this).parent().parent().prev().children().attr("value");
var course_id = $(this).attr('id');
var courseOrSession = $(this).parent().parent()[0].attributes[0].value;
var courseOrSession = $(this).parent().parent()[0].attributes[0].value;
if (courseOrSession.indexOf("session") > -1) {
courseOrSession = "session_id";
} else {
@ -55,7 +55,7 @@ $(document).ready(function () {
$("#" + courseOrSession + data.course_id).parent().children().each(function () {
$(this).removeClass("btop");
});
}
}
}, "json");
});
@ -73,6 +73,30 @@ $(document).ready(function () {
e.stopPropagation();
});
$('#confirm_session_filter').click(function (e) {
var vsession = $("#session_name").attr("value");
var sessionpmin = $("#session_price_min").attr("value");
var sessionpmax = $("#session_price_max").attr("value");
if ($("#mostrar_disponibles").attr("checked") == "checked") {
var vshow = "YES";
} else {
var vshow = "NO";
}
var vsessioncategory = $("#sessions_category").attr("value");
$.post("function.php", {tab: "sessions_filter", session: vsession, pricemin: sessionpmin, pricemax: sessionpmax, mostrar: vshow, category: vsessioncategory},
function (data) {
if (data.status == "false") {
alert(data.content);
$("#session_results").html('');
} else {
$("#session_results").html(data.content);
}
$(document).ready(acciones_ajax);
}, "json");
e.preventDefault();
e.stopPropagation();
});
$('#confirm_filter').click(function (e) {
var vcourse = $("#course_name").attr("value");
@ -229,4 +253,4 @@ function acciones_ajax() {
}

@ -1,4 +1,3 @@
<?php
$strings['plugin_title'] = "Sell courses";
$strings['plugin_comment'] = "Sell courses directly through your Chamilo portal, using a PayPal account to receive funds. This plugin is in beta version. Neither the Chamilo association nor the developers involved could be considered responsible of any issue you might suffer using this plugin.";
@ -66,3 +65,5 @@ $strings['ErrorContactPlatformAdmin'] = "Unknown error. Please contact the platf
$strings['PayPalConfig'] = "PayPal configuration:";
$strings['TransfersConfig'] = "Bank transfers configuration:";
$strings['PayPalPaymentOKPleaseConfirm'] = "PayPal reports the transaction is ready to be executed. To acknowledge that you are OK to proceed, please click the confirmation button below. Once clicked, you will be registered to the course and the funds will be transferred from your PayPal account to our shop. You can always access your courses through the 'My courses' tab. Thank you for your custom!";
$strings['EnrollToSessionXSuccessful'] = "Your subscription to the session is complete";
$strings['TheUserIsAlreadyRegisteredInTheSession'] = 'The user is already registered in the session.';

@ -1,22 +1,17 @@
<?php
//Needed in order to show the plugin title
$strings['plugin_title'] = "Vente de cours";
$strings['plugin_comment'] = "Vendez vos cours directement depuis votre portail Chamilo, au travers d'un compte PayPal. Plugin en version beta, à utiliser avec précaution. Ni l'association Chamilo ni les développeurs impliqués dans le développement de ce plugin ne sauraient être tenus responsables d'un quelconque inconvénient causé par celui-ci.";
$strings['Visible'] = "Montrer dans la liste";
$strings['Options'] = "Options";
$strings['Price'] = "Prix";
$strings['SyncCourseDatabase'] = "Synchroniser les cours depuis la base de données";
$strings['Private'] = "Privé - Accès autorisé seulement aux inscrits au cours";
$strings['CourseVisibilityClosed'] = "Fermé - Pas d'accès au cours";
$strings['OpenToThePlatform'] = "Ouvert - Accès autorisé seulement pour les utilisateurs inscrits à la plateforme";
$strings['OpenToTheWorld'] = "Public - Accès autorisé à tous";
$strings['Description'] = "Description";
$strings['Buy'] = "Acheter";
$strings['Mostrar_disponibles'] = "Montrer les cours disponibles";
$strings['include_sessions'] = "Inclure les sessions";
$strings['paypal_enable'] = "Activer PayPal";
$strings['transfer_enable'] = "Activer les transferts bancaires";
@ -24,10 +19,8 @@ $strings['unregistered_users_enable'] = "Permettre l'accès aux utilisateurs non
$strings['Cancelacionpedido'] = "La commande a été annulée.";
$strings['AlreadyBuy'] = "Vous êtes déjà inscrit au cours";
$strings['bc_subject'] = "Confirmation de commande de cours";
$strings['paypal'] = "PayPal";
$strings['confirmar_compra'] = "Confirmer achat de cours";
$strings['TheUserIsAlreadyRegistered'] = "L'utilisateur est déjà inscrit";
$strings['ProblemToSaveTheCurrencyType'] = "Problème de sauvegarde du type de devise";
$strings['ProblemToSaveThePaypalParameters'] = "Problème de sauvegarde des paramètres de Paypal";
@ -48,7 +41,7 @@ $strings['PaymentsConfiguration'] = "Configuration des paiements";
$strings['bc_message'] = "Cher/Chère {{name}}. <br />À la réception de la confirmation de paiement, nous terminerons le processus d'inscrtipion au cours <strong>{{curso}}</strong>.<br><br><strong>N'oubliez pas d'indiquer le numéro de référence de la commande lors de votre transfert: <div style='display:inline;text-align:center; font-weight:bold; font-size:20px; color:#333'>{{reference}}</div></strong>";
$strings['Categories'] = "Catégories";
$strings['BankTransfer'] = 'Transfert bancaire';
$strings['EnrollToCourseXSuccessful'] = "Votre inscription au cours au cours %s est terminée.";
$strings['EnrollToCourseXSuccessful'] = "Votre inscription au cours %s est terminée.";
$strings['SearchFilter'] = "Filtre de recherche";
$strings['MinimumPrice'] = "Prix minimum";
$strings['MaximumPrice'] = "Prix maximum";
@ -72,3 +65,5 @@ $strings['ErrorContactPlatformAdmin'] = "Une erreur inconnue s'est produite. Veu
$strings['PayPalConfig'] = "Configuration PayPal:";
$strings['TransfersConfig'] = "Configuration des transfers bancaires:";
$strings['PayPalPaymentOKPleaseConfirm'] = "PayPal nous indique que la transaction est prête à être exécutée. Par mesure de sécurité, nous vous demandons de bien vouloir confirmer une dernière fois la transaction en cliquant sur le bouton de confirmation ci-dessous. Une fois cliqué, vous serez immédiatement enregistré au cours, et les fonds correspondants seront soustraits de votre compte PayPal. Vous pouvez accéder à vos cours à tout moment à partir de l'onglet 'Mes cours'. Merci de votre fidélité!";
$strings['EnrollToSessionXSuccessful'] = "Votre inscription au session %s est terminée.";
$strings['TheUserIsAlreadyRegisteredInTheSession'] = "L'utilisateur est déjà inscrit au session";

@ -1,22 +1,17 @@
<?php
//Needed in order to show the plugin title
$strings['plugin_title'] = "Venta de cursos";
$strings['plugin_comment'] = "Vender cursos a través de PayPal directamente desde su portal Chamilo. Plugin en versión Beta, a usar con mucha precaución. La asociación Chamilo y los desarrolladores involucrados no pueden ser considerados responsables de cualquier inconveniente que se presente.";
$strings['Visible'] = "Mostrar en el listado";
$strings['Options'] = "Opciones";
$strings['Price'] = "Precio";
$strings['SyncCourseDatabase'] = "Sincronizar cursos de la base de datos";
$strings['Private'] = "Privado - acceso autorizado s&oacute;lo para los miembros del curso";
$strings['CourseVisibilityClosed'] = "Cerrado - no hay acceso a este curso";
$strings['OpenToThePlatform'] = "Abierto - acceso autorizado s&oacute;lo para los usuarios registrados en la plataforma";
$strings['OpenToTheWorld'] = "P&uacute;blico - acceso autorizado a cualquier persona";
$strings['Description'] = "Descripci&oacute;n";
$strings['Buy'] = "Comprar";
$strings['Mostrar_disponibles'] = "Mostrar cursos disponibles";
$strings['include_sessions'] = "Incluir sesiones";
$strings['paypal_enable'] = "Habilitar PayPal";
$strings['transfer_enable'] = "Habilitar transferencia";
@ -24,10 +19,8 @@ $strings['unregistered_users_enable'] = "Permitir usuarios sin registro en la pl
$strings['Cancelacionpedido'] = "El pedido se ha cancelado.";
$strings['AlreadyBuy'] = "Ya está matriculado en el curso";
$strings['bc_subject'] = "Confirmación pedido de cursos";
$strings['paypal'] = 'PayPal';
$strings['confirmar_compra'] = 'Confirmar compra de curso';
$strings['TheUserIsAlreadyRegistered'] = 'El usuario ya está registrado';
$strings['ProblemToSaveTheCurrencyType'] = 'Problema al guardar el tipo de moneda';
$strings['ProblemToSaveThePaypalParameters'] = 'Problema para guardar los parametros de Paypal';
@ -72,3 +65,5 @@ $strings['ErrorContactPlatformAdmin'] = "Se ha producido un error desconocido. P
$strings['PayPalConfig'] = "Configuraci&oacute;n PayPal:";
$strings['TransfersConfig'] = "Configuraci&oacute;n de transferencias:";
$strings['PayPalPaymentOKPleaseConfirm'] = "PayPal nos indicó que todo estaba listo para ejecutar el pago. Por seguridad, le pedimos confirme una última vez su pedido dando clic en el botón de confirmación a bajo. Una vez le haya dado clic, será registrado al curso y el monto correspondiente será retirado de su cuenta PayPal. Siempre puede acceder a sus cursos a partir de la pestaña 'Mis cursos'. Gracias por su compra!";
$strings['EnrollToSessionXSuccessful'] = "Su inscripción en la sesión %s se ha completado.";
$strings['TheUserIsAlreadyRegisteredInTheSession'] = 'El usuario ya está registrado en la sesión.';

@ -31,7 +31,7 @@ function sync()
$sql = "UPDATE $tableBuySessionRelCourse SET sync = 1 WHERE id_session='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuySessionRelCourse (id_session, course_code, nbr_users, sync)
$sql = "INSERT INTO $tableBuySessionRelCourse (id_session, course_code, nbr_users, sync)
VALUES ('" . $row['id_session'] . "', '" . $row['course_code'] . "', '" . $row['nbr_users'] . "', 1);";
Database::query($sql);
}
@ -39,10 +39,8 @@ function sync()
$sql = "DELETE FROM $tableBuySessionRelCourse WHERE sync = 0;";
Database::query($sql);
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = "UPDATE $tableBuyCourse SET sync = 0";
Database::query($sql);
@ -50,7 +48,7 @@ function sync()
$sql = "SELECT id, code, title FROM $tableCourse";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$sql = "SELECT id_session FROM $tableBuySessionRelCourse
$sql = "SELECT id_session FROM $tableBuySessionRelCourse
WHERE course_code = '" . $row['code'] . "' LIMIT 1";
$courseIdSession = Database::fetch_assoc(Database::query($sql))['id_session'];
if (!is_numeric($courseIdSession)) {
@ -63,8 +61,8 @@ function sync()
$sql = "UPDATE $tableBuyCourse SET sync = 1, session_id = $courseIdSession WHERE course_id='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuyCourse (session_id, course_id, code, title, visible, sync)
VALUES ('" . $courseIdSession . "', '" . $row['id'] . "', '" .
$sql = "INSERT INTO $tableBuyCourse (session_id, course_id, code, title, visible, sync)
VALUES ('" . $courseIdSession . "', '" . $row['id'] . "', '" .
$row['code'] . "', '" . $row['title'] . "', 0, 1);";
Database::query($sql);
}
@ -87,8 +85,8 @@ function sync()
$sql = "UPDATE $tableBuySession SET sync = 1 WHERE session_id='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuySession (session_id, name, date_start, date_end, visible, sync)
VALUES ('" . $row['id'] . "', '" . $row['name'] . "', '" .
$sql = "INSERT INTO $tableBuySession (session_id, name, date_start, date_end, visible, sync)
VALUES ('" . $row['id'] . "', '" . $row['name'] . "', '" .
$row['date_start'] . "', '" . $row['date_end'] . "', 0, 1);";
Database::query($sql);
}
@ -129,13 +127,11 @@ function listCourses()
$sql = "SELECT a.course_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.course_id = b.id;";
$res = Database::query($sql);
$aux = array();
while ($row = Database::fetch_assoc($res)) {
$aux[] = $row;
}
return $aux;
}
@ -175,7 +171,7 @@ function userSessionList()
WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
$res = Database::query($sql);
// loop inside a course of current session
while ($row = Database::fetch_assoc($res)) {
while ($row = Database::fetch_assoc($res)) {
//check teacher
$sql = "SELECT lastname, firstname
FROM course_rel_user a, user b
@ -198,13 +194,15 @@ function userSessionList()
//check if the user is enrolled in the current session
if (isset($_SESSION['_user']) || $_SESSION['_user']['user_id'] != '') {
$sql = "SELECT 1 FROM $tableSessionRelUser
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE id_session='".$rowSession['session_id']."' AND
id_user='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "YES";
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE id_session='".$rowSession['session_id']."' AND
id_user='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
@ -214,7 +212,8 @@ function userSessionList()
}
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE id_session='".$rowSession['session_id']."' AND
id_user='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
@ -252,7 +251,6 @@ function userCourseList()
WHERE a.course_code='" . $row['code'] . "'
AND a.role<>'' AND a.role<>'NULL'
AND a.user_id=b.user_id;";
$tmp = Database::query($sql);
$rowTmp = Database::fetch_assoc($tmp);
$row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname'];
@ -295,7 +293,6 @@ function userCourseList()
$row['price'] = number_format($row['price'], 2, '.', ' ');
$aux[] = $row;
}
return $aux;
}
@ -305,7 +302,7 @@ function userCourseList()
function checkUserBuy($parameter, $user, $type = 'COURSE')
{
$sql = "SELECT 1 FROM %s WHERE %s ='" . $parameter . "' AND id_user='" . $user . "';";
$sql = $type === 'SESSION' ?
$sql = $type === 'SESSION' ?
sprintf($sql, Database::get_main_table(TABLE_MAIN_SESSION_USER), 'id_session') :
sprintf($sql, Database::get_main_table(TABLE_MAIN_COURSE_USER), 'course_code');
Database::query($sql);
@ -319,27 +316,10 @@ function checkUserBuy($parameter, $user, $type = 'COURSE')
/**
*
*/
/*function checkUserCourse($course, $user)
{
$tableCourseRelUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT 1 FROM $tableCourseRelUser
WHERE course_code='" . $course . "'
AND user_id='" . $user . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
return true;
} else {
return false;
}
}*/
/**
*
*/
function checkUserBuyTransfer($parameter, $user, $type = 'COURSE')
{
$sql = "SELECT 1 FROM %s WHERE %s ='" . $parameter . "' AND id_user='" . $user . "';";
$sql = $type === 'SESSION' ?
$sql = $type === 'SESSION' ?
sprintf($sql, Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL), 'session_id') :
sprintf($sql, Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL), 'course_code');
Database::query($sql);
@ -350,23 +330,6 @@ function checkUserBuyTransfer($parameter, $user, $type = 'COURSE')
}
}
/**
*
*/
/*function checkUserCourseTransfer($course, $user)
{
$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT 1 FROM $tableBuyCourseTemporal
WHERE course_code='" . $course . "'
AND user_id='" . $user . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
return true;
} else {
return false;
}
}*/
/**
*
*/
@ -489,7 +452,7 @@ function findCurrency()
* @param string $code The session code
* @return array Info about the session
*/
function sessionInfo($code) //TODO
function sessionInfo($code)
{
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
@ -498,7 +461,6 @@ function sessionInfo($code) //TODO
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableSessionRelUser = Database::get_main_table(TABLE_MAIN_SESSION_USER);
//$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$tableBuySessionTemporal = Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL);
$code = Database::escape_string($code);
@ -506,7 +468,7 @@ function sessionInfo($code) //TODO
FROM $tableBuySession a, $tableSession b
WHERE a.session_id=b.id
AND a.visible = 1
AND b.id = '" . $code . "';";
AND b.id = '".$code."';";
$res = Database::query($sql);
$rowSession = Database::fetch_assoc($res);
$sqlSessionCourse = "SELECT DISTINCT a.id_session, a.course_code, a.nbr_users
@ -519,22 +481,22 @@ function sessionInfo($code) //TODO
// get course of current session
$sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
WHERE a.code = b.code AND a.code = '".$rowSessionCourse['course_code']."' AND a.visible = 1;";
$res = Database::query($sql);
// loop inside a course of current session
while ($row = Database::fetch_assoc($res)) {
while ($row = Database::fetch_assoc($res)) {
//check teacher
$sql = "SELECT lastname, firstname
FROM course_rel_user a, user b
WHERE a.course_code='" . $row['code'] . "'
WHERE a.course_code='".$row['code']."'
AND a.role<>'' AND a.role<>'NULL'
AND a.user_id=b.user_id;";
$tmp = Database::query($sql);
$rowTmp = Database::fetch_assoc($tmp);
$row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname'];
$row['teacher'] = $rowTmp['firstname'].' '.$rowTmp['lastname'];
//check images
if (file_exists("../../courses/" . $row['code'] . "/course-pic85x85.png")) {
$row['course_img'] = "courses/" . $row['code'] . "/course-pic85x85.png";
if (file_exists("../../courses/".$row['code']."/course-pic85x85.png")) {
$row['course_img'] = "courses/".$row['code']."/course-pic85x85.png";
} else {
$row['course_img'] = "main/img/without_picture.png";
}
@ -545,13 +507,13 @@ function sessionInfo($code) //TODO
//check if the user is enrolled in the current session
if (isset($_SESSION['_user']) || $_SESSION['_user']['user_id'] != '') {
$sql = "SELECT 1 FROM $tableSessionRelUser
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE user_id='".$_SESSION['_user']['user_id']."';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "YES";
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE user_id='".$_SESSION['_user']['user_id']."';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
@ -561,7 +523,7 @@ function sessionInfo($code) //TODO
}
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
WHERE user_id='".$_SESSION['_user']['user_id']."';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
@ -668,11 +630,7 @@ function calculateReference($bc_codetext)
$sql = "SELECT MAX(cod) as cod FROM $tableBuyTemporal";
$res = Database::query($sql);
$row = Database::fetch_assoc($res);
if ($row['cod'] != '') {
$reference = $row['cod'];
} else {
$reference = '1';
}
$reference = ($row['cod'] != '') ? $row['cod'] : '1';
$randomText = randomText();
$reference .= $randomText;
return $reference;
@ -693,6 +651,5 @@ function pendingList($bc_codetext)
while ($row = Database::fetch_assoc($res)) {
$aux[] = $row;
}
return $aux;
}

@ -13,6 +13,8 @@ require_once api_get_path(LIBRARY_PATH) . 'mail.lib.inc.php';
require_once api_get_path(LIBRARY_PATH) . 'course.lib.php';
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableBuySessionRelCourse = Database::get_main_table(TABLE_BUY_SESSION_COURSE);
$tableSessionRelCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableBuyCourseCountry = Database::get_main_table(TABLE_BUY_COURSE_COUNTRY);
$tableBuyCoursePaypal = Database::get_main_table(TABLE_BUY_COURSE_PAYPAL);
@ -20,6 +22,7 @@ $tableBuyCourseTransfer = Database::get_main_table(TABLE_BUY_COURSE_TRANSFER);
$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableSessionRelUser = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tableCourseRelUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$tableUser = Database::get_main_table(TABLE_MAIN_USER);
@ -27,14 +30,14 @@ $plugin = BuyCoursesPlugin::create();
$buy_name = $plugin->get_lang('Buy');
if ($_REQUEST['tab'] == 'sync') {
$sql = "SELECT code, title FROM $tableCourse;";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$aux_code .= $row['code'];
$aux_title .= $row['title'];
}
$sql = "SELECT name, date_start, date_end FROM $tableSession;";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
@ -42,7 +45,189 @@ if ($_REQUEST['tab'] == 'sync') {
$aux_date_start .= $row['date_start'];
$aux_date_end .= $row['date_end'];
}
echo json_encode(array("status" => "true", "content" => $content));
}
if ($_REQUEST['tab'] == 'sessions_filter') {
$session = Database::escape_string($_REQUEST['session']);
$priceMin = Database::escape_string($_REQUEST['pricemin']);
$priceMax = Database::escape_string($_REQUEST['pricemax']);
$show = Database::escape_string($_REQUEST['show']);
$category = Database::escape_string($_REQUEST['category']);
$server = api_get_path(WEB_PATH);
$filter = '';
if ($session != '') {
$filter .= "b.name LIKE '%" . $session . "%'";
}
if ($priceMin != '') {
if ($filter == '') {
$filter .= "a.price >= '" . $priceMin . "'";
} else {
$filter .= " AND a.price >= '" . $priceMin . "'";
}
}
if ($priceMax != '') {
if ($filter == '') {
$filter .= "a.price <= '" . $priceMax . "'";
} else {
$filter .= " AND a.price <= '" . $priceMax . "'";
}
}
if ($category != '') {
if ($filter == '') {
$filter .= "b.category_code='" . $category . "'";
} else {
$filter .= " AND b.category_code='" . $category . "'";
}
}
if ($filter == '') {
$sql = "SELECT a.session_id, a.visible, a.price, b.*
FROM $tableBuySession a, $tableSession b
WHERE a.session_id = b.id AND a.visible = 1;";
} else {
$sql = "SELECT a.session_id, a.visible, a.price, b.*
FROM $tableBuySession a, $tableSession b
WHERE a.session_id = b.id AND a.visible = 1 AND " . $filter . ";";
}
$resSessions = Database::query($sql);
$auxSessions = array();
// loop through all sessions
while ($rowSession = Database::fetch_assoc($resSessions)) {
// get courses of current session
$sqlSessionCourse = "SELECT DISTINCT a.id_session, a.course_code, a.nbr_users
FROM $tableBuySessionRelCourse a, $tableSessionRelCourse b
WHERE a.id_session = b.id_session AND a.id_session = " . $rowSession['session_id'] . ";";
$resSessionCourse = Database::query($sqlSessionCourse);
$aux = array();
// loop through courses of current session
while ($rowSessionCourse = Database::fetch_assoc($resSessionCourse)) {
// get course of current session
$sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
$res = Database::query($sql);
// loop inside a course of current session
while ($row = Database::fetch_assoc($res)) {
//check teacher
$sql = "SELECT lastname, firstname
FROM course_rel_user a, user b
WHERE a.course_code='" . $row['code'] . "'
AND a.role<>'' AND a.role<>'NULL'
AND a.user_id=b.user_id;";
$tmp = Database::query($sql);
$rowTmp = Database::fetch_assoc($tmp);
$row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname'];
//check images
if (file_exists("../../courses/" . $row['code'] . "/course-pic85x85.png")) {
$row['course_img'] = "courses/" . $row['code'] . "/course-pic85x85.png";
} else {
$row['course_img'] = "main/img/without_picture.png";
}
$row['price'] = number_format($row['price'], 2, '.', ' ');
$aux[] = $row;
}
}
//check if the user is enrolled in the current session
if (isset($_SESSION['_user']) || $_SESSION['_user']['user_id'] != '') {
$sql = "SELECT 1 FROM $tableSessionRelUser
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "YES";
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
// add courses to current session
$rowSession['courses'] = $aux;
// add the current whole session
$auxSessions[] = $rowSession;
}
$currencyType = findCurrency();
foreach ($auxSessions as $session) {
$content .= '<div class="well_border span8">';
$content .= '<div class="row">';
$content .= '<div class="span4 ">';
$content .= '<div class="categories-course-description">';
$content .= '<h3>'.$session['name'].'</h3>';
$content .= '<h5>'.get_lang('From').' '.$session['date_start'];
$content .= ' '.get_lang('Until').' '.$session['date_end'].'</h5>';
$content .= '</div>';
$content .= '</div>';
$content .= '<div class="span right">';
$content .= '<div class="sprice right">';
$content .= $session['price'].' '.$currencyType;
$content .= '</div>';
$content .= '<div class="cleared"></div>';
$content .= '<div class="btn-toolbar right">';
if ($session['enrolled'] == "NO") {
$content .= '<a class="btn btn-success" title=""';
$content .= 'href="'.$server.'plugin/buycourses/src/process.php?scode='.$session['session_id'].'">';
$content .= $buy_name;
$content .= '</a>';
}
$content .= '</div>';
$content .= '</div>';
$content .= '</div>';
$courses = $session['courses'];
foreach ($courses as $course) {
$content .= '<div class="row">';
$content .= '<div class="span">';
$content .= '<div class="thumbnail">';
$content .= '<a class="ajax" rel="gb_page_center[778]" title=""';
$content .= 'href="'.$server.'main/inc/src/course_home.ajax.php?';
$content .= 'a=show_course_information&code='.$course['code'].'">';
$content .= '<img alt="" src="' . $server . $course['course_img'] . '">';
$content .= '</a>';
$content .= '</div>';
$content .= '</div>';
$content .= '<div class="span4">';
$content .= '<div class="categories-course-description">';
$content .= '<h3>' . $course['title'] . '</h3>';
$content .= '<h5>' . get_lang('Teacher') . ': ' . $course['teacher'] . '</h5>';
$content .= '</div>';
if ($course['enrolled'] == "YES") {
$content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegistered').'</span>';
}
$content .= '</div>';
$content .= '<div class="span right">';
$content .= '<div class="cleared"></div>';
$content .= '<div class="btn-toolbar right">';
$content .= '<a class="ajax btn btn-primary" title=""';
$content .= 'href="'.$server.'main/inc/src/course_home.ajax.php?';
$content .= 'a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>';
$content .= '</div>';
$content .= '</div>';
$content .= '</div>';
}
$content .= '</div>';
}
echo json_encode(array("status" => "true", "content" => $content));
}
@ -85,12 +270,12 @@ if ($_REQUEST['tab'] == 'courses_filter') {
if ($filter == '') {
$sql = "SELECT a.course_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.course_id = b.id
WHERE a.course_id = b.id AND a.session_id = 0
AND a.visible = 1;";
} else {
$sql = "SELECT a.course_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.course_id = b.id
WHERE a.course_id = b.id AND a.session_id = 0
AND a.visible = 1 AND " . $filter . ";";
}
@ -143,27 +328,32 @@ if ($_REQUEST['tab'] == 'courses_filter') {
$content .= '<div class="row">';
$content .= '<div class="span">';
$content .= '<div class="thumbnail">';
$content .= '<a class="ajax" rel="gb_page_center[778]" title="" href="' . $server . 'main/inc/ajax/course_home.ajax.php?a=show_course_information&code=' . $course['code'] . '">';
$content .= '<img alt="" src="' . $server . $course['course_img'] . '">';
$content .= '<a class="ajax" rel="gb_page_center[778]" title=""';
$content .= 'href="'.$server.'main/inc/src/course_home.ajax.php?';
$content .= 'a=show_course_information&code='.$course['code'].'">';
$content .= '<img alt="" src="'.$server.$course['course_img'].'">';
$content .= '</a>';
$content .= '</div>';
$content .= '</div>';
$content .= '<div class="span4">';
$content .= '<div class="categories-course-description">';
$content .= '<h3>' . $course['title'] . '</h3>';
$content .= '<h5>' . get_lang('Teacher') . ': ' . $course['teacher'] . '</h5>';
$content .= '<h3>'.$course['title'].'</h3>';
$content .= '<h5>'.get_lang('Teacher').': '.$course['teacher'].'</h5>';
$content .= '</div>';
if ($course['enrolled'] == "YES") {
$content .= '<span class="label label-info">' . $plugin->get_lang('TheUserIsAlreadyRegistered') . '</span>';
$content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegistered').'</span>';
}
$content .= '</div>';
$content .= '<div class="span right">';
$content .= '<div class="sprice right">' . $course['price'] . ' ' . $currencyType . ' </div>';
$content .= '<div class="sprice right">'.$course['price'].' '.$currencyType.'</div>';
$content .= '<div class="cleared"></div>';
$content .= '<div class="btn-toolbar right">';
$content .= '<a class="ajax btn btn-primary" title="" href="' . $server . 'main/inc/ajax/course_home.ajax.php?a=show_course_information&code=' . $course['code'] . '">' . get_lang('Description') . '</a>&nbsp;';
$content .= '<a class="ajax btn btn-primary" title=""';
$content .= 'href="'.$server.'main/inc/src/course_home.ajax.php?';
$content .= 'a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>&nbsp;';
if ($course['enrolled'] != "YES") {
$content .= '<a class="btn btn-success" title="" href="' . $server . 'plugin/buycourses/src/process.php?code=' . $course['id'] . '">' . $buy_name . '</a>';
$content .= '<a class="btn btn-success" title=""';
$content .= 'href="'.$server.'plugin/buycourses/src/process.php?code='.$course['id'].'">'.$buy_name.'</a>';
}
$content .= '</div>';
$content .= '</div>';
@ -244,11 +434,11 @@ if ($_REQUEST['tab'] == 'delete_account') {
if ($_REQUEST['tab'] == 'save_mod') {
$_REQUEST['id'] = Database::escape_string($_REQUEST['id']);
$id = intval($_REQUEST['course_id']);
$tableBuy = $tableBuyCourse;
$tableField = 'course_id';
if (isset($_REQUEST['session_id'])) {
$id = intval($_REQUEST['session_id']);
$tableBuy = $tableBuySession;

@ -52,8 +52,8 @@ $tpl->assign('currency', $currencyType);
$result = array_shift(
Database::select(
'selected_value',
Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT),
'selected_value',
Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT),
array('where'=> array('variable = ?' => array('buycourses_include_sessions')))
)
);

@ -29,21 +29,21 @@ if (!empty($_GET['code'])) {
$result = array_shift(
Database::select(
'selected_value',
Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT),
'selected_value',
Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT),
array('where'=> array('variable = ?' => array('buycourses_include_sessions')))
)
);
if ($codeType === 'SESSION' && $result['selected_value'] === 'true') {
if ($codeType === 'SESSION' && $result['selected_value'] === 'true') {
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$sql = "SELECT a.session_id, a.name, a.date_start, a.date_end, a.price
FROM $tableBuySession a, $tableSession b
WHERE a.session_id = " . $code . "
WHERE a.session_id = ".$code."
AND a.session_id = b.id;";
$res = Database::query($sql);
$row = Database::fetch_assoc($res);
$row = Database::fetch_assoc($res);
$_SESSION['bc_title'] = $row['name'];
$_SESSION['bc_codetext'] = 'THIS_IS_A_SESSION';
$tpl->assign('session', sessionInfo($code));

@ -34,13 +34,13 @@ require_once("paypalfunctions.php");
* PayPal Express Checkout Call
*/
// Check to see if the Request object contains a variable named 'token'
// Check to see if the Request object contains a variable named 'token'
$token = "";
if (isset($_REQUEST['token'])) {
$token = $_REQUEST['token'];
}
// If the Request object contains the variable 'token' then it means that the user is coming from PayPal site.
// If the Request object contains the variable 'token' then it means that the user is coming from PayPal site.
if ($token != "") {
$sql = "SELECT * FROM $tableBuyCoursePaypal WHERE id='1';";
$res = Database::query($sql);
@ -106,9 +106,13 @@ if (!isset($_POST['paymentOption'])) {
$tpl = new Template($templateName);
$_SESSION['bc_codetext'] === 'THIS_IS_A_SESSION' ?
$tpl->assign('session', sessionInfo($_SESSION['bc_code'])) :
if ($_SESSION['bc_codetext'] === 'THIS_IS_A_SESSION') {
$tpl->assign('isSession', 'YES');
$tpl->assign('session', sessionInfo($_SESSION['bc_code']));
} else {
$tpl->assign('course', courseInfo($_SESSION['bc_code']));
}
$tpl->assign('server', $_configuration['root_web']);
$tpl->assign('title', $_SESSION['bc_title']);
$tpl->assign('price', $_SESSION['Payment_Amount']);
@ -210,31 +214,28 @@ if (!isset($_POST['paymentOption'])) {
* refund: A reversal has occurred on this transaction because you have given the customer a refund.
* other: A reversal has occurred on this transaction due to a reason not listed above.
*/
//api_get_session_info($session_id)
$reasonCode = $resArray["PAYMENTINFO_0_REASONCODE"];
// Insert the user information to activate the user
if ($paymentStatus == "Completed") {
$user_id = $_SESSION['bc_user_id'];
$userId = $_SESSION['bc_user_id'];
if ($_SESSION['bc_codetext'] === 'THIS_IS_A_SESSION') {
$session_id = $_SESSION['bc_code'];
$all_session_information = Session::api_get_session_info($session_id);
if (SessionManager::suscribe_users_to_session($session_id, array($user_id),
api_get_session_visibility($session_id), false)) {
//$send = api_get_session_setting('email_alert_to_teacher_on_new_user_in_session', $session_id);
//if ($send == 1) {
//SessionManager::email_to_tutor($user_id, $session_id, $send_to_tutor_also = false);
/*} else if ($send == 2) {
CourseManager::email_to_tutor($user_id, $session_id, $send_to_tutor_also = true);
}*/
//$url = Display::url($all_session_information['name'], api_get_session_url($session_id));
$_SESSION['bc_message'] = 'EnrollToSessionXSuccessful';
$_SESSION['bc_url'] = '';//$url;
$_SESSION['bc_success'] = true;
} else {
$_SESSION['bc_message'] = 'ErrorContactPlatformAdmin';
$_SESSION['bc_success'] = false;
}
$sessionId = $_SESSION['bc_code'];
$all_session_information = SessionManager::fetch($sessionId);
SessionManager::suscribe_users_to_session(
$sessionId,
array($userId),
api_get_session_visibility($sessionId),
false
);
$url = Display::url(
$all_session_information['name'],
$_configuration['root_web']."main/session/index.php?session_id=".$sessionId
);
$_SESSION['bc_message'] = 'EnrollToSessionXSuccessful';
$_SESSION['bc_url'] = $url;
$_SESSION['bc_success'] = true;
} else {
$course_code = $_SESSION['bc_codetext'];
$all_course_information = CourseManager::get_course_information($course_code);
@ -254,6 +255,7 @@ if (!isset($_POST['paymentOption'])) {
$_SESSION['bc_success'] = false;
}
}
// Activate the use
$TABLE_USER = Database::get_main_table(TABLE_MAIN_USER);
$sql = "UPDATE " . $TABLE_USER . " SET active='1' WHERE user_id='" . $_SESSION['bc_user_id'] . "'";
@ -282,18 +284,18 @@ if (!isset($_POST['paymentOption'])) {
$_user['lastLogin'] = api_strtotime($uData['login_date'], 'UTC');
$is_platformAdmin = (bool)(!is_null($uData['is_admin']));
$is_allowedCreateCourse = (bool)(($uData ['status'] == COURSEMANAGER) or (api_get_setting('drhCourseManagerRights') and $uData['status'] == DRH));
ConditionalLogin::check_conditions($uData);
Session::write('_user', $_user);
UserManager::update_extra_field_value($_user['user_id'], 'already_logged_in', 'true');
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
} else {
header('location:' . api_get_path(WEB_PATH));
}

@ -15,7 +15,7 @@ $(function() {
</script>
{% if sessionsAreIncluded == "YES" %}
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"> <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"> <a href="#tabs-1"> Cursos</a></li><li class="ui-state-default ui-corner-top"> <a href="#tabs-2"> Sesiones</a></li></ul>
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"> <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"> <a href="#tabs-1">{{ 'Courses'|get_lang }}</a></li><li class="ui-state-default ui-corner-top"> <a href="#tabs-2">{{ 'Sessions'|get_lang }}</a></li></ul>
{% endif %}
<div id="tabs-1" class="row">

@ -15,13 +15,13 @@ $(function() {
</script>
{% if sessionsAreIncluded == "YES" %}
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"> <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"> <a href="#tabs-1"> Cursos</a></li><li class="ui-state-default ui-corner-top"> <a href="#tabs-2"> Sesiones</a></li></ul>
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"> <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"> <a href="#tabs-1">{{ 'Courses'|get_lang }}</a></li><li class="ui-state-default ui-corner-top"> <a href="#tabs-2">{{ 'Sessions'|get_lang }}</a></li></ul>
{% endif %}
<div id="tabs-1" class="row">
<div class="span3">
<div id="course_category_well" class="well">
<ul class="nav nav-list">
<ul class="nav nav-list">
<li class="nav-header"><h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4></li>
<li class="nav-header">{{ 'CourseName'|get_lang }}:</li>
<li><input type="text" id="course_name" style="width:95%"/></li>
@ -42,7 +42,7 @@ $(function() {
</li>
<br />
<li class="ta-center">
<input type="button" class="btn btn-primary" value="Search Courses" id="confirm_filter" />
<input type="button" class="btn btn-primary" value="{{ 'Search'|get_lang }}" id="confirm_filter" />
</li>
</ul>
</div>
@ -100,19 +100,19 @@ $(function() {
<div id="tabs-2" class="row">
<div class="span3">
<div id="course_category_well" class="well">
<ul class="nav nav-list">
<ul class="nav nav-list">
<li class="nav-header"><h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4></li>
<li class="nav-header">{{ 'Nombre de la sesión'|get_lang }}:</li>
<li><input type="text" id="course_name" style="width:95%"/></li>
<li class="nav-header">{{ 'SessionName'|get_lang }}:</li>
<li><input type="text" id="session_name" style="width:95%"/></li>
<li class="nav-header">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:
<input type="text" id="price_min" class="span1"/>
<input type="text" id="session_price_min" class="span1"/>
</li>
<li class="nav-header">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:
<input type="text" id="price_max" class="span1"/>
<input type="text" id="session_price_max" class="span1"/>
</li>
<li class="nav-header">{{ 'Categories'|get_lang }}:</li>
<li>
<select id="courses_category">
<select id="sessions_category">
<option value="" selected="selected"></option>
{% for category in categories %}
<option value="{{ category.code }}">{{ category.name }}</option>
@ -121,7 +121,7 @@ $(function() {
</li>
<br />
<li class="ta-center">
<input type="button" class="btn btn-primary" value="Search Courses" id="confirm_filter" />
<input type="button" class="btn btn-primary" value="{{ 'Search'|get_lang }}" id="confirm_session_filter" />
</li>
</ul>
</div>
@ -137,8 +137,14 @@ $(function() {
<div class="row">
<div class="span4 ">
<div class="categories-course-description">
<h3>{{ session.name }}</h3>
<h5>{{ 'From'|get_lang }} {{ session.date_start }} {{ 'To'|get_lang }} {{ session.date_end }}</h5>
<h3>{{ session.name }}</h3>
<h5>{{ 'From'|get_lang }} {{ session.date_start }} {{ 'Until'|get_lang }} {{ session.date_end }}</h5>
{% if session.enrolled == "YES" %}
<span class="label label-info">{{ 'TheUserIsAlreadyRegisteredInTheSession'|get_plugin_lang('BuyCoursesPlugin') }}</span>
{% endif %}
{% if session.enrolled == "TMP" %}
<span class="label label-warning">{{ 'WaitingToReceiveThePayment'|get_plugin_lang('BuyCoursesPlugin') }}</span>
{% endif %}
</div>
</div>
<div class="span right">

@ -20,11 +20,52 @@
<br/><br/>
<div class="well_border span8">
{% if isSession == "YES" %}
<div class="row">
<div class="span4">
<div class="categories-course-description">
<h3>{{ session.name }}</h3>
<h5>{{ 'From'|get_lang }} {{ session.date_start }} {{ 'To'|get_lang }} {{ session.date_end }}</h5>
</div>
</div>
<div class="span right">
<div class="sprice right">
{{ session.price }} {{ currency }}
</div>
<div class="cleared"></div>
</div>
</div>
{% for course in session.courses %}
<div class="row">
<div class="span">
<div class="thumbnail">
<a class="ajax" rel="gb_page_center[778]" title="" href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">
<img alt="" src="{{ server }}{{ course.course_img }}">
</a>
</div>
</div>
<div class="span4">
<div class="categories-course-description">
<h3>{{ course.title }}</h3>
<h5>{{ 'Teacher'|get_lang }}: {{ course.teacher }}</h5>
</div>
</div>
<div class="span right">
<div class="cleared"></div>
<div class="btn-toolbar right">
<a class="ajax btn btn-primary" title="" href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">
{{ 'Description'|get_lang }}
</a>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div class="row">
<div class="span">
<div class="thumbnail">
<a class="ajax" rel="gb_page_center[778]" title=""
href="{{ server }}plugin/buycourses/function/ajax.php?code={{ course.code }}">
href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">
<img alt="" src="{{ server }}{{ course.course_img }}">
</a>
</div>
@ -40,11 +81,12 @@
<div class="cleared"></div>
<div class="btn-toolbar right">
<a class="ajax btn btn-primary" title=""
href="{{ server }}plugin/buycourses/function/ajax.php?code={{ course.code }}">{{'Description'|get_lang }}</a>
href="{{ server }}plugin/buycourses/src/ajax.php?code={{ course.code }}">{{'Description'|get_lang }}</a>
</div>
</div>
</div>
{% endif %}
</div>
</div>
<div class="cleared"></div>

Loading…
Cancel
Save