Простая, по идее, задача, но что-то я не соображу, как ее реализовать. Требуется: Вывести страницы с определенной меткой, принадлежащие к определенной категории.
Т.е. нам нужно сделать выборку сначала по категории, а затем из выбранного выбрать страницы с требуемой меткой.
Стандартные возможности mso_get_pages() позволяют нам либо вывести страницы категорий (без учета меток в выборке), либо страницы меток (без учета категорий в выборке). А нужно, чтобы учитывались оба параметра, и принадлежность страниц к категории, и наличие у страниц метки.
Как лучше реализовать на практике?
4 3219
Еще записи по теме
- Как сделать вывод записей сеткой/таблицей?
- Есть, ли смысл использовать https на блоге?
- Как безопасно перенести МаксСайт на другой домен?
- Как разрешить html теги в комментариях?
- Как удалить приписку #cut к ссылке Читать далее на уровне шаблона?
- Как проматывать страницу до сообщения об успешной отправке плагина FORMS?
- Как сделать собрать шаблон от bootstrap на MaxSite CMS
Михаил, думаю, что просто за счёт передачи определённого набора значений параметров в функцию mso_get_pages() не получится сделать выборку.
Посмотрел \application\maxsite\common\page.php (думаю, что ты и сам его видел) и там видно, что при варианте выборки для custom_type = 'category' или custom_type = 'tag' там выполняются специальные процедуры с соответствующими (заточенными под конкретные задачи) запросами к базе.
Если и есть вариант как то объединить запросы, то только если попробовать воспользоваться параметром function_add_custom_sql, который задаёт название специальной функции. Эта функция должна добавлять параметры выборки (т.е. нужна работа с экземпляром $CI).
Собственно, я и реализовал таким образом. Проблема моя была в том, что я ранее ни разу не использовал этот параметр, а рабочих примеров в Сети найти не мог. Методом тыка надыбал искомое.
В моем случае я брал за основу tag, получал таким образом в mso_get_pages() выборку по тегу, а затем с помощью function_add_custom_sql из полученной выборки отбирал уже страницы, относящиеся к той или иной нужной мне рубрике.\
Сама фунцкия такая:
И, соответственно, mso_get_pages() получила вид:
Я использовал в качестве слага для выборки по тегу mso_segment(3), у других это может быть что-то другое.
Михаил, в коде всё выглядит именно так, как я теоретизировал
Потребность явно нестандартная, поэтому примеров особо нет в сети. Но теперь есть Михаил, спасибо, что поделился наработкой!
Пожалуйста. Думаю, что function_add_custom_sql многим интересна, но далеко не каждый к ней подход может найти. Поэтому свой код с пояснениями привел.