Drupal

Упрощение админки Drupal для заказчика

CСуществует множество способов как упростить жизнь простым модераторам, работающим с сайтом на Drupal и не владеющими всеми его тонкостями. Вот несколько из них:

1) Simplifyhttps://www.drupal.org/project/simplify
Позволяет скрывать ненужные поля с форм добавления/редактирования материалов, таксономии и т.п.

Ошибка "FieldCollectionItemEntity::$type в функции yamaps_field_formatter_view()"

При возникновении ошибок в журнале типа:

Notice: Undefined property: FieldCollectionItemEntity::$type в функции yamaps_field_formatter_view() (строка 437 в файле /var/www/nasosdon/data/www/nasosdon.ru/sites/all/modules/yamaps/inc/yamaps.formatter.inc).

Необходимо внести изменения в модуль yamaps в файле /sites/all/modules/yamaps/inc/yamaps.fromatter.inc. Перед строкой 

$id = drupal_html_id(implode('-', array(

Добавить строчку:

Добавление индивидуального шаблона для конкретной ноды Drupal

При работе по системе GIT+Features возникает проблема с невозможностью создания шаблонов типа node--[nid].tpl.php, так как один и тот же материал может иметь разные nid на сервере и на локальной машине. Для решения данной проблемы применяется следующий подход.

 

Автоматическое развертывание Drupal сайта на сервере после Git Push

Для большего удобства, можно настроить сайт на сервере так, чтобы он автоматически обновлялся после каждого вашего пуша в основной Git репозиторий, например BitBucket. Для этого в самом репозитории настраиваем web-hook, который будет автоматически отправлять POST запрос по адресу http://site.ru/deploy.php

Содержимое файла deploy.php:

При необходимости можно добавить свои команды в массив $commands.

Исправление PHP ошибок "Warning: array_filter() expects parameter 1 to be array"

Часто в логах заносятся следующие PHP ошибки:
Warning: array_filter() expects parameter 1 to be array, string given в функции field_collection_item_is_empty() (строка 591 в файле /var/www/.../sites/all/modules/field_collection/field_collection.module).

Связано это с ошибкой в модуле Field Collection, которая исправляется патчем, прикрепленным к данной статье.

Изменение текста "Удалить" на виджете загрузки изображения

Для изменения надписи "удалить" для кнопки удаления изображения в форме редактирования:

function hook_image_widget($vars)
{
    $vars['element']['remove_button']['#value'] = "Удалить изображение";
    return theme_image_widget($vars);
}

Для изменения надписи "удалить" для элемента коллекции полей в форме редактирования:  

Добавление дополнительных режимов просмотра (full, teaser)

Создаем модуль или используем готовый. В нем прописываем функцию:

<?php
function MODULE_NAME_entity_info_alter(&$entity_info) {
  $entity_info['node']['view modes']['teaser_custom'] = array(
    'label' => t('Teaser custom'),
    'custom settings' => TRUE,
  );
}

Далее включаем модуль и переходим в "Типы материалов" -> нужный тип ноды -> "Управление отображением", включаем нужные поля.

Перенос сайта Drupal с сервера или на сервер

Процесс переноса сайта на Drupal
с одного сервера на другой

1) Прописать локальный домен в файле hosts:
sudo nano /etc/hosts

2) Добавить конфигурацию сайта в Apache/nginx через Ajenti или вручную. 
Проверить работу сайта на этом этапе.

3) Подлкючаемся по SSH к удаленному сайту:
ssh <username>@<host>

Синхронизация баз данных и файлов на Drupal

Для переноса контента с удаленного компьютера на локальный (или наоборот) очень помогут команды drush sql-sync и drush rsync, соответственно.

Страницы

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