Программирование сайтов
24 Ноя в 09:22

JQuery Once()

Профессионально не могу объяснить что делает функция once(). На примере, в нее обернут код, копирующий содержимое элемента в поле формы. Если обертку не использовать, содержимое будет скопировано в поле дважды. На практике, если по каким-то причинам появляется дублирование, пробуйте переместить код в тело этой функции.
[js]
(function ($) {
Drupal.behaviors.myCode = {
attach : function(context, settings) {
$(‘.office-email’).once(function() {
var email = $(‘.office-email .field-item’).text();
$(‘#edit-submitted-mail-to’).val(email);
});
}
};
})(jQuery);
[/js]

21 Ноя в 22:54

Вывод изображения кодом

Путь до оригинала:
[php]
print file_create_url($object->field_tour_image[‘und’][0][‘uri’]);
[/php]
Путь до миниатюры, на примере стиля “thumbnail”:
[php]
print image_style_url(‘thumbnail’, $object->field_tour_image[‘und’][0][‘uri’]);
[/php]

15 Ноя в 21:52

Вывод Field Collection кодом

Все будет в файле node.tpl.php.
Если несколько коллекций, в начале один раз получаем объект ноды:
[php]
if (arg(0) == ‘node’ && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load($nid);
}
[/php]
А потом, выводим поля коллекции. Например, коллекция “field_phones” с полями “field_telecom” и “field_phone_number”:
[php]
$items = field_get_items(‘node’, $node, ‘field_phones’);
foreach ($items as $item) {
$fc_value = field_collection_field_get_entity($item);
$icon_id = $fc_value->field_telecom[‘und’][0][‘tid’];
switch ($icon_id) {
case 16:
$class = ‘a1-mts’;
break;
case 17:
$class = ‘life-4g’;
break;
}
$number = $fc_value->field_phone_number[‘und’][0][‘value’];
print ‘<div class="’.$class.’">’.$number.'</div>’;
}
[/php]

21 Ноя в 12:10

Настройка Docker4Drupal для Drupal 7

Выделим папку под проект ~/docker/drupal7

Скачаем последний релиз Docker4Drupal и распакуем файлы в эту папку

Отредактируем файл .env

Отредактируем в файле docker-compose.yml в разделах php и nginx:

Раскомментрировать весь раздел pma, если нужен PhpMyAdmin. По надобности, другие разделы.

Удалить файл docker-compose.overwrite.yml.

Закачаем файлы Drupal 7 в эту же папку проекта.

Запускаем контейнеры из docker-compose.yml:

Если нужно исправить конфигурацию, после правок перезапускаем контейнеры:

Данные базы, если не менять:

Хост: mariadb
База, пользователь и пароль: drupal

Адрес PMA: http://pma.drupal7.localhost:8000
Адрес сайта: http://drupal7.localhost:8000