PluginProbe
bbPress / 2.2
bbPress v2.2
trunk 2.0 2.0-beta-1 2.0-beta-2b 2.0-beta-3 2.0-beta-3b 2.0-rc-2 2.0-rc-3 2.0-rc-4 2.0-rc-5 2.0.1 2.0.2 2.0.3 2.1 2.1-beta-1 2.1-rc1 2.1-rc2 2.1-rc3 2.1-rc4 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 All 71 releases
bbpress / includes / admin / converters / vBulletin.php

vBulletin.php in bbPress 2.2, at includes/admin/converters/vBulletin.php

449 lines 11.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * vBulletin Converter
5 *
6 * @since bbPress (r)
7 */
8 class vBulletin extends BBP_Converter_Base {
9
10 /**
11 * Main constructor
12 *
13 * @uses vBulletin::setup_globals()
14 */
15 function __construct() {
16 parent::__construct();
17 $this->setup_globals();
18 }
19
20 /**
21 * Sets up the field mappings
22 */
23 private function setup_globals() {
24
25 /** Forum Section *****************************************************/
26
27 // Forum id (Stored in postmeta)
28 $this->field_map[] = array(
29 'from_tablename' => 'forum',
30 'from_fieldname' => 'forumid',
31 'to_type' => 'forum',
32 'to_fieldname' => '_bbp_forum_id'
33 );
34
35 // Forum parent id (If no parent, than 0. Stored in postmeta)
36 $this->field_map[] = array(
37 'from_tablename' => 'forum',
38 'from_fieldname' => 'parentid',
39 'to_type' => 'forum',
40 'to_fieldname' => '_bbp_forum_parent_id'
41 );
42
43 // Forum title.
44 $this->field_map[] = array(
45 'from_tablename' => 'forum',
46 'from_fieldname' => 'title',
47 'to_type' => 'forum',
48 'to_fieldname' => 'post_title'
49 );
50
51 // Forum slug (Clean name to avoid confilcts)
52 $this->field_map[] = array(
53 'from_tablename' => 'forum',
54 'from_fieldname' => 'title_clean',
55 'to_type' => 'forum',
56 'to_fieldname' => 'post_name',
57 'callback_method' => 'callback_slug'
58 );
59
60 // Forum description.
61 $this->field_map[] = array(
62 'from_tablename' => 'forum',
63 'from_fieldname' => 'description',
64 'to_type' => 'forum',
65 'to_fieldname' => 'post_content',
66 'callback_method' => 'callback_null'
67 );
68
69 // Forum display order (Starts from 1)
70 $this->field_map[] = array(
71 'from_tablename' => 'forum',
72 'from_fieldname' => 'displayorder',
73 'to_type' => 'forum',
74 'to_fieldname' => 'menu_order'
75 );
76
77 // Forum date update.
78 $this->field_map[] = array(
79 'to_type' => 'forum',
80 'to_fieldname' => 'post_date',
81 'default' => date( 'Y-m-d H:i:s' )
82 );
83 $this->field_map[] = array(
84 'to_type' => 'forum',
85 'to_fieldname' => 'post_date_gmt',
86 'default' => date( 'Y-m-d H:i:s' )
87 );
88 $this->field_map[] = array(
89 'to_type' => 'forum',
90 'to_fieldname' => 'post_modified',
91 'default' => date( 'Y-m-d H:i:s' )
92 );
93 $this->field_map[] = array(
94 'to_type' => 'forum',
95 'to_fieldname' => 'post_modified_gmt',
96 'default' => date( 'Y-m-d H:i:s' )
97 );
98
99 /** Topic Section *****************************************************/
100
101 // Topic id (Stored in postmeta)
102 $this->field_map[] = array(
103 'from_tablename' => 'thread',
104 'from_fieldname' => 'threadid',
105 'to_type' => 'topic',
106 'to_fieldname' => '_bbp_topic_id'
107 );
108
109 // Forum id (Stored in postmeta)
110 $this->field_map[] = array(
111 'from_tablename' => 'thread',
112 'from_fieldname' => 'forumid',
113 'to_type' => 'topic',
114 'to_fieldname' => '_bbp_forum_id',
115 'callback_method' => 'callback_forumid'
116 );
117
118 // Topic author.
119 $this->field_map[] = array(
120 'from_tablename' => 'thread',
121 'from_fieldname' => 'postuserid',
122 'to_type' => 'topic',
123 'to_fieldname' => 'post_author',
124 'callback_method' => 'callback_userid'
125 );
126
127 // Topic title.
128 $this->field_map[] = array(
129 'from_tablename' => 'thread',
130 'from_fieldname' => 'title',
131 'to_type' => 'topic',
132 'to_fieldname' => 'post_title'
133 );
134
135 // Topic slug (Clean name to avoid conflicts)
136 $this->field_map[] = array(
137 'from_tablename' => 'thread',
138 'from_fieldname' => 'title',
139 'to_type' => 'topic',
140 'to_fieldname' => 'post_name',
141 'callback_method' => 'callback_slug'
142 );
143
144 // Forum id (If no parent, than 0)
145 $this->field_map[] = array(
146 'from_tablename' => 'thread',
147 'from_fieldname' => 'forumid',
148 'to_type' => 'topic',
149 'to_fieldname' => 'post_parent',
150 'callback_method' => 'callback_forumid'
151 );
152
153 // Topic content.
154 // Note: We join the posts table because topics do not have content.
155 $this->field_map[] = array(
156 'from_tablename' => 'post',
157 'from_fieldname' => 'pagetext',
158 'join_tablename' => 'thread',
159 'join_type' => 'INNER',
160 'join_expression' => 'USING (threadid) WHERE post.parentid = 0',
161 'to_type' => 'topic',
162 'to_fieldname' => 'post_content',
163 'callback_method' => 'callback_html'
164 );
165
166 // Topic date update.
167 $this->field_map[] = array(
168 'from_tablename' => 'thread',
169 'from_fieldname' => 'dateline',
170 'to_type' => 'topic',
171 'to_fieldname' => 'post_date',
172 'callback_method' => 'callback_datetime'
173 );
174 $this->field_map[] = array(
175 'from_tablename' => 'thread',
176 'from_fieldname' => 'dateline',
177 'to_type' => 'topic',
178 'to_fieldname' => 'post_date_gmt',
179 'callback_method' => 'callback_datetime'
180 );
181 $this->field_map[] = array(
182 'from_tablename' => 'thread',
183 'from_fieldname' => 'dateline',
184 'to_type' => 'topic',
185 'to_fieldname' => 'post_modified',
186 'callback_method' => 'callback_datetime'
187 );
188 $this->field_map[] = array(
189 'from_tablename' => 'thread',
190 'from_fieldname' => 'dateline',
191 'to_type' => 'topic',
192 'to_fieldname' => 'post_modified_gmt',
193 'callback_method' => 'callback_datetime'
194 );
195
196 /** Tags Section ******************************************************/
197
198 // Topic id.
199 $this->field_map[] = array(
200 'from_tablename' => 'tagcontent',
201 'from_fieldname' => 'contentid',
202 'to_type' => 'tags',
203 'to_fieldname' => 'objectid',
204 'callback_method' => 'callback_topicid'
205 );
206
207 // Tags text.
208 $this->field_map[] = array(
209 'from_tablename' => 'tag',
210 'from_fieldname' => 'tagtext',
211 'join_tablename' => 'tagcontent',
212 'join_type' => 'INNER',
213 'join_expression' => 'USING (tagid)',
214 'to_type' => 'tags',
215 'to_fieldname' => 'name'
216 );
217
218 /** Post Section ******************************************************/
219
220 // Post id (Stores in postmeta)
221 $this->field_map[] = array(
222 'from_tablename' => 'post',
223 'from_fieldname' => 'postid',
224 'from_expression' => 'WHERE post.parentid != 0',
225 'to_type' => 'reply',
226 'to_fieldname' => '_bbp_post_id'
227 );
228
229 // Forum id (Stores in postmeta)
230 $this->field_map[] = array(
231 'from_tablename' => 'post',
232 'from_fieldname' => 'threadid',
233 'to_type' => 'reply',
234 'to_fieldname' => '_bbp_forum_id',
235 'callback_method' => 'callback_topicid_to_forumid'
236 );
237
238 // Topic id (Stores in postmeta)
239 $this->field_map[] = array(
240 'from_tablename' => 'post',
241 'from_fieldname' => 'threadid',
242 'to_type' => 'reply',
243 'to_fieldname' => '_bbp_topic_id',
244 'callback_method' => 'callback_topicid'
245 );
246
247 // Author ip.
248 $this->field_map[] = array(
249 'from_tablename' => 'post',
250 'from_fieldname' => 'ipaddress',
251 'to_type' => 'reply',
252 'to_fieldname' => '_bbp_author_ip'
253 );
254
255 // Post author.
256 $this->field_map[] = array(
257 'from_tablename' => 'post',
258 'from_fieldname' => 'userid',
259 'to_type' => 'reply',
260 'to_fieldname' => 'post_author',
261 'callback_method' => 'callback_userid'
262 );
263
264 // Topic title.
265 $this->field_map[] = array(
266 'from_tablename' => 'post',
267 'from_fieldname' => 'title',
268 'to_type' => 'reply',
269 'to_fieldname' => 'post_title'
270 );
271
272 // Topic slug (Clean name)
273 $this->field_map[] = array(
274 'from_tablename' => 'post',
275 'from_fieldname' => 'title',
276 'to_type' => 'reply',
277 'to_fieldname' => 'post_name',
278 'callback_method' => 'callback_slug'
279 );
280
281 // Post content.
282 $this->field_map[] = array(
283 'from_tablename' => 'post',
284 'from_fieldname' => 'pagetext',
285 'to_type' => 'reply',
286 'to_fieldname' => 'post_content',
287 'callback_method' => 'callback_html'
288 );
289
290 // Topic id (If no parent, than 0)
291 $this->field_map[] = array(
292 'from_tablename' => 'post',
293 'from_fieldname' => 'threadid',
294 'to_type' => 'reply',
295 'to_fieldname' => 'post_parent',
296 'callback_method' => 'callback_topicid'
297 );
298
299 // Topic date update.
300 $this->field_map[] = array(
301 'from_tablename' => 'post',
302 'from_fieldname' => 'dateline',
303 'to_type' => 'reply',
304 'to_fieldname' => 'post_date',
305 'callback_method' => 'callback_datetime'
306 );
307 $this->field_map[] = array(
308 'from_tablename' => 'post',
309 'from_fieldname' => 'dateline',
310 'to_type' => 'reply',
311 'to_fieldname' => 'post_date_gmt',
312 'callback_method' => 'callback_datetime'
313 );
314 $this->field_map[] = array(
315 'from_tablename' => 'post',
316 'from_fieldname' => 'dateline',
317 'to_type' => 'reply',
318 'to_fieldname' => 'post_modified',
319 'callback_method' => 'callback_datetime'
320 );
321 $this->field_map[] = array(
322 'from_tablename' => 'post',
323 'from_fieldname' => 'dateline',
324 'to_type' => 'reply',
325 'to_fieldname' => 'post_modified_gmt',
326 'callback_method' => 'callback_datetime'
327 );
328
329 /** User Section ******************************************************/
330
331 // Store old User id (Stores in usermeta)
332 $this->field_map[] = array(
333 'from_tablename' => 'user',
334 'from_fieldname' => 'userid',
335 'to_type' => 'user',
336 'to_fieldname' => '_bbp_user_id'
337 );
338
339 // Store old User password (Stores in usermeta serialized with salt)
340 $this->field_map[] = array(
341 'from_tablename' => 'user',
342 'from_fieldname' => 'password',
343 'to_type' => 'user',
344 'to_fieldname' => '_bbp_password',
345 'callback_method' => 'callback_savepass'
346 );
347
348 // Store old User Salt (This is only used for the SELECT row info for
349 // the above password save)
350 $this->field_map[] = array(
351 'from_tablename' => 'user',
352 'from_fieldname' => 'salt',
353 'to_type' => 'user',
354 'to_fieldname' => ''
355 );
356
357 // User password verify class (Stores in usermeta for verifying password)
358 $this->field_map[] = array(
359 'to_type' => 'user',
360 'to_fieldname' => '_bbp_class',
361 'default' => 'vBulletin'
362 );
363
364 // User name.
365 $this->field_map[] = array(
366 'from_tablename' => 'user',
367 'from_fieldname' => 'username',
368 'to_type' => 'user',
369 'to_fieldname' => 'user_login'
370 );
371
372 // User nice name.
373 $this->field_map[] = array(
374 'from_tablename' => 'user',
375 'from_fieldname' => 'user_nicename',
376 'to_type' => 'user',
377 'to_fieldname' => 'user_nicename'
378 );
379
380 // User email.
381 $this->field_map[] = array(
382 'from_tablename' => 'user',
383 'from_fieldname' => 'email',
384 'to_type' => 'user',
385 'to_fieldname' => 'user_email'
386 );
387
388 // User homepage.
389 $this->field_map[] = array(
390 'from_tablename' => 'user',
391 'from_fieldname' => 'homepage',
392 'to_type' => 'user',
393 'to_fieldname' => 'user_url'
394 );
395
396 // User registered.
397 $this->field_map[] = array(
398 'from_tablename' => 'user',
399 'from_fieldname' => 'joindate',
400 'to_type' => 'user',
401 'to_fieldname' => 'user_registered',
402 'callback_method' => 'callback_datetime'
403 );
404
405 // User aim.
406 $this->field_map[] = array(
407 'from_tablename' => 'user',
408 'from_fieldname' => 'aim',
409 'to_type' => 'user',
410 'to_fieldname' => 'aim'
411 );
412
413 // User yahoo.
414 $this->field_map[] = array(
415 'from_tablename' => 'user',
416 'from_fieldname' => 'yahoo',
417 'to_type' => 'user',
418 'to_fieldname' => 'yim'
419 );
420 }
421
422 /**
423 * This method allows us to indicates what is or is not converted for each
424 * converter.
425 */
426 public function info() {
427 return '';
428 }
429
430 /**
431 * This method is to save the salt and password together. That
432 * way when we authenticate it we can get it out of the database
433 * as one value. Array values are auto sanitized by wordpress.
434 */
435 public function callback_savepass( $field, $row ) {
436 $pass_array = array( 'hash' => $field, 'salt' => $row['salt'] );
437 return $pass_array;
438 }
439
440 /**
441 * This method is to take the pass out of the database and compare
442 * to a pass the user has typed in.
443 */
444 public function authenticate_pass( $password, $serialized_pass ) {
445 $pass_array = unserialize( $serialized_pass );
446 return ( $pass_array['hash'] == md5( md5( $password ) . $pass_array['salt'] ) );
447 }
448 }
449