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

210 lines 5.0 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 $count_users = 0;
80
81 /* this user */
82 $current_user = wp_get_current_user();
83 $user = new User_Model;
84 $user->email = $current_user->user_email;
85 $user->id = $current_user->ID;
86
87 if( $current_user->user_firstname )
88 {
89 $user->first_name = $current_user->user_firstname;
90 $user->last_name = $current_user->user_lastname;
91 }
92 else
93 {
94 $user->first_name = $current_user->display_name;
95 }
96
97 $user->password = hc_random();
98 $user->level = USER_MODEL::LEVEL_ADMIN;
99
100
101 if( $user->save_as_new() )
102 {
103 $count_users++;
104 }
105 else
106 {
107 $setup_ok = FALSE;
108 $this->_drop_tables();
109
110 $err_msg = array();
111 $err_msg[] = $current_user->user_email;
112 $err_msg = array_merge($err_msg, array_values($user->error->all) );
113 $this->session->set_flashdata( 'error', $err_msg );
114
115 ci_redirect( 'wordpress/setup' );
116 return;
117 }
118
119 if( $setup_ok )
120 {
121 /* now by roles */
122 reset( $wordpress_roles );
123 foreach( $wordpress_roles as $role_value => $role_name )
124 {
125 $our_level = $post['role_' . $role_value];
126 if( ! $our_level )
127 continue;
128
129 $args = array(
130 'role' => $role_value,
131 'exclude' => $current_user->ID
132 );
133 $wordpress_users = get_users( $args );
134 foreach( $wordpress_users as $wuser )
135 {
136 if( (! $role_value) && $wuser->roles )
137 {
138 continue;
139 }
140
141 $user = new User_Model;
142 $user->email = $wuser->user_email;
143 $user->id = $wuser->ID;
144
145 if( $wuser->user_firstname )
146 {
147 $user->first_name = $wuser->user_firstname;
148 $user->last_name = $wuser->user_lastname;
149 }
150 else
151 {
152 $user->first_name = $wuser->display_name;
153 }
154 $user->password = hc_random();
155 $user->level = $our_level;
156
157 if( $user->save_as_new() )
158 {
159 $count_users++;
160 }
161 else
162 {
163 $setup_ok = FALSE;
164 $this->_drop_tables();
165
166 $err_msg = array();
167 $err_msg[] = $wuser->user_email;
168 $err_msg = array_merge($err_msg, array_values($user->error->all) );
169 $this->session->set_flashdata( 'error', $err_msg );
170 ci_redirect( 'wordpress/setup' );
171 return;
172 }
173 }
174 }
175 }
176
177 if( $setup_ok )
178 {
179 /* default settings */
180 $email_from = get_bloginfo('admin_email');
181 $email_from_name = get_bloginfo('name');
182
183 $this->app_conf->set( 'email_from', $email_from );
184 $this->app_conf->set( 'email_from_name', $email_from_name );
185
186 $msg = 'Imported ' . $count_users . ' ';
187 $msg .= ($count_users > 1) ? 'users' : 'user';
188
189 $this->session->set_flashdata( 'message', $msg );
190 ci_redirect( 'setup/ok' );
191 return;
192 }
193 }
194 }
195
196 $this->data['include'] = 'setup';
197 $this->load->view( '_layout/index_no_menu', $this->data );
198 return;
199 }
200
201 function ok()
202 {
203 $this->data['include'] = 'setup_ok';
204 $this->load->view( '_layout/index_no_menu', $this->data);
205 return;
206 }
207 }
208
209 /* End of file setup.php */
210 /* Location: ./application/controllers/setup.php */