CСуществует множество способов как упростить жизнь простым модераторам, работающим с сайтом на Drupal и не владеющими всеми его тонкостями. Вот несколько из них:
1) Simplify - https://www.drupal.org/project/simplify
Позволяет скрывать ненужные поля с форм добавления/редактирования материалов, таксономии и т.п.
Функция для получения терминов таксономии в виде иерархии:
При возникновении ошибок в журнале типа:
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(
Добавить строчку:
При работе по системе GIT+Features возникает проблема с невозможностью создания шаблонов типа node--[nid].tpl.php, так как один и тот же материал может иметь разные nid на сервере и на локальной машине. Для решения данной проблемы применяется следующий подход.
Для большего удобства, можно настроить сайт на сервере так, чтобы он автоматически обновлялся после каждого вашего пуша в основной Git репозиторий, например BitBucket. Для этого в самом репозитории настраиваем web-hook, который будет автоматически отправлять POST запрос по адресу http://site.ru/deploy.php
Содержимое файла deploy.php:
При необходимости можно добавить свои команды в массив $commands.
Часто в логах заносятся следующие 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);
}
Для изменения надписи "удалить" для элемента коллекции полей в форме редактирования:
Создаем модуль или используем готовый. В нем прописываем функцию:
<?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
с одного сервера на другой
1) Прописать локальный домен в файле hosts:
sudo nano /etc/hosts
2) Добавить конфигурацию сайта в Apache/nginx через Ajenti или вручную.
Проверить работу сайта на этом этапе.
3) Подлкючаемся по SSH к удаленному сайту:
ssh <username>@<host>
Для переноса контента с удаленного компьютера на локальный (или наоборот) очень помогут команды drush sql-sync и drush rsync, соответственно.