source: extensions/Register_FluxBB/trunk/include/functions.inc.php @ 6791

Last change on this file since 6791 was 6791, checked in by Eric, 14 years ago
  • Bug 1812 fixed - Compliance with FluxBB 1.4
  • New version 2.2.4 hard coded
  • Property svn:eol-style set to LF
File size: 7.7 KB
Line 
1<?php
2
3  include_once (PHPWG_ROOT_PATH.'/include/constants.php');
4  include_once (REGFLUXBB_PATH.'include/constants.php');
5
6function FluxBB_Linkuser($pwg_id, $bb_id)
7{
8  $query = "
9SELECT pwg.id as pwg_id, bb.id as bb_id
10FROM ".USERS_TABLE." pwg, ".FluxBB_USERS_TABLE." bb
11WHERE pwg.id = ".$pwg_id."
12AND bb.id = ".$bb_id."
13AND pwg.username = bb.username
14;";
15 
16  $data = pwg_db_fetch_row(pwg_query($query));
17 
18  if (!empty($data))
19  {
20    $subquery = "
21DELETE FROM ".Register_FluxBB_ID_TABLE."
22WHERE id_user_pwg = '".$pwg_id."'
23OR id_user_FluxBB = '".$bb_id."'
24;";
25
26    $subresult = pwg_query($subquery);
27
28    $subquery = "
29INSERT INTO ".Register_FluxBB_ID_TABLE."
30  (id_user_pwg, id_user_FluxBB)
31VALUES (".$pwg_id.", ".$bb_id.")
32;";
33
34    $subresult = pwg_query($subquery);
35  }
36}
37
38
39
40function FluxBB_Unlinkuser($bb_id)
41{
42  $query = "
43DELETE FROM ".Register_FluxBB_ID_TABLE."
44WHERE id_user_FluxBB = ".$bb_id."
45;";
46
47  $result = pwg_query($query);
48}
49
50
51
52function FluxBB_Adduser($pwg_id, $login, $password, $adresse_mail)
53{
54  global $conf;
55
56  $conf_Register_FluxBB = isset($conf['Register_FluxBB']) ? explode(";" , $conf['Register_FluxBB']) : array();
57
58  $registred = time();
59  $registred_ip = $_SERVER['REMOTE_ADDR'];
60
61  $query = "
62SELECT conf_value
63FROM ".FluxBB_CONFIG_TABLE."
64WHERE conf_name = 'o_default_user_group'
65;";
66
67  $o_default_user_group = pwg_db_fetch_assoc(pwg_query($query));
68
69// Check for FluxBB version 1.4.x and get the correct value
70  $query1 = "
71SELECT conf_value
72FROM ".FluxBB_CONFIG_TABLE."
73WHERE conf_name = 'o_default_timezone'
74;";
75
76  $count1 = pwg_db_num_rows(pwg_query($query1));
77
78// Check for FluxBB version 1.2.x and get the correct value
79  $query2 = "
80SELECT conf_value
81FROM ".FluxBB_CONFIG_TABLE."
82WHERE conf_name = 'o_server_timezone'
83;";
84
85  $count2 = pwg_db_num_rows(pwg_query($query2));
86 
87  if ($count1 == 1 and $count2 == 0)
88  {
89    $o_default_timezone = pwg_db_fetch_assoc(pwg_query($query1));
90  }
91  else if ($count1 == 0 and $count2 == 1)
92  {
93    $o_default_timezone = pwg_db_fetch_assoc(pwg_query($query2));
94  }
95 
96 
97  $query = "
98SELECT conf_value
99FROM ".FluxBB_CONFIG_TABLE."
100WHERE conf_name = 'o_default_lang'
101;";
102
103  $o_default_lang = pwg_db_fetch_assoc(pwg_query($query));
104 
105  $query = "
106SELECT conf_value
107FROM ".FluxBB_CONFIG_TABLE."
108WHERE conf_name = 'o_default_style'
109;";
110
111  $o_default_style = pwg_db_fetch_assoc(pwg_query($query));
112 
113  $query = '
114INSERT INTO '.FluxBB_USERS_TABLE." (
115  username,
116  ". ( isset($o_default_user_group['conf_value']) ? 'group_id' : '' ) .",
117  password,
118  email,
119  ". ( isset($o_default_timezone['conf_value']) ? 'timezone' : '' ) .",
120  ". ( isset($o_default_lang['conf_value']) ? 'language' : '' ) .",
121  ". ( isset($o_default_style['conf_value']) ? 'style' : '' ) .",
122  registered,
123  registration_ip,
124  last_visit
125  )
126VALUES(
127  '".pwg_db_real_escape_string($login)."',
128  ". ( isset($o_default_user_group['conf_value']) ? "'".$o_default_user_group['conf_value']."'" : '' ) .",
129  '".$password."',
130        '".$adresse_mail."',
131  ". ( isset($o_default_timezone['conf_value']) ? "'".$o_default_timezone['conf_value']."'" : '' ) .",
132  ". ( isset($o_default_lang['conf_value']) ? "'".$o_default_lang['conf_value']."'" : '' ) .",
133  ". ( isset($o_default_style['conf_value']) ? "'".$o_default_style['conf_value']."'" : '' ) .",
134  '".$registred."',
135  '".$registred_ip."',
136  '".$registred."'
137  )
138;";
139
140  $result = pwg_query($query);
141
142  $bb_id = pwg_db_insert_id();
143 
144  FluxBB_Linkuser($pwg_id, $bb_id);
145}
146
147
148
149function FluxBB_Searchuser($id_user_pwg)
150{
151  $query = "
152SELECT id_user_FluxBB, id_user_pwg FROM ".Register_FluxBB_ID_TABLE."
153WHERE id_user_pwg = ".$id_user_pwg."
154LIMIT 1
155;";
156
157  $data = pwg_db_fetch_assoc(pwg_query($query));
158 
159  if (!empty($data))
160    return $data['id_user_FluxBB'];
161  else
162    return '0'; 
163}
164
165
166
167function FluxBB_Deluser($id_user_FluxBB, $SuppTopicsPosts)
168{
169  global $conf;
170
171  $conf_Register_FluxBB = isset($conf['Register_FluxBB']) ? explode(";" , $conf['Register_FluxBB']) : array();
172
173  $query0 = "
174SELECT username, id FROM ".FluxBB_USERS_TABLE."
175WHERE id = ".$id_user_FluxBB."
176LIMIT 1
177;";
178
179  $data0 = pwg_db_fetch_assoc(pwg_query($query0));
180
181  // Si égale à VRAI, suppression de tous les posts et topics
182  if ($SuppTopicsPosts and $conf_Register_FluxBB[3])
183  {
184    // Suppression des posts de cet utilisateur
185    $subquery = "
186DELETE FROM ".FluxBB_POSTS_TABLE."
187WHERE poster_id = ".$id_user_FluxBB."
188;";
189
190    $subresult = pwg_query($subquery);
191
192    // Suppression des topics de cet utilisateur
193    $subquery = "
194DELETE FROM ".FluxBB_TOPICS_TABLE."
195WHERE BINARY poster = BINARY '".pwg_db_real_escape_string($data0['username'])."'
196;";
197
198    $subresult = pwg_query($subquery);
199  }
200
201  // Suppression des abonnements de l'utilisateur
202  $subquery = "
203DELETE FROM ".FluxBB_SUBSCRIPTIONS_TABLE."
204WHERE user_id = ".$id_user_FluxBB."
205;";
206
207  $subresult = pwg_query($subquery);
208 
209  // Suppression du compte utilisateur
210  $subquery = "
211DELETE FROM ".FluxBB_USERS_TABLE."
212WHERE id = ".$id_user_FluxBB."
213;";
214
215  $subresult = pwg_query($subquery);
216
217  FluxBB_Unlinkuser($id_user_FluxBB);
218}
219
220
221
222function FluxBB_Updateuser($pwg_id, $username, $password, $adresse_mail)
223{
224  include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
225
226  $query = "
227SELECT id_user_FluxBB as FluxBB_id
228FROM ".Register_FluxBB_ID_TABLE."
229WHERE id_user_pwg = ".$pwg_id."
230;";
231
232  $row = pwg_db_fetch_assoc(pwg_query($query));
233
234  if (!empty($row))
235  {
236    $query = "
237UPDATE ".FluxBB_USERS_TABLE."
238SET username = '".pwg_db_real_escape_string($username)."', email = '".$adresse_mail."', password = '".$password."'
239WHERE id = ".$row['FluxBB_id']."
240;";
241   
242    $result = pwg_query($query);
243     
244    FluxBB_Linkuser($pwg_id, $row['FluxBB_id']);
245  }
246  else
247  {
248    $query = "
249SELECT id as FluxBB_id
250FROM ".FluxBB_USERS_TABLE."
251WHERE BINARY username = BINARY '".pwg_db_real_escape_string($username)."'
252;";
253
254    $row = pwg_db_fetch_assoc(pwg_query($query));
255 
256    if (!empty($row))
257    {
258      $query = "
259UPDATE ".FluxBB_USERS_TABLE."
260SET username = '".pwg_db_real_escape_string($username)."', email = '".$adresse_mail."', password = '".$password."'
261WHERE id = ".$row['FluxBB_id']."
262;";
263     
264      $result = pwg_query($query);
265     
266      FluxBB_Linkuser($pwg_id, $row['FluxBB_id']);
267    }
268  }
269}
270
271
272function RegFluxBB_Infos($dir)
273{
274  $path = $dir;
275
276  $plg_data = implode( '', file($path.'main.inc.php') );
277  if ( preg_match("|Plugin Name: (.*)|", $plg_data, $val) )
278  {
279    $plugin['name'] = trim( $val[1] );
280  }
281  if (preg_match("|Version: (.*)|", $plg_data, $val))
282  {
283    $plugin['version'] = trim($val[1]);
284  }
285  if ( preg_match("|Plugin URI: (.*)|", $plg_data, $val) )
286  {
287    $plugin['uri'] = trim($val[1]);
288  }
289  if ($desc = load_language('description.txt', $path.'/', array('return' => true)))
290  {
291    $plugin['description'] = trim($desc);
292  }
293  elseif ( preg_match("|Description: (.*)|", $plg_data, $val) )
294  {
295    $plugin['description'] = trim($val[1]);
296  }
297  if ( preg_match("|Author: (.*)|", $plg_data, $val) )
298  {
299    $plugin['author'] = trim($val[1]);
300  }
301  if ( preg_match("|Author URI: (.*)|", $plg_data, $val) )
302  {
303    $plugin['author uri'] = trim($val[1]);
304  }
305  if (!empty($plugin['uri']) and strpos($plugin['uri'] , 'extension_view.php?eid='))
306  {
307    list( , $extension) = explode('extension_view.php?eid=', $plugin['uri']);
308    if (is_numeric($extension)) $plugin['extension'] = $extension;
309  }
310// IMPORTANT SECURITY !
311  $plugin = array_map('htmlspecialchars', $plugin);
312
313  return $plugin ;
314}
315
316function regfluxbb_obsolete_files()
317{
318  if (file_exists(REGFLUXBB_PATH.'obsolete.list')
319    and $old_files = file(REGFLUXBB_PATH.'obsolete.list', FILE_IGNORE_NEW_LINES)
320    and !empty($old_files))
321  {
322    array_push($old_files, 'obsolete.list');
323    foreach($old_files as $old_file)
324    {
325      $path = REGFLUXBB_PATH.$old_file;
326      if (is_file($path))
327      {
328        @unlink($path);
329      }
330    }
331  }
332}
333?>
Note: See TracBrowser for help on using the repository browser.