PluginProbe
wpForo Forum / beta-4
wpForo Forum vbeta-4
3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.9 3.0.8 3.0.7 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.2 All 137 releases
wpforo / wpf-includes / class-usergroups.php

class-usergroups.php in wpForo Forum beta-4, at wpf-includes/class-usergroups.php

147 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // Exit if accessed directly
3 if( !defined( 'ABSPATH' ) ) exit;
4
5 class wpForoUsergroup{
6
7 private $wpforo;
8
9 function __construct( $wpForo ){
10 if(!isset($this->wpforo)) $this->wpforo = $wpForo;
11 }
12
13 function usergroup_list_data(){
14 $ugroups = $this->wpforo->db->get_results('SELECT `groupid`, `name` FROM '.$this->wpforo->db->prefix.'wpforo_usergroups ORDER BY `name` ', ARRAY_A);
15 foreach($ugroups as $ugroup){
16 $user_count = $this->wpforo->db->get_var('SELECT COUNT(userid) FROM '.$this->wpforo->db->prefix.'wpforo_profiles WHERE `groupid` = ' . intval($ugroup['groupid']));
17 $ugdata[$ugroup['groupid']]['groupid'] = $ugroup['groupid'];
18 $ugdata[$ugroup['groupid']]['name'] = wpforo_phrase($ugroup['name'], FALSE);
19 $ugdata[$ugroup['groupid']]['count'] = intval($user_count);
20 }
21 return $ugdata;
22 }
23
24 function add($title, $cans = array(), $description = '' ){
25 $i = 2;
26 while( $this->wpforo->db->get_var(
27 $this->wpforo->db->prepare(
28 "SELECT name FROM ".$this->wpforo->db->prefix."wpforo_usergroups
29 WHERE name = %s", sanitize_text_field($title) )))
30 {
31 $title = $title . '-' . $i;
32 $i++;
33 }
34 $default = array('cf' => '0', 'ef' => '0', 'df' => '0', 'vm' => '0', 'em' => 0, 'vmg' => 0,
35 'dm' => '0', 'upa' => '0', 'ups' => '0', 'va' => '0',
36 'vmu' => '0', 'vmm' => '0', 'vmt' => '0', 'vmct' => '0',
37 'vmr' => '0', 'vmw' => '0', 'vmsn' => '0', 'vmrd' => '0',
38 'vmlad' => '0', 'vip' => '0', 'vml' => '0', 'vmo' => '0',
39 'vms' => '0', 'vmam' => '0', 'vmpn' => '0', 'vwpm' => '0');
40
41 $cans = wpforo_parse_args( $cans, $default );
42
43 if( $this->wpforo->db->insert(
44 $this->wpforo->db->prefix . 'wpforo_usergroups',
45 array(
46 'name' => sanitize_text_field($title),
47 'cans' => serialize( $cans ),
48 'description' => $description
49 ),
50 array(
51 '%s',
52 '%s',
53 '%s'
54 )
55 )
56 ){
57 $this->wpforo->notice->add('User group successfully added', 'success');
58 return $this->wpforo->db->insert_id;
59 }
60
61 $this->wpforo->notice->add('User group add error', 'error');
62 return FALSE;
63 }
64
65 function edit( $groupid, $title, $cans ){
66
67 if( $groupid == 1 ) return false;
68
69 $default = array('cf' => '0', 'ef' => '0', 'df' => '0', 'vm' => '0', 'em' => 0, 'vmg' => 0,
70 'dm' => '0', 'upa' => '0', 'ups' => '0', 'va' => '0',
71 'vmu' => '0', 'vmm' => '0', 'vmt' => '0', 'vmct' => '0',
72 'vmr' => '0', 'vmw' => '0', 'vmsn' => '0', 'vmrd' => '0',
73 'vmlad' => '0', 'vip' => '0', 'vml' => '0', 'vmo' => '0',
74 'vms' => '0', 'vmam' => '0', 'vmpn' => '0', 'vwpm' => '0');
75
76 $cans = wpforo_parse_args( $cans, $default );
77
78 if( FALSE !== $this->wpforo->db->update(
79 $this->wpforo->db->prefix . 'wpforo_usergroups',
80 array(
81 'name' => sanitize_text_field($title),
82 'cans' => serialize( $cans ),
83 'description' => $description
84 ),
85 array( 'groupid' => intval($groupid) ),
86 array(
87 '%s',
88 '%s',
89 '%s'
90 ),
91 array( '%d' ))
92 ){
93 $this->wpforo->notice->add('User group successfully edited', 'success');
94 return $groupid;
95 }
96
97 $this->wpforo->notice->add('User group edit error', 'error');
98 return FALSE;
99 }
100
101 function delete(){
102 if( isset($_GET['action']) && $_GET['action'] == 'del' && isset($_GET['gid']) && $_GET['gid'] != 1 && $_GET['gid'] != 4 ){
103 $status = FALSE;
104 extract($_POST['usergroup'], EXTR_OVERWRITE);
105 $mergeid = intval($mergeid);
106 $insert_gid = $_GET['gid'];
107 #################################################### USERS
108 if(isset($mergeid)){
109 $status = $this->wpforo->db->query("UPDATE `".$this->wpforo->db->prefix ."wpforo_profiles` SET `groupid` = " . intval($mergeid) . " WHERE `groupid` = " . intval($insert_gid) );
110 $notice = wpforo_phrase('Usergroup has been successfully deleted. All users of this usergroup have been moved to the usergroup you\'ve chosen', false);
111 }else{
112 $status = $this->wpforo->db->query("UPDATE `".$this->wpforo->db->prefix ."wpforo_profiles` SET `status` = 'trashed' WHERE `groupid` = " . intval($insert_gid) );
113 $notice = wpforo_phrase('Usergroup has been successfully deleted.');
114 }
115 #################################################### END USERS
116 if( $status !== FALSE ){
117 if( $this->wpforo->db->query("DELETE FROM `".$this->wpforo->db->prefix ."wpforo_usergroups` WHERE `groupid` = " . intval($insert_gid) ) ){
118 $this->wpforo->notice->add($notice, 'success');
119 return TRUE;
120 }
121 }
122 }
123 $this->wpforo->notice->add('Can\'t delete this Usergroup', 'error');
124 return FALSE;
125 }
126
127 function get_usergroup( $groupid = 4 ){
128 // 4 is a guest's id
129 return $this->wpforo->db->get_row("SELECT * FROM `".$this->wpforo->db->prefix."wpforo_usergroups` WHERE `groupid` = ".intval($groupid), ARRAY_A);
130 }
131
132 function get_usergroups(){
133 return $this->wpforo->db->get_results("SELECT * FROM `".$this->wpforo->db->prefix."wpforo_usergroups`", ARRAY_A);
134 }
135
136 function show_selectbox( $groupid = 0, $exclude = array() ){
137 if( !$groupid = intval($groupid) ) $groupid = (isset($_POST['usergroup']['groupid'])) ? intval($_POST['usergroup']['groupid']) : 0;
138 if( !$groupid ) $groupid = $this->wpforo->default_groupid;
139 if( empty($exclude) && isset($_GET['gid']) && intval($_GET['gid']) ) $exclude[] = intval($_GET['gid']);
140 $ugroups = $this->usergroup_list_data();
141 foreach($ugroups as $ugroup){
142 if( in_array($ugroup['groupid'], $exclude) ) continue;
143 echo '<option value="'.esc_attr($ugroup['groupid']).'" '.($groupid == $ugroup['groupid'] ? 'selected' : '').'>'.esc_html($ugroup['name']).'</option>';
144 }
145 }
146 }
147 ?>