Dotclear

source: plugins/eventdata/inc/lib.eventdata.install.php @ 986

Revision 986, 3.8 KB checked in by JcDenis, 14 years ago (diff)

eventdata: fix language, add unlisted categories option

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of eventdata, a plugin for Dotclear 2.
4#
5# Copyright (c) 2009 JC Denis and contributors
6# jcdenis@gdwd.com
7#
8# Licensed under the GPL version 2.0 license.
9# A copy of this license is available in LICENSE file or at
10# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11# -- END LICENSE BLOCK ------------------------------------
12
13if (!defined('DC_RC_PATH')) return;
14
15class eventdataInstall
16{
17     public static function pluginsBeforeDelete($plugin)
18     {
19          if($plugin['id'] == 'eventdata') {
20               http::redirect('plugin.php?p=eventdata&t=uninstall');
21               exit;
22          }
23     }
24
25     public static function setTable(&$core)
26     {
27          # Database schema
28          $s = new dbStruct($core->con,$core->prefix);
29          $s->event
30               ->post_id ('bigint',0,false)
31               ->event_start ('timestamp',0,false,'now()')
32               ->event_end ('timestamp',0,false,'now()')
33               ->event_type('varchar',64,false)
34               ->primary('pk_event','event_type','post_id','event_start','event_end')
35               ->index('idx_event_post_id','btree','post_id')
36               ->index('idx_event_event_type','btree','event_type')
37               ->index('idx_event_event_start','btree','event_start')
38               ->index('idx_event_event_end','btree','event_end')
39               ->reference('fk_event_post','post_id','post','post_id','cascade','cascade');
40          # Schema installation
41          $si = new dbStruct($core->con,$core->prefix);
42          $changes = $si->synchronize($s);
43     }
44
45     public static function delTable(&$core)
46     {
47          @$core->con->execute('TRUNCATE TABLE '.$core->con->escape($core->prefix.'event').'');
48          @$core->con->execute('DROP TABLE '.$core->con->escape($core->prefix.'event').'');
49     }
50
51     public static function setSettings(&$core)
52     {
53          # Settings options
54          $core->blog->settings->setNameSpace('eventdata');
55          $core->blog->settings->put('event_option_active',false,'boolean','eventdata plugin enabled',false,true);
56          $core->blog->settings->put('event_option_menu',false,'boolean','Icon place on admin menu',false,true);
57          $core->blog->settings->put('event_option_public',false,'boolean','eventdata public page enabled',false,true);
58          # Settings permissions
59          $core->blog->settings->put('event_perm_pst',false,'boolean','Perm to manage events on entries',false,true);
60          $core->blog->settings->put('event_perm_cat',false,'boolean','Perm to manage events categories',false,true);
61          $core->blog->settings->put('event_perm_tpl',false,'boolean','Perm to manage events template',false,true);
62          $core->blog->settings->put('event_perm_adm',false,'boolean','Perm to manage eventdata plugin',false,true);
63          # Settings templates
64          $core->blog->settings->put('event_tpl_title','Events','string','Public page title',false,true);
65          $core->blog->settings->put('event_tpl_desc','','string','Public page description',false,true);
66          $core->blog->settings->put('event_tpl_url','events','string','Public page default name',false,true);
67          $core->blog->settings->put('event_tpl_dis_bhv',false,'boolean','Disable public entry behavior',false,true);
68          $core->blog->settings->put('event_tpl_theme','default','string','Public page template',false,true);
69          $core->blog->settings->put('event_tpl_cats','','string','Redirected categories',false,true);
70          $core->blog->settings->put('event_no_cats','','string','Unlisted categories',false,true);
71     }
72
73     public static function delSettings(&$core)
74     {
75          $core->con->execute('DELETE FROM '.$core->prefix.'setting WHERE setting_ns = \'eventdata\' ');
76     }
77
78     public static function setVersion(&$core)
79     {
80          $core->setVersion('eventdata',$core->plugins->moduleInfo('eventdata','version'));
81     }
82
83     public static function delVersion(&$core)
84     {
85          $core->delVersion('eventdata');
86     }
87
88     public static function delTemplates(&$core)
89     {
90          // Not yet
91     }
92
93     public static function delModule(&$core)
94     {
95          $core->plugins->deleteModule('eventdata');
96     }
97}
98?>
Note: See TracBrowser for help on using the repository browser.

Sites map