00001 <?php
00002
00003
00004
00005
00006
00007
00008 function panels_mini_install() {
00009 switch ($GLOBALS['db_type']) {
00010 case 'pgsql':
00011 db_query(<<<EOT
00012 CREATE TABLE {panels_mini} (
00013 pid integer NOT NULL DEFAULT 0,
00014 name varchar(255) UNIQUE,
00015 category varchar(64),
00016 did integer,
00017 title varchar(128),
00018 requiredcontexts text,
00019 contexts text,
00020 relationships text,
00021 PRIMARY KEY (pid)
00022 );
00023 EOT
00024 );
00025 db_query("CREATE SEQUENCE {panels_mini}_pid_seq;");
00026 db_query("CREATE INDEX {panels_mini}_name_idx ON {panels_mini} (name);");
00027 break;
00028
00029 case 'mysql':
00030 case 'mysqli':
00031 db_query(<<<EOT
00032 CREATE TABLE {panels_mini} (
00033 pid int(10) NOT NULL DEFAULT 0 PRIMARY KEY,
00034 name varchar(255) UNIQUE,
00035 category varchar(64),
00036 did int(10),
00037 title varchar(128),
00038 contexts longtext,
00039 requiredcontexts longtext,
00040 relationships longtext,
00041 KEY (name)
00042 )
00043 EOT
00044 );
00045 break;
00046 }
00047 }
00048
00049
00050
00051
00052 function panels_mini_uninstall() {
00053 $result = db_query("SELECT * FROM {panels_mini} ORDER BY title");
00054 $panels_exists = db_table_exists('panels_display');
00055 while ($panel_mini = db_fetch_object($result)) {
00056
00057 if (!function_exists('panels_delete_display')) {
00058 require_once drupal_get_path('module', 'panels') .'/panels.module';
00059 }
00060 if ($panels_exists) {
00061 panels_delete_display($panel_mini->did);
00062 }
00063
00064
00065 db_query("DELETE FROM {blocks} WHERE module = 'panels_mini' AND delta = %d", $panel_mini->pid);
00066 }
00067
00068
00069 switch ($GLOBALS['db_type']) {
00070 case 'pgsql':
00071 db_query("DROP TABLE {panels_mini}");
00072 db_query("DROP SEQUENCE {panels_mini}_pid_seq");
00073 break;
00074
00075 case 'mysql':
00076 case 'mysqli':
00077 db_query("DROP TABLE IF EXISTS {panels_mini}");
00078 break;
00079 }
00080 }
00081
00082 function panels_mini_update_5000() {
00083 $ret = array();
00084 switch ($GLOBALS['db_type']) {
00085 case 'pgsql':
00086 db_add_column($ret, 'panels_mini', 'relationships', 'text', array());
00087 db_add_column($ret, 'panels_mini', 'contexts', 'text', array());
00088 db_add_column($ret, 'panels_mini', 'name', 'varchar(255) UNIQUE', array());
00089 break;
00090
00091 case 'mysql':
00092 case 'mysqli':
00093 $ret[] = update_sql("ALTER TABLE {panels_mini} ADD COLUMN relationships longtext");
00094 $ret[] = update_sql("ALTER TABLE {panels_mini} ADD COLUMN contexts longtext");
00095 $ret[] = update_sql("ALTER TABLE {panels_mini} ADD COLUMN name varchar(255) UNIQUE AFTER pid");
00096 break;
00097 }
00098
00099 $ret[] = update_sql("CREATE INDEX {panels_mini}_name_idx ON {panels_mini} (name)");
00100 $ret[] = update_sql("UPDATE {panels_mini} SET name = CONCAT('mini_', pid)");
00101
00102
00103
00104 $ret[] = update_sql("UPDATE {blocks} b INNER JOIN {panels_mini} pm on pm.pid = b.delta SET b.delta = pm.name WHERE b.module = 'panels_mini'");
00105
00106
00107
00108 $pids = array();
00109 $result = db_query("SELECT pid, name FROM {panels_mini}");
00110 while ($mini = db_fetch_object($result)) {
00111 $pids[$mini->pid] = $mini->name;
00112 }
00113
00114 $result = db_query("SELECT * FROM {panels_pane} WHERE configuration LIKE '%panels_mini%' AND type = 'block'");
00115 while ($pane = db_fetch_object($result)) {
00116 $conf = unserialize($pane->configuration);
00117
00118 if (empty($conf['module']) || $conf['module'] != 'panels_mini') {
00119 continue;
00120 }
00121 unset($conf['module']);
00122 $conf['name'] = $pids[$conf['delta']];
00123 unset($conf['delta']);
00124
00125
00126 db_query("UPDATE {panels_pane} SET type = 'panels_mini', configuration = '%s', subtype = '%s' WHERE pid = %d", serialize($conf), $conf['name'], $pane->pid);
00127 }
00128
00129 return $ret;
00130 }
00131
00132 function panels_mini_update_5001() {
00133 $ret = array();
00134 switch ($GLOBALS['db_type']) {
00135 case 'pgsql':
00136 db_add_column($ret, 'panels_mini', 'requiredcontexts', 'text', array());
00137 break;
00138
00139 case 'mysql':
00140 case 'mysqli':
00141 $ret[] = update_sql("ALTER TABLE {panels_mini} ADD COLUMN requiredcontexts longtext");
00142 }
00143
00144 return $ret;
00145 }
00146
00147
00148
00149
00150
00151 function panels_mini_update_5002() {
00152 $ret = array();
00153 switch ($GLOBALS['db_type']) {
00154 case 'mysql':
00155 case 'mysqli':
00156 $ret[] = array('success' => TRUE, 'query' => t('It does NOT matter if the following query fails. If it fails, it means you did not have a duplicate \'name_2\' index, and trying to remove a non-existent index does not harm, alter, or otherwise affect your database in any way. If it succeeds, then the duplicate index is gone, and your table is as it should be.'));
00157 $ret[] = update_sql("ALTER TABLE {panels_mini} DROP INDEX name_2");
00158 }
00159 return $ret;
00160 }
00161
00162
00163
00164
00165
00166
00167 function panels_mini_update_5003() {
00168 $ret = array();
00169 switch ($GLOBALS['db_type']) {
00170 case 'pgsql':
00171 db_add_column($ret, 'panels_mini', 'category', 'varchar(64)', array());
00172 break;
00173
00174 case 'mysql':
00175 case 'mysqli':
00176 $ret[] = update_sql("ALTER TABLE {panels_mini} ADD COLUMN category varchar(64) AFTER name");
00177 }
00178 return $ret;
00179 }