У меня на сайте Drupal 6 установлены модули Profile, CCK и Views2. Я добавил строковое поле в профиль пользователя. Я могу легко фильтровать предустановленные значения с помощью конструктора графического интерфейса пользователя, действительно красиво. Однако я бы хотел, чтобы критерии фильтрации устанавливались динамически на основе других переменных среды (а именно $_SERVER['SERVER_NAME']).
Есть ли где-нибудь базовый фильтр «Как написать-настраивать-drupal-views»? Я просматривал документацию, но для моего простого ума не очевидно, как это сделать.






Существует вероятность, что после просмотра фильтров, установленных для моего собственного сайта, фильтры должны быть основаны на каком-то поле базы данных, и в этом случае то, что вы пытаетесь достичь, невозможно. Похоже, что фильтры предоставляют предложение WHERE для сгенерированного запроса SQL.
Сказав все это, если вы хотите продолжить это, лучше всего начать с модуля, который уже предоставляет фильтры для представлений. Есть фильтры, предоставляемые с представлениями для модуля узла; в качестве альтернативы вы можете посмотреть на аудио модуль, который также предоставляет некоторые фильтры. Кроме того, публикация сообщений на форумах Drupal или в списке поддержки может вызвать появление другого модуля, который позволит вам добиться того, что вы пытаетесь сделать.
Да, ты можешь сделать это. Попробуйте воспользоваться модулем «Блок фильтров представлений». После того, как вы включите блок, извлеките HTML-код блока из "источника просмотра" при просмотре страницы. Теперь отключите «блок фильтров представлений» ... создайте свой собственный блок ... добавьте к нему код с любым CSS, который вам нравится, чтобы он выглядел красиво. В этом коде используйте php, чтобы динамически указать, что вы хотите для первоначального выбора фильтра. Убедитесь, что вы действительно выбрали поле, на котором основан фильтр ... затем в настраиваемом блоке php используйте код php, чтобы написать условие IF, чтобы проверить значение server_name и, соответственно, присвоить переменной фильтра правильное значение ».
Возможно, существуют другие (возможно, даже лучшие) способы сделать это, чтобы фактически написать модуль, использующий фильтр. Так что это всего лишь одно предложение. Также попробуйте "Views PHP Filter". Я еще не использовал его, но похоже, что стоит попробовать.
Вы можете создать свою собственную функцию, как показано ниже, чтобы добавить свои собственные фильтры.
<?php custom_views_embed_view($view_name, $display_id) {
$view = views_get_view($view_name);
$view->set_display($display_id);
$id = $view->add_item($display_id, 'filter', 'node', 'created',
array( 'value' => array('type' => 'date', 'value' => date('c')), 'operator' => '<='));
return $view->execute_display($display_id);
}
?>
У меня похожая проблема, и эта статья очень помогла решить ее.
http://www.metaltoad.com/blog/drupal-7-tutorial-creating-custom-filters-views
И официальная документация hook_views_data
http://api.drupal.org/api/views/docs%21docs.php/function/hook_views_data/6
@AbhiG Вы когда-нибудь пробовали этот метод? это кажется интересным фрагментом кода. я должен поместить свой код в оператор, заменив '<=' правильно?