Сниппеты

Небольшой код, который облегчает жизнь

Drupal: Создание пользовательских команд в Drush

Создать новую команду drush очень легко. Для этого нужно выполнить 4 шага:

  1. Создать файл команды с именем в виде COMMANDFILE.drush.inc.
  2. Реализовать функцию COMMANDFILE_drush_help() (опционально).
  3. Реализовать функцию COMMANDFILE_drush_command().
  4. Реализовать функции ассоциированные с вашими командами. Как правило это фунции вида drush_COMMANDFILE_COMMANDNAME().

Пример готовой пользовательской команды с комментариями можно посмотреть в файле examples/sandwich.drush.inc.

Подробнее о каждом шаге читаем ниже.

Как изменить ссылку для Breadcrumb (Хлебной крошки)

Если вам надо изменить ссылку для "хлебной крошки" (Главная или Home), то это можно сделать следующим образом:

Заносим в template.php свою функцию

function phptemplate_breadcrumb($breadcrumb) {

  if (!empty($breadcrumb)) {

    $breadcrumb[0] = str_replace('"Старая ссылка"', '"На которую надо поменять"', $breadcrumb[0]);

    return '

';

  }

}

Массовые операции над нодами в phpmyadmin и mysql

У меня возникла необходимость на всех созданных нодах определенного типа запретить комментирование, но так как нод с такими настройками было уже создано очень большое количество - вручную никак не справиться. Для того чтобы произвести массовые изменения над нодами нужно зайти в базу данных (MySQL) через phpmyadmin (как правило), и затем найти таблицу 'node' - в ней хранятся все ноды на вашем сайте. Заходим туда и затем нажимаем на вкладку (tab) SQL, где мы видим по дефолту:



SELECT * FROM `node` WHERE 1

Стираем это и вставляем свой код:

Drupal: bat скрипт автоматической установки друпала на Windows машину

Держу у себя на компьютере тестовую версию 6-го друпала, над которой провожу всяческие эксперименты. Частенько друпал ложиться и больше не встаёт =) Переустанавливать его из браузера стало лень, поэтому накидал bat скрипт, который выкачивает нужную версию друпала с набором модулей и всё это дело инсталирует без лишних вопросов. После запуска батника остаётся только открыть в браузере свежеустановленный сайт и залогиниться на нём с помощью admin/admin.

Собстна скрипт:

подробнее

Drupal: Как отправить POST запрос

$result = drupal_http_request(
'http://example.com',
array('Content-Type' => 'application/x-www-form-urlencoded'),
'POST',
'param1=value1&param2=value2'
);

подробнее

Drupal: Как программно удалить ошибку валидации установленную с помощью form_set_error()

Бывает нужно избавиться от ошибки валидации, которая проходила в другом модуле. Код ниже, удаляет ошибку валидации поля some_field в форме some_form:

подробнее

Drupal: Как добавить новое поле в существующую таблицу БД

Урезанный, но рабочий пример из модуля FileField Paths, который добавляет в таблицу files новое поле origname:

/**
* Implements hook_schema_alter().
*/
function filefield_paths_schema_alter(&$schema) {
$schema['files']['fields']['origname'] = array(
'description' => 'Original name of the file.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
);
}

подробнее

Drupal: Как получить доступ к доп. полям профиля пользователя

global $user;
profile_load_profile($user);
$phone = $user->profile_phone;

Ф-я profile_load_profile() добавляет в объект $user значения кастомных полей, созданных с помощью модуля Profile.

подробнее

Drupal: Как правильно делать JOIN для таблиц с CCK полями

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

SELECT n.title, f.field_name_value FROM {node} n
INNER JOIN {content_type_story} f ON n.nid = f.nid AND n.vid = f.vid
WHERE n.type = 'story'
ORDER BY n.title

(в примере выбираются заголовки нод типа story и соответствующее им значение cck поля field_name)

подробнее

RSS-материал