Как я могу переместить представление из одного объекта в другой?
У меня есть представление, которое я добавил в функцию A, и вместо этого я хотел бы перейти к функции B. Я воссоздал функцию A с помощью интерфейса администратора, но даже после повторного создания функции, очистки кэша и возврата функции представление по-прежнему отображается в базе данных в коде, и я не могу прикрепить его к функции B.
Как я могу удалить представление из одного объекта и добавить его в другой?
3 answers
Отключение, а затем повторное включение функции A после отсоединения от нее представления может решить эту проблему.
Если вы все еще не можете прикрепить представление к функции B после отключения и повторного включения функции A, то вы можете экспортировать представление с помощью интерфейса представлений (не функций), скопировать код в текстовый файл, затем удалить представление, введя URL-адрес страницы удаления вручную в адресную строку (я предполагаю, что пользовательский интерфейс представлений не даст вам ссылку на удаление, потому что он все равно будет предполагать, что он появится из кода). URL-адрес страницы удаления: администратор/структура/представления/представление/имя представления/удалить
После этого снова импортируйте представление через пользовательский интерфейс представлений и прикрепите к функции B.
У меня была похожая проблема раньше, не совсем такая же, но похожая проблема с определенным элементом, предполагающим, что он исходит из кода после того, как я его отсоединил. Надеюсь, это поможет.
Я смог сделать это, отредактировав соответствующее представление и заставив функцию переопределиться.
Как только функция будет переопределена (он же. просмотр настроек/конфигурации, сохраненных в БД) мы можем воссоздать соответствующую функцию без представления и вернуть эту функцию обратно на наш сайт. Отмените его, очистите кэш (хотя, когда я это делал, мне тоже не нужно было этого делать... все равно это не плохая идея).
Если все прошло по плану, теперь вы увидите, что представление доступно для использования в другой функции, добавьте его, верните на свой сайт и вперед!
Это также можно сделать исключительно в коде... Перейдите к своему функциональному модулю через интерфейс командной строки, вы заметите 2 файла: .info и views_default.inc
Найдите объявление в своем файле .info для соответствующего представления и переместите его в файл .info функции, частью которой вы хотите его сделать.
Далее вам потребуется найти раздел кода в файле views_default.inc, определяющий ваше представление, и переместить его в файл views_default.inc ваша новая функция. Он будет начинаться с $view = new view();
и заканчиваться $export['your_view'] = $view;
Вы захотите вернуть свои функции, чтобы правильно упорядочить файлы.
Еще один способ решить эту проблему - клонировать представление функции "Из". Это создаст еще один идентификатор UUID, и функции B смогут распознавать представление.