Подключение узлов к нескольким датам
У меня есть сайт компании со многими офисами по всему миру (около 50 офисов). Компания хочет создать раздачу подарков сотрудникам конкретной компании каждый конкретный день.
Например:
Office 1: will do the giveaway the days: 1/1/2010, 7/1/2010, 15/1/2010, etc...
Office 2: the days: 2/1/2010, 9/1/2010, 19/1/2010, etc...
Office 3: ....
Office 50: ...
(дни настраиваются вручную для конкретных офисов, здесь не нужен алгоритм)
У меня есть узел для Office, это тип контента CCK с подробными сведениями о каждом офисе (местоположение, телефон, электронная почта и т. Д.), Теперь мне нужно назначить эти дни для офисов.
Но моя проблема здесь в том, что мне не нужно создавать события (или, по крайней мере, события узла), потому что мне не нужно хранить какие-либо данные в событии. Просто нужно сказать: офис 1? Да, дни 01.01.2010, 01.07.2010 и т. Д.
Ничего другого, просто чтобы знать даты.
И, если возможно, сделайте их доступными для отображения в модуле календаря.
Что вы предлагаете?
3 ответа
Хорошо, я нашел решение сам и хочу поделиться им с вами:
Создано три типа контента:
Офис: с данными офиса
Дни: с узлом в день (365 * год)
и Дешевая распродажа: с двумя ссылочными полями узла, одно для Office и другое для Day.
(Дни должны быть заполнены вручную, используя скрипт, который заполняет ближайшие 2 года или около того).
Так что я могу заполнить только тип контента Giveaway, и этого достаточно.
И тогда остаются только мнения.
Почему бы не использовать простое старое текстовое поле CCK с хорошим четким описанием того, для чего оно предназначено, и как отформатировать его с помощью чего-то в разделе справки для его резервного копирования?
Используйте текстовую область (несколько строк) и применяйте формат ввода по умолчанию, который преобразует разрывы строк. Мне тоже нравится использовать фильтр вниз.
Вы также можете использовать несколько однострочных полей вместо текстовой области...
Это предполагает, что ваши пользователи достаточно умны, чтобы вводить правильную информацию, конечно, но для этого нужны справка и описание. Если ваши пользователи не могут доверять правильному вводу контента, тогда да, сделайте что-то, что заставит их сделать это.
С помощью CCK и модуля даты вы можете создавать поля даты, но если у вас есть много полей, которые вы хотите добавить, это может быть не лучшим решением.
У вас есть два основных способа решения этой проблемы. Либо вам нужно хранить каждую дату. Это может быть сделано с полем даты, не уверенным, может ли оно обрабатывать несколько значений, ссылку на узел или подобное. Это неэффективно в некоторых отношениях, но упростит создание календарного представления.
Вы также можете написать строку с информацией о дате и позволить php преобразовать ее в даты. Этот маршрут облегчит создание и хранение данных, но значительно усложнит интеграцию с календарем.
Самым лучшим / простым решением, вероятно, будет ссылка на узел с модулем даты в сочетании со скриптом для создания всех необходимых узлов. Вместо того, чтобы делать их внутри Drupal.
Вы также можете создать собственный модуль, который хранит эту информацию для вас. Это было бы более долгосрочное решение и потребовало бы больше работы для его интеграции с представлениями и модулями даты / календаря.
Есть много способов сделать это, но это действительно зависит от ваших потребностей, навыков и времени.