| [ Index ] |
PHP Cross Reference of MyBB 1.6.7 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * MyBB 1.6 4 * Copyright 2010 MyBB Group, All Rights Reserved 5 * 6 * Website: http://mybb.com 7 * License: http://mybb.com/about/license 8 * 9 * $Id: functions_view_manager.php 5460 2011-05-10 11:21:21Z Tomm $ 10 */ 11 12 /** 13 * Builds the "view management" interface allowing administrators to edit their custom designed "views" 14 * 15 * @param string The base URL to this instance of the view manager 16 * @param string The internal type identifier for this view 17 * @param array Array of fields this view supports 18 * @param array Array of possible sort options this view supports if any 19 * @param string Optional callback function which generates list of "conditions" for this view 20 */ 21 function view_manager($base_url, $type, $fields, $sort_options=array(), $conditions_callback="") 22 { 23 global $mybb, $db, $page, $lang; 24 25 $sub_tabs['views'] = array( 26 'title' => $lang->views, 27 'link' => "{$base_url}&action=views", 28 'description' => $lang->views_desc 29 ); 30 31 $sub_tabs['create_view'] = array( 32 'title' => $lang->create_new_view, 33 'link' => "{$base_url}&action=views&do=add", 34 'description' => $lang->create_new_view_desc 35 ); 36 37 $page->add_breadcrumb_item($lang->view_manager); 38 39 // Lang strings should be in global lang file 40 41 if($mybb->input['do'] == "set_default") 42 { 43 $query = $db->simple_select("adminviews", "vid", "vid='".intval($mybb->input['vid'])."'"); 44 $admin_view = $db->fetch_array($query); 45 46 if(!$admin_view['vid'] || $admin_view['visibility'] == 1 && $mybb->user['uid'] != $admin_view['uid']) 47 { 48 flash_message($lang->error_invalid_admin_view, 'error'); 49 admin_redirect($base_url."&action=views"); 50 } 51 set_default_view($type, $admin_view['vid']); 52 flash_message($lang->succuss_view_set_as_default, 'success'); 53 admin_redirect($base_url."&action=views"); 54 } 55 56 if($mybb->input['do'] == "add") 57 { 58 if($mybb->request_method == "post") 59 { 60 if(!trim($mybb->input['title'])) 61 { 62 $errors[] = $lang->error_missing_view_title; 63 } 64 if($mybb->input['fields_js']) 65 { 66 $mybb->input['fields'] = explode(",", $mybb->input['fields_js']); 67 } 68 if(count($mybb->input['fields']) <= 0) 69 { 70 $errors[] = $lang->error_no_view_fields; 71 } 72 73 if(intval($mybb->input['perpage']) <= 0) 74 { 75 $errors[] = $lang->error_invalid_view_perpage; 76 } 77 78 if(!in_array($mybb->input['sortby'], array_keys($sort_options))) 79 { 80 $errors[] = $lang->error_invalid_view_sortby; 81 } 82 83 if($mybb->input['sortorder'] != "asc" && $mybb->input['sortorder'] != "desc") 84 { 85 $errors[] = $lang->error_invalid_view_sortorder; 86 } 87 88 if($mybb->input['visibility'] == 0) 89 { 90 $mybb->input['visibility'] = 2; 91 } 92 93 if(!$errors) 94 { 95 $new_view = array( 96 "uid" => $mybb->user['uid'], 97 "title" => $db->escape_string($mybb->input['title']), 98 "type" => $type, 99 "visibility" => intval($mybb->input['visibility']), 100 "fields" => $db->escape_string(serialize($mybb->input['fields'])), 101 "conditions" => $db->escape_string(serialize($mybb->input['conditions'])), 102 "custom_profile_fields" => $db->escape_string(serialize($mybb->input['profile_fields'])), 103 "sortby" => $db->escape_string($mybb->input['sortby']), 104 "sortorder" => $db->escape_string($mybb->input['sortorder']), 105 "perpage" => intval($mybb->input['perpage']), 106 "view_type" => $db->escape_string($mybb->input['view_type']) 107 ); 108 109 $vid = $db->insert_query("adminviews", $new_view); 110 111 if($mybb->input['isdefault']) 112 { 113 set_default_view($type, $vid); 114 } 115 flash_message($lang->success_view_created, "success"); 116 admin_redirect($base_url."&vid={$vid}"); 117 } 118 } 119 else 120 { 121 $mybb->input = array( 122 "perpage" => 20, 123 ); 124 } 125 126 // Write in our JS based field selector 127 $page->extra_header .= "<script src=\"../jscripts/scriptaculous.js?load=effects,dragdrop\" type=\"text/javascript\"></script>\n"; 128 $page->extra_header .= "<script src=\"jscripts/view_manager.js\" type=\"text/javascript\"></script>\n"; 129 130 $page->output_header($lang->create_new_view); 131 132 $form = new Form($base_url."&action=views&do=add", "post"); 133 134 $page->output_nav_tabs($sub_tabs, 'create_view'); 135 136 // If we have any error messages, show them 137 if($errors) 138 { 139 $page->output_inline_error($errors); 140 } 141 142 $form_container = new FormContainer($lang->create_new_view); 143 $form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 144 145 if($mybb->input['visibility'] == 2) 146 { 147 $visibility_public_checked = true; 148 } 149 else 150 { 151 $visibility_private_checked = true; 152 } 153 154 $visibility_options = array( 155 $form->generate_radio_button("visibility", "1", "<strong>{$lang->private}</strong> - {$lang->private_desc}", array("checked" => $visibility_private_checked)), 156 $form->generate_radio_button("visibility", "2", "<strong>{$lang->public}</strong> - {$lang->public_desc}", array("checked" => $visibility_public_checked)) 157 ); 158 $form_container->output_row($lang->visibility, "", implode("<br />", $visibility_options)); 159 160 $form_container->output_row($lang->set_as_default_view, "", $form->generate_yes_no_radio("isdefault", $mybb->input['isdefault'], array('yes' => 1, 'no' => 0))); 161 162 if(count($sort_options) > 0) 163 { 164 $sort_directions = array( 165 "asc" => $lang->ascending, 166 "desc" => $lang->descending 167 ); 168 $form_container->output_row($lang->sort_results_by, "", $form->generate_select_box('sortby', $sort_options, $mybb->input['sortby'], array('id' => 'sortby'))." {$lang->in} ".$form->generate_select_box('sortorder', $sort_directions, $mybb->input['sortorder'], array('id' => 'sortorder')), 'sortby'); 169 } 170 171 $form_container->output_row($lang->results_per_page, "", $form->generate_text_box('perpage', $mybb->input['perpage'], array('id' => 'perpage')), 'perpage'); 172 173 if($type == "user") 174 { 175 $form_container->output_row($lang->display_results_as, "", $form->generate_radio_button('view_type', 'table', $lang->table, array('checked' => ($mybb->input['view_type'] != "card" ? true : false)))."<br />".$form->generate_radio_button('view_type', 'card', $lang->business_card, array('checked' => ($mybb->input['view_type'] == "card" ? true : false)))); 176 } 177 178 $form_container->end(); 179 180 $field_select .= "<div class=\"view_fields\">\n"; 181 $field_select .= "<div class=\"enabled\"><div class=\"fields_title\">{$lang->enabled}</div><ul id=\"fields_enabled\">\n"; 182 if(is_array($mybb->input['fields'])) 183 { 184 foreach($mybb->input['fields'] as $field) 185 { 186 if($fields[$field]) 187 { 188 $field_select .= "<li id=\"field-{$field}\">{$fields[$field]['title']}</li>"; 189 $active[$field] = 1; 190 } 191 } 192 } 193 $field_select .= "</ul></div>\n"; 194 $field_select .= "<div class=\"disabled\"><div class=\"fields_title\">{$lang->disabled}</div><ul id=\"fields_disabled\">\n"; 195 foreach($fields as $key => $field) 196 { 197 if($active[$key]) 198 { 199 continue; 200 } 201 $field_select .= "<li id=\"field-{$key}\">{$field['title']}</li>"; 202 } 203 $field_select .= "</div></ul>\n"; 204 $field_select .= $form->generate_hidden_field("fields_js", @implode(",", @array_keys($active)), array('id' => 'fields_js')); 205 $field_select = str_replace("'", "\\'", $field_select); 206 $field_select = str_replace("\n", "", $field_select); 207 208 $field_select = "<script type=\"text/javascript\"> 209 //<![CDATA[ 210 document.write('".str_replace("/", "\/", $field_select)."'); 211 //]]> 212 </script>\n"; 213 214 foreach($fields as $key => $field) 215 { 216 $field_options[$key] = $field['title']; 217 } 218 219 $field_select .= "<noscript>".$form->generate_select_box('fields[]', $field_options, $mybb->input['fields'], array('id' => 'fields', 'multiple' => true))."</noscript>\n"; 220 221 $form_container = new FormContainer($lang->fields_to_show); 222 $form_container->output_row($lang->fields_to_show_desc, $description, $field_select); 223 $form_container->end(); 224 225 // Build the search conditions 226 if(function_exists($conditions_callback)) 227 { 228 $conditions_callback($mybb->input, $form); 229 } 230 231 $buttons[] = $form->generate_submit_button($lang->save_view); 232 $form->output_submit_wrapper($buttons); 233 234 $form->end(); 235 $page->output_footer(); 236 } 237 else if($mybb->input['do'] == "edit") 238 { 239 $query = $db->simple_select("adminviews", "*", "vid='".intval($mybb->input['vid'])."'"); 240 $admin_view = $db->fetch_array($query); 241 242 // Does the view not exist? 243 if(!$admin_view['vid'] || $admin_view['visibility'] == 1 && $mybb->user['uid'] != $admin_view['uid']) 244 { 245 flash_message($lang->error_invalid_admin_view, 'error'); 246 admin_redirect($base_url."&action=views"); 247 } 248 249 if($mybb->request_method == "post") 250 { 251 if(!trim($mybb->input['title'])) 252 { 253 $errors[] = $lang->error_missing_view_title; 254 } 255 if($mybb->input['fields_js']) 256 { 257 $mybb->input['fields'] = explode(",", $mybb->input['fields_js']); 258 } 259 260 if(count($mybb->input['fields']) <= 0) 261 { 262 $errors[] = $lang->error_no_view_fields; 263 } 264 265 if(intval($mybb->input['perpage']) <= 0) 266 { 267 $errors[] = $lang->error_invalid_view_perpage; 268 } 269 270 if(!in_array($mybb->input['sortby'], array_keys($sort_options))) 271 { 272 $errors[] = $lang->error_invalid_view_sortby; 273 } 274 275 if($mybb->input['sortorder'] != "asc" && $mybb->input['sortorder'] != "desc") 276 { 277 $errors[] = $lang->error_invalid_view_sortorder; 278 } 279 280 if($mybb->input['visibility'] == 0) 281 { 282 $mybb->input['visibility'] = 2; 283 } 284 285 if(!$errors) 286 { 287 $updated_view = array( 288 "title" => $db->escape_string($mybb->input['title']), 289 "type" => $type, 290 "visibility" => intval($mybb->input['visibility']), 291 "fields" => $db->escape_string(serialize($mybb->input['fields'])), 292 "conditions" => $db->escape_string(serialize($mybb->input['conditions'])), 293 "custom_profile_fields" => $db->escape_string(serialize($mybb->input['profile_fields'])), 294 "sortby" => $db->escape_string($mybb->input['sortby']), 295 "sortorder" => $db->escape_string($mybb->input['sortorder']), 296 "perpage" => intval($mybb->input['perpage']), 297 "view_type" => $db->escape_string($mybb->input['view_type']) 298 ); 299 $db->update_query("adminviews", $updated_view, "vid='{$admin_view['vid']}'"); 300 301 if($mybb->input['isdefault']) 302 { 303 set_default_view($type, $view['vid']); 304 } 305 306 flash_message($lang->success_view_updated, "success"); 307 admin_redirect($base_url."&vid={$admin_view['vid']}"); 308 } 309 } 310 else 311 { 312 $default_view = fetch_default_view($type); 313 if($default_view = $view['vid']) 314 { 315 $mybb->input['isdefault'] = 1; 316 } 317 } 318 319 // Write in our JS based field selector 320 $page->extra_header .= "<script src=\"../jscripts/scriptaculous.js?load=effects,dragdrop\" type=\"text/javascript\"></script>\n"; 321 $page->extra_header .= "<script src=\"jscripts/view_manager.js\" type=\"text/javascript\"></script>\n"; 322 323 $page->output_header($lang->edit_view); 324 325 $form = new Form($base_url."&action=views&do=edit&vid={$admin_view['vid']}", "post"); 326 327 $sub_tabs = array(); 328 $sub_tabs['edit_view'] = array( 329 'title' => $lang->edit_view, 330 'link' => $base_url."&action=views&do=edit&vid={$admin_view['vid']}", 331 'description' => $lang->edit_view_desc 332 ); 333 334 $page->output_nav_tabs($sub_tabs, 'edit_view'); 335 336 // If we have any error messages, show them 337 if($errors) 338 { 339 $page->output_inline_error($errors); 340 } 341 else 342 { 343 $admin_view['conditions'] = unserialize($admin_view['conditions']); 344 $admin_view['fields'] = unserialize($admin_view['fields']); 345 $admin_view['profile_fields'] = unserialize($admin_view['custom_profile_fields']); 346 $mybb->input = $admin_view; 347 } 348 349 $form_container = new FormContainer($lang->edit_view); 350 $form_container->output_row($lang->view." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 351 352 if($mybb->input['visibility'] == 2) 353 { 354 $visibility_public_checked = true; 355 } 356 else 357 { 358 $visibility_private_checked = true; 359 } 360 361 $visibility_options = array( 362 $form->generate_radio_button("visibility", "1", "<strong>{$lang->private}</strong> - {$lang->private_desc}", array("checked" => $visibility_private_checked)), 363 $form->generate_radio_button("visibility", "2", "<strong>{$lang->public}</strong> - {$lang->public_desc}", array("checked" => $visibility_public_checked)) 364 ); 365 $form_container->output_row($lang->visibility, "", implode("<br />", $visibility_options)); 366 367 $form_container->output_row($lang->set_as_default_view, "", $form->generate_yes_no_radio("isdefault", $mybb->input['isdefault'], array('yes' => 1, 'no' => 0))); 368 369 if(count($sort_options) > 0) 370 { 371 $sort_directions = array( 372 "asc" => $lang->ascending, 373 "desc" => $lang->descending 374 ); 375 $form_container->output_row($lang->sort_results_by, "", $form->generate_select_box('sortby', $sort_options, $mybb->input['sortby'], array('id' => 'sortby'))." {$lang->in} ".$form->generate_select_box('sortorder', $sort_directions, $mybb->input['sortorder'], array('id' => 'sortorder')), 'sortby'); 376 } 377 378 $form_container->output_row($lang->results_per_page, "", $form->generate_text_box('perpage', $mybb->input['perpage'], array('id' => 'perpage')), 'perpage'); 379 380 if($type == "user") 381 { 382 $form_container->output_row($lang->display_results_as, "", $form->generate_radio_button('view_type', 'table', $lang->table, array('checked' => ($mybb->input['view_type'] != "card" ? true : false)))."<br />".$form->generate_radio_button('view_type', 'card', $lang->business_card, array('checked' => ($mybb->input['view_type'] == "card" ? true : false)))); 383 } 384 385 $form_container->end(); 386 387 $field_select .= "<div class=\"view_fields\">\n"; 388 $field_select .= "<div class=\"enabled\"><div class=\"fields_title\">{$lang->enabled}</div><ul id=\"fields_enabled\">\n"; 389 if(is_array($mybb->input['fields'])) 390 { 391 foreach($mybb->input['fields'] as $field) 392 { 393 if($fields[$field]) 394 { 395 $field_select .= "<li id=\"field-{$field}\">{$fields[$field]['title']}</li>"; 396 $active[$field] = 1; 397 } 398 } 399 } 400 $field_select .= "</ul></div>\n"; 401 $field_select .= "<div class=\"disabled\"><div class=\"fields_title\">{$lang->disabled}</div><ul id=\"fields_disabled\">\n"; 402 if(is_array($fields)) 403 { 404 foreach($fields as $key => $field) 405 { 406 if($active[$key]) 407 { 408 continue; 409 } 410 $field_select .= "<li id=\"field-{$key}\">{$field['title']}</li>"; 411 } 412 } 413 $field_select .= "</div></ul>\n"; 414 $field_select .= $form->generate_hidden_field("fields_js", @implode(",", @array_keys($active)), array('id' => 'fields_js')); 415 $field_select = str_replace("'", "\\'", $field_select); 416 $field_select = str_replace("\n", "", $field_select); 417 418 $field_select = "<script type=\"text/javascript\"> 419 //<![CDATA[ 420 document.write('".str_replace("/", "\/", $field_select)."'); 421 //]]></script>\n"; 422 423 foreach($fields as $key => $field) 424 { 425 $field_options[$key] = $field['title']; 426 } 427 428 $field_select .= "<noscript>".$form->generate_select_box('fields[]', $field_options, $mybb->input['fields'], array('id' => 'fields', 'multiple' => true))."</noscript>\n"; 429 430 $form_container = new FormContainer($lang->fields_to_show); 431 $form_container->output_row($lang->fields_to_show_desc, $description, $field_select); 432 $form_container->end(); 433 434 // Build the search conditions 435 if(function_exists($conditions_callback)) 436 { 437 $conditions_callback($mybb->input, $form); 438 } 439 440 441 $buttons[] = $form->generate_submit_button($lang->save_view); 442 $form->output_submit_wrapper($buttons); 443 444 $form->end(); 445 $page->output_footer(); 446 } 447 448 else if($mybb->input['do'] == "delete") 449 { 450 if($mybb->input['no']) 451 { 452 admin_redirect($base_url."&action=views"); 453 } 454 455 $query = $db->simple_select("adminviews", "COUNT(vid) as views"); 456 $views = $db->fetch_field($query, "views"); 457 458 if($views == 0) 459 { 460 flash_message($lang->error_cannot_delete_view, 'error'); 461 admin_redirect($base_url."&action=views"); 462 } 463 464 $query = $db->simple_select("adminviews", "vid", "vid='".intval($mybb->input['vid'])."'"); 465 $admin_view = $db->fetch_array($query); 466 467 if(!$admin_view['vid'] || $admin_view['visibility'] == 1 && $mybb->user['uid'] != $admin_view['uid']) 468 { 469 flash_message($lang->error_invalid_view_delete, 'error'); 470 admin_redirect($base_url."&action=views"); 471 } 472 473 if($mybb->request_method == "post") 474 { 475 $db->delete_query("adminviews", "vid='{$admin_view['vid']}'"); 476 flash_message($lang->success_view_deleted, 'success'); 477 admin_redirect($base_url."&action=views"); 478 } 479 else 480 { 481 $page->output_confirm_action($base_url."&action=views&do=delete&vid={$admin_view['vid']}", $lang->confirm_view_deletion); 482 } 483 } 484 485 // Export views 486 else if($mybb->input['do'] == "export") 487 { 488 $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?".">\n"; 489 $xml = "<adminviews version=\"".$mybb->version_code."\" exported=\"".TIME_NOW."\">\n"; 490 491 if($mybb->input['type']) 492 { 493 $type_where = "type='".$db->escape_string($mybb->input['type'])."'"; 494 } 495 496 $query = $db->simple_select("adminviews", "*", $type_where); 497 while($admin_view = $db->fetch_array($query)) 498 { 499 $fields = unserialize($admin_view['fields']); 500 $conditions = unserialize($admin_view['conditions']); 501 $xml .= "\t<view vid=\"{$admin_view['vid']}\" uid=\"{$admin_view['uid']}\" type=\"{$admin_view['type']}\" visibility=\"{$admin_view['visibility']}\">\n"; 502 $xml .= "\t\t<title><![CDATA[{$admin_view['title']}]]></title>\n"; 503 $xml .= "\t\t<fields>\n"; 504 foreach($fields as $field) 505 { 506 $xml .= "\t\t\t<field name=\"{$field}\" />\n"; 507 } 508 $xml .= "\t\t</fields>\n"; 509 $xml .= "\t\t<conditions>\n"; 510 foreach($conditions as $name => $condition) 511 { 512 if(!$conditions) continue; 513 if(is_array($condition)) 514 { 515 $condition = serialize($condition); 516 $is_serialized = " is_serialized=\"1\""; 517 } 518 $xml .= "\t\t\t<condition name=\"{$name}\"{$is_serialized}><![CDATA[{$condition}]]></condition>\n"; 519 } 520 $xml .= "\t\t</conditions>\n"; 521 $xml .= "\t\t<sortby><![CDATA[{$admin_view['sortby']}]]></sortby>\n"; 522 $xml .= "\t\t<sortorder><![CDATA[{$admin_view['sortorder']}]]></sortorder>\n"; 523 $xml .= "\t\t<perpage><![CDATA[{$admin_view['perpage']}]]></perpage>\n"; 524 $xml .= "\t\t<view_type><![CDATA[{$admin_view['view_type']}]]></view_type>\n"; 525 $xml .= "\t</view>\n"; 526 } 527 $xml .= "</adminviews>\n"; 528 $mybb->settings['bbname'] = urlencode($mybb->settings['bbname']); 529 header("Content-disposition: filename=".$mybb->settings['bbname']."-views.xml"); 530 header("Content-Length: ".my_strlen($xml)); 531 header("Content-type: unknown/unknown"); 532 header("Pragma: no-cache"); 533 header("Expires: 0"); 534 echo $xml; 535 exit; 536 } 537 538 // Generate a listing of all current views 539 else 540 { 541 $page->output_header($lang->view_manager); 542 543 $page->output_nav_tabs($sub_tabs, 'views'); 544 545 $table = new Table; 546 $table->construct_header($lang->view); 547 $table->construct_header($lang->controls, array("class" => "align_center", "width" => 150)); 548 549 $default_view = fetch_default_view($type); 550 551 $query = $db->simple_select("adminviews", "COUNT(vid) as views"); 552 $views = $db->fetch_field($query, "views"); 553 554 $query = $db->query(" 555 SELECT v.*, u.username 556 FROM ".TABLE_PREFIX."adminviews v 557 LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=v.uid) 558 WHERE v.visibility='2' OR (v.visibility='1' AND v.uid='{$mybb->user['uid']}') 559 ORDER BY title 560 "); 561 while($view = $db->fetch_array($query)) 562 { 563 $created = ""; 564 if($view['uid'] == 0) 565 { 566 $view_type = "default"; 567 $default_class = "grey"; 568 } 569 else if($view['visibility'] == 2) 570 { 571 $view_type = "group"; 572 if($view['username']) 573 { 574 $created = "<br /><small>{$lang->created_by} {$view['username']}</small>"; 575 } 576 } 577 else 578 { 579 $view_type = "user"; 580 } 581 582 $default_add = ''; 583 if($default_view == $view['vid']) 584 { 585 $default_add = " ({$lang->default})"; 586 } 587 588 589 $title_string = "view_title_{$view['vid']}"; 590 591 if($lang->$title_string) 592 { 593 $view['title'] = $lang->$title_string; 594 } 595 596 $table->construct_cell("<div class=\"float_right\"><img src=\"styles/{$page->style}/images/icons/{$view_type}.gif\" title=\"".$lang->sprintf($lang->this_is_a_view, $view_type)."\" alt=\"{$view_type}\" /></div><div class=\"{$default_class}\"><strong><a href=\"{$base_url}&action=views&do=edit&vid={$view['vid']}\" >{$view['title']}</a></strong>{$default_add}{$created}</div>"); 597 598 $popup = new PopupMenu("view_{$view['vid']}", $lang->options); 599 $popup->add_item($lang->edit_view, "{$base_url}&action=views&do=edit&vid={$view['vid']}"); 600 if($view['vid'] != $default_view) 601 { 602 $popup->add_item($lang->set_as_default, "{$base_url}&action=views&do=set_default&vid={$view['vid']}"); 603 } 604 605 if($views > 1) 606 { 607 $popup->add_item($lang->delete_view, "{$base_url}&action=views&do=delete&vid={$view['vid']}&my_post_key={$mybb->post_code}", "return AdminCP.deleteConfirmation(this, '{$lang->confirm_view_deletion}')"); 608 } 609 $controls = $popup->fetch(); 610 $table->construct_cell($controls, array("class" => "align_center")); 611 $table->construct_row(); 612 } 613 614 $table->output($lang->view); 615 616 echo <<<LEGEND 617 <br /> 618 <fieldset> 619 <legend>{$lang->legend}</legend> 620 <img src="styles/{$page->style}/images/icons/default.gif" alt="{$lang->default}" style="vertical-align: middle;" /> {$lang->default_view_desc}<br /> 621 <img src="styles/{$page->style}/images/icons/group.gif" alt="{$lang->public}" style="vertical-align: middle;" /> {$lang->public_view_desc}<br /> 622 <img src="styles/{$page->style}/images/icons/user.gif" alt="{$lang->private}" style="vertical-align: middle;" /> {$lang->private_view_desc}</fieldset> 623 LEGEND; 624 $page->output_footer(); 625 } 626 } 627 628 function set_default_view($type, $vid) 629 { 630 global $mybb, $db; 631 632 $query = $db->simple_select("adminoptions", "defaultviews", "uid='{$mybb->user['uid']}'"); 633 $default_views = unserialize($db->fetch_field($query, "defaultviews")); 634 if(!$db->num_rows($query)) 635 { 636 $create = true; 637 } 638 $default_views[$type] = $vid; 639 $default_views = serialize($default_views); 640 $updated_admin = array("defaultviews" => $db->escape_string($default_views)); 641 642 if($create == true) 643 { 644 $updated_admin['uid'] = $mybb->user['uid']; 645 $updated_admin['notes'] = ''; 646 $updated_admin['permissions'] = ''; 647 $db->insert_query("adminoptions", $updated_admin); 648 } 649 else 650 { 651 $db->update_query("adminoptions", $updated_admin, "uid='{$mybb->user['uid']}'"); 652 } 653 } 654 655 function fetch_default_view($type) 656 { 657 global $mybb, $db; 658 $query = $db->simple_select("adminoptions", "defaultviews", "uid='{$mybb->user['uid']}'"); 659 $default_views = unserialize($db->fetch_field($query, "defaultviews")); 660 if(!is_array($default_views)) 661 { 662 return false; 663 } 664 return $default_views[$type]; 665 } 666 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sat Mar 31 17:55:03 2012 | Cross-referenced by PHPXref 0.7.1 |