source: extensions/AdditionalPages/maintain.inc.php @ 9270

Last change on this file since 9270 was 9270, checked in by patdenice, 13 years ago

Additional pages can now be standalone

File size: 2.5 KB
Line 
1<?php
2
3function plugin_install()
4{
5  global $prefixeTable, $conf;
6
7  $query = 'SHOW TABLES LIKE "' . $prefixeTable . 'additionalpages"';
8  $result = pwg_query($query);
9  if (!mysql_fetch_row($result))
10  {
11    $query = 'CREATE TABLE ' . $prefixeTable . 'additionalpages (
12id SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT,
13pos SMALLINT( 5 ) NULL default NULL ,
14lang VARCHAR( 255 ) NULL default NULL ,
15title VARCHAR( 255 ) NOT NULL ,
16content LONGTEXT NOT NULL ,
17users VARCHAR( 255 ) NULL DEFAULT NULL ,
18groups VARCHAR( 255 ) NULL DEFAULT NULL ,
19permalink VARCHAR( 64 ) NULL DEFAULT NULL ,
20standalone ENUM( "true", "false" ) NOT NULL DEFAULT "false"
21PRIMARY KEY (id) ,
22INDEX (pos) ,
23INDEX (lang))
24DEFAULT CHARACTER SET utf8;';
25    pwg_query($query);
26  }
27
28  if (!isset($conf['additional_pages']))
29  {
30    $config = array(
31      'languages' => array('default' => 'Additional Pages'),
32      'show_home' => true,
33      'group_perm' => false,
34      'user_perm' => false,
35      'homepage' => null,
36    );
37    $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
38VALUES ("additional_pages" , "'.addslashes(serialize($config)).'" , "Additional Pages config configuration");';
39    pwg_query($query);
40  }
41}
42
43function plugin_activate()
44{
45  global $prefixeTable;
46
47  $q = pwg_query('SHOW COLUMNS FROM ' . HISTORY_TABLE . ' LIKE "section"');
48  $section = mysql_fetch_array($q);
49  $type = $section['Type'];
50
51  // Add additional page section into history table
52  if (strpos($type, 'additional_page') === false)
53  {
54    $type = strtr($type , array(')' => ',\'additional_page\')'));
55    pwg_query('ALTER TABLE ' . HISTORY_TABLE . ' CHANGE section section ' . $type . ' DEFAULT NULL');
56  }
57 
58  // Check if upgrade is needed
59  $query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;';
60  $result = array_from_query($query, 'Collation');
61  if (strpos($result[4], 'utf8') === false)
62  {
63    upgrade_ap_from_17();
64  }
65}
66
67function plugin_uninstall()
68{
69  global $prefixeTable;
70
71        $q = 'DROP TABLE ' . $prefixeTable . 'additionalpages;';
72  pwg_query($q);
73
74        $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="additional_pages" LIMIT 1;';
75  pwg_query($q);
76}
77
78function upgrade_ap_from_17()
79{
80  global $prefixeTable;
81
82  $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
83MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL,
84MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL,
85MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL,
86DEFAULT CHARACTER SET utf8;';
87
88  pwg_query($query);
89}
90
91?>
Note: See TracBrowser for help on using the repository browser.