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. 166
      plugin/buycourses/src/function.php
  4. 18
      plugin/buycourses/view/list.tpl

@ -73,61 +73,25 @@ $(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();
});
$(".filter").click(function (e) {
var target = "#"+($(this).closest(".row").children().last()).attr("id");
var filterFields = $(this).siblings("input");
var filterFieldsData;
var filterFieldsData = { tab: $(this).attr("id") };
$.each(filterFields, function() {
console.log($(this));
//filterFieldsData.push($(this));
// Get only the first class
var className = $(this).attr("class").split(" ")[0];
filterFieldsData[className] = $(this).val();
});
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},
$.post("function.php", filterFieldsData,
function (data) {
if (data.status == "false") {
alert(data.content);
$("#course_results").html('');
$(target).html('');
} else {
$("#course_results").html(data.content);
$(target).html(data.content);
}
$(document).ready(acciones_ajax);
}, "json");
e.preventDefault();
e.stopPropagation();
});

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

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

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

Loading…
Cancel
Save