Этично ли работать вручную с базой данных друпала?

Главные вкладки

Аватар пользователя amorphius amorphius 9 декабря 2009 в 1:43

Что то я загорелся сделать сам простенький таймер. Суть проста - на страничке формочка, содержащая только поле обратного отсчета до определенной даты (или отсчет определенного промежутка времени)и кнопочка "сабмит" или точнее ее назвать "резет", при нажатии на которую счетчик начинает считать заново.
Просто сделать на пхп+яваскрипт - элементарно. Но вот надо как то под друпалом это этично сделать. Не хочется создавать отдельную таблицу, в которой буду хранить дату/время, до которого считает счетчик. А в существующую таблицу не хочу писать - неизвестно как друпал отреагирует на такой беспредел.
Кто что посоветует?

Комментарии

Аватар пользователя amorphius amorphius 9 декабря 2009 в 2:18

о! спасибо большое.
только вот опять вопрос появился при реализации этого простенького модуля.
пока набросал вот что

function test_menu () {
  $items = array();
  $items ['countdown'] = array(
    'page callback' => 'test_page',
    'access arguments' => array('access content'),
    'type' => MENU_SUGGESTED_ITEM,
  );
  return $items;
}

function test_page() {
  return drupal_get_form('test_form');
}

function test_form($form_state) {
  $form = array();
  $form['submit'] = array (
    '#type' => 'submit',
    '#value' => t('Reset'),
  );
  return $form;
}

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

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 9 декабря 2009 в 3:16

Более чем. Я больше скажу - есть такая штука, как hook_schema_alter. Я могу навскидку привести некоторое количество модулей которые, если бы использовали этот хук, в разы меньшё дёргали бы базу и гоняли данных.

Аватар пользователя sadmin sadmin 9 декабря 2009 в 9:10

"Nikit" wrote:
http://api.drupal.ru/api/function/variable_get/6
http://api.drupal.ru/api/function/variable_set/6
http://api.drupal.ru/api/function/variable_del/6[/quote]
А если делать таймер для каждого пользователя и не один? И к таймеру привязывать событие?
Использовать триггеры?

Аватар пользователя Nikit Nikit 9 декабря 2009 в 14:01

"amorphius" wrote:
Не хочется создавать отдельную таблицу, в которой буду хранить дату/время, до которого считает счетчик.

Аватар пользователя digital_sword digital_sword 9 декабря 2009 в 12:23

Жалко нет в апи примеров... Как сим пользоваться?
variable_set($node->field_название_поля[?][?], $значение).
это вопрос для сск.

И еще вопрос: как быть, напимер, с термином таксономии?
И как быть для определенного номера ноды?

Аватар пользователя Nikit Nikit 10 декабря 2009 в 3:41

digital_sword wrote:
Жалко нет в апи примеров...

для примеров смотрите сами исходники друпала, хотя бы \modules\contact файлы contact.install и contact.module.

Особое внимание на файл contact.admin.inc, функция contact_admin_settings().
Здесь устанавливаются админские установки:
Есть 3 элемента с variable_get, причём название элемента и переменной в variable_get одинаковы.
В конце есть вызов return system_settings_form($form), которая автоматически запишет настройки без всяких дополнительных сабмитов в variables. Красота.

Аватар пользователя amorphius amorphius 9 декабря 2009 в 18:04

опять вопрос.
можно ли при в файле скрипта, который я потом добавляю на страничку функцией drupal_add_js("path/to/script.js","module","footer") использовать пхп вставки?
это нужно для того, чтоб как то передать в скрипт значения переменных из базы данных (а именно дату/время конца отсчета)

Аватар пользователя Nikit Nikit 10 декабря 2009 в 3:32

amorphius wrote:
опять вопрос. можно ли при в файле скрипта, который я потом

про page.tpl.php что-нибудь слышали? там можно в параметры скрипта поставить с php-вставками. Ну и другой способ ажаксно запросить прямо скрипта.

Аватар пользователя amorphius amorphius 10 декабря 2009 в 15:25

"Nikit" wrote:
про page.tpl.php что-нибудь слышали? там можно в параметры скрипта поставить с php-вставками. Ну и другой способ ажаксно запросить прямо скрипта.

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

Аватар пользователя Nikit Nikit 11 декабря 2009 в 1:37

amorphus в общем то неэтично повторно запрашивать параметры, которые статичны.
создайте другой простенький скрипт встроенный в page, там через php запишите параметры, и этот скрипт уже вызывает тот с нужными параметрами.