|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|
Фильтрация bitrix:news.list после перехода по ссылке06.09.2018, 11:58. Показов 15360. Ответов 21
Метки нет (Все метки)
Доброго времени суток!
Существует возможность у каждой статьи выбрать определенные теги. Данные теги выводятся в детальной статье. Необходимо, при нажатии на один из тегов произвести переход в список статей и данный список отфильтровать по тегу, на который кликнули. Пример: 1) Есть список статей "Статья1","Статья2", "Статья3" (скрин "Список статей 3") 2) у статей "Статья1","Статья2" есть тег "Тег1" (скрин "Статья1 с тегом", "Статья2 с тегом"). У "Статья3" данного тега нет (скрин "Статья3 без тега") 3) необходимо по нажатию на Тег1 (например в Статье1), чтобы происходил переход в список статей и чтобы данный список выводил только те статьи, у которых имеется "Тег1". Подскажите, пожалуйста, каким образом возможно реализовать? Может есть примеры. Спасибо.
0
|
|
| 06.09.2018, 11:58 | |
|
Ответы с готовыми решениями:
21
Как разместить bitrix::news компонент в шаблоне компонента news::detail другого bitrix::news? Цикл в bitrix:news.list
|
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|
| 06.09.2018, 11:59 [ТС] | |
|
Скрины
0
|
|
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
||||||
| 06.09.2018, 12:50 [ТС] | ||||||
|
Тег ссылкой можно например сделать так:
Только вот каким образом произвести фильтрацию по тегу (т.е. по которому перешел) в списке?
0
|
||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|||||||
| 07.09.2018, 06:15 [ТС] | |||||||
|
voral, спасибо что откликнулись )
Для удобства использования условием было, чтобы теги не вводить вручную, а выбирать из ИБ. Для этого создан отдельный ИБ, после чего в каждой статье есть возможность выбирать теги через кнопку "..." Добавлено через 19 минут Пытаюсь сделать фильтр на странице, где подключается список новостей.
Но что-то список не фильтруется. Видимо что-то делаю не так... Пример: 1) в Статье1 есть Тег1 2) по нажатию на данный тег происходит переход на страницу списка статей, где в адресной строке передается параметр ?tags=Тег1 3) но список не фильтруется....
0
|
|||||||
| 07.09.2018, 07:15 | |||||||||||
|
Не правильно написали потому что PROPERTY_TEG
И $arrFilter делаете глобальной переменной?
Нет необходимости обращаться $GLOBALS[_GET]['tags'] достаточно $_GET['tags']
0
|
|||||||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
||||||||
| 07.09.2018, 08:00 [ТС] | ||||||||
|
Делаю так:
0
|
||||||||
| 07.09.2018, 09:24 | |
|
У вас поле TEG, как я понимаю, имеет тип "Привязка к элементу инфо блока"?
Тогда этот фильтр ждет ИД элемента, а не преобразованное имя. Вы же передаете str_replace(' ', '+', $ob['NAME']) т.е. вы сами должны найти этот элемент и передать его ИД в фильтр. При этом нахождение ИД нужного тега не забывайте оснастить кешированием. Либо в вместо str_replace(' ', '+', $ob['NAME']) пишите $ob['ID']
0
|
|
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
||||||||
| 07.09.2018, 10:53 [ТС] | ||||||||
![]() Итог:
voral, спасибо Вам огромное, очень сильно помогли ![]() Осталось вывести наименование тега в заголовок списка статей. Подскажите, пожалуйста, возможно ли передать наименование тега в список новостей?
0
|
||||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|||||||
| 07.09.2018, 11:09 [ТС] | |||||||
![]() Получается так:
0
|
|||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
||||||||||||
| 10.09.2018, 07:42 [ТС] | ||||||||||||
|
На детальной странице новости:
Но в таком случае адресная строка выглядит "?tags=Тег1"Но если сделать echo '<a href="/help/articles/?tags/'.$ob['NAME'].'">'.$ob['NAME'].'</a>'; (т.е. вместо "=" сделать "/"), то в $_GET['tags'] передается пустое значение (т.е. так "[tags/обучение] => "), следовательно, фильтрация не происходит. А если сделать <?echo '<a href="/help/articles/tags/'.$ob['NAME'].'">'.$ob['NAME'].'</a>'; (убрать "?") - то при переходе "Данная страница не существует"...
0
|
||||||||||||
| 10.09.2018, 09:02 | ||||||
|
Естественно. С знаком "?" вы работаете с параметрами URL, через слэшы это уже URL. И вам его надо "разбирать".
Как я понимаю вы используете комплексный компонент bitrix:news. В его параметрах есть SEF_URL_TEMPLATES вам необходимо добавить туда свой ключ. Примерно должно стать так (скорректируйте если я не угадал, на всякий случай привожу два параметра ответсвенных за разбор адреса)
Далее идете в шаблон компонента bitrix:news. Копируете файл news.php (вы ведь в нем создавали фильтр)в файл tags.php (Имя должно соответствовать ключу). В нем в переменной $arResult['VARIABLES']['TAG'] (TAG - это из того же параметра модуля соответсвует #TAG# - можете так же заменить слово на другое, главное что оно должно быть изменено и там и там) будет лежать ваш тег. ТОлько учтите что если у вас тег попадет в кириллице или с недопустимыми (для URL) символами типа пробела. То тег будет "преобразован" и его надо будет сконвертировать обратно в "нормальный" текст. Вообще, на мой взгляд, лучше оперировать не NAME, а CODE. И писать туда без пробелов латиницей. Поисковики вполне сейчас понимают и перевод и транслит в УРЛ.
0
|
||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|||||||||
| 10.09.2018, 10:52 [ТС] | |||||||||
|
На всякий случай код фильтра и подключение bitrix:news.list в файле index.php:
0
|
|||||||||
| 10.09.2018, 18:40 | |
Сообщение было отмечено _marisha как решение
Решение
Значит вам надо в index.php разобрать URL. Точнее создать правило в urlrewrite.php. Чтобы адреса /articles/tags/asdjkhk/ отправлялисься на файл /articles/index.php. Там же можно настроить преобразование URL в параметры
1
|
|
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|||||||
| 11.09.2018, 12:10 [ТС] | |||||||
|
voral, верно ли Вас понимаю?
Например: 1) после поиска по тегу адресная строка выглядит так: /articles/tags/tag1 (на данном этапе страница пока не найдена) 2) в urlrewrite.php создать правило:
0
|
|||||||
| 11.09.2018, 12:16 | ||||||
|
Есть дока про Правила обработки адресов
т.е. можно так
Но можно и как вы, тогда работать с $APPLICATION->GetCurDir(); (правда точно не помню, могу ошибиться - надо попробовать)
0
|
||||||
|
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
|
|||||||||||||||||||||||||||||||||||||
| 11.09.2018, 12:57 [ТС] | |||||||||||||||||||||||||||||||||||||
|
Делаю так в news.detail
В urlrewrite.php создано правило:
Далее в /help/articles/index.php получаю текущий адрес страницы
В итоге получаю:
![]() Добавлено через 9 минут
![]() Добавлено через 10 минут voral, получилось что-то вроде этого:
![]() Протестирую ещё конечно в разных вариациях. voral, спасибо Вам огромное за помощь, доскональное объяснение алгоритма действий, предоставление рабочего кода, а также правило обработки адресов
0
|
|||||||||||||||||||||||||||||||||||||
| 11.09.2018, 13:31 | ||||||
|
чтобы не "мучаться"с пустыми элементами можно делать так
0
|
||||||
| 11.09.2018, 13:31 | |
|
Помогаю со студенческими работами здесь
20
Инфоблок без уровня news.list, а только с news.detail Вывод инфоблока bitrix:news Убрать время из bitrix:subscribe.news ЧПУ bitrix:news.detail 404 ошибка После перехода по ссылке в веб-браузере пишет ошибка скрипта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|