drupal

Свежая версия гайда для полного победилдо над Windows в качестве ОС для web-разработки включая настройку XAMPP, PHP, PEAR, Drush, UnxUtils и прочие

Preface

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

В целом db_query, весьма понятная функция, но и тут не без нюансов.
Итак, мы выбираем пользователей:

$query = db_select('users', 'u');
$query->fields('u',array('name')); // выбираем имена
$result = $query->execute();
Теперь, мы проверяем именно $result на количество строк результата:
if($result->rowCount()>0) ...
Главное не забывать, что даже после $query-execute() не будет работать конструкция $query->rowCount()

Drupal →

drupal drupal 6 drupal 7

Такая задача часто появляется перед любым Drupal разработчиком и для неё есть элегантное решение. В чём казалось бы сложность? - Взять PHP и текстовыми функциями "обрезать" текст тизера. Проблема в том, что обрезать можно в любой момент, но зачастую содержимое ноды представляет из себя html Тэги, которые должны закрываться, а если они будут незакрыты.. последствия могут быть ужасающими.
Для Drupal 6 есть функция node_teaser, всё очень просто:

nix →

ubuntu drupal drush nix

Drush теперь можно установить из pear. Если у вас его нет, то:

apt-get install php-pear

После установки Pear, выполним:

pear upgrade --force Console_Getopt
pear upgrade --force pear
pear upgrade-all

Теперь установка самого drush:

pear channel-discover pear.drush.org
pear install drush/drush

На одном из разрабатываемых сайтов потребовалось сделать список мест, где человек будет появляться с определённой периодичностью. В качестве требования - 3 поля: электронный адрес, номер телефона и адрес...
Ясно, что на дворе уже 2012 год и никто статическим текстом адрес на сайтах не пишет. Как минимум ссылка на карты Google, Yandex, Bing и т.д. и наш клиент тоже :)

Использую возможности темизации в файле template.php темы сайта. Не забываем переименовывать phptemplate в <ИМЯ_ВАШЕЙ_ТЕМЫ>
function phptemplate_preprocess_search_block_form(&$variables) {
$variables['form']['submit'] = array(
'#description' => t('Input your search text!'),
'#title' => t('Search'), '#type' => 'image_button',
'#src' => base_path().path_to_theme().'/images/search.png',
);
$variables['search']['submit'] = drupal_render($variables['form']['submit']);

Если в Drupal 6 существовал:

phptemplate_node_submitted($node)

То в Drupal 7 всё выглядит иначе:
function phptemplate_preprocess_node(&$variables) {
$variables['submitted'] = t('Submited').': '. t('datetime', array('datetime' => $variables['date']));
}

Удачи!

Drupal → Drupal 6 token api

drupal php drupal 6

Модуль Token для Drupal 6 позволяет создавать токены для пользовательских данных переменных, что упрощает генерацию, скажем заголовков страниц в зависимости от содержимого.
Приведём простой пример использования Token API для Ubercart.
Итак в API модуля Token есть два хука:

hook_token_values($type, $object = NULL, $options = array())

Этот хук наполняет токен содержимым.

hook_token_list($type = 'all')

Этот хук регистрирует токен в списке токенов.

Drupal →

drupal drupal 6

По-умолчанию в Drupal 6 вывод ссылок ( $links ) для ноды выглядит как-то так:

?>
Допустим, мне хочется выводить только ссылку на "Читать далее", тогда можно сделать следующее в node.tpl.php:

Передать аргументы в форму Drupal 6 очень просто:
function form_name(&$form_state, $optional_arg) {
// любой код, которому нужен парамент $optional_arg!
return $form;
}
После чего достаточно вызвать форму вот так:
drupal_get_form('form_name',$arg);
Где $arg - любой аргумент, который нужно передать в форму!

Drupal → Пути в шаблонах Drupal

drupal drupal 6

Если в шаблоне используется какая-нибудь картинка, то правильный путь к ней задаётся так:

print base_path() . path_to_theme();