marassa: Блог

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

Сделать так, чтобы автор черновой редакции (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
Он совершенно точно подхватывается и отрабатывает.
В шаблоне пытаюсь сделать следующее (подглядел где-то):

AJAX pager то работает, то нет

30 мая 2019 в 11:13

Есть вьюшка с контекстными фильтрами. В качестве пейджера используется Views Infinite Scroll в режиме auto. Первая страница всегда отрабатывает нормально. Для некоторых значений контекстных фильтров пейджер при скроллинге до конца документа тоже отрабатывает как надо - по ajax-запросу возвращается надлежащий ответ со следующей страницей, и надлежащим образом отрисовывается.

Закэшенная страница с рекапчей пропускала сабмит формы без заполнения рекапчи

19 марта 2019 в 13:05

Сегодня ночью случилось странное: пришло больше спама с контактной формы сайта (contact_message_feedback_form), чем за прошедшие полгода. На странице стоит рекапча, стоит давно и давно не обновлялась, саму форму тоже не трогал давным-давно. Попробовал сам заполнить контактную форму, предварительно разлогинившись и не трогая капчу вообще - форма успешно сабмитится и отправляется! Пробую другую форму с рекапчей на том же сайте (user_register_form) - без клика на капчу не сабмитится, ругается. Очистил кэш... и всё заработало.

Можно ли рассчитывать на то, что PHP-расширение SimpleXML обязано присутствовать в любой инсталляции Drupal 8?

19 февраля 2019 в 13:59

Хочу его использовать в контрибном модуле и быть уверенным, что не посыпятся баг-репорты от юзеров что "расширение SimpleXML не найдено".

Как ловчее создать кастомный блок с содержимым, завязанным на поля текущей ноды?

18 января 2019 в 15:20

Чё-та туплю Wink
Нужно создать блок, который будет:
- размещаться на странице ноды (/node/XXX)
- содержать картинку, зависящую от текущего типа материала, картинку, адрес которой составляется из значений нескольких полей текущей ноды и некий джаваскрипт, срабатывающий по клику

Стилизованные картинки нормально генерятся и отдаются, но с кодом 404

18 декабря 2018 в 13:56

Недавно выкатил очередные доработки на продакшен-сайт (версия Drupal 8.6.2), и через некоторое время случайно заметил в консоли хрома целую кучу сообщений такого вида при отображении галерей картинок:
GET http://***/sites/default/files/styles/gallery_thumbnail/public/*.jpg 404 (Not Found)

Не соображу куда воткнуть $view->total_rows для последующей передачи в js-лайтбокс

4 декабря 2018 в 15:25

На сайте имеется несколько фотогалерей (на разных страницах), все организованы через view, но в разных стилях (от Views Slideshow до Views Photo Grid) в зависимости от контекста. Так как картинок в некоторых галереях может быть много, используется Views Infinite Scroll для поэтапной подгрузки по необходимости.

Разные режимы просмотра одной и той же ноды - как лучше реализовать

27 ноября 2018 в 10:42

Хочется дать посетителю возможность выбора режима просмотра нод на сайте - либо с большой картой и маленьким слайдшоу картинок в углу, либо с большой галереей картинок на месте карты и с маленькой статической картой на месте слайдшоу в углу. То есть нода одна, маршрут/путь по идее тоже один, общая раскладка регионов тоже одна, только некоторые блоки должны рендериться (или не рендериться) в зависимости от текущего режима, выбранного посетителем (в т.ч. анонимом).

Отдача большого зипа из контекста REST-энкодера

18 ноября 2018 в 19:47

Вопрос архитектурно-идеологического свойства имею Wink
Заканчиваю делать экспорт KML и KMZ. Делаю в виде дополнительного энкодера, который базируется на ядерном xml-энкодере и просто добавляет к списку доступных для REST-экспорта форматов KML и KMZ. В принципе все получается, только вот что непонятно:

Как грамотно сформировать и отдать клиенту zip-файл?

5 сентября 2018 в 14:43

Сейчас пытаюсь сформировать kml-файл (проблем на пути пока не вижу), но потом захочется формировать kmz-файл (это обычный zip-архив с kml-файлом и примкнувшими к нему картинками).
Как это правильно делать на восьмом друпале? Будет вьюшка, генерящая на выходе kml-файл, как перед отдачей этого файла клиенту сохранить его куда-нибудь во временную директорию, свалить туда же нужные картинки, зазиповать и отдать клиенту получившийся архив? Какие тут хуки можно/нужно задействовать, есть ли готовые модули/библиотеки/наработки, которые можно взять за основу?

Пустая первая строка в генерируемых файлах HTML и XML

4 сентября 2018 в 12:39

Попытался сгенерировать экспорт в XML формате (с помощью модуля Views Data Export, но это неважно) и обломался: первая строчка файла пустая, и любой уважающий себя XML парсер/вьюер этот файл с презрением отвергает. Прочёл всю имеющуюся на эту тему в инете информацию на двух языках. Убедился, что все HTML файлы тоже идут с пустой первой строкой (что никому не мешает).

Как ловчее всего в восьмерке выводить поле, требующее PHP-вычислений?

25 июля 2018 в 17:11

С сегодняшнего дня без объявления войны Google перестал отдавать картинки StreetView по неподписанным запросам. До этого момента у меня было определено кастомное поле Display Suite, в котором на токенах собирался нужный код:

Не могу достучаться до параметров запроса из hook_contextual_links_view_alter в контексте вьюшки с параметром

18 июля 2018 в 19:52

Успешно добавил контекстную ссылку "Добавить фото" на страницу ноды "Здание":