You are here

function panels_install in Panels 5.2

Same name and namespace in other branches
  1. 5 panels.install \panels_install()
  2. 6.3 panels.install \panels_install()
  3. 6.2 panels.install \panels_install()

Install the panels tables

File

./panels.install, line 7

Code

function panels_install() {
  switch ($GLOBALS['db_type']) {
    case 'pgsql':
      db_query(<<<EOT
        CREATE TABLE {panels_page} (
          pid integer NOT NULL DEFAULT 0,
          name varchar(255) UNIQUE,
          did integer,
          title varchar(128),
          access varchar(128),
          path varchar(128),
          css_id varchar(128),
          css text,
          arguments text,
          displays text,
          contexts text,
          relationships text,
          no_blocks smallint DEFAULT 0,
          switcher_type varchar(128),
          switcher_name varchar(128),
          switcher_options text,
          -- menu fields
          menu smallint DEFAULT 0,
          menu_tab smallint,
          menu_tab_weight smallint,
          menu_title varchar(255),
          menu_tab_default smallint,
          menu_tab_default_parent_type varchar(10),
          menu_parent_title varchar(255),
          menu_parent_tab_weight smallint,
          PRIMARY KEY (pid)
        );
EOT
);
      db_query("CREATE SEQUENCE {panels_page}_pid_seq;");
      db_query("CREATE INDEX {panels_page}_path_idx ON {panels_page} (path);");
      db_query("CREATE INDEX {panels_page}_name_idx ON {panels_page} (name);");
      db_query(<<<EOT
        CREATE TABLE {panels_display} (
          did integer NOT NULL DEFAULT 0,
          layout varchar(32),
          layout_settings text,
          panel_settings text,
          cache text,
          title varchar(128),
          hide_title smallint DEFAULT 0,
          PRIMARY KEY (did)
        );
EOT
);
      db_query("CREATE SEQUENCE {panels_display}_did_seq;");
      db_query("CREATE INDEX {panels_display}_name_idx ON {panels_page} (name);");
      db_query(<<<EOT
        CREATE TABLE {panels_pane} (
          pid integer NOT NULL DEFAULT 0,
          did integer NOT NULL DEFAULT 0,
          panel varchar(32),
          type varchar(32),
          subtype varchar(64),
          shown smallint DEFAULT 1,
          access varchar(128),
          visibility text,
          configuration text,
          cache text,
          position smallint,
          PRIMARY KEY (pid)
        );
EOT
);
      db_query("CREATE SEQUENCE {panels_pane}_pid_seq;");
      db_query("CREATE INDEX {panels_pane}_did_idx ON {panels_pane} (did);");
      db_query(<<<EOT
        CREATE TABLE {panels_object_cache} (
          sid varchar(64),
          did integer,
          obj varchar(255),
          timestamp integer,
          data text
        );
EOT
);
      db_query("CREATE INDEX {panels_object_cache}_idx ON {panels_object_cache} (sid, obj, did);");
      db_query("CREATE INDEX {panels_object_cache}_time_idx ON {panels_object_cache} (timestamp);");
      break;
    case 'mysql':
    case 'mysqli':
      db_query(<<<EOT
        CREATE TABLE {panels_page} (
          pid int(10) NOT NULL DEFAULT 0 PRIMARY KEY,
          name varchar(255) UNIQUE,
          did int(10),
          title varchar(128),
          access varchar(128),
          path varchar(128),
          css_id varchar(128),
          css longtext,
          arguments longtext,
          displays longtext,
          contexts longtext,
          relationships longtext,
          no_blocks int(1) DEFAULT 0,
          switcher_type varchar(128),
          switcher_name varchar(128),
          switcher_options longtext,
          -- menu fields
          menu int(1) DEFAULT 0,
          menu_tab int(1),
          menu_tab_weight int(4),
          menu_title varchar(255),
          menu_tab_default int(1),
          menu_tab_default_parent_type varchar(10),
          menu_parent_title varchar(255),
          menu_parent_tab_weight int(4),
          KEY path (path)
        )/*!40100 DEFAULT CHARACTER SET utf8 */
EOT
);
      db_query(<<<EOT
        CREATE TABLE {panels_display} (
          did INT(10) NOT NULL DEFAULT 0 PRIMARY KEY,
          layout varchar(32),
          layout_settings longtext,
          panel_settings longtext,
          cache text,
          title varchar(128),
          hide_title int(1) DEFAULT 0
        ) /*!40100 DEFAULT CHARACTER SET utf8 */
EOT
);
      db_query(<<<EOT
        CREATE TABLE {panels_pane} (
          pid int(10) NOT NULL DEFAULT 0 PRIMARY KEY,
          did int(10) NOT NULL DEFAULT 0,
          panel varchar(32),
          type varchar(32),
          subtype varchar(64),
          shown int(1) DEFAULT 1,
          access varchar(128),
          visibility text,
          configuration longtext,
          cache longtext,
          position int(5),
          KEY (did)
        ) /*!40100 DEFAULT CHARACTER SET utf8 */
EOT
);
      db_query(<<<EOT
        CREATE TABLE {panels_object_cache} (
          sid varchar(64),
          did integer,
          obj varchar(255),
          data longtext,
          timestamp integer,
          KEY (sid, obj, did),
          KEY (timestamp)
        ) /*!40100 DEFAULT CHARACTER SET utf8 */
EOT
);
  }
  db_query("UPDATE {system} SET weight = 10 WHERE name = 'panels'");
  if (!module_exists('panels_page')) {
    $panels_path = base_path() . drupal_get_path('module', 'panels');
    drupal_set_message(t('If you have not already enabled the Panel pages module, you are encouraged to do so.'));
  }
}