Вед-дев, Сео, Манимейкинг

Single views exposed filter on multiple cck fields

В этой статье я обьясню как настроить Views exposed filter для нескольких CCK полей (т.е. делать фильтрацию не по одному полю, а по нескольким сразу).

Для этого необоходимо скачать 2 модуля:

  • drupal.org/project/computed_field (позволяет хранить в БД в одном поле содержимое других полей)
  • drupal.org/project/views_bulk_operations (позволяет осуществлять массовые операции над нодами)

Допустим у вас есть тип материала "название" и для него создано 3 CCK поля: поле1, поле2 и поле3. А также создан View (представление) где мы и будем использовать exposed filter для фильтрации контента в 3х полях.

1. Создаем computed_field (назовём его field_search_data) в нашем типе материала "название".

2. В этом поле вводим php code:

$mydata =
$node->field_pole1[0]['value'] .'-'.
$node->field_pole2[0]['value'] .'-'.
$node->field_pole3[0]['value'];
$node_field[0]['value'] = strip_tags($mydata); //strip_tags() для того чтобы урезать все теги

Теперь в нашем поле "field_search_data" хранятся данные с 3х остальных полей в нашей БД. Соотвественно, теперь мы можем создать exposed filter по полю "field_search_data" и поиск будет идти сразу по всем 3м полям.

3. Используя Views Bulk operations сохраняем заново все ноды, иначе в нашем computed_field не будет никаких данных.

PS у меня почему-то не сохраняется в computed_field тело ноды:

$node->content['body']['#value']; // так не работает
$node->body; // а так работает.. но тут очень много лишнего

Если кто понимает почему - прошу обьяснить :)



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 8 месяцев 3 недели назад
    Спасибо. С Новым Годом! 
  • Den 9 месяцев 3 недели назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 9 месяцев 3 недели назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 10 месяцев 2 недели назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 10 месяцев 3 недели назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 10 месяцев 3 недели назад
    захожу на mysql через ssh по команде  
  • admin 10 месяцев 3 недели назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 10 месяцев 3 недели назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 11 месяцев 1 неделя назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 2 недели назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!