Drupal - поле просмотра исчезает при сохранении страницы
У нас есть несколько страниц на нашем сайте Drupal 8.4 (страницы программ), на которых должен быть показан список курсов в их программе. После обновления список курсов исчезнет при каждом сохранении этих страниц. Наша установка включает в себя 3 отдельных типа контента:
- Страницы программы, в которых есть поле просмотра, которое использует фильтр для получения курсов, принадлежащих его программе, называется field_program_courses. Это то, что исчезает.
- Программы, которые содержат информацию о программе и имеют поле Entity Reference, указывающее, с какой страницей программы они связаны (field_program_page_to_link).
- Курсы, в которых есть информация о курсах, в том числе к какой программе (программам) они принадлежат (field_select_specific_program).
После обновления с Drupal 8.1 до 8.4, каждый раз, когда мы нажимаем "Сохранить" на странице программы (даже без внесения каких-либо изменений), запись базы данных для поля этой_программы_страницы этой страницы программы стирается и перестает отображаться при просмотре страницы. Мы должны вернуться к предыдущей версии, чтобы она появилась снова.
Если я создаю новый курс, он будет хорошо отображаться на существующих страницах программы, но если я попытаюсь создать новую страницу программы, он не покажет никаких курсов. Я попытался создать новый вид для замены field_program_courses, но он не позволил мне выбрать field_program_page_to_link в раскрывающемся списке отношений, поэтому я не могу получить надлежащую фильтрацию.
К сожалению, это, кажется, было вызвано обновлением до Drupal 8.4, и откат этого назад не вариант. Любые идеи, вопросы или предложения о том, как поступить?
1 ответ
Закончилось обращение к подрядчику, чтобы решить эту проблему. Они сказали, что проблема произошла, потому что поле field_program_courses имеет хук, который загружает список представлений. Это перестало работать, поэтому единственной выбираемой опцией стало "none", поэтому при сохранении страницы использовалось значение "none". Что касается того, почему именно это перестало работать, они предполагают, что это было вызвано изменением в модуле contrib_block в обновлении 8.1->8.4, хотя они точно не знают, что это было.
Исправление включало повторное создание представления с другим дисплеем, у которого не было контекстных фильтров, и добавление некоторого кода в нашу тему, который загружал блок для страниц программ.