Как мне разрешить этот конфликт между двумя функциональными модулями?


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

Хотя функциональные модули предназначены для работайте вместе, им не нужно, чтобы оба присутствовали на одном и том же сайте. Каждый из них также может работать с другими различными функциями. Они оба используют таксономию и поля для фильтрации представлений и т. Д., Поэтому имеет смысл, чтобы каждый из них включал эти компоненты в свое определение функций. Должен ли я:

  • Удалить поля и таксономию из одного из модулей и объявить зависимость от другого? Это нежелательно, так как каждый может работать без другого.
  • Сделайте две версии функции, одна для независимого использования, а другая для совместной работы.
  • Определить поля и таксономию как отдельную функцию?
  • Игнорировать конфликт и включить модули? (Если я это сделаю, будут ли они оба делить поле?)
  • Другое решение?

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

 17
Author: Ashlar, 2012-02-10

3 answers

Создайте третью функцию, определяющую компоненты (*), используемые двумя другими независимыми функциями.

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

echo 'digraph G {label="Dependency Graph";  structural [label="Structual Feature\n(Fields, Taxonomy)"];  "Feature A\n(Content Type)" -> structural;  "Feature B\n(Content Type)" -> structural; };' | dot -Tpng > dependency.png

(*) Однако в функциях для Drupal 7 эта функция еще не закреплена - см. http://drupal.org/node/1064472 , и помогите просмотреть предлагаемый там код. - Этот патч был привержен функциям 7.x-2.x.

 17
Author: smokris, 2015-02-20 03:50:48

Это решение в d.o отлично работало для меня, гораздо более надежное для экспорта на различные сайты, чем создание третьей функции, которая создавала бы осиротевшие поля на другом несвязанном сайте.

Http://drupal.org/node/1698290

 1
Author: frazras, 2012-12-11 19:07:12

Одно из решений, которое сработало для меня, состояло в том, чтобы объединить две функции в одну большую функцию.Это разрешило конфликты.

 0
Author: sokratis, 2012-12-11 19:13:17