You are here

function i18n_install in Internationalization 5.3

Same name and namespace in other branches
  1. 5 i18n.install \i18n_install()
  2. 5.2 i18n.install \i18n_install()
  3. 6 i18n.install \i18n_install()
  4. 7 i18n.install \i18n_install()

Set language field in its own table Do not drop node.language now, just in case TO-DO: Drop old tables, fields

File

./i18n.install, line 7

Code

function i18n_install() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {i18n_node} (\n        nid int(11) unsigned NOT NULL ,\n        trid int(10) unsigned NOT NULL default '0',\n        language VARCHAR(12) NOT NULL default '',  \n        status smallint(6) NOT NULL default '0',\n        PRIMARY KEY (nid) \n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */");
      db_query("ALTER TABLE {term_data}\n        ADD language varchar(12) NOT NULL default '',\n        ADD trid int(10) unsigned NOT NULL default '0'\n      ");
      db_query("ALTER TABLE {vocabulary}\n        ADD language varchar(12) NOT NULL default ''\n      ");
      db_query("CREATE TABLE {i18n_variable} (\n        name varchar(48) NOT NULL default '',\n        language varchar(12) NOT NULL default '',\n        value longtext NOT NULL,\n        PRIMARY KEY (name, language)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      db_query("ALTER TABLE {menu} \n        ADD language VARCHAR(12) NOT NULL default ''\n      ");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {i18n_node} (\n        nid integer NOT NULL default '0', \n        trid integer NOT NULL default '0',\n        language varchar(12) NOT NULL default '',\n        status smallint NOT NULL default '0',\n        PRIMARY KEY  (nid)\n      )");
      db_query("CREATE TABLE {i18n_variable} (\n        name varchar(48) NOT NULL default '',\n        language varchar(12) NOT NULL default '',\n        value text NOT NULL,\n        PRIMARY KEY (name, language)\n      )");
      db_query("ALTER TABLE {term_data} ADD language varchar(12)");
      db_query("UPDATE {term_data} SET language=''");
      db_query("ALTER TABLE {term_data} ALTER COLUMN language SET NOT NULL");
      db_query("ALTER TABLE {term_data} ALTER COLUMN language SET DEFAULT ''");
      db_query("ALTER TABLE {term_data} ADD trid integer");
      db_query("UPDATE {term_data} SET trid='0'");
      db_query("ALTER TABLE {term_data} ALTER COLUMN trid SET NOT NULL");
      db_query("ALTER TABLE {term_data} ALTER COLUMN trid SET DEFAULT '0'");
      db_query("ALTER TABLE {vocabulary} ADD language varchar(12)");
      db_query("UPDATE {vocabulary} SET language=''");
      db_query("ALTER TABLE {vocabulary} ALTER COLUMN language SET NOT NULL");
      db_query("ALTER TABLE {vocabulary} ALTER COLUMN language SET DEFAULT ''");
      db_query("ALTER TABLE {menu} ADD language varchar(12)");
      db_query("UPDATE {menu} SET language=''");
      db_query("ALTER TABLE {menu} ALTER COLUMN language SET NOT NULL");
      db_query("ALTER TABLE {menu} ALTER COLUMN language SET DEFAULT ''");

      // Sequences
      db_query("CREATE SEQUENCE {i18n_node}_trid_seq INCREMENT 1 START 1");
      db_query("CREATE SEQUENCE {term_data}_trid_seq INCREMENT 1 START 1");
  }

  // Set module weight for it to run after core modules
  db_query("UPDATE {system} SET weight = -10 WHERE name = 'i18n' AND type = 'module'");
  db_query("UPDATE {system} SET weight = 10 WHERE name = 'translation' AND type = 'module'");
}