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

antarey

  • Захожу иногда
  • 105
  • 0 / 0
Добрый день.
Есть блок категории и в меню на главную страницу в параметрах выбирается тег.
Необходимо сделать модуль фильтра по категории и тегу. В идеале с AJAX загрузкой.
Подскажите в какую сторону копать. Может где-то есть пример, а то честно говоря пока даже не знаю как правильно задать вопрос по реализации
*

zikkuratvk

  • Глобальный модератор
  • 4480
  • 315 / 2
  • Разрабатываем для Joomla
попробуйте это расширение https://github.com/Joomline/JLTagFilter
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

antarey

  • Захожу иногда
  • 105
  • 0 / 0
Спасибо, посмотрю.
Тут немного подумал... Надо совместить два стандартных модуля - список категорий и список тегов по условию И, но чтобы вывод был не как в стандартной реализации тегов, а блог категории без переопределения макета вывода. И предоставить списки катерорий и тегов не списком а в листбоксе
*

antarey

  • Захожу иногда
  • 105
  • 0 / 0
Вроде получилось.
Переопределил mod_articles_categories
default.php
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_categories
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
$input  = JFactory::getApplication()->input;
$id     = $input->getInt('id');
$Itemid = $input->getInt('Itemid');
$filter_tag = $input->getInt('filter_tag', 0);
$selectted_filter_tag = $filter_tag[0];

$defaultUrl = 'index.php?option=com_content&view=category&layout=blog&id='.$id.'&Itemid='.$Itemid.'&filter_tag[0]='.$selectted_filter_tag;
//http://localhost/gazeta/index.php?option=com_content&view=category&layout=blog&id=15&filter_tag[0]=3&Itemid=101

$doc = JFactory::getDocument();
$doc->addScriptDeclaration("
function onChangeTagsCat(selectedType,selectedValue) {
var blog_id=document.getElementById('blog_id_id').value;
var blog_item_id = document.getElementById('blog_item_id_id').value;
var gBlogUrl = 'index.php?option=com_content&view=category&layout=blog&id='+blog_id+'&Itemid='+blog_item_id;
var default_category_id = document.getElementById('default_category_id').value;

if (selectedType == 'category' )
{
if (selectedValue != 0)
{
gBlogUrl = 'index.php?option=com_content&view=category&layout=blog&id='+selectedValue+'&Itemid='+blog_item_id;
}
else
{
gBlogUrl = 'index.php?option=com_content&view=category&layout=blog&id='+default_category_id+'&Itemid='+blog_item_id;
}
}
if (selectedType == 'tags')
{
document.getElementById('selected_tag_list_id').value=selectedValue;
}
gBlogUrl += '&filter_tag[0]=' + document.getElementById('selected_tag_list_id').value;
document.getElementById('submit_flt').formAction = gBlogUrl;
}
");

$tags = array();

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('id AS value, title  AS text')
        ->from('#__tags')
        ->where('parent_id = 1')
        ->where('published = 1')
->order('id');
$result = $db->setQuery($query)->loadObjectList();

foreach ( $result as $item ) {
$tags[$item->value] = $item->text;
}

$menu_items = JFactory::getApplication()->getMenu()->getItems('home', '1');
$main_url = $menu_items[0]->link;
preg_match('/&id=([0-9]+)/', $main_url, $matches);
$default_category_id = $matches[1];


?>


<ul class="categories-module<?php echo $moduleclass_sfx; ?> mod-list">
<form name="form_tag_list" id=="form_tag_list_id" method="POST">
    <fieldset name="fieldset_tag_list" id="fieldset_tag_list_id">
        <legend>Номер випуска</legend>
          <p>
            <select name="select_tag_list" id="select_tag_list_id" onchange="onChangeTagsCat('tags',this.options[this.selectedIndex].value)">
<?php foreach ( $tags as $key => $value ) : ?>
<?php if ( $key == $selectted_filter_tag ) : ?>
<option value = "<?php echo $key; ?>" selected><?php echo $value; ?></option>
<?php else : ?>
<option value = "<?php echo $key; ?>"><?php echo $value; ?></option>
<?php endif; ?>
<?php endforeach; ?>
             </select>
<input type="hidden" name="selected_tag_list" id="selected_tag_list_id" value="<?php echo $selectted_filter_tag; ?>" />
<input type="hidden" name="blog_id" id="blog_id_id" value="<?php echo $id; ?>" />
<input type="hidden" name="blog_item_id" id="blog_item_id_id" value="<?php echo $Itemid; ?>" />
<input type="hidden" name="default_category_id" id="default_category_id" value="<?php echo $default_category_id; ?>" />
          </p>
    </fieldset>
</form>

<p></p>

<?php require JModuleHelper::getLayoutPath('mod_articles_categories', $params->get('layout', 'default'). '_items'); ?>
</ul>
default_items.php
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_categories
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

$input  = JFactory::getApplication()->input;
$option = $input->getCmd('option');
$view   = $input->getCmd('view');
$id     = $input->getInt('id');
$Itemid = $input->getInt('Itemid');
$filter_tag = $input->getInt('filter_tag', 0);
$selectted_filter_tag = $filter_tag[0];

$blog_url = 'index.php?option=com_content&view=category&layout=blog&id='.$id.'&Itemid='.$Itemid.'&filter_tag[0]='.$selectted_filter_tag;
$menu_items = JFactory::getApplication()->getMenu()->getItems('home', '1');
$main_url = $menu_items[0]->link .'&Itemid='.$Itemid;
 
/* line 30 <option value="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); ?>"><?php echo $item->title; ?></option>*/
?>
<form name="form_category_list" id=="form_category_list_id" method="POST">
    <fieldset name="fieldset_category_list" id="fieldset_category_list_id">
        <legend>Рубрики</legend>
          <p>
            <select name="select_category_list" id="select_category_list_id" onchange="onChangeTagsCat('category',this.options[this.selectedIndex].value)">
<option value="0"><?php echo JText::_('JSELECT'); ?></option>
<?php foreach ( $list as $item ) : ?>
<?php if ( $view == 'category' && $option == 'com_content') : ?>
<?php if ( $item->id == $id ) : ?>
<option value="<?php echo $item->id; ?>" selected><?php echo $item->title; ?></option>
<?php else : ?>
<option value="<?php echo $item->id; ?>"><?php echo $item->title; ?></option>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>
             </select>
<div class="buttons_block" style="padding: 20px 0 0 0;">
<button name="submit_flt" id="submit_flt" formaction="<?php echo $blog_url; ?>"><?php echo JText::_('JGLOBAL_FILTER_LABEL'); ?></button>
<button name="reset_flt" id="reset_flt" formaction="<?php echo $main_url; ?>"><?php echo JText::_('JCLEAR'); ?></button>
</div>
          </p>
    </fieldset>
</form>


Подскажите, можна для такой реализации прикрутить AJAX ? и как ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где нужно произвести настройки, чтобы у категории появились авы пользователей

Автор inkvizitr

Ответов: 2
Просмотров: 124
Последний ответ 09.08.2019, 15:08:14
от inkvizitr
Перенести модуль объявления ниже

Автор Евгенич

Ответов: 20
Просмотров: 180
Последний ответ 08.08.2019, 13:41:47
от Webster
Доп поля категории и вывод этих полей в категории

Автор lenbeton

Ответов: 13
Просмотров: 221
Последний ответ 18.07.2019, 12:52:29
от Septdir
Как убрать заголовок категории из материала?

Автор kerega

Ответов: 25
Просмотров: 2507
Последний ответ 10.07.2019, 02:04:59
от FSerega
Как отключить блокировку материалов?

Автор Karyuudo

Ответов: 2
Просмотров: 99
Последний ответ 24.06.2019, 15:22:36
от pavel2950