Блог пользователя - marassa

Хранение мультимедиа на отдельном специализированном хостинге

23 января в 8:34

Трафик сайта стал стабильно превышать 50 ГБ в месяц, что у ра-дона сто́ит 1300 рублей. Сумма не то чтобы напрягает, но заставляет задуматься об оптимизации.
90% трафика составляют jpg-файлы, то есть по факту проходит мимо друпала. Суммарный объем jpg-файлов на сервере порядка 20-25 ГБ.
Возникла мысль проработать хранение всей этой мультимедии не на ра-доне, а на некоем отдельном хостинге, на мультимедию заточенном.

CKEditor, inline-картинки и FileField Sources: что, правда никак?

19 января в 13:24

Впервые в жизни плотно столкнулся с CKEditor Wink

При вставке картинки предлагается загрузить ее строго с локального диска, по внешней ссылке никак. При работе с обычными полями типа Image очень помогает модуль FileField Sources, но тут он, похоже, не помогает: https://www.drupal.org/project/filefield_sources/issues/3081777

Чё, серьёзно? А как же быть?

Сто́ит ли делать форум на Друпале 8/9?

16 января в 15:56

Жена с группой единомышленниц, задумавших уйти с некоего популярного в узких кругах тематического форума в связи с несогласием с политикой его хозяев, просят сделать им новый форум. Это не форум как приложение к некоему сайту, а именно новый сайт, на котором кроме форума ничего (пока) и не планируется. Язык исключительно русский, пользователи - тётки, далёкие от IT, функциональность - ну обычная для форума - картинки, цитирование, модерация, поиск и т.п.

Откуда Яндекс мог узнать адрес вьюхи, которую я открыл для экспериментов на пару дней?

31 августа 2020 в 17:44

Тут довольно часто люди спрашивают как удалить из Гугла/Яндекса кучу "несуществующих" страниц, которые каким-то образом оказались в поисковых базах. На это всегда следует ответ, что Гугл и Яндекс адресов никогда не выдумывают, а могут их взять только с существующих страниц. И как правило в каждом конкретном случае находится вполне рациональное объяснение тому, откуда и как эти мусорные страницы появились в базах поисковых систем.

Переход к следующей/предыдущей ноде свайпом

24 августа 2020 в 12:47

Есть такой замечательный модуль - Entity Pager. Он позволяет со страницы ноды одним кликом перейти на "следующую" и "предыдущую" ноду. Естественно, из контекста должно быть интуитивно понятно, что такое "следующая" и "предыдущая" нода, иначе смысла нет. Порядок нод задается через специальное view. Давно использую этот модуль в десктопной версии, переход осуществляется стрелочками влево-вправо.

Почему может не загружаться конфигурация вьюшки с прода на дев?

9 августа 2020 в 17:22

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

А как вы формируете мобильное меню, что под гамбургером?

17 июля 2020 в 11:58

В десктопной версии есть сразу несколько отдельных меню, раскиданных по разным углам страницы:
- Main navigation
- User account menu
- Language switcher
- Footer

Как работать с брейкпойнтами в Drupal 8?

22 июня 2020 в 11:43

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

Посоветуйте нормальный хостинг для почты

20 июня 2020 в 10:40

Офф, конечно, но описание форума говорит "применительно к размещению Drupal и не только", так что может быть ничего? Wink
Волею судеб давным давно имею маленький хостинг на reg.ru, от которого фактически пользуюсь только почтой. Ну и там же зарегены все мои домены, что удобно.

Обновление до 8.8 + переход на composer: совет нужен

9 апреля 2020 в 10:32

Прошу совета опытных по наилучшему порядку действий.

Идеологический вопрос про search index'ы

15 февраля 2020 в 15:22

Разбираюсь с Search API.
Цель: сделать человеческий поиск по сайту с осмысленными подсказками в поле поиска и красивыми результатами (список, фотогалерея, карта).
Получается нужно сделать четыре разных вьюхи для результатов (autocomplete callback, список, фотогалерея и карта). Вьюхи, само собой, достаточно разные, хотя в чем-то пересекаются. А вот как идеологически правильно разобраться с индексами, у меня нет полного понимания.

Сделать так, чтобы автор черновой редакции (revision) видел эту самую редакцию

29 ноября 2019 в 13:42

Пытаюсь настроить Content Moderation (D8) на простейший и казалось бы вполне логичный воркфлоу - не выходит каменный цветок.
На данный момент юзеры имеют право добавлять контент (unpublished), видеть собственный unpublished content и редактировать собственный unpublished content. При этом видеть чужой unpublished content им не положено. Это всё легко настроено и работает.
Теперь хочу дать возможность всем юзерам вносить правки в любой контент, но в статусе черновик/draft, чтобы никто другой кроме самого правщика и админа, этих правок не видел до их одобрения админом.

Реально крупный ботнет (>1000 IP) сканирует мой сервер. К чему бы это? ;)

9 ноября 2019 в 17:20

К Друпалу вопрос прямого отношения не имеет, поэтому заранее прошу прощения за оффтопик, но знаю, что тут люди опытные и наверняка что-нибудь умное скажут Wink
Обратил внимание в awstats, что число визитов за сегодня перевалило за 1500 при среднедневном 200-300. Посмотрел в логи, и увидел, что какой-то реально большой ботнет прочесывает аккуратно по алфавиту все страницы, каждый раз с нового IP и с новым User Agent, реферер всегда пустой.

Со вчерашнего дня сайт часто выдает ошибку

10 октября 2019 в 7:46

This site can’t be reached
drupal.ru refused to connect.
Try:
Checking the connection
ERR_CONNECTION_REFUSED

И с работы, и из дома (Москва). Захожу через VPN - вроде работает, хотя может совпадение.

На странице термина таксономии для анонимов выводится <link rel="edit-form" href="/taxonomy/term/49/edit" /> и т.п.

19 июля 2019 в 20:58

Читал логи, много думал.
Обратил внимание, что archive.org_bot постоянно и безуспешно колотится в ссылки вида /taxonomy/term/176/edit .
Удивился откуда он их берет, так как контекстные ссылки во-первых не генерятся для анонимов, а во-вторых вообще подтягиваются через ajax. Глянул в код страницы термина, а там:

Критическое обновление для Drupal 8.7.4 (SA-CORE-2019-008)

19 июля 2019 в 14:58
1

Обнаружена критическая уязвимость в экспериментальном модуле ядра Workspaces версии 8.7.4. Уязвимость касается ТОЛЬКО пользователей версии 8.7.4, у которых этот модуль включен. Пути решения: либо отключить модуль Workspaces, либо обновиться до 8.7.5.
https://www.drupal.org/sa-core-2019-008
PS Ко мне на сайт сегодня уже лезли по адресу /core/modules/workspaces/workspaces.info.yml , так что уязвимость уже эксплуатируется.

А чем фацетный поиск принципиально отличается от просто view с большим количеством раскрытых фильтров?

30 июня 2019 в 20:41

Есть ли готовый модуль, позволяющий вводить теги в стиле stackexchange?

27 июня 2019 в 17:06

Хочу чтобы при вводе строки поиска автоподсказывались возможные варианты (у меня это не обязательно таксономия, но могут быть и тайтлы нод, и имена пользователей и т.д.), и при подтверждении пользователем выбранный тег добавлялся бы в строку поиска с крестиком для легкого удаления. Фишка именно в том, что в строке поиска могут быть именно несколько тегов, не один.
Для собственно поиска планирую задействовать Search API, хотя пока не пробовал.

Поменять стиль картинок перед рендерингом view

25 июня 2019 в 15:21

Это вторая серия вот этого вопроса: https://drupal.ru/node/139772
По-прежнему бьюсь над задачей подмены стилей картинок, выводимых форматтером PhotoSwipe в контексте View в зависимости от количества результатов в этом самом View.

Как достать URI картинки в twig-шаблоне поля?

20 июня 2019 в 11:08

Задача: сделать так, чтобы при отображении галереи картинок (Views Photo Grid) при общем количестве картинок в галерее меньше определенного порога брался другой Image Style, покрупнее.
Задумал сделать это всё в кастомном шаблоне поля.
Создал шаблон views-view-field--photo_slideshow--photo_gallery--field_picture.html.twig
Он совершенно точно подхватывается и отрабатывает.
В шаблоне пытаюсь сделать следующее (подглядел где-то):