Для entity кэш тэг состоит из типа сущности и ID, т.е. в данном случае это будет типа такого obects:123, где 123 - ID сущности. Все тэги которые используются при формировании страницы можно посмотреть в заголовке ответа сервера X-Drupal-Cache-Tags
marassa wrote:
Если это блок, а не страница, то сама страница /users/имя_пользователя/blog/ откуда берется и чем формируется?
Вам нужно настраивать представление, которое формирует страницу, а не блок. Валидация не нужна, ключевая настройка "Провалить проверку, если получен любой аргумент". Но глобальный Null настраивать, еще раз, не на блоке, а на странице.
Да, и правда, если для вьюса стоят права доступа по роли, то при удалении роли вьюс тоже удаляется. Представления хранятся как конфигурации в таблице config. Но в вашем случае их там уже не будет. Может помочь только восстановление базы из бэкапа. Ну или если когда-то делали drush config:export (а в последнее время - не делали) может эти представления в папке синхронизации сохранились. Кстати, если есть бэкап базы то можно оттуда попробовать вытащить только нужные записи.
Потому что по-умолчанию данные возвращаются в виде массива объектов, т.к. используется PDO::FETCH_OBJ стиль выборки. Подробнее можно почитать здесь https://www.php.net/manual/ru/pdostatement.fetch.php#refsect1-pdostateme...
Соответственно каждая строка представлена объектом, свойства которого соответствуют полям в выборке.
И чтобы обойти значения, не обязательно делать fetchAll(), можно сразу в цикле обходить результат, как-то так:
Вот здесь https://www.drupal.org/node/2013014 есть пример, как использовать свой сервис вместо hook_init(). И там как раз по событию KernelEvents::REQUEST проверяется GET параметр.
Может баг, а может так задумано. На самом деле path в маршруте это же еще не ссылка. К ней, например, может подставляться языковой префикс. Соответственно формируется базовый путь. А вот почему туда попадает имя исполняемого скрипта update.php и насколько это правильно - не знаю.
Недосмотрел, что у вас имя файла TwigMyExtension.php, я ориентировался на php комментарий в файле. Но, все равно, путаница с именами при этом сохраняется, потому что имя класса kkintExtension, а оно должно соответствовать имени файла.
Тогда, если у вас TwigMyExtension.php лежит в папке src, то достаточно поменять имя класса на TwigMyExtension:
Полное имя класса должно соответствовать пути и имени файла. Если у вас путь к файлу src/AppBundle/Twig/KintExtension.php, то будет namespace Drupal\kkint\AppBundle\Twig; , а имя класса KintExtension .
А в коде страниц у вас не добавляется случайно тэг <link rel="shortlink" href="/node/*"/> ?
Еще, если у вас раньше были ссылки на node/*, а потом вы их убрали, а страницы закрыли через 404 статус, то гугл может их еще долго помнить и периодически пытаться просканировать.
Если это у вас представление блок, а не страница, то нужно донастроить контекстный фильтр Global:Null, например так
Если generator/120 у вас не системный путь, а алиас, то еще отметить соответствующую галочку
Ошибки бывают из-за разделителя. Насколько я помню он импортирует через fgetcsv c дефолтным разделителем - запятая. Так что при сохранении файла для импорта лучше убедиться, что там правильный разделитель. А так да, этот модуль чисто для мета-тэгов, другие поля в нем не выгружаются. Мне как-то надо было добавить в его выгрузку алиас, но я честно говоря просто пропатчил функцию выгрузки, потому что нужно было разовое решение.
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
Для entity кэш тэг состоит из типа сущности и ID, т.е. в данном случае это будет типа такого
obects:123
, где 123 - ID сущности. Все тэги которые используются при формировании страницы можно посмотреть в заголовке ответа сервераX-Drupal-Cache-Tags
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
В зависимости от того, что обновляется в БД, нужно инвалидировать соответствующие кэш тэги https://www.drupal.org/docs/drupal-apis/cache-api/cache-tags
Дубликаты в блоке представления
Обратите внимание на этот комментарий
Вам нужно настраивать представление, которое формирует страницу, а не блок. Валидация не нужна, ключевая настройка "Провалить проверку, если получен любой аргумент". Но глобальный Null настраивать, еще раз, не на блоке, а на странице.
Добавить в body библиотеки по определенному порядку
А если объявить master как зависимость для slave в .libraries.yml?
Массив данных записать в элемент формы, foreach PHP
Если просто список, то можно так
Пропали представления
Да, и правда, если для вьюса стоят права доступа по роли, то при удалении роли вьюс тоже удаляется. Представления хранятся как конфигурации в таблице config. Но в вашем случае их там уже не будет. Может помочь только восстановление базы из бэкапа. Ну или если когда-то делали drush config:export (а в последнее время - не делали) может эти представления в папке синхронизации сохранились. Кстати, если есть бэкап базы то можно оттуда попробовать вытащить только нужные записи.
Пропали представления
А если через экспорт-правку-импорт конфигов? Драшем или здесь /admin/config/development/configuration/single/export
Подскажите, как сделать запрос к базе данных
Потому что по-умолчанию данные возвращаются в виде массива объектов, т.к. используется PDO::FETCH_OBJ стиль выборки. Подробнее можно почитать здесь https://www.php.net/manual/ru/pdostatement.fetch.php#refsect1-pdostateme...
Соответственно каждая строка представлена объектом, свойства которого соответствуют полям в выборке.
И чтобы обойти значения, не обязательно делать fetchAll(), можно сразу в цикле обходить результат, как-то так:
Ошибка при навигации по сайту
И правда был баг в теме. Разработчик уже зарелизил новую версию с исправлением https://www.drupal.org/project/at_theme/releases/1.4.8
Записать значение в куки на любой странице
Вот здесь https://www.drupal.org/node/2013014 есть пример, как использовать свой сервис вместо hook_init(). И там как раз по событию KernelEvents::REQUEST проверяется GET параметр.
Ошибка при навигации по сайту
Да, действительно. Оказывается я зашел по старому адресу https://www.drupal.org/project/adaptivetheme , а версия под 9-ку теперь здесь https://www.drupal.org/project/at_theme
В таблицу вставляется неправильная ссылка
Может баг, а может так задумано. На самом деле path в маршруте это же еще не ссылка. К ней, например, может подставляться языковой префикс. Соответственно формируется базовый путь. А вот почему туда попадает имя исполняемого скрипта update.php и насколько это правильно - не знаю.
В таблицу вставляется неправильная ссылка
Возможно, добавление пустого base_url решит проблему
<?php
Создание модуля расширения для TWIG
Недосмотрел, что у вас имя файла TwigMyExtension.php, я ориентировался на php комментарий в файле. Но, все равно, путаница с именами при этом сохраняется, потому что имя класса kkintExtension, а оно должно соответствовать имени файла.
Тогда, если у вас TwigMyExtension.php лежит в папке src, то достаточно поменять имя класса на TwigMyExtension:
use Twig\TwigFunction;
Создание модуля расширения для TWIG
Полное имя класса должно соответствовать пути и имени файла. Если у вас путь к файлу
src/AppBundle/Twig/KintExtension.php
, то будетnamespace Drupal\kkint\AppBundle\Twig;
, а имя классаKintExtension
.Ошибка при навигации по сайту
У AdaptiveTheme пока нет версии для 9-ки. Используйте Drupal 8 или другую тему.
Ошибка в представлении, путь на кириллице.
Там на самом деле для 9-ки. Просто человек столкнулся с проблемой при переходе с 8 на 9.
Теперь там есть патч https://www.drupal.org/project/drupal/issues/3165784#comment-13957131
Пропало и не добавляется видео youtube (Only the following types of files are allowed to be uploaded)
Есть такая проблема https://www.drupal.org/project/media_oembed/issues/3188526
В настройках /admin/config/media/media-oembed/list/youtube/edit в поле Endpoint замените http:// на https://
Форма в виде таблицы
Для webform есть Webform Matrix Component
Откуда могут появляться страницы с /node/*
А в коде страниц у вас не добавляется случайно тэг
<link rel="shortlink" href="/node/*" />
?Еще, если у вас раньше были ссылки на node/*, а потом вы их убрали, а страницы закрыли через 404 статус, то гугл может их еще долго помнить и периодически пытаться просканировать.
Контекстные фильтры и диапазон значений
Если это у вас представление блок, а не страница, то нужно донастроить контекстный фильтр Global:Null, например так
Если generator/120 у вас не системный путь, а алиас, то еще отметить соответствующую галочку
Контекстные фильтры и диапазон значений
В контекстных фильтрах больше/меньше не работает.
Можно использовать модуль https://www.drupal.org/project/views_argument_substitutions
Импорт и экспорт в CSV для нод, товаров Commerce и терминов таксономии вместе с HTML-метатегами
это не проблема, строковые значения с запятыми заключаются в кавычки при сохранении и обрабатываются нормально
Импорт и экспорт в CSV для нод, товаров Commerce и терминов таксономии вместе с HTML-метатегами
Ошибки бывают из-за разделителя. Насколько я помню он импортирует через fgetcsv c дефолтным разделителем - запятая. Так что при сохранении файла для импорта лучше убедиться, что там правильный разделитель. А так да, этот модуль чисто для мета-тэгов, другие поля в нем не выгружаются. Мне как-то надо было добавить в его выгрузку алиас, но я честно говоря просто пропатчил функцию выгрузки, потому что нужно было разовое решение.
Импорт и экспорт в CSV для нод, товаров Commerce и терминов таксономии вместе с HTML-метатегами
Может https://www.drupal.org/project/metatag_import_export_csv ?