Как вставить данные о сайте в другую таблицу?


Я разработал веб-сайт с использованием Drupal. Я создал приложение без использования Drupal, используя другой фреймворк. В моем приложении я также сохранил логотип сайта, название сайта и т.д. Я хочу обновить таблицу информации о своем сайте при обновлении Информация о сайте Drupal от администратора/настройки/информация о сайте.

Поля следующие:

  • Идентификатор: int(12), первичный ключ

  • Заголовок сайта: varchar(60)

  • Сайт_лого: варчар(200)

 1
Author: kiamlaluno, 2011-12-15

2 answers

Есть много способов сделать это, но я думаю, что есть один простой и "друпальский" способ сделать это:

Определите несколько баз данных в вашем экземпляре drupal

Установите 2 базы данных, чтобы они были доступны для drupal.

Тогда остается только решить, когда вы хотите получить и обновить данные.

Вы можете использовать hook_install (или hook_enable) и добавить туда запрос, который загрузит ваши данные в базу данных drupal при включении модуля. Или вы могли бы создать обратный вызов, который обновит данные при посещении определенного URL-адреса, все это зависит от вас.

Надеюсь, это поможет, удачи.

 0
Author: stefgosselin, 2011-12-15 08:24:29

Вы можете использовать hook_form_alter для добавления функции отправки в форму, см. http://drupal.org/node/222158 (для D6, но должно быть то же самое для D7).

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

Вы можете запросить другую базу данных, следуя этому документу http://drupal.org/node/18429

  $other_database = array(
      'database' => 'databasename',
      'username' => 'username', // assuming this is necessary
      'password' => 'password', // assuming this is necessary
      'host' => 'localhost', // assumes localhost
      'driver' => 'mysql', // replace with your database driver
  );
  // replace 'YourDatabaseKey' with something that's unique to your module
  Database::addConnectionInfo('YourDatabaseKey', 'default', $other_database);
  db_set_active('YourDatabaseKey');

  // execute queries here

  db_set_active(); // without the paramater means set back to the default for the site
  drupal_set_message(t('The queries have been made.'));
 1
Author: gagarine, 2011-12-15 13:33:59