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

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

New functionalities

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
38    $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
39VALUES ("additional_pages" , "'.pwg_db_real_escape_string(serialize($config)).'" , "Additional Pages config configuration");';
40    pwg_query($query);
41  }
42}
43
44function plugin_activate()
45{
46  global $prefixeTable;
47
48  $q = pwg_query('SHOW COLUMNS FROM ' . HISTORY_TABLE . ' LIKE "section"');
49  $section = mysql_fetch_array($q);
50  $type = $section['Type'];
51
52  // Add additional page section into history table
53  if (strpos($type, 'additional_page') === false)
54  {
55    $type = strtr($type , array(')' => ',\'additional_page\')'));
56    pwg_query('ALTER TABLE ' . HISTORY_TABLE . ' CHANGE section section ' . $type . ' DEFAULT NULL');
57  }
58 
59  // Check if upgrade is needed
60  $query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;';
61  $result = array_from_query($query, 'Collation');
62  if (strpos($result[4], 'utf8') === false)
63  {
64    upgrade_ap_from_17();
65  }
66}
67
68function plugin_uninstall()
69{
70  global $prefixeTable;
71
72        $q = 'DROP TABLE ' . $prefixeTable . 'additionalpages;';
73  pwg_query($q);
74
75        $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="additional_pages" LIMIT 1;';
76  pwg_query($q);
77}
78
79function upgrade_ap_from_17()
80{
81  global $prefixeTable;
82
83  $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
84MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL,
85MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL,
86MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL,
87DEFAULT CHARACTER SET utf8;';
88
89  pwg_query($query);
90}
91
92?>
Note: See TracBrowser for help on using the repository browser.