PluginProbe
ShiftController Employee Shift Scheduling / 2.2.4
ShiftController Employee Shift Scheduling v2.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 2.2.4, at application/modules/wordpress/controllers/setup.php

225 lines 5.6 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 Wordpress_setup_controller extends Setup_controller
5 {
6 function index()
7 {
8 $wum = new Wordpress_User_Model;
9 $wordpress_roles = $wum->wp_roles();
10 $this->data['wordpress_roles'] = $wordpress_roles;
11 $this->data['wordpress_count_users'] = count_users();
12 return parent::index();
13 }
14
15 function run()
16 {
17 $fields = array();
18 $validation = array();
19
20 $wum = new Wordpress_User_Model;
21 $wordpress_roles = $wum->wp_roles();
22 foreach( $wordpress_roles as $role_value => $role_name )
23 {
24 $field_name = 'role_' . $role_value;
25 $fields[] = $field_name;
26 $validation[] = array(
27 'field' => $field_name,
28 'label' => $role_name,
29 'rules' => 'trim|required'
30 );
31 }
32 $this->form_validation->set_rules( $validation );
33
34 if( $this->input->post() )
35 {
36 $post = array();
37 reset( $fields );
38 foreach( $fields as $f )
39 {
40 $post[$f] = $this->input->post($f);
41 }
42 $this->hc_form->set_defaults( $post );
43
44 if( $this->form_validation->run() == FALSE )
45 {
46 $errors = array();
47 reset( $fields );
48 foreach( $fields as $f )
49 {
50 $errors[$f] = form_error($f);
51 }
52 $this->hc_form->set_errors( $errors );
53 }
54 else
55 {
56 /* run setup */
57 /* reset tables */
58 $this->_drop_tables();
59
60 /* setup tables */
61 $this->load->library('migration');
62 if ( ! $this->migration->current())
63 {
64 show_error($this->migration->error_string());
65 return false;
66 }
67 $this->load->library( 'conf/app_conf' );
68
69 $setup_ok = TRUE;
70
71 /* save settings */
72 reset( $post );
73 foreach( $post as $k => $v )
74 {
75 $this->app_conf->set( 'wordpress_' . $k, $v );
76 }
77
78 /* users */
79 $append_role_name = $this->input->post('append_role_name');
80 $count_users = 0;
81
82 /* this user */
83 $current_user = wp_get_current_user();
84 $user = new User_Model;
85 $user->email = $current_user->user_email;
86 $user->id = $current_user->ID;
87
88 if( $current_user->user_firstname )
89 {
90 $user->first_name = $current_user->user_firstname;
91 $user->last_name = $current_user->user_lastname;
92 }
93 else
94 {
95 $user->first_name = $current_user->display_name;
96 }
97 if( $append_role_name )
98 {
99 $wp_role = ( $current_user->roles && is_array($current_user->roles) && isset($current_user->roles[0]) ) ? $current_user->roles[0] : '';
100 if( strlen($wp_role) )
101 $user->first_name = '[' . $wp_role . '] ' . $user->first_name;
102 }
103
104 $user->password = hc_random();
105 $user->level = USER_MODEL::LEVEL_ADMIN;
106
107
108 if( $user->save_as_new() )
109 {
110 $count_users++;
111 }
112 else
113 {
114 $setup_ok = FALSE;
115 $this->_drop_tables();
116
117 $err_msg = array();
118 $err_msg[] = $current_user->user_email;
119 $err_msg = array_merge($err_msg, array_values($user->error->all) );
120 $this->session->set_flashdata( 'error', $err_msg );
121
122 ci_redirect( 'wordpress/setup' );
123 return;
124 }
125
126 if( $setup_ok )
127 {
128 /* now by roles */
129 reset( $wordpress_roles );
130 foreach( $wordpress_roles as $role_value => $role_name )
131 {
132 $our_level = $post['role_' . $role_value];
133 if( ! $our_level )
134 continue;
135
136 $args = array(
137 'role' => $role_value,
138 'exclude' => $current_user->ID
139 );
140 $wordpress_users = get_users( $args );
141 foreach( $wordpress_users as $wuser )
142 {
143 if( (! $role_value) && $wuser->roles )
144 {
145 continue;
146 }
147
148 $user = new User_Model;
149 $user->email = $wuser->user_email;
150 $user->id = $wuser->ID;
151
152 if( $wuser->user_firstname )
153 {
154 $user->first_name = $wuser->user_firstname;
155 $user->last_name = $wuser->user_lastname;
156 }
157 else
158 {
159 $user->first_name = $wuser->display_name;
160 }
161
162 if( $append_role_name )
163 {
164 $wp_role = ( $wuser->roles && is_array($wuser->roles) && isset($wuser->roles[0]) ) ? $wuser->roles[0] : '';
165 if( strlen($wp_role) )
166 $user->first_name = '[' . $wp_role . '] ' . $user->first_name;
167 }
168
169 $user->password = hc_random();
170 $user->level = $our_level;
171
172 if( $user->save_as_new() )
173 {
174 $count_users++;
175 }
176 else
177 {
178 $setup_ok = FALSE;
179 $this->_drop_tables();
180
181 $err_msg = array();
182 $err_msg[] = $wuser->user_email;
183 $err_msg = array_merge($err_msg, array_values($user->error->all) );
184 $this->session->set_flashdata( 'error', $err_msg );
185 ci_redirect( 'wordpress/setup' );
186 return;
187 }
188 }
189 }
190 }
191
192 if( $setup_ok )
193 {
194 /* default settings */
195 $email_from = get_bloginfo('admin_email');
196 $email_from_name = get_bloginfo('name');
197
198 $this->app_conf->set( 'email_from', $email_from );
199 $this->app_conf->set( 'email_from_name', $email_from_name );
200
201 $msg = 'Imported ' . $count_users . ' ';
202 $msg .= ($count_users > 1) ? 'users' : 'user';
203
204 $this->session->set_flashdata( 'message', $msg );
205 ci_redirect( 'setup/ok' );
206 return;
207 }
208 }
209 }
210
211 $this->data['include'] = 'setup';
212 $this->load->view( '_layout/index_no_menu', $this->data );
213 return;
214 }
215
216 function ok()
217 {
218 $this->data['include'] = 'setup_ok';
219 $this->load->view( '_layout/index_no_menu', $this->data);
220 return;
221 }
222 }
223
224 /* End of file setup.php */
225 /* Location: ./application/controllers/setup.php */