Как я могу переместить представление из одного объекта в другой?


У меня есть представление, которое я добавил в функцию A, и вместо этого я хотел бы перейти к функции B. Я воссоздал функцию A с помощью интерфейса администратора, но даже после повторного создания функции, очистки кэша и возврата функции представление по-прежнему отображается в базе данных в коде, и я не могу прикрепить его к функции B.

Как я могу удалить представление из одного объекта и добавить его в другой?

Author: Patrick Kenny, 2012-03-08

3 answers

Отключение, а затем повторное включение функции A после отсоединения от нее представления может решить эту проблему.

Если вы все еще не можете прикрепить представление к функции B после отключения и повторного включения функции A, то вы можете экспортировать представление с помощью интерфейса представлений (не функций), скопировать код в текстовый файл, затем удалить представление, введя URL-адрес страницы удаления вручную в адресную строку (я предполагаю, что пользовательский интерфейс представлений не даст вам ссылку на удаление, потому что он все равно будет предполагать, что он появится из кода). URL-адрес страницы удаления: администратор/структура/представления/представление/имя представления/удалить

После этого снова импортируйте представление через пользовательский интерфейс представлений и прикрепите к функции B.

У меня была похожая проблема раньше, не совсем такая же, но похожая проблема с определенным элементом, предполагающим, что он исходит из кода после того, как я его отсоединил. Надеюсь, это поможет.

 1
Author: Beebee, 2012-03-08 08:58:06

Я смог сделать это, отредактировав соответствующее представление и заставив функцию переопределиться.

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

Если все прошло по плану, теперь вы увидите, что представление доступно для использования в другой функции, добавьте его, верните на свой сайт и вперед!

Это также можно сделать исключительно в коде... Перейдите к своему функциональному модулю через интерфейс командной строки, вы заметите 2 файла: .info и views_default.inc

Найдите объявление в своем файле .info для соответствующего представления и переместите его в файл .info функции, частью которой вы хотите его сделать.

Далее вам потребуется найти раздел кода в файле views_default.inc, определяющий ваше представление, и переместить его в файл views_default.inc ваша новая функция. Он будет начинаться с $view = new view(); и заканчиваться $export['your_view'] = $view;

Вы захотите вернуть свои функции, чтобы правильно упорядочить файлы.

 3
Author: ZhuRenTongKu, 2014-03-27 22:34:11

Еще один способ решить эту проблему - клонировать представление функции "Из". Это создаст еще один идентификатор UUID, и функции B смогут распознавать представление.

 0
Author: itsdarrylnorris, 2015-08-19 18:15:45