roman-ivannikov: Комментарии

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

26 сентября 2019 в 19:16

Уважаемый камрад.
Я в консоль заглянул в первую очередь. То что, элемент сдвинулся за пределы экрана, я через инспектора и обнаружил. А что мне посмотреть в консоли? С чего начать копать, чтобы понять причину произошедшего?

Благодарю.

28 августа 2019 в 19:02

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

Еще раз, большое Вам спасибо.

28 августа 2019 в 18:31

Mnilionic wrote:
Логично предположить, что рендер контента блока происходит раньше чем срабатыават ваш альтер. Именно по этому нужна не глобальная переменная, а геттер функция , которая получает данные если их нет и потом возвращает.

Уважаемый камрад, огромное Вам спасибо за терпеливое внимание к моим вопросам.

23 августа 2019 в 9:14

Mnilionic wrote:
Определять предпочтительный город/поддомен и выводить текущий город - это разные задачи, разные функции.
Определять предпочтение надо как можно раньше (в инициализиции, в миддлварах где-нить), чтоб в случае чего редиректнуть на желаемый домен. А получить имя текущего города - это уже что-то где-то возле вьюсов и шаблонов.

22 августа 2019 в 14:39

Mnilionic wrote:
Как думаете для чего возле переменной стоит ключевое слово static?
С точки зрения программирования, мы именно программированием и занимаемся.
Даже если допустить, что вам нужна глобальная переменная... Но сессия то вам зачем?

21 августа 2019 в 21:07

Mnilionic wrote:

Ну, да. Зачем этот огород с сессиями?


Ну да! Это логично и правильно с точки зрения программирования.
Но, с другой стороны получается, что функция будет вызваться по несколько раз на одной и той же странице. Не проще вызвать ее один раз при формировании страницы, запомнить город в глобальной переменной и пользоваться ей?
Осталось понять где это место - "при формировании страницы".

21 августа 2019 в 13:16

Mnilionic wrote:
Зачем? Я так понимаю каждому городу свой поддомен? Почему не использовать поддомен чтоб получить текущий город?

Что именно зачем?
В принципе по поддомену и выбирается город, он и заносится в глобальную переменную. Или Вы имели в виду зачем он туда заносится?
То есть, например, сделать функцию, возвращающую название города по поддомену и вызывать ее в тех местах где надо?

21 августа 2019 в 12:23

Камрады, привет! Извините за долгое отсутствие.
Вопрос маленько изменю, так как в некоторых вещах пришло понимание, но над одной "странностью" сломал голову.
И так. Исходные данные не изменились: Drupal 7. Модули Domain Access, Taxonomy. В Таксономии - города.
Города выбираются из Представления (каждый город в виде гиперссылки со своим параметром). После выбора города происходит переход на соответствующий поддомен.

Весь "хоровод" вертится вокруг глобального массива _SESSION. Так было сделано изначально и сейчас пока не время это менять.

25 июля 2019 в 18:26

Спасибо, камрады. Разобрался.

Есть еще таблица связанная с модулем - domain_export. В ней было записей меньше, чем в таблице domain. Состоит она из двух полей. Одно из полей, с именем "domain_id", как раз и является авто-инкрементным.
Добавил в эту таблицу строку с данными из последней записи таблицы domain и всё: добавление новых записей через интерфейс модуля стал возможен. Значит кто-то ранее вносил изменения в эту таблицу.

25 июля 2019 в 18:24

Ура! Разобрался в логике работы модуля. Модуль, кстати, называется Domain Access.
Есть еще таблица связанная с модулем - domain_export. В ней было всего 5 записей. Состоит она из двух полей. Одно из полей, с именем "domain_id", как раз и является авто-инкрементным.
Добавил в эту таблицу строку с данными из последней записи таблицы domain и всё: добавление новых записей через интерфейс модуля стал возможен. Значит кто-то ранее вносил изменения в эту таблицу.

22 июля 2019 в 15:48

Уважаемый камрад.
Я посмотрел структуру таблицы. Поле ID является уникальным, но без автоинкремента. Также оно является первичным ключом. Это 100%. Для точности: поле называется не ID, но не думаю что это важно.
Через интерфейс модуля успешно добавляли новые записи пару лет назад. За прошедшее время успели обновить ядро drupal. Но всё это я не застал.
Модуль обновил до последней рабочей версии.
Я так понимаю, что придется капать в коде модуля и смотреть что от куда берется?

22 июля 2019 в 6:52

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
Инкремент уникального ключа делает автоматически, если записи стерты инкремент не уменьшается.

Уважаемый камрад.
Посмотрел, в таблице данное поле не автокриментно. Но уникально. Значит сам модуль отвечает за корректность значений в этом поле?

22 июля 2019 в 6:48

Уважаемый камрад.
Спасибо за ответ. Функции max() и count() я изучил. Запросы SQL касался поверхностно.
Запросы к БД сделаю. Посмотрю что выйдет.

Запрос показал значение Null. То есть, автокремента нет.
Значит сам модуль генерирует новое значение для ключевого поля, так?
А разработчик модуля написал, что это значение автоматические генерируется из drupal_write_record(). Вот его ответ:
It is auto-generated from drupal_write_record(). I don't recall how that code looks up the value to use.

Скажите, куда мне дальше копать?

20 июля 2019 в 7:01

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '15' for key 'PRIMARY': INSERT INTO {domain} (domain_id, subdomain, sitename, scheme, valid, weight, is_default, machine_name) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7); Array ( [:db_insert_placeholder_0] => 15 [:db_insert_placeholder_1] => sevastopol.nopss.ru [:db_insert_placeholder_2] => Национальная Организация Поддержки и Со