Wolf-alone: Комментарии

Главные вкладки

10 ноября 2015 в 11:48

Пересмотрел ещё раз книги по Drupal на русском и английском языках (название книг - указано выше). Внимательно перечитал документацию, на все функции описанные выше. Мне кажется, это всё не совсем то, что нужно.

10 ноября 2015 в 11:48

Я смог полностью сформулировать нужную мне задачу. Все подробности нарисованы в прилагающейся картинке.

На прилагаемой картинке, нарисовано схематичное отображение ноды. Такие вопросы как:
а) Как создать ноду
б) Слайдер фотографий
в) Вложение файлов
г) Отображение списка материалов определённой категории
д) "Простые" страницы
е) Построение меню
и некоторые другие я уже решил.

10 ноября 2015 в 11:48

Я наконец смог подобрать почти идеальный пример фунционала, которого хочу добиться. Пример находится в прилагаемом файле.

Суть такова:
1. Производители и тип - это два отдельных словаря таксономии
2. Набор чекбоксов справа - это отдельный блок, чекбоксы в котором соответствуют словарям таксономии
3. Кнопка (ссылка) Показать фильтрует выбранный конент (ноды, к каждой из которых привязаны 1 или более терминов из каждого словаря), так же, как это происходит на Яндекс.Маркет.

10 августа 2012 в 18:57

"Google" wrote:
hook_query_alter can be used to effectively change or rewrite many of Drupal's system queries, like those generated from views or modules that use the appropriate query building APIs.

Возможно, я как-то не верно интерпретировал выше описанный текст из другого мануала (на английском)? Подскажите пожалуйста, почему хук не вызывается вообще?

10 августа 2012 в 18:36

"Цитата из документации" wrote:

hook_query_alter() - этот хук используется для изменения запросов, созданных где угодно в Drupal.

Если я правильно понял, получение списка нод на главную страницу, выбор нод по тегу таксономии и просмотр нод - не создают запрос в базу данных?

10 августа 2012 в 15:53

"ser_house" wrote:
То есть Вы создаете модуль, но ничего не знаете о hook_menu. Х-м, странно...

Я не совсем это имел в виду. Создать ссылку в меню на страницу конфигурации модуля (например) - это наименьшая из проблем, всё это детально описано в книге "Drupal 7 Pro Development".

ser_house, ещё раз спасибо, попробую разобраться с hook_node_access().

10 августа 2012 в 13:17

Мне в голову, закралась сакральная мысль о том, что hook_node_access() будет работать для зарегистрированного пользователя, скорее всего, даже для группы пользователей. В моём же случае, пользователи чаще всего не будут иметь регистрации (прописки на сайте).

10 августа 2012 в 12:44

ser_house, hook_menu_alter() - мне кажется, эта функция не понадобиться, по той причине, что меню изменять не нужно. Сами пункты меню строятся на основе другого словаря, грубо говоря словаря "МЕНЮ". Дополнительный словарь нужен как раз для более тонкой фильтрации нод, то есть если мы меню было многоуровневым, то он основе второго словаря - строились бы подпункты. То есть, удалять/добавлять/изменять пункты меню не нужно.

Ещё раз благодарю за информацию! Пойду исследовать hook_node_access().

10 августа 2012 в 11:28

ser_house, промучился несколько дней, запутался в конец, но так и не добился достойных результатов.

Если взять во внимание тот факт, что ноды отображаются по тегу таксономии (по ссылки созданной модулем TaxonomyMenu), возможно, есть какая-то возможность, например удалить с нужных нод эти теги, перед их выводом? И тогда ноды не будут отображаться в списке. Существует ли подобная функция, которая бы позволила удалить теги с нод перед построением списка нод через таксономию?

6 августа 2012 в 1:16

Вроде бы, всё дошло. Что бы "выбрать" нужные ноды, нам необходимо не просто "удалить из списка НЕ нужные", а загрузить список с нужными. Для этих целей используется функция node_load_multiple(), в которую мы передаём идентификаторы нод и пр. информацию. Затем, полученный результат, мы передаём в функцию node_view_multiple().

Я всё верно понял? Для вывода списка "нужных" нод, требуются ещё какие-то манипуляции?

5 августа 2012 в 17:51

Опишу ситуацию ещё более подробно. У нас есть пользователь, который зашел на сайт. У этого пользователя, есть некая кука в браузере, в которой содержится значение либо 0, либо 1. Либо этой куки вообще нет, и тогда по мы используем значение по умолчанию = 0;

Если значение куки (или любой отдельно взятой переменной, как Вам удобнее) == 0, то мы должны отображать для этого пользователя только 3 ноды, с номерами 1, 4, 5. Если значение куки (переменной) == 1, то мы должны отображать для пользователя все 5 нод (1, 2, 3, 4, 5).

5 августа 2012 в 12:15

Уточнение:
Я имею в виду реализацию, на уровне модуля (программирование).

Уже попробовал:

Получил список всех нод с помощью функции:
hook_node_load()

Попытался сделать:
unset для одной из нод - эффекта это не дало никакого. При этом, например, заголовок любой из нод - я могу сменить без каких либо проблем. А вот временно удалить (скрыть) её из вывода - не получается.

3 августа 2012 в 15:12

"iNFerNo" wrote:
Я не знаю зачем эти 17 тыщ модулей и кто ими пользуется

Я думаю, ими пользуются их авторы, по крайней мере, на стадии разработки.

Но всё же, мы далеко уходим от изначальной темы вопроса.

Можно упростить задачу, давайте предположим что такой функционал требуется от 6-ой либо 7-ой версии Drupal, не обязательно исключительно v7.

3 августа 2012 в 11:55

"iNFerNo" wrote:
Ну если вы программист то напишите нужные модуля.

Это разумеется, самое логичное решение, я не спорю. Но мне казалось, что среди более чем 17 тыс. модулей есть что-то уже готовое, способное решить данную задачу, а среди сообщества есть люди которые её уже решали и могут/готовы помочь советом. Или я не прав?

2 августа 2012 в 19:22

Я не говорил, что нельзя использовать VIEWS, я лишь поинтересовался, можно ли это сделать без VIEWS?

И ещё, подскажите пожалуйста, можно ли как-то реализовать автоматическую фильтрацию при выборе нового пункта? То есть, пользователь выбрал пункт (или чекбос[ы]) и после его выбора, контент автоматически отфильтровался (либо обновилась страница, либо с помощью AJAX).

11 июля 2011 в 0:20

"Arturus" wrote:
Может я чего-то не понял, но результат views всегда можно было выводить в виде блока, а уже блок помещать на главную в нужное место.

Вы абсолютно правы! Получилось - "сам спросил - сам ответил" Smile

10 июля 2011 в 23:07

"argon" wrote:
дэнвера обычно за гланды.. (т.е. почти всегда) хватает

К сожалению, возможности установить "дэнвер" у меня нет, т.к. работаю под Linux ubuntu/debian. Для "локальных проб" вполне хватает и стандартной связки apache2+php5.3+mysql5.1(5.5)

Все сервера работают под управлением Debian 5/6, поэтому, набор ПО интересует именно под Linux, а если совсем конкретно под Linux Debian 5/6.