Drupal

Вывод фильтров Views в любом месте на странице

Вариант 1 (более короткий):

  1. $view = views_get_view('taxonomy_term'); // get your view from database
  2. $view->set_display('page'); // set the display of your view
  3. $view->init_handlers(); // initialise the handlers
  4. $exposed_form = $view->display_handler->get_plugin('exposed_form');
  5. print $exposed_form->render_exposed_form(true);

Вариант 2 (более подробный):

Подключение css/js файлов по условиям в template.php

<?php
function THEMENAME_preprocess_html(&$vars, $hook) {
// Подключение файла по точной ссылке
switch($vars['menu_item']['path']){
case 'path/%':
drupal_add_css(path_to_theme()."/css/cart.css");
break;
}
// Подключение файла по типу ноды
if (array_key_exists('nodes', $vars['page']['content']['system_main'])) {
$nodeType = array_shift($vars['page']['content']['system_main']['nodes']);
switch($nodeType['#bundle']){
case 'node_type':
drupal_add_css(path_to_theme() . "/css/contact.css");
break;
}
}
// Подключение файла по идентификатору NID
if(isset($nodeType['#node']->nid)):
switch($nodeType['#node']->nid){
case 31: // node nid
drupal_add_css(path_to_theme() . "/css/articles.css"); // о компании
break;
}
endif;
}
view raw template.php hosted with ❤ by GitHub

Парсинг удалённого сайта на Drupal и создание нод

Сперва скачиваем библиотеку QueryPath в корневую папку сайта. Далее создаём файл parser.php и подключаем в нём ядро Друпала и библиотеку QueryPath:

Вывод материалов по Ajax в собственном модуле

В большинстве случаев для множественного вывода материалов на сайте, построенном на Drupal, достаточно прибегнуть к услугам модуля Views. Данный модуль имеет массу возможностей и доп. модулей. Однако иногда встаёт задача нестандартного вывода нод на странице, когда "ковыряние" во Views окажется более сложным и нудным делом, нежели написание своего модуля. Рассмотрим упорядоченный вывод нод в таблице с постраничной навигацией, сортировкой по любой колонке, фильтрами и всё это через Ajax!

Переход с MySQL на SQLite в Drupal 7.x

Drupal 7 «из коробки» поддерживает сразу несколько хранилищ, а именно: MySQL, PostgreSQL, SQLite. Это значит, что уровень абстракции существующий в API Drupal`а, гарантирует, что одни и те же модули (и сайты в целом) будут с одинаковым успехом работать на любой из этих баз данных.

Для перехода с MySQL на SQLite необходим установить модуль DBTNG Migrator. После чего надо внести изменения в файле settings.php, добавив в него базу данных SQLite под другим индексом. Например так:

Редирект после авторизации

Часто бывает необходимо перенаправлять авторизованного посетителя сайта сразу после ввода логина и пароля, например, на главную страницу. Так как страница /user/* не содержит никакой полезной информации и только вводит в заблуждение.

Одно из решений - прописать в файле .htaccess следующее правило:

  1. RewriteRule ^users/(\w) / [L,R=301]
  2. RewriteRule ^user/(\d+) / [L,R=301]

 

Страницы

Подписка на RSS - Drupal