gun_dose: Блог

Главные вкладки

Ликбез: зачем нужно использовать composer и другие пакетные менеджеры?

14 июня 2023 в 9:43
5

Пожалуй, ничто не вызывало на этом форуме таких холиваров, как использование в Drupal композера. Многие до последнего отказываются им пользоваться, но Composer неумолимо наступает со всех сторон, и тогда гуру FTP-разработки пускают в ход аргументы о потере рынка и начинают коситься на вордпресс. Все эти дискуссии натолкнули меня на мысль собрать все аргументы в пользу использования Composer и сделать об этом видео. В общем, вот:

Cache Backends

29 ноября 2018 в 9:52

Собственно вопрос, кто что использует? Redis, Varnish, Memcached и т.д. Какие у данных бэкендов есть плюсы и минусы, в каких ситуациях лучше тот или иной способ?

PS: boost и ему подобные модули не интересуют. Мне не нужно кэшировать страницы, интересует в первую очередь быстрая выборка из кэша сущностей.

PPS: куда делись опросы?

Миграции и overwrite_properties

26 сентября 2018 в 16:36

Как известно, чтобы при миграции контента мог обновляться уже существующий контент, необходимо указать в overwrite_properties имена полей, которые должны меняться при миграции. Вопрос: а есть ли какая-то магическая настройка, чтобы обновлялись все поля? Просто не охота перечислять их по одному, уж больно много их.

Как через JS отследить успешную отправку аяксовой вебформы?

30 июля 2018 в 10:45

Речь идёт о друпал 8. Суть проблемы в следующем - в аяксовых формах на кнопках блочится событие submit, соответственно и слетает HTML5-валидация, поэтому отправка аякс-запроса происходит в любом случае. Просто если форма не валидная, то появляется сообщение об этом и подсвечивается нужное поле. То есть в любом случае у нас отправляется пост-запрос на один и тот же урл с одними и теми же параметрами. И всегда приходит ответ со статусом 200 и набором аякс-команд.

Микроразметка отзывов к товару через Metatag Schema

4 июля 2018 в 12:11

Есть замечательный модуль Schema Metatag, который позволяет делать микроразметку без правки шаблонов. Вопрос - как сделать с помощью него микроразметку отзывов на товар? Товар - Commerce Product, отзывы - комменты. В отзывах нужно показать дату, оценку, юзера, сам отзыв. Реально ли вообще это вытащить с помощью токенов?

Как спрятать оригиналы картинок в private?

22 апреля 2018 в 14:30

Как известно, можно сделать, чтобы файлы поля-изображения грузились в папку private. Но в таком случае все сгенерированные стили также будут приватными. А как сделать так, чтобы на приватные картинки генерировались публичные стили?

Нагуглил такую штуку: https://www.drupal.org/node/2050669 пытался хоть как-то сделать что-то на её основе, так и не понял, как оно должно работать на самом деле? Вполне вероятно, что есть и готовые модули, но не смог ничего найти.

Как защитить контент от парсинга?

18 апреля 2018 в 19:53

Есть сайт на восьмёрке, который постоянно пытаются парсить. Пока ещё контента относительно немного: порядка 150к сущностей. Но планируются миллионы. Пока что парсеры довольно тупые, просто перебирают айдишники с бешеной скоростью. Соответственно, задача: банить айпи при слишком большой частоте запросов. Как это автоматизировать? Желательно на уровне апача или нжинкса, ибо вести статистику запросов в друпале очень накладно: посещалка от сотен до пару тысяч уников и таблица статистики будет просто конская.

Подскажите аналоги Fivestar для восьмёрки

21 марта 2018 в 20:58

В семёрке в fivestar была очень крутая опция - выставить целевую сущность для оценки. Таким образом при создании комментов юзеры могли ставить оценки и они суммировались в родительской ноде. Под восьмёрку абсолютно ничего подобного нет. Кто-нибудь пытался решить эту задачу на восьмёрке?

Вопрос по настройке Commerce Shipping

18 января 2018 в 14:54

Делаю сайт на Drupal 8 + Commerce 2 + Commerce Shipping. Создал способы доставки, выбираю нужный способ на чекауте, но в итоге сумма за доставку не добавляется к сумме заказа, хотя выбранный способ доставки сохраняется в заказ. В чём может быть дело? Может кто-то сталкивался?

Юзабелен ли Rules в Drupal 8?

15 мая 2017 в 18:34

Нужен совет от тех, кто реально работал с rules на восьмёрке. Поставил, смотрю - ну что-то как-то совсем печально. Доступных экшенов не очень много, нет лупов, нет подсказок с доступными токенами. Окошко для редактирования сообщения письма почему-то однострочное. В selection-mode что-то вообще непонятное.
скрин

Может каки-то ещё модулей не хватает? Или проще забить на рулсы и накодить всё необходимое самому?

Как оптимально получить меню в JSON?

25 марта 2017 в 0:48

Решил изучить принципы построения сайтов по принципу headless-Drupal. Не могу понять, как лучше получить меню? Установил rest_menu_items и rest_menu_tree. Получил приблизительно такую картину:
меню

Bundle clone - самый простой способ копирования полей

4 марта 2017 в 10:03
6

Недавно наткнулся на один полезный, как мне кажется, модуль, решил поделиться с сообществом.
bc

Как сделать дополнительные товары Ubercart?

12 января 2017 в 9:56

Цель такая - вывести рядом с формой корзины галочки для дополнительных товаров (услуг) - сами эти товары для всех основных товаров одинаковые. Например, галочки "Монтаж (+1000р)", "настройка (+500р.)", "Расширенная гарантия (+3000р)" - при этом можно не выбирать ни одну галочку, либо выбрать сразу несколько.

Искал инфу по этому поводу - не нашёл ничего. Атрибуты не подходят, т.к. атрибуты выставляются в каждом товаре отдельно, а товаров десятки тысяч.

Как подружить Addressfield и Taxonomy?

14 ноября 2016 в 10:43

Как подружить поле addressfield со словарём таксономии, в котором есть все страны и города? Суть в том, что нужен в представлении иерархический фильтр по выбору сначала страны, а затем города. Со стандартным addressfield получается сделать только выбор страны. А одной таксономии мало, т.к. нужно иметь полный адрес. И в два поля его разбивать - не вариант, т.к. этот адрес потом геокодируется в карту.

И снова о разделении полей между товаром и дисплеем в Commerce

22 октября 2016 в 12:26

Расскажите, как вы обычно подходите к распределению полей между сущностью товара и дисплеем? Самый простой случай, когда нет вариаций цен и всегда один товар привязан к одному дисплею, то казалось бы, в продукте можно хранить только артикул и цену.

Тупой вопрос по поводу Docker

28 августа 2016 в 18:45

Итак, следуя последней моде, поставил докер и стал смотреть, что за чудо-юдо-рыба-кит. Загрузил образ друпала, поднял, всё в огне - сразу тебе и драш, и гит, и пхпмайадмин и всё это работает.

И вот, собственно вопрос: как получить доступ к файловой системе машины, поднятой в докере? Ну там банально чтобы модули и темы создавать и редактировать.

Что-то у меня бихэйвор после аякса разаттачивается

5 августа 2016 в 21:51

Использую модуль uc_ajax_cart, темизировал его блок и сделал так, что по умолчанию в блоке видна только сводка, а по клику на слово "Корзина" всплывает попап с её содержимым, по клику на крестик или в фон, попап закрывается, всё стандартно в общем. Сперва всё работает нормально, но после того, как корзина обновляется через ajax, закрытие попапа не работает и юзер обречён либо идти на оформление заказа, либо перезагружать страницу. Т.е.

Унификация view mode для разных типов контента

1 августа 2016 в 22:10

Вопрос касается вывода сетки товаров. Товары могут быть разных типов, но в сетке у них у всех отображаются одни и те же поля: название, картинка, цена, кнопка корзины, может быть что-то ещё, по вкусу. В моём случае типов товара порядка 20 (мне даже лень считать их точное количество) и у каждого типа может быть до 30 полей. Сделал вьюс, выводящий поисковые индексы, надо теперь настроить выводимые поля для этого стиля отображения в каждом типе. Но блин, какой это гемор!

Кнопка корзины Ubercart в Search Index

25 июля 2016 в 10:07

Загвоздка в том, что во вьюсе с индексом можно добавлять только проиндексированные поля и кнопки добавления в корзину там нет. Попробовал модуль uc_cart_links - ссылка добавления в корзину выводится, но работает оно немного не так как хотелось бы. В общем, нужно вытянуть настоящую кнопку добавления в корзину, а не её суррогат ))

Как сделать Views без статичной части URL - только аргументы?

18 июля 2016 в 15:14

Есть магазин, в нём товары прикреплены к двум независимым словарям - бренды и категории. Нужно вывести категорию товаров определённого брэнда. Контекстными фильтрами пользоваться я умею. Вся загвоздка в том, что адрес такой выборки должен выглядеть вот так: example.com/brand/category, а вьюс не даёт создать страницу с адресом %1/%2

Как быть?

Range Slider для фасетного поиска

23 июня 2016 в 11:02

Собственно сабж. Кто чем пользуется для этих целей? Попробовал facetapi_slider, но он не работает вообще. Выдаёт 500 ошибку, не может найти вьюху, видимо из-за того, что вьюха грузится через taxonomy display, но делать вьюс по-другому смысла не вижу, т.к. придётся слишком хитро парсить урл контекстными фильтрами.

Zen 7.x-6.0 Released!

16 мая 2016 в 8:57
4

Ну обновка и обновка, подумают некоторые. Но не всё так просто. Я вот, например не знал и обновка эта застала меня врасплох. Всё началось с того, что моя любимая команда "drush zen trololo --without-rtl" ругнулась на аргумент "--without-rtl". Начал всё это дело исследовать и был немало удивлён. Итак, расскажу, что заметил интересного, попутно буду спрашивать то, что мне пока не понятно.

Дата релиза версии 7.x-6.0: 11 мая 2016.
Что нового:

[РЕШЕНО] Опции товара Ubercart

26 апреля 2016 в 17:20

Может и глупый вопрос, но с атрибутами в уберкарте не доводилось плотно работать, поэтому больно не бейте. Интересуют следующие вопросы:

[РЕШЕНО] Дамп огромной базы на продакшене

30 марта 2016 в 12:04

Надо обновить маленько один сайт, а там база весит более 5ГБ и порядка 20 тыс. посещений в сутки. Понятное дело, что без бэкапа такое делать нельзя никак и никогда. Через контрол панель хостинга поставил всё бэкапиться, ждал больше часа, файл бэкапа вырос более 10ГБ и процесс продолжался, надоело ждать, лёг спать, утром смотрю - бэкапа нет. Что-то пошло не так. Запустил тогда drush arb - он думал более часа, и результата я не дождался, нажал ctrl+c и пошёл по делам. В связи с этим у меня возник вопрос, как лучше поступить.

[РЕШЕНО]Как выпилить хлебные крошки из views?

23 февраля 2016 в 8:36

создал я вьюс с двумя контекстными фильтрами. Появились два вагончика хлебных крошек, с одинаковыми названиями, но разными ссылками и обе ссылки получаются битые. Ну думаю ладно, делов то, имплементнул хукца hook_menu_breadcrumb_alter. Сбросил полностью в нём $active_trail и собрал его заново. Получилось то, что нужно, но те самые два "вагончика", сгенерированные вьюсом, так никуда и не делись, а пристроились в конце моих крошек как-то вот так:
крошка моя