PluginProbe
ShiftController Employee Shift Scheduling / 3.2.4
ShiftController Employee Shift Scheduling v3.2.4
4.9.97 4.9.96 4.9.95 4.9.74 4.9.75 4.9.76 4.9.77 4.9.78 4.9.84 4.9.85 4.9.87 4.9.91 4.9.92 trunk 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 3.2.4 All 38 releases
shiftcontroller / application / modules / wordpress / controllers / setup.php

setup.php in ShiftController Employee Shift Scheduling 3.2.4, at application/modules/wordpress/controllers/setup.php

208 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2 include_once( NTS_SYSTEM_APPPATH . 'controllers/setup.php' );
3
4 class Setup_Wordpress_HC_Controller extends Setup_HC_Controller
5 {
6 var $form = NULL;
7
8 function __construct()
9 {
10 parent::__construct();
11 $this->form = HC_Lib::form()
12 ;
13
14 $wum = HC_App::model('wordpress_user');
15 $wordpress_roles = $wum->wp_roles();
16
17 foreach( $wordpress_roles as $role_value => $role_name ){
18 $field_name = 'role_' . $role_value;
19 $field_name = str_replace(' ', '_', $field_name );
20 $this->form
21 ->set_input( $field_name, 'dropdown' )
22 ;
23 }
24
25 $this->form
26 ->set_input( 'append_role_name', 'checkbox' )
27 ;
28 }
29
30 private function _get_old_version()
31 {
32 $return = NULL;
33
34 $dbprefix_version = $this->config->item('nts_dbprefix_version');
35 if( strlen($dbprefix_version) ){
36 $old_prefixes = array();
37 $db = clone $this->db;
38
39 $core_prefix = substr($db->dbprefix, 0, -(strlen($dbprefix_version)+1));
40
41 $my_version = substr($dbprefix_version, 1);
42 $old_version = $my_version - 1;
43 while( $old_version >= 1 ){
44 $old_prefixes[] = 'v' . $old_version;
45 $old_version--;
46 }
47 $old_prefixes[] = '';
48
49 foreach( $old_prefixes as $op ){
50 $test_prefix = strlen($op) ? $core_prefix . $op . '_' : $core_prefix;
51 $db->dbprefix = $test_prefix;
52 if( $this->check_setup($db) ){
53 $return = $op;
54 break;
55 }
56 }
57 }
58 return $return;
59 }
60
61 function index()
62 {
63 $app_title = $this->config->item('nts_app_title');
64
65 /* check if we have an older version installed */
66 $offer_upgrade = 0;
67 $old_version = $this->_get_old_version();
68 if( $old_version !== NULL ){
69 $offer_upgrade = 1;
70 }
71
72 if( $offer_upgrade ){
73 $this->redirect('setup/upgrade');
74 return;
75 }
76
77 $wum = HC_App::model('wordpress_user');
78 $wordpress_roles = $wum->wp_roles();
79 $wordpress_count_users = count_users();
80 $is_setup = 1;
81
82 $this->layout->set_partial(
83 'content',
84 $this->render(
85 'wordpress/admin/users/sync',
86 array(
87 'post_to' => 'wordpress/setup/run',
88 'app_title' => $app_title,
89 'form' => $this->form,
90 'wordpress_roles' => $wordpress_roles,
91 'wordpress_count_users' => $wordpress_count_users,
92 'offer_upgrade' => $offer_upgrade,
93 'is_setup' => $is_setup,
94 )
95 )
96 );
97 $this->layout();
98 }
99
100 function run()
101 {
102 $validator = new HC_Validator;
103 $wum = HC_App::model('wordpress_user');
104 $wordpress_roles = $wum->wp_roles();
105 $wordpress_count_users = count_users();
106
107 foreach( $wordpress_roles as $role_value => $role_name ){
108 $field_name = 'role_' . $role_value;
109 $validator->set_rules( $field_name, 'trim|required' );
110 }
111
112 $post = $this->input->post();
113 $this->form->grab( $post );
114 $values = $this->form->values();
115
116 if( $post ){
117 if( $validator->run($values) == FALSE ){
118 $errors = $validator->error();
119
120 $this->form->set_values( $values );
121 $this->form->set_errors( $errors );
122
123 /* render view */
124 return $this->index();
125 }
126 else {
127 /* run setup */
128 /* reset tables */
129 $this->_drop_tables();
130
131 /* setup tables */
132 $this->load->library('migration');
133 if ( ! $this->migration->current()){
134 show_error($this->migration->error_string());
135 return false;
136 }
137
138 $app_conf = HC_App::app_conf();
139 $app_conf->init();
140 $setup_ok = TRUE;
141
142 $append_role_name = $values['append_role_name'];
143
144 /* save settings */
145 reset( $values );
146 foreach( $values as $k => $v ){
147 $app_conf->set( 'wordpress_' . $k, $v );
148 }
149
150 $um = HC_App::model('user');
151
152 /* all users */
153 $result = $wum->sync_all( $values );
154 if( $result !== TRUE ){
155 $msg = array();
156 foreach( $result as $uid => $user_result ){
157 foreach( $user_result as $k => $v ){
158 $msg[] = 'User ID=' . $uid . ': ' . $k . ': ' . $v;
159 }
160 }
161 $msg = join( '<br>', $msg );
162 $this->session->set_flashdata( 'error', $msg );
163 $setup_ok = FALSE;
164 }
165
166 $success_count = $wum->get_last_count('success');
167
168 /* this user */
169 $current_user = wp_get_current_user();
170 $result = $wum->sync( $current_user->ID, $um->_const('LEVEL_ADMIN') );
171 if( $result !== TRUE ){
172 $msg = array();
173 foreach( $result as $k => $v ){
174 $msg[] = $k . ': ' . $v;
175 }
176 $msg = join( '<br>', $msg );
177 $this->session->set_flashdata( 'error', $msg );
178 $setup_ok = FALSE;
179 }
180 // $success_count++;
181
182 if( $setup_ok ){
183 /* default settings */
184 $email_from = get_bloginfo('admin_email');
185 $email_from_name = get_bloginfo('name');
186
187 $app_conf->set( 'email_from', $email_from );
188 $app_conf->set( 'email_from_name', $email_from_name );
189
190 $msg = 'Imported ' . $success_count . ' ';
191 $msg .= ($count_users > 1) ? 'users' : 'user';
192
193 $this->session->set_flashdata( 'message', $msg );
194 $this->redirect('setup/ok');
195 return;
196 }
197 else {
198 $this->_drop_tables();
199 $this->redirect('wordpress/setup');
200 }
201 }
202 }
203 return $this->index();
204 }
205 }
206
207 /* End of file setup.php */
208 /* Location: ./application/controllers/setup.php */