mmjmm: Блог

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

Занесение в БД значения 0 и NULL

26 мая в 9:50

Здравствуйте. Вопрос больше не по друпал, а по mysql. Я через некоторую кастомную форму делаю запрос (update) к БД на перезапись одного поля (тип integer(10)). Я ввожу "0", в таком случае в БД в поле сохраняется значение "NULL". А мне важно отличие между 0 и NULL в моем случае.
Подскажите, как в это поле можно сохранить именно значение "0".

Плагин QueueWorker

14 апреля в 8:50

Здравствуйте.
В скрипте создается очередь с некоторым количеством задач.
В задачах может отличаться параметр "operation" , который в себе будет содержать название функции для обработки этой задачи.
Создаю плагин QueueWorker, в котором находится лишь одна функция - processItem($item) (обработка элемента очереди).

Подскажите, а как инициализировать выполнение этого обработчика?

В crontab как-то его прописать?
Нашел команду drush queue:run. Подходит ли?

Вывести ссылку в рендер-таблице

5 апреля в 13:12

Здравствуйте.
Создаю таблицу посредством рендера:
$header = [
'col1' => '1',
'col1' => '2',
'col1' => '3',
];

$rows = [
'col1',
'col2',
'ссылка'
];

$return my_table = [
'#type' => 'table',
'#header' => $header,
'#rows' => $rows,
];

Как можно поместить разметку вида "Link" в третий столбец?

Смена значения поля "date" с помощью ajax

30 марта в 8:20

Здравствуйте. У меня есть поле:
$form['date'] = [
'#type' => 'date',
'#title' => $this->t('Дата'),
];

Необходимо ниже этого поля сделать ссылку/кнопку (что угодно) под названием "Текущая дата", что бы при нажатии на это в поле "date" значение менялось на текущую дату (date("Y-m-d"))

Форма в модальном окне

22 марта в 9:32

Создал кастомную форму FormBase + ссылку на нее. Необходимо вывести ее в модальном окне при нажатии на некоторую свою ссылку.
Создал ссылку вида:
a class="use-ajax" href="{{ ссылка на форму }}" data-dialog-type="modal"

Теперь при нажатии на эту ссылку появляется форма в модальном окне, но при нажатии на submit формы происходит переход по ссылки на эту же самую форму.

Создать несколько sitemaps на сайте

20 марта в 12:06

Добрый день. Мне необходимо создать несколько карт сайта. Одна стандартно уже есть site/sitemap.xml.
А теперь дополнительно надо создать ссылку site/sitemap2.xml

На странице sitemap/admin/config/search/xmlsitemap нажимаю на кнопку "Добавить XML-карту сайта", ввожу label и выдается ошибка "Существует другая карта сайта, сохраненная в том же контексте".

Написать drush-команду

28 февраля в 13:29

Здравствуйте. У меня есть кастомный модуль на Drupal 8. В нем прописан hook_cron().
Необходимо написать некоторую drush- команду, которую пропишу в crontab на выполнение каждые 10 минут. При выполнении этой команда необходимо вызывать скрипт в hook_cron() моего модуля.
Как такое можно сделать?

Web form - дублирование e-mail письма

2 февраля в 9:25

Здравствуйте. У меня есть 6 форм на сайте. При отправке любой из них на указанную в ней почту приходит 2 идентичных письма (дубликаты). По какой причине такое может происходить и в какую сторону думать?

Views - добавить раскрывающийся список со всеми вариациями значений поля

17 января в 12:18

Здравствуйте. У меня есть материал типа product. Создал фильтр с помощью представления. В критериях фильтрации добавил свое поле Производитель - "field_brand".

Моя задача - фильтрацию по производителю сделать в виде раскрывающегося списка, который будет строиться из всех вариантов, которые заполнены в этом поле у всех имеющихся товаров. (например: у некоторых товаров производитель_1, у других производитель_2 и тд. В списке должны указываться эти варианты: производитель_1, производитель_2 и тд).

Открыто доступ к пунктам toolbar menu

11 января в 12:02

Здравствуйте. С помощью своего модуля я добавляю пункты меню в toolbar menu с использованием файла links.menu.yml.
Мне необходимо открыть доступ к этим пунктам аутентифицированным пользователям, не обладающим ролью администратора. При этом доступ к остальным пунктам (конфигурации, содержимое и тд) запретить. Подскажите, пожалуйста, как такое можно сделать?

Вкладка, ведущая на представление, на ноде

23 декабря 2022 в 8:43

Есть некоторое представление с ссылкой /node/%/stocks
Задача: вывести вкладку "Склады" на ноде /node/%

Название роутинга представления: view.stocks.page_1

Я в файл links.task.yml прописал:
ap_stocks.stocks_tab:
route_name: view.stocks.page_1
base_route: entity.node.canonical
weight: 10

При переходе на любую ноду или представление выдается ошибка : Some mandatory parameters are missing ("arg_0") to generate a URL for route "view.stocks.page_1". in Drupal\Core\Routing\UrlGenerator->doGenerate()

Программное добавление контента в кастомную сущность

22 декабря 2022 в 14:52

Здравствуйте. Я создал кастомную сущность "cutom_entity". Теперь мне программно надо добавить контент типа "cutom_entity".
Как ноду добавлять, я знаю:
$new_content = Node::create([
'type' => 'bundle',
'title' => $product_name,
'field_stock_id' => $stock_id,
'field_offer_id' => $id,
'field_available' => $available,

Генерация нескольких сущностей

15 декабря 2022 в 13:13

Здравствуйте. У меня стоит задача сгенерировать в одном модуле несколько сущностей.
Я использую команду vendor/bin/drush generate content-entity
После создания первой сущности, начинаю создание второй и все .yml файлы уже существуют. Мне предлагают их перезаписать. А мне необходимо добавить.
Как в такой ситуации можно поступить?

Синоним для кастомной страницы

7 декабря 2022 в 11:58

Здравствуйте. У меня есть некоторая ссылка (с get-параметрами), созданная кастомным модулем. Как можно для этой ссылки задать синоним, что бы переходить именно по ней?
Пробовал в конфигурациях->Синонимы URL, но ничего не работает.

Если в системном пути я указываю ссылку без параметров, то тогда все работает

Термин таксономии (снятие с публикации)

5 декабря 2022 в 12:22

Здравствуйте. Мне на сайте надо снять с публикации некоторый термин (термины). Я захожу в редактирование термина, снимаю галочку с "Опубликовать", сохраняю.
Но термин так и остается опубликованным для всех.
Смотрю состояние в devel - статус меняется с 1 на 0 и наоборот.
Не написано никаких кастомных команд, которые бы вклинивались в статус термина.
Подскажите, пожалуйста, в чем может быть причина и куда обратить внимание?

Карты сайта

24 ноября 2022 в 9:05

Здравствуйте. Использую модуль xmlsitemap. На сайте огромное количество элементов и при нажатии на кнопку "Перестроить карту", происходит долгое выполнение и затем прерывание процесса.

Приходится использовать драш-команду xmlsitemap:rebuild и с помощью нее происходит перестроение.

НО в настройках этого модуля хочу установить более 5 000 ссылок на странице. В таком случае и драш-команда не помогает. Выдается ошибка "output is empty". (До 5 000 ссылок работает отлично)

Drupal 7 - отчистить метатеги ноды

15 ноября 2022 в 15:21

Здравствуйте. Подскажите, пожалуйста, есть определенная нода с id = 849.
В редактировании во вкладке devel вижу, что значения поля metatags заполнены

Как программно мне их отчистить для русского языка?

Кастомная сущность: Создать отдельные права доступа на создание / редактирование/ удаление объекта сущности.

26 августа 2022 в 10:11

Создал кастомную сущность с помощью команды vendor/bin/drush generate content-entity
Вместе с этим появилось 2 права доступа:

Получить значение поля формы

26 августа 2022 в 7:56

Здравствуйте.
У меня есть кастомная сущность. У нее есть форма редактирования сущности.
Мне надо в хуке hook_FORM_ID_form_alter из этой формы получить значение поля "автор" этой сущности

Название поля автор: name="uid[0][target_id]"

Пытался получить так: $form_state->getValue('uid[0][target_id]'), но не работает

Прописать permission роутингу кастомной сгенерированной сущности

24 августа 2022 в 13:58

Здравствуйте.
Создал кастомную сущность с помощью команды vendor/bin/drush generate content-entity.

В папке Entity создался файл, в котором содержится аннотация.
В ней прописаны роутинги:

Запрос Друпал к БД

19 августа 2022 в 13:32

Здравствуйте.
У меня есть кастомная сущность. У нее есть одни из полей - status, access, uid

Мне надо написать запрос через $query = \Drupal::entityTypeManager()->getStorage('dt_stock_entity')->getQuery();

Условие должно быть такое :
Выбрать записи, у которых uid == id текущего пользователя ИЛИ (status = 1 && access == 1)

Подскажите, пожалуйста, как это можно сделать?

Кеш не работает

15 июля 2022 в 9:02

Здравствуйте.
Вывожу ноды типа Статья через getViewBuilder.
Мне надо, что бы кеш для всех статей, всего списка этих нод был включен навсегда ['#cache']['max-age'] = \Drupal\Core\Cache\Cache::PERMANENT;

При этом есть тег статьи node:13126. При изменении этой статьи должен инвалидироваться кеш и создаваться заново.
В случае обновления других статей кеш должен оставаться.

Список статей выводится через шаблон темизации.

Обращение через один домен к другому по curl

19 июня 2022 в 11:40

Здравствуйте. Обращаюсь с одного домена к роутингу другого домена. В этом роутинги функция должна вернуть некоторый результат на первый домен. Подключаюсь по curl. Но роутинг доступен только для администратора. И при полключении по curl происхрдит возврат не результата этой функции, а html код страницы авторизации, то есть до нужного контроллера не доходит.
Подскажите, пожалуйста, где и как можно ввести логин и пароль администратора, что бы по curl получить доступ?

Регулярные выражения во views exposed filters

11 мая 2022 в 14:31

Здравствуйте.
У меня есть сущность- product. У нее одно из полей - "На складе". Оно не обязательно для заполнения.
У некоторой продукции указано количество штук, у некоторых 0, а у некоторых поле не заполнено.

Созданы материалы этой сущности.
В exposed filters надо создать по данному полю группы:
-Любое
-Отсутствует
-Имеется

К группе "отсутствует" относятся продукция со значением поля 0 и NULL

Задать группе сразу несколько условий, как я вижу, нельзя в представлении. Но есть регулярные выражения.