Основной курс по Joomla

Плагин сортировки материалов с фронта

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 376 Просмотров
*

Wertos

  • Завсегдатай
  • *****
  • 505
  • 21
Поиск в JED и Google ничего не дал ((

Собственно решил я так, в /com_content/tmpl/category/blog.php добавил код
Код
<div id="sort" style="padding-bottom: 20px; width: 100%; display: block; clear: both; margin: 0 auto; text-align: center;">
<form action="" method="get" id="order_form">
  Упорядочить материалы по:&nbsp;&nbsp;
<select id="filter_order" name="filter_order">
<option value="a.ordering">По порядку</option>
<option value="a.title">По заголовку</option>
<option value="a.created_by">По автору</option>
<option value="a.created">Дате создания</option>
<option value="a.id">По ID</option>
<option value="a.hits">Кол-ву просмотров</option>
</select>
&nbsp;&nbsp;
<select name="filter_order_Dir" id="filter_order_Dir">
<option value="DESC">По убыванию</option>
<option value="ASC">По возрастанию</option>
</select>
&nbsp;&nbsp;
<button onclick="jQuery(this).submit();" class="btn btn-mini btn-success">
<span class="icon-search icon-white"></span>
Упорядочить</button>
</form>
<script type="text/javascript">
p1 = getParameterByName("filter_order");
p2 = getParameterByName("filter_order_Dir");
if(p1 && p2)
{
jQuery("#filter_order option[value='"+p1+"']").attr("selected", "selected");
jQuery("#filter_order_Dir option[value='"+p2+"']").attr("selected", "selected");
jQuery("#order_form select").trigger("chosen:updated");
}

function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
</script>
</div>
Работает как надо, НО есть ли более красивое решение аля plugin ?


*

robert

  • Профи
  • ********
  • 4009
  • 371
1. Можно не плагином, а модулем.
2. Не нужно столько JavaScript-кода только для отображения "selected" - проще и быстрее на PHP, а JavaScript'ом отправить форму (onchange, onclick...).
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Wertos

  • Завсегдатай
  • *****
  • 505
  • 21
1. Можно не плагином, а модулем.
2. Не нужно столько JavaScript-кода только для отображения "selected" - проще и быстрее на PHP, а JavaScript'ом отправить форму (onchange, onclick...).
1) Модулем наверное не выйдет. Дело в том что у меня 2 категории и в них по сотне подкатегорий(которых в меню нет!!) т.е. модуль получается будет выводиться и в родительских категориях, что мне собственно не нужно.

2) Можно и на php, но JQuery ближе ((( увы...

*

robert

  • Профи
  • ********
  • 4009
  • 371
1) Модулем наверное не выйдет. Дело в том что у меня 2 категории и в них по сотне подкатегорий(которых в меню нет!!) т.е. модуль получается будет выводиться и в родительских категориях, что мне собственно не нужно.
Не понял, причем тут родительские категории и меню? Модуль будет работать точно так же, как и ваша форма в шаблоне, вопрос только в том, нужен ли вообще модуль.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Wertos

  • Завсегдатай
  • *****
  • 505
  • 21
Не понял, причем тут родительские категории и меню? Модуль будет работать точно так же, как и ваша форма в шаблоне, вопрос только в том, нужен ли вообще модуль.
Как мне показывать модуль только в подкатегориях ? Через привязку к пунктам меню я думаю... только подкатегорий в меню у меня нет.

*

robert

  • Профи
  • ********
  • 4009
  • 371
А как вы показывали свою форму только в подкатегориях?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Wertos

  • Завсегдатай
  • *****
  • 505
  • 21
templates/xxx/warp/system/joomla/layouts/com_content/category/blog.php добавил код, в родительских категориях он не показывается...

*

robert

  • Профи
  • ********
  • 4009
  • 371
Там наверняка должно быть условие, иначе форма была бы видна везде. В модуле пропишите то же самое.
В общем, сначала напишите модуль, чтобы был предмет обсуждения.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Wertos

  • Завсегдатай
  • *****
  • 505
  • 21
Условий нет... как есть...
Модуль врядли написать смогу в ближайшее время ибо мои познания в J! практически нулевые...