Fix session filter. Fix session style when filtering. Write simpler and more efficient code - refs #7528

1.10.x
Imanol Losada 11 years ago
parent 5699594282
commit dbc2caabfb
  1. 52
      plugin/buycourses/js/buycourses.js
  2. 6
      plugin/buycourses/resources/css/style.css
  3. 164
      plugin/buycourses/src/function.php
  4. 18
      plugin/buycourses/view/list.tpl

@ -73,61 +73,25 @@ $(document).ready(function () {
e.stopPropagation(); 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();
});
$(".filter").click(function (e) { $(".filter").click(function (e) {
var target = "#"+($(this).closest(".row").children().last()).attr("id");
var filterFields = $(this).siblings("input"); var filterFields = $(this).siblings("input");
var filterFieldsData; var filterFieldsData = { tab: $(this).attr("id") };
$.each(filterFields, function() { $.each(filterFields, function() {
console.log($(this)); // Get only the first class
//filterFieldsData.push($(this)); var className = $(this).attr("class").split(" ")[0];
filterFieldsData[className] = $(this).val();
}); });
$.post("function.php", filterFieldsData,
var vcourse = $("#course_name").attr("value");
var pmin = $("#price_min").attr("value");
var pmax = $("#price_max").attr("value");
if ($("#mostrar_disponibles").attr("checked") == "checked") {
var vshow = "YES";
} else {
var vshow = "NO";
}
var vcategory = $("#courses_category").attr("value");
$.post("function.php", {tab: "courses_filter", course: vcourse, pricemin: pmin, pricemax: pmax, mostrar: vshow, category: vcategory},
function (data) { function (data) {
if (data.status == "false") { if (data.status == "false") {
alert(data.content); alert(data.content);
$("#course_results").html(''); $(target).html('');
} else { } else {
$("#course_results").html(data.content); $(target).html(data.content);
} }
$(document).ready(acciones_ajax); $(document).ready(acciones_ajax);
}, "json"); }, "json");
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
}); });

@ -82,14 +82,14 @@ select#lsessions, select#lcourses, select#lexercises, select#status {
.margin-left-fifty{ .margin-left-fifty{
margin-left: 50px !important; margin-left: 50px !important;
} }
#course_category_well h4{ .category_well h4{
padding-left: 0; padding-left: 0;
} }
#course_category_well .form-content{ .category_well .form-content{
padding-left: 1em; padding-left: 1em;
padding-right: 1em; padding-right: 1em;
} }
#course_category_well .btn{ .category_well .btn{
width: 100%; width: 100%;
line-height: 30px; line-height: 30px;
font-size: 16px; font-size: 16px;

@ -27,7 +27,7 @@ $tableUser = Database::get_main_table(TABLE_MAIN_USER);
$plugin = BuyCoursesPlugin::create(); $plugin = BuyCoursesPlugin::create();
$buy_name = $plugin->get_lang('Buy'); $buy_name = $plugin->get_lang('Buy');
error_log($_REQUEST['tab']);
if ($_REQUEST['tab'] == 'sync') { if ($_REQUEST['tab'] == 'sync') {
$sql = "SELECT code, title FROM $tableCourse;"; $sql = "SELECT code, title FROM $tableCourse;";
$res = Database::query($sql); $res = Database::query($sql);
@ -46,48 +46,35 @@ if ($_REQUEST['tab'] == 'sync') {
} }
if ($_REQUEST['tab'] == 'sessions_filter') { if ($_REQUEST['tab'] == 'sessions_filter') {
$session = isset($_REQUEST['session']) ? Database::escape_string($_REQUEST['session']) : ''; $session = isset($_REQUEST['name']) ? Database::escape_string($_REQUEST['name']) : '';
$priceMin = isset($_REQUEST['pricemin']) ? Database::escape_string($_REQUEST['pricemin']) : ''; $priceMin = isset($_REQUEST['pricemin']) ? floatval($_REQUEST['pricemin']) : 0;
$priceMax = isset($_REQUEST['pricemax']) ? Database::escape_string($_REQUEST['pricemax']) : ''; $priceMax = isset($_REQUEST['pricemax']) ? floatval($_REQUEST['pricemax']) : 0;
$category = isset($_REQUEST['category']) ? Database::escape_string($_REQUEST['category']) : ''; //$category = isset($_REQUEST['category']) ? Database::escape_string($_REQUEST['category']) : '';
$server = api_get_path(WEB_PATH); $server = api_get_path(WEB_PATH);
$filter = ''; $sql = "SELECT a.session_id, a.visible, a.price, b.*
if ($session != '') { FROM $tableBuySession a, $tableSession b
$filter .= "b.name LIKE '%" . $session . "%'"; WHERE a.session_id = b.id AND a.visible = 1;";
}
if ($priceMin != '') { $filter = "";
if ($filter == '') { if (!empty($session)) {
$filter .= "a.price >= '" . $priceMin . "'"; $filter .= " AND b.name LIKE '%".$session."%'";
} else {
$filter .= " AND a.price >= '" . $priceMin . "'";
}
} }
if ($priceMax != '') { if ($priceMin > 0) {
if ($filter == '') { $filter .= " AND a.price >= ".$priceMin;
$filter .= "a.price <= '" . $priceMax . "'";
} else {
$filter .= " AND a.price <= '" . $priceMax . "'";
} }
if ($priceMax > 0) {
$filter .= " AND a.price <= ".$priceMax;
} }
if ($category != '') { /*if (!empty($category)) {
if ($filter == '') {
$filter .= "b.category_code='" . $category . "'";
} else {
$filter .= " AND b.category_code = '".$category."'"; $filter .= " AND b.category_code = '".$category."'";
} }*/
}
if ($filter == '') { if (!empty($filter)) {
$sql = "SELECT a.session_id, a.visible, a.price, b.* $sql = substr_replace($sql, $filter.";", -1);
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); $resSessions = Database::query($sql);
@ -106,7 +93,7 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
// get course of current session // get course of current session
$sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.* $sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse 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'] . "';";
$res = Database::query($sql); $res = Database::query($sql);
// loop inside a course of current session // loop inside a course of current session
while ($row = Database::fetch_assoc($res)) { while ($row = Database::fetch_assoc($res)) {
@ -168,60 +155,65 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
$currencyType = findCurrency(); $currencyType = findCurrency();
$content = ''; $content = '';
foreach ($auxSessions as $session) { foreach ($auxSessions as $session) {
$content .= '<div class="well_border span8">'; $content .= '<div class="span8 well-course">
$content .= '<div class="row">'; <div class="row">
$content .= '<div class="span4 ">'; <div class="span4 ">
$content .= '<div class="categories-course-description">'; <div class="categories-course-description">
$content .= '<h3>'.$session['name'].'</h3>'; <h3>'.$session['name'].'</h3>
$content .= '<h5>'.get_lang('From').' '.$session['date_start']; <h5>'.get_lang('From').' '.$session['date_start'].
$content .= ' '.get_lang('Until').' '.$session['date_end'].'</h5>'; ' '.get_lang('Until').' '.$session['date_end'].'</h5>';
if ($session['enrolled'] == "YES") { if ($session['enrolled'] == "YES") {
$content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegisteredInTheSession').'</span>'; $content .= '<span class="label label-info">'.$plugin->get_lang('TheUserIsAlreadyRegisteredInTheSession').'</span>';
} }
$content .= '</div>'; if ($session['enrolled'] == "TMP") {
$content .= '</div>'; $content .= '<span class="label label-warning">'.$plugin->get_lang('WaitingToReceiveThePayment').'</span>';
$content .= '<div class="span right">'; }
$content .= '<div class="sprice right">'; $content .= '</div>
$content .= $session['price'].' '.$currencyType; </div>
$content .= '</div>'; <div class="span right">
$content .= '<div class="cleared"></div>'; <div class="sprice right">'.
$content .= '<div class="btn-toolbar right">'; $session['price'].' '.$currencyType.'
</div>
<div class="cleared">
</div>
<div class="btn-group right">';
if ($session['enrolled'] == "NO") { if ($session['enrolled'] == "NO") {
$content .= '<a class="btn btn-success" title=""'; $content .= '<a class="btn btn-success" title="" href="'.$server.
$content .= 'href="'.$server.'plugin/buycourses/src/process.php?scode='.$session['session_id'].'">'; 'plugin/buycourses/src/process.php?scode='.$session['session_id'].'">'.
$content .= $buy_name; $buy_name.
$content .= '</a>'; '</a>';
} }
$content .= '</div>'; $content .= '</div>
$content .= '</div>'; </div>
$content .= '</div>'; </div>';
$courses = $session['courses']; $courses = $session['courses'];
foreach ($courses as $course) { foreach ($courses as $course) {
$content .= '<div class="row">'; $content .= '<div class="row">
$content .= '<div class="span">'; <div class="span">
$content .= '<div class="thumbnail">'; <div class="thumbnail">
$content .= '<a class="ajax" rel="gb_page_center[778]" title=""'; <a class="ajax" rel="gb_page_center[778]" title=""
$content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?'; href="'.$server.'plugin/buycourses/src/ajax.php?
$content .= 'a=show_course_information&code='.$course['code'].'">'; a=show_course_information&code='.$course['code'].'">
$content .= '<img alt="" src="' . $server . $course['course_img'] . '">'; <img alt="" src="' . $server . $course['course_img'] . '">
$content .= '</a>'; </a>
$content .= '</div>'; </div>
$content .= '</div>'; </div>
$content .= '<div class="span4">'; <div class="span4">
$content .= '<div class="categories-course-description">'; <div class="categories-course-description">
$content .= '<h3>' . $course['title'] . '</h3>'; <h3>'.$course['title'].'</h3>
$content .= '<h5>' . get_lang('Teacher') . ': ' . $course['teacher'] . '</h5>'; <h5>'.get_lang('Teacher').': '.$course['teacher'].'</h5>
$content .= '</div>'; </div>
$content .= '</div>'; </div>
$content .= '<div class="span right">'; <div class="span right">
$content .= '<div class="cleared"></div>'; <div class="cleared">
$content .= '<div class="btn-toolbar right">'; </div>
$content .= '<a class="ajax btn btn-primary" title=""'; <div class="btn-group right">
$content .= 'href="'.$server.'plugin/buycourses/src/ajax.php?'; <a class="ajax btn btn-primary" title=""
$content .= 'a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>'; href="'.$server.'plugin/buycourses/src/ajax.php?
$content .= '</div>'; a=show_course_information&code='.$course['code'].'">'.get_lang('Description').'</a>
$content .= '</div>'; </div>
$content .= '</div>'; </div>
</div>';
} }
$content .= '</div>'; $content .= '</div>';
} }
@ -230,14 +222,14 @@ if ($_REQUEST['tab'] == 'sessions_filter') {
} }
if ($_REQUEST['tab'] == 'courses_filter') { if ($_REQUEST['tab'] == 'courses_filter') {
$course = isset($_REQUEST['course']) ? Database::escape_string($_REQUEST['course']) : ''; $course = isset($_REQUEST['name']) ? Database::escape_string($_REQUEST['name']) : '';
$priceMin = isset($_REQUEST['pricemin']) ? floatval($_REQUEST['pricemin']) : 0; $priceMin = isset($_REQUEST['pricemin']) ? floatval($_REQUEST['pricemin']) : 0;
$priceMax = isset($_REQUEST['pricemax']) ? floatval($_REQUEST['pricemax']) : 0; $priceMax = isset($_REQUEST['pricemax']) ? floatval($_REQUEST['pricemax']) : 0;
/** /**
* Deprecated since 2014-10-14 * Deprecated since 2014-10-14
*/ */
//$show = Database::escape_string($_REQUEST['show']); //$show = Database::escape_string($_REQUEST['show']);
$category = Database::escape_string($_REQUEST['category']); //$category = Database::escape_string($_REQUEST['category']);
$server = api_get_path(WEB_PATH); $server = api_get_path(WEB_PATH);
$sql = "SELECT a.course_id, a.visible, a.price, b.* $sql = "SELECT a.course_id, a.visible, a.price, b.*
@ -258,9 +250,9 @@ if ($_REQUEST['tab'] == 'courses_filter') {
$filter .= " AND a.price <= ".$priceMax; $filter .= " AND a.price <= ".$priceMax;
} }
if (!empty($category)) { /*if (!empty($category)) {
$filter .= " AND b.category_code = '".$category."'"; $filter .= " AND b.category_code = '".$category."'";
} }*/
if (!empty($filter)) { if (!empty($filter)) {
$sql = substr_replace($sql, $filter.";", -1); $sql = substr_replace($sql, $filter.";", -1);

@ -21,15 +21,15 @@ $(function() {
<div id="tabs-1"> <div id="tabs-1">
<div class="row"> <div class="row">
<div class="span3"> <div class="span3">
<div id="course_category_well" class="well"> <div class="category_well well">
<div class="form-content"> <div class="form-content">
<h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4> <h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4>
<label class="control-label">{{ 'CourseName'|get_lang }}:</label> <label class="control-label">{{ 'CourseName'|get_lang }}:</label>
<input type="text" id="course" /> <input type="text" class="name" />
<label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label> <label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
<input type="text" id="coursepricemin" class="span1"/> <input type="text" class="pricemin span1"/>
<label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label> <label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
<input type="text" id="coursepricemax" class="span1"/> <input type="text" class="pricemax span1"/>
{% for category in categories %} {% for category in categories %}
<label class="control-label">{{ 'Categories'|get_lang }}:</label> <label class="control-label">{{ 'Categories'|get_lang }}:</label>
<select id="courses_category"> <select id="courses_category">
@ -95,18 +95,18 @@ $(function() {
{% if sessionsAreIncluded == "YES" %} {% if sessionsAreIncluded == "YES" %}
<div id="tabs-2" class="row"> <div id="tabs-2" class="row">
<div class="span3"> <div class="span3">
<div id="course_category_well" class="well"> <div class="category_well well">
<div class="form-content"> <div class="form-content">
<h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4> <h4>{{ 'SearchFilter'|get_plugin_lang('BuyCoursesPlugin') }}:</h4>
<label class="control-label">{{ 'SessionName'|get_lang }}:</label> <label class="control-label">{{ 'SessionName'|get_lang }}:</label>
<input type="text" id="session" /> <input type="text" class="name" />
<label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label> <label class="control-label">{{ 'MinimumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
<input type="text" id="sessionpricemin" class="span1"/> <input type="text" class="pricemin span1"/>
<label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label> <label class="control-label">{{ 'MaximumPrice'|get_plugin_lang('BuyCoursesPlugin') }}:</label>
<input type="text" id="sessionpricemax" class="span1"/> <input type="text" class="pricemax span1"/>
{% for category in categories %} {% for category in categories %}
<label class="control-label">{{ 'Categories'|get_lang }}:</label> <label class="control-label">{{ 'Categories'|get_lang }}:</label>
<select id="courses_category"> <select id="sessions_category">
<option value="" selected="selected"></option> <option value="" selected="selected"></option>
<option value="{{ category.code }}">{{ category.name }}</option> <option value="{{ category.code }}">{{ category.name }}</option>
</select> </select>

Loading…
Cancel
Save