[ Index ] |
PHP Cross Reference of MyBB 1.8.38 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * MyBB 1.8 4 * Copyright 2014 MyBB Group, All Rights Reserved 5 * 6 * Website: http://www.mybb.com 7 * License: http://www.mybb.com/about/license 8 * 9 */ 10 11 // Disallow direct access to this file for security reasons 12 if(!defined("IN_MYBB")) 13 { 14 die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); 15 } 16 17 $page->add_breadcrumb_item($lang->mod_tools, "index.php?module=config-mod_tools"); 18 19 $plugins->run_hooks("admin_config_mod_tools_begin"); 20 21 if($mybb->input['action'] == "delete_post_tool") 22 { 23 $query = $db->simple_select("modtools", "*", "tid='{$mybb->input['tid']}'"); 24 $tool = $db->fetch_array($query); 25 26 // Does the post tool not exist? 27 if(!$tool) 28 { 29 flash_message($lang->error_invalid_post_tool, 'error'); 30 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 31 } 32 33 // User clicked no 34 if($mybb->get_input('no')) 35 { 36 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 37 } 38 39 $plugins->run_hooks("admin_config_mod_tools_delete_post_tool"); 40 41 if($mybb->request_method == 'post') 42 { 43 // Delete the type 44 $db->delete_query('modtools', "tid='{$tool['tid']}'"); 45 46 $plugins->run_hooks("admin_config_mod_tools_delete_post_tool_commit"); 47 48 // Log admin action 49 log_admin_action($tool['tid'], $tool['name']); 50 $cache->update_forumsdisplay(); 51 52 flash_message($lang->success_post_tool_deleted, 'success'); 53 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 54 } 55 else 56 { 57 $page->output_confirm_action("index.php?module=config-mod_tools&action=post_tools&tid={$type['tid']}", $lang->confirm_post_tool_deletion); 58 } 59 } 60 61 if($mybb->input['action'] == "delete_thread_tool") 62 { 63 $query = $db->simple_select("modtools", "*", "tid='{$mybb->input['tid']}'"); 64 $tool = $db->fetch_array($query); 65 66 // Does the post tool not exist? 67 if(!$tool) 68 { 69 flash_message($lang->error_invalid_thread_tool, 'error'); 70 admin_redirect("index.php?module=config-mod_tools"); 71 } 72 73 // User clicked no 74 if($mybb->get_input('no')) 75 { 76 admin_redirect("index.php?module=config-mod_tools"); 77 } 78 79 $plugins->run_hooks("admin_config_mod_tools_delete_thread_tool"); 80 81 if($mybb->request_method == 'post') 82 { 83 // Delete the type 84 $db->delete_query('modtools', "tid='{$tool['tid']}'"); 85 86 $plugins->run_hooks("admin_config_mod_tools_delete_thread_tool_commit"); 87 88 // Log admin action 89 log_admin_action($tool['tid'], $tool['name']); 90 $cache->update_forumsdisplay(); 91 92 flash_message($lang->success_thread_tool_deleted, 'success'); 93 admin_redirect("index.php?module=config-mod_tools"); 94 } 95 else 96 { 97 $page->output_confirm_action("index.php?module=config-mod_tools&action=delete_thread_tool&tid={$tool['tid']}", $lang->confirm_thread_tool_deletion); 98 } 99 } 100 101 if($mybb->input['action'] == "post_tools") 102 { 103 $plugins->run_hooks("admin_config_mod_tools_post_tools"); 104 105 $page->add_breadcrumb_item($lang->post_tools); 106 $page->output_header($lang->mod_tools." - ".$lang->post_tools); 107 108 $sub_tabs['thread_tools'] = array( 109 'title' => $lang->thread_tools, 110 'link' => "index.php?module=config-mod_tools" 111 ); 112 $sub_tabs['add_thread_tool'] = array( 113 'title'=> $lang->add_thread_tool, 114 'link' => "index.php?module=config-mod_tools&action=add_thread_tool" 115 ); 116 $sub_tabs['post_tools'] = array( 117 'title' => $lang->post_tools, 118 'link' => "index.php?module=config-mod_tools&action=post_tools", 119 'description' => $lang->post_tools_desc 120 ); 121 $sub_tabs['add_post_tool'] = array( 122 'title'=> $lang->add_post_tool, 123 'link' => "index.php?module=config-mod_tools&action=add_post_tool" 124 ); 125 126 $page->output_nav_tabs($sub_tabs, 'post_tools'); 127 128 $table = new Table; 129 $table->construct_header($lang->title); 130 $table->construct_header($lang->controls, array('class' => "align_center", 'colspan' => 2)); 131 132 $query = $db->simple_select('modtools', 'tid, name, description, type', "type='p'", array('order_by' => 'name')); 133 while($tool = $db->fetch_array($query)) 134 { 135 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=edit_post_tool&tid={$tool['tid']}\"><strong>".htmlspecialchars_uni($tool['name'])."</strong></a><br /><small>".htmlspecialchars_uni($tool['description'])."</small>"); 136 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=edit_post_tool&tid={$tool['tid']}\">{$lang->edit}</a>", array('width' => 100, 'class' => "align_center")); 137 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=delete_post_tool&tid={$tool['tid']}&my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_post_tool_deletion}')\">{$lang->delete}</a>", array('width' => 100, 'class' => "align_center")); 138 $table->construct_row(); 139 } 140 141 if($table->num_rows() == 0) 142 { 143 $table->construct_cell($lang->no_post_tools, array('colspan' => 3)); 144 $table->construct_row(); 145 } 146 147 $table->output($lang->post_tools); 148 149 $page->output_footer(); 150 } 151 152 if($mybb->input['action'] == "edit_thread_tool") 153 { 154 $query = $db->simple_select("modtools", "COUNT(tid) as tools", "tid = '{$mybb->input['tid']}' AND type='t'"); 155 if($db->fetch_field($query, "tools") < 1) 156 { 157 flash_message($lang->error_invalid_thread_tool, 'error'); 158 admin_redirect("index.php?module=config-mod_tools"); 159 } 160 161 $plugins->run_hooks("admin_config_mod_tools_edit_thread_tool"); 162 163 if($mybb->request_method == 'post') 164 { 165 if(trim($mybb->input['title']) == "") 166 { 167 $errors[] = $lang->error_missing_title; 168 } 169 170 if(trim($mybb->input['description']) == "") 171 { 172 $errors[] = $lang->error_missing_description; 173 } 174 175 if($mybb->input['forum_type'] == 2) 176 { 177 $forum_checked[1] = ''; 178 $forum_checked[2] = "checked=\"checked\""; 179 180 if(is_array($mybb->input['forum_1_forums']) && count($mybb->input['forum_1_forums']) < 1) 181 { 182 $errors[] = $lang->error_no_forums_selected; 183 } 184 } 185 else 186 { 187 $forum_checked[1] = "checked=\"checked\""; 188 $forum_checked[2] = ''; 189 190 $mybb->input['forum_1_forums'] = ''; 191 } 192 193 if($mybb->input['group_type'] == 2) 194 { 195 $group_checked[1] = ''; 196 $group_checked[2] = "checked=\"checked\""; 197 198 if(is_array($mybb->input['group_1_groups']) && count($mybb->input['group_1_groups']) < 1) 199 { 200 $errors[] = $lang->error_no_groups_selected; 201 } 202 } 203 else 204 { 205 $group_checked[1] = "checked=\"checked\""; 206 $group_checked[2] = ''; 207 208 $mybb->input['group_1_groups'] = ''; 209 } 210 211 if($mybb->input['approvethread'] != '' && $mybb->input['approvethread'] != 'approve' && $mybb->input['approvethread'] != 'unapprove' && $mybb->input['approvethread'] != 'toggle') 212 { 213 $mybb->input['approvethread'] = ''; 214 } 215 216 if($mybb->input['softdeletethread'] != '' && $mybb->input['softdeletethread'] != 'softdelete' && $mybb->input['softdeletethread'] != 'restore' && $mybb->input['softdeletethread'] != 'toggle') 217 { 218 $mybb->input['softdeletethread'] = ''; 219 } 220 221 if($mybb->input['openthread'] != '' && $mybb->input['openthread'] != 'open' && $mybb->input['openthread'] != 'close' && $mybb->input['openthread'] != 'toggle') 222 { 223 $mybb->input['openthread'] = ''; 224 } 225 226 if($mybb->input['stickthread'] != '' && $mybb->input['stickthread'] != 'stick' && $mybb->input['stickthread'] != 'unstick' && $mybb->input['stickthread'] != 'toggle') 227 { 228 $mybb->input['stickthread'] = ''; 229 } 230 231 if($mybb->input['move_type'] == 2) 232 { 233 $move_checked[1] = ''; 234 $move_checked[2] = "checked=\"checked\""; 235 236 if(!$mybb->input['move_1_forum']) 237 { 238 $errors[] = $lang->error_no_move_forum_selected; 239 } 240 else 241 { 242 // Check that the destination forum is not a category 243 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('move_1_forum', MyBB::INPUT_INT)."'"); 244 if($db->fetch_field($query, "type") == "c") 245 { 246 $errors[] = $lang->error_forum_is_category; 247 } 248 } 249 250 if($mybb->input['move_2_redirect'] != 1 && $mybb->input['move_2_redirect'] != 0) 251 { 252 $mybb->input['move_2_redirect'] = 0; 253 } 254 255 if(!isset($mybb->input['move_3_redirecttime'])) 256 { 257 $mybb->input['move_3_redirecttime'] = ''; 258 } 259 } 260 else 261 { 262 $move_checked[1] = "checked=\"checked\""; 263 $move_checked[2] = ''; 264 265 $mybb->input['move_1_forum'] = ''; 266 $mybb->input['move_2_redirect'] = 0; 267 $mybb->input['move_3_redirecttime'] = ''; 268 } 269 270 if($mybb->input['copy_type'] == 2) 271 { 272 $copy_checked[1] = ''; 273 $copy_checked[2] = "checked=\"checked\""; 274 275 if(!$mybb->input['copy_1_forum']) 276 { 277 $errors[] = $lang->error_no_copy_forum_selected; 278 } 279 else 280 { 281 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('copy_1_forum', MyBB::INPUT_INT)."'"); 282 if($db->fetch_field($query, "type") == "c") 283 { 284 $errors[] = $lang->error_forum_is_category; 285 } 286 } 287 } 288 else 289 { 290 $copy_checked[1] = "checked=\"checked\""; 291 $copy_checked[2] = ''; 292 293 $mybb->input['copy_1_forum'] = ''; 294 } 295 296 if(!$errors) 297 { 298 $thread_options = array( 299 'confirmation' => $mybb->get_input('confirmation', MyBB::INPUT_INT), 300 'deletethread' => $mybb->get_input('deletethread', MyBB::INPUT_INT), 301 'mergethreads' => $mybb->get_input('mergethreads', MyBB::INPUT_INT), 302 'deletepoll' => $mybb->get_input('deletepoll', MyBB::INPUT_INT), 303 'removeredirects' => $mybb->get_input('removeredirects', MyBB::INPUT_INT), 304 'removesubscriptions' => $mybb->get_input('removesubscriptions', MyBB::INPUT_INT), 305 'recountrebuild' => $mybb->get_input('recountrebuild', MyBB::INPUT_INT), 306 'approvethread' => $mybb->input['approvethread'], 307 'softdeletethread' => $mybb->input['softdeletethread'], 308 'openthread' => $mybb->input['openthread'], 309 'stickthread' => $mybb->input['stickthread'], 310 'movethread' => $mybb->get_input('move_1_forum', MyBB::INPUT_INT), 311 'movethreadredirect' => $mybb->get_input('move_2_redirect', MyBB::INPUT_INT), 312 'movethreadredirectexpire' => $mybb->get_input('move_3_redirecttime', MyBB::INPUT_INT), 313 'copythread' => $mybb->get_input('copy_1_forum', MyBB::INPUT_INT), 314 'newsubject' => $mybb->input['newsubject'], 315 'addreply' => $mybb->input['newreply'], 316 'replysubject' => $mybb->input['newreplysubject'], 317 'pm_subject' => $mybb->input['pm_subject'], 318 'pm_message' => $mybb->input['pm_message'], 319 'threadprefix' => $mybb->get_input('threadprefix', MyBB::INPUT_INT) 320 ); 321 322 $args = array( 323 'thread_options' => &$thread_options, 324 ); 325 326 $plugins->run_hooks("admin_config_mod_tools_edit_thread_tool_options", $args); 327 328 $update_tool['type'] = 't'; 329 $update_tool['threadoptions'] = $db->escape_string(my_serialize($thread_options)); 330 $update_tool['name'] = $db->escape_string($mybb->input['title']); 331 $update_tool['description'] = $db->escape_string($mybb->input['description']); 332 $update_tool['forums'] = ''; 333 $update_tool['groups'] = ''; 334 335 if($mybb->input['forum_type'] == 2) 336 { 337 if(is_array($mybb->input['forum_1_forums'])) 338 { 339 $checked = array(); 340 341 foreach($mybb->input['forum_1_forums'] as $fid) 342 { 343 $checked[] = (int)$fid; 344 } 345 346 $update_tool['forums'] = implode(',', $checked); 347 } 348 } 349 else 350 { 351 $update_tool['forums'] = "-1"; 352 } 353 354 if($mybb->input['group_type'] == 2) 355 { 356 if(is_array($mybb->input['group_1_groups'])) 357 { 358 $checked = array(); 359 360 foreach($mybb->input['group_1_groups'] as $gid) 361 { 362 $checked[] = (int)$gid; 363 } 364 365 $update_tool['groups'] = implode(',', $checked); 366 } 367 } 368 else 369 { 370 $update_tool['groups'] = "-1"; 371 } 372 373 $plugins->run_hooks("admin_config_mod_tools_edit_thread_tool_commit"); 374 375 $db->update_query("modtools", $update_tool, "tid='{$mybb->input['tid']}'"); 376 377 // Log admin action 378 log_admin_action($mybb->input['tid'], $mybb->input['title']); 379 $cache->update_forumsdisplay(); 380 381 flash_message($lang->success_mod_tool_updated, 'success'); 382 admin_redirect("index.php?module=config-mod_tools"); 383 } 384 } 385 386 $page->add_breadcrumb_item($lang->edit_thread_tool); 387 $page->output_header($lang->mod_tools." - ".$lang->edit_thread_tool); 388 389 $sub_tabs['edit_thread_tool'] = array( 390 "title" => $lang->edit_thread_tool, 391 "description" => $lang->edit_thread_tool_desc, 392 "link" => "index.php?module=config-mod_tools" 393 ); 394 395 $page->output_nav_tabs($sub_tabs, 'edit_thread_tool'); 396 397 $form = new Form("index.php?module=config-mod_tools&action=edit_thread_tool", 'post'); 398 echo $form->generate_hidden_field("tid", $mybb->input['tid']); 399 400 if($errors) 401 { 402 $page->output_inline_error($errors); 403 } 404 else 405 { 406 $query = $db->simple_select("modtools", "*", "tid = '{$mybb->input['tid']}'"); 407 $modtool = $db->fetch_array($query); 408 $thread_options = my_unserialize($modtool['threadoptions']); 409 410 $mybb->input['title'] = $modtool['name']; 411 $mybb->input['description'] = $modtool['description']; 412 $mybb->input['forum_1_forums'] = explode(",", $modtool['forums']); 413 $mybb->input['group_1_groups'] = explode(",", $modtool['groups']); 414 415 if(!$modtool['forums'] || $modtool['forums'] == -1) 416 { 417 $forum_checked[1] = "checked=\"checked\""; 418 $forum_checked[2] = ''; 419 } 420 else 421 { 422 $forum_checked[1] = ''; 423 $forum_checked[2] = "checked=\"checked\""; 424 } 425 426 if(!$modtool['groups'] || $modtool['groups'] == -1) 427 { 428 $group_checked[1] = "checked=\"checked\""; 429 $group_checked[2] = ''; 430 } 431 else 432 { 433 $group_checked[1] = ''; 434 $group_checked[2] = "checked=\"checked\""; 435 } 436 437 $mybb->input['confirmation'] = $thread_options['confirmation']; 438 $mybb->input['approvethread'] = $thread_options['approvethread']; 439 $mybb->input['softdeletethread'] = $thread_options['softdeletethread']; 440 $mybb->input['openthread'] = $thread_options['openthread']; 441 $mybb->input['stickthread'] = $thread_options['stickthread']; 442 $mybb->input['move_1_forum'] = $thread_options['movethread']; 443 $mybb->input['move_2_redirect'] = $thread_options['movethreadredirect']; 444 $mybb->input['move_3_redirecttime'] = $thread_options['movethreadredirectexpire']; 445 446 if(!$thread_options['movethread']) 447 { 448 $move_checked[1] = "checked=\"checked\""; 449 $move_checked[2] = ''; 450 } 451 else 452 { 453 $move_checked[1] = ''; 454 $move_checked[2] = "checked=\"checked\""; 455 } 456 457 if(!$thread_options['copythread']) 458 { 459 $copy_checked[1] = "checked=\"checked\""; 460 $copy_checked[2] = ''; 461 } 462 else 463 { 464 $copy_checked[1] = ''; 465 $copy_checked[2] = "checked=\"checked\""; 466 } 467 468 $mybb->input['copy_1_forum'] = $thread_options['copythread']; 469 $mybb->input['deletethread'] = $thread_options['deletethread']; 470 $mybb->input['mergethreads'] = $thread_options['mergethreads']; 471 $mybb->input['deletepoll'] = $thread_options['deletepoll']; 472 $mybb->input['removeredirects'] = $thread_options['removeredirects']; 473 $mybb->input['removesubscriptions'] = $thread_options['removesubscriptions']; 474 $mybb->input['recountrebuild'] = $thread_options['recountrebuild']; 475 $mybb->input['threadprefix'] = $thread_options['threadprefix']; 476 $mybb->input['newsubject'] = $thread_options['newsubject']; 477 $mybb->input['newreply'] = $thread_options['addreply']; 478 $mybb->input['newreplysubject'] = $thread_options['replysubject']; 479 $mybb->input['pm_subject'] = $thread_options['pm_subject']; 480 $mybb->input['pm_message'] = $thread_options['pm_message']; 481 } 482 483 $form_container = new FormContainer($lang->general_options); 484 $form_container->output_row($lang->name." <em>*</em>", '', $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 485 $form_container->output_row($lang->short_description." <em>*</em>", '', $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description'); 486 487 $actions = "<script type=\"text/javascript\"> 488 function checkAction(id) 489 { 490 var checked = ''; 491 492 $('.'+id+'s_check').each(function(e, val) 493 { 494 if($(this).prop('checked') == true) 495 { 496 checked = $(this).val(); 497 } 498 }); 499 $('.'+id+'s').each(function(e) 500 { 501 $(this).hide(); 502 }); 503 if($('#'+id+'_'+checked)) 504 { 505 $('#'+id+'_'+checked).show(); 506 } 507 } 508 </script> 509 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 510 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"1\" {$forum_checked[1]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_forums}</strong></label></dt> 511 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"2\" {$forum_checked[2]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_forums}</strong></label></dt> 512 <dd style=\"margin-top: 4px;\" id=\"forum_2\" class=\"forums\"> 513 <table cellpadding=\"4\"> 514 <tr> 515 <td valign=\"top\"><small>{$lang->forums_colon}</small></td> 516 <td>".$form->generate_forum_select('forum_1_forums[]', $mybb->input['forum_1_forums'], array('multiple' => true, 'size' => 5))."</td> 517 </tr> 518 </table> 519 </dd> 520 </dl> 521 <script type=\"text/javascript\"> 522 checkAction('forum'); 523 </script>"; 524 $form_container->output_row($lang->available_in_forums." <em>*</em>", '', $actions); 525 526 $actions = "<dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 527 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"1\" {$group_checked[1]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_groups}</strong></label></dt> 528 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"2\" {$group_checked[2]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_groups}</strong></label></dt> 529 <dd style=\"margin-top: 4px;\" id=\"group_2\" class=\"groups\"> 530 <table cellpadding=\"4\"> 531 <tr> 532 <td valign=\"top\"><small>{$lang->groups_colon}</small></td> 533 <td>".$form->generate_group_select('group_1_groups[]', $mybb->input['group_1_groups'], array('multiple' => true, 'size' => 5))."</td> 534 </tr> 535 </table> 536 </dd> 537 </dl> 538 <script type=\"text/javascript\"> 539 checkAction('group'); 540 </script>"; 541 $form_container->output_row($lang->available_to_groups." <em>*</em>", '', $actions); 542 $form_container->output_row($lang->show_confirmation." <em>*</em>", '', $form->generate_yes_no_radio('confirmation', $mybb->input['confirmation'], array('style' => 'width: 2em;'))); 543 $form_container->end(); 544 545 $approve_unapprove = array( 546 '' => $lang->no_change, 547 'approve' => $lang->approve, 548 'unapprove' => $lang->unapprove, 549 'toggle' => $lang->toggle 550 ); 551 552 $open_close = array( 553 '' => $lang->no_change, 554 'open' => $lang->open, 555 'close' => $lang->close, 556 'toggle' => $lang->toggle 557 ); 558 559 $stick_unstick = array( 560 '' => $lang->no_change, 561 'stick' => $lang->stick, 562 'unstick' => $lang->unstick, 563 'toggle' => $lang->toggle 564 ); 565 566 $form_container = new FormContainer($lang->thread_moderation); 567 $form_container->output_row($lang->approve_unapprove." <em>*</em>", '', $form->generate_select_box('approvethread', $approve_unapprove, $mybb->input['approvethread'], array('id' => 'approvethread')), 'approvethread'); 568 $form_container->output_row($lang->open_close_thread." <em>*</em>", '', $form->generate_select_box('openthread', $open_close, $mybb->input['openthread'], array('id' => 'openthread')), 'openthread'); 569 $form_container->output_row($lang->stick_unstick_thread." <em>*</em>", '', $form->generate_select_box('stickthread', $stick_unstick, $mybb->input['stickthread'], array('id' => 'stickthread')), 'stickthread'); 570 571 572 $actions = " 573 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 574 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"1\" {$move_checked[1]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_move_thread}</strong></label></dt> 575 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"2\" {$move_checked[2]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->move_thread}</strong></label></dt> 576 <dd style=\"margin-top: 4px;\" id=\"move_2\" class=\"moves\"> 577 <table cellpadding=\"4\"> 578 <tr> 579 <td><small>{$lang->forum_to_move_to}</small></td> 580 <td>".$form->generate_forum_select('move_1_forum', $mybb->input['move_1_forum'])."</td> 581 </tr> 582 <tr> 583 <td><small>{$lang->leave_redirect}</small></td> 584 <td>".$form->generate_yes_no_radio('move_2_redirect', $mybb->input['move_2_redirect'], array('style' => 'width: 2em;'))."</td> 585 </tr> 586 <tr> 587 <td><small>{$lang->delete_redirect_after}</small></td> 588 <td>".$form->generate_numeric_field('move_3_redirecttime', $mybb->input['move_3_redirecttime'], array('style' => 'width: 3em;', 'min' => 0))." {$lang->days}</td> 589 </tr> 590 </table> 591 </dd> 592 </dl> 593 <script type=\"text/javascript\"> 594 checkAction('move'); 595 </script>"; 596 $form_container->output_row($lang->move_thread." <em>*</em>", $lang->move_thread_desc, $actions); 597 598 $actions = " 599 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 600 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"1\" {$copy_checked[1]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_copy_thread}</strong></label></dt> 601 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"2\" {$copy_checked[2]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->copy_thread}</strong></label></dt> 602 <dd style=\"margin-top: 4px;\" id=\"copy_2\" class=\"copys\"> 603 <table cellpadding=\"4\"> 604 <tr> 605 <td><small>{$lang->forum_to_copy_to}</small></td> 606 <td>".$form->generate_forum_select('copy_1_forum', $mybb->input['copy_1_forum'])."</td> 607 </tr> 608 </table> 609 </dd> 610 </dl> 611 <script type=\"text/javascript\"> 612 checkAction('copy'); 613 </script>"; 614 $form_container->output_row($lang->copy_thread." <em>*</em>", '', $actions); 615 616 $softdelete_restore = array( 617 '' => $lang->no_change, 618 'restore' => $lang->restore, 619 'softdelete' => $lang->softdelete, 620 'toggle' => $lang->toggle 621 ); 622 623 $form_container->output_row($lang->softdelete_restore_thread." <em>*</em>", '', $form->generate_select_box('softdeletethread', $softdelete_restore, $mybb->input['softdeletethread'], array('id' => 'softdeletethread')), 'softdeletethread'); 624 $form_container->output_row($lang->delete_thread." <em>*</em>", '', $form->generate_yes_no_radio('deletethread', $mybb->input['deletethread'], array('style' => 'width: 2em;'))); 625 $form_container->output_row($lang->merge_thread." <em>*</em>", $lang->merge_thread_desc, $form->generate_yes_no_radio('mergethreads', $mybb->input['mergethreads'], array('style' => 'width: 2em;'))); 626 $form_container->output_row($lang->delete_poll." <em>*</em>", '', $form->generate_yes_no_radio('deletepoll', $mybb->input['deletepoll'], array('style' => 'width: 2em;'))); 627 $form_container->output_row($lang->delete_redirects." <em>*</em>", '', $form->generate_yes_no_radio('removeredirects', $mybb->input['removeredirects'], array('style' => 'width: 2em;'))); 628 $form_container->output_row($lang->remove_subscriptions." <em>*</em>", '', $form->generate_yes_no_radio('removesubscriptions', $mybb->input['removesubscriptions'], array('style' => 'width: 2em;'))); 629 $form_container->output_row($lang->recount_rebuild." <em>*</em>", '', $form->generate_yes_no_radio('recountrebuild', $mybb->input['recountrebuild'], array('style' => 'width: 2em;'))); 630 631 $threadprefixes = build_prefixes(); 632 if(!empty($threadprefixes)) 633 { 634 $thread_prefixes = array( 635 '-1' => $lang->no_change, 636 '0' => $lang->no_prefix 637 ); 638 639 foreach($threadprefixes as $prefix) 640 { 641 $thread_prefixes[$prefix['pid']] = $prefix['prefix']; 642 } 643 644 $form_container->output_row($lang->apply_thread_prefix." <em>*</em>", '', $form->generate_select_box('threadprefix', $thread_prefixes, array($mybb->get_input('threadprefix', MyBB::INPUT_INT)), array('id' => 'threadprefix')), 'threadprefix'); 645 } 646 647 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 648 $form_container->output_row($lang->new_subject." <em>*</em>", $lang->new_subject_desc, $form->generate_text_box('newsubject', $mybb->input['newsubject'], array('id' => 'newsubject'))); 649 $form_container->end(); 650 651 $form_container = new FormContainer($lang->add_new_reply); 652 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 653 $form_container->output_row($lang->add_new_reply, $lang->add_new_reply_desc, $form->generate_text_area('newreply', $mybb->input['newreply'], array('id' => 'newreply')), 'newreply'); 654 $form_container->output_row($lang->reply_subject, $lang->reply_subject_desc, $form->generate_text_box('newreplysubject', $mybb->input['newreplysubject'], array('id' => 'newreplysubject')), 'newreplysubject'); 655 $form_container->end(); 656 657 $form_container = new FormContainer($lang->send_private_message); 658 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 659 $form_container->output_row($lang->private_message_message, $lang->private_message_message_desc, $form->generate_text_area('pm_message', $mybb->input['pm_message'], array('id' => 'pm_message')), 'pm_message'); 660 $form_container->output_row($lang->private_message_subject, $lang->private_message_subject_desc, $form->generate_text_box('pm_subject', $mybb->input['pm_subject'], array('id' => 'pm_subject')), 'pm_subject'); 661 $form_container->end(); 662 663 $plugins->run_hooks("admin_config_mod_tools_edit_thread_tool_end"); 664 665 $buttons[] = $form->generate_submit_button($lang->save_thread_tool); 666 667 $form->output_submit_wrapper($buttons); 668 $form->end(); 669 670 $page->output_footer(); 671 } 672 673 if($mybb->input['action'] == "add_thread_tool") 674 { 675 $plugins->run_hooks("admin_config_mod_tools_add_thread_tool"); 676 677 if($mybb->request_method == 'post') 678 { 679 if(trim($mybb->input['title']) == "") 680 { 681 $errors[] = $lang->error_missing_title; 682 } 683 684 if(trim($mybb->input['description']) == "") 685 { 686 $errors[] = $lang->error_missing_description; 687 } 688 689 if($mybb->input['forum_type'] == 2) 690 { 691 $forum_checked[1] = ''; 692 $forum_checked[2] = "checked=\"checked\""; 693 694 if(is_array($mybb->input['forum_1_forums']) && count($mybb->input['forum_1_forums']) < 1) 695 { 696 $errors[] = $lang->error_no_forums_selected; 697 } 698 } 699 else 700 { 701 $forum_checked[1] = "checked=\"checked\""; 702 $forum_checked[2] = ''; 703 704 $mybb->input['forum_1_forums'] = ''; 705 } 706 707 if($mybb->input['group_type'] == 2) 708 { 709 $group_checked[1] = ''; 710 $group_checked[2] = "checked=\"checked\""; 711 712 if(is_array($mybb->input['group_1_groups']) && count($mybb->input['group_1_groups']) < 1) 713 { 714 $errors[] = $lang->error_no_groups_selected; 715 } 716 } 717 else 718 { 719 $group_checked[1] = "checked=\"checked\""; 720 $group_checked[2] = ''; 721 722 $mybb->input['group_1_groups'] = ''; 723 } 724 725 if($mybb->input['approvethread'] != '' && $mybb->input['approvethread'] != 'approve' && $mybb->input['approvethread'] != 'unapprove' && $mybb->input['approvethread'] != 'toggle') 726 { 727 $mybb->input['approvethread'] = ''; 728 } 729 730 if($mybb->input['softdeletethread'] != '' && $mybb->input['softdeletethread'] != 'restore' && $mybb->input['softdeletethread'] != 'softdelete' && $mybb->input['softdeletethread'] != 'toggle') 731 { 732 $mybb->input['softdeletethread'] = ''; 733 } 734 735 if($mybb->input['openthread'] != '' && $mybb->input['openthread'] != 'open' && $mybb->input['openthread'] != 'close' && $mybb->input['openthread'] != 'toggle') 736 { 737 $mybb->input['openthread'] = ''; 738 } 739 740 if($mybb->input['stickthread'] != '' && $mybb->input['stickthread'] != 'stick' && $mybb->input['stickthread'] != 'unstick' && $mybb->input['stickthread'] != 'toggle') 741 { 742 $mybb->input['stickthread'] = ''; 743 } 744 745 if(!isset($mybb->input['threadprefix'])) 746 { 747 $mybb->input['threadprefix'] = ''; 748 } 749 750 if($mybb->input['move_type'] == 2) 751 { 752 $move_checked[1] = ''; 753 $move_checked[2] = "checked=\"checked\""; 754 755 if(!$mybb->input['move_1_forum']) 756 { 757 $errors[] = $lang->error_no_move_forum_selected; 758 } 759 else 760 { 761 // Check that the destination forum is not a category 762 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('move_1_forum', MyBB::INPUT_INT)."'"); 763 if($db->fetch_field($query, "type") == "c") 764 { 765 $errors[] = $lang->error_forum_is_category; 766 } 767 } 768 } 769 else 770 { 771 $move_checked[1] = "checked=\"checked\""; 772 $move_checked[2] = ''; 773 774 $mybb->input['move_1_forum'] = ''; 775 $mybb->input['move_2_redirect'] = 0; 776 $mybb->input['move_3_redirecttime'] = ''; 777 } 778 779 if($mybb->input['copy_type'] == 2) 780 { 781 $copy_checked[1] = ''; 782 $copy_checked[2] = "checked=\"checked\""; 783 784 if(!$mybb->input['copy_1_forum']) 785 { 786 $errors[] = $lang->error_no_copy_forum_selected; 787 } 788 else 789 { 790 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('copy_1_forum', MyBB::INPUT_INT)."'"); 791 if($db->fetch_field($query, "type") == "c") 792 { 793 $errors[] = $lang->error_forum_is_category; 794 } 795 } 796 } 797 else 798 { 799 $copy_checked[1] = "checked=\"checked\""; 800 $copy_checked[2] = ''; 801 802 $mybb->input['copy_1_forum'] = ''; 803 } 804 805 if(!$errors) 806 { 807 $thread_options = array( 808 'confirmation' => $mybb->get_input('confirmation', MyBB::INPUT_INT), 809 'deletethread' => $mybb->get_input('deletethread', MyBB::INPUT_INT), 810 'mergethreads' => $mybb->get_input('mergethreads', MyBB::INPUT_INT), 811 'deletepoll' => $mybb->get_input('deletepoll', MyBB::INPUT_INT), 812 'removeredirects' => $mybb->get_input('removeredirects', MyBB::INPUT_INT), 813 'removesubscriptions' => $mybb->get_input('removesubscriptions', MyBB::INPUT_INT), 814 'recountrebuild' => $mybb->get_input('recountrebuild', MyBB::INPUT_INT), 815 'approvethread' => $mybb->input['approvethread'], 816 'softdeletethread' => $mybb->input['softdeletethread'], 817 'openthread' => $mybb->input['openthread'], 818 'stickthread' => $mybb->input['stickthread'], 819 'movethread' => $mybb->get_input('move_1_forum', MyBB::INPUT_INT), 820 'movethreadredirect' => $mybb->get_input('move_2_redirect', MyBB::INPUT_INT), 821 'movethreadredirectexpire' => $mybb->get_input('move_3_redirecttime', MyBB::INPUT_INT), 822 'copythread' => $mybb->get_input('copy_1_forum', MyBB::INPUT_INT), 823 'newsubject' => $mybb->input['newsubject'], 824 'addreply' => $mybb->input['newreply'], 825 'replysubject' => $mybb->input['newreplysubject'], 826 'pm_subject' => $mybb->input['pm_subject'], 827 'pm_message' => $mybb->input['pm_message'], 828 'threadprefix' => $mybb->input['threadprefix'], 829 ); 830 831 $args = array( 832 'thread_options' => &$thread_options, 833 ); 834 835 $plugins->run_hooks("admin_config_mod_tools_add_thread_tool_options", $args); 836 837 $new_tool['type'] = 't'; 838 $new_tool['threadoptions'] = $db->escape_string(my_serialize($thread_options)); 839 $new_tool['name'] = $db->escape_string($mybb->input['title']); 840 $new_tool['description'] = $db->escape_string($mybb->input['description']); 841 $new_tool['forums'] = ''; 842 $new_tool['groups'] = ''; 843 $new_tool['postoptions'] = ''; 844 845 if($mybb->input['forum_type'] == 2) 846 { 847 if(is_array($mybb->input['forum_1_forums'])) 848 { 849 $checked = array(); 850 851 foreach($mybb->input['forum_1_forums'] as $fid) 852 { 853 $checked[] = (int)$fid; 854 } 855 856 $new_tool['forums'] = implode(',', $checked); 857 } 858 } 859 else 860 { 861 $new_tool['forums'] = "-1"; 862 } 863 864 if($mybb->input['group_type'] == 2) 865 { 866 if(is_array($mybb->input['group_1_groups'])) 867 { 868 $checked = array(); 869 870 foreach($mybb->input['group_1_groups'] as $gid) 871 { 872 $checked[] = (int)$gid; 873 } 874 875 $new_tool['groups'] = implode(',', $checked); 876 } 877 } 878 else 879 { 880 $new_tool['groups'] = "-1"; 881 } 882 883 if($mybb->get_input('threadprefix', MyBB::INPUT_INT) >= 0) 884 { 885 $thread_options['threadprefix'] = $mybb->get_input('threadprefix', MyBB::INPUT_INT); 886 } 887 888 $tid = $db->insert_query("modtools", $new_tool); 889 890 $plugins->run_hooks("admin_config_mod_tools_add_thread_tool_commit"); 891 892 // Log admin action 893 log_admin_action($tid, $mybb->input['title']); 894 $cache->update_forumsdisplay(); 895 896 flash_message($lang->success_mod_tool_created, 'success'); 897 admin_redirect("index.php?module=config-mod_tools"); 898 } 899 } 900 901 $page->add_breadcrumb_item($lang->add_new_thread_tool); 902 $page->output_header($lang->mod_tools." - ".$lang->add_new_thread_tool); 903 904 $sub_tabs['thread_tools'] = array( 905 'title' => $lang->thread_tools, 906 'link' => "index.php?module=config-mod_tools" 907 ); 908 $sub_tabs['add_thread_tool'] = array( 909 'title'=> $lang->add_new_thread_tool, 910 'link' => "index.php?module=config-mod_tools&action=add_thread_tool", 911 'description' => $lang->add_thread_tool_desc 912 ); 913 $sub_tabs['post_tools'] = array( 914 'title' => $lang->post_tools, 915 'link' => "index.php?module=config-mod_tools&action=post_tools", 916 ); 917 $sub_tabs['add_post_tool'] = array( 918 'title'=> $lang->add_new_post_tool, 919 'link' => "index.php?module=config-mod_tools&action=add_post_tool" 920 ); 921 922 $page->output_nav_tabs($sub_tabs, 'add_thread_tool'); 923 924 $form = new Form("index.php?module=config-mod_tools&action=add_thread_tool", 'post'); 925 926 if($errors) 927 { 928 $page->output_inline_error($errors); 929 } 930 else 931 { 932 $mybb->input['title'] = ''; 933 $mybb->input['description'] = ''; 934 $mybb->input['forum_1_forums'] = ''; 935 $forum_checked[1] = "checked=\"checked\""; 936 $forum_checked[2] = ''; 937 $mybb->input['group_1_groups'] = ''; 938 $group_checked[1] = "checked=\"checked\""; 939 $group_checked[2] = ''; 940 $mybb->input['confirmation'] = '0'; 941 $mybb->input['approvethread'] = ''; 942 $mybb->input['softdeletethread'] = ''; 943 $mybb->input['openthread'] = ''; 944 $mybb->input['stickthread'] = ''; 945 $mybb->input['move_1_forum'] = ''; 946 $mybb->input['move_2_redirect'] = '0'; 947 $mybb->input['move_3_redirecttime'] = ''; 948 $move_checked[1] = "checked=\"checked\""; 949 $move_checked[2] = ''; 950 $copy_checked[1] = "checked=\"checked\""; 951 $copy_checked[2] = ''; 952 $mybb->input['copy_1_forum'] = ''; 953 $mybb->input['deletethread'] = '0'; 954 $mybb->input['mergethreads'] = '0'; 955 $mybb->input['deletepoll'] = '0'; 956 $mybb->input['removeredirects'] = '0'; 957 $mybb->input['removesubscriptions'] = '0'; 958 $mybb->input['recountrebuild'] = '0'; 959 $mybb->input['threadprefix'] = '-1'; 960 $mybb->input['newsubject'] = '{subject}'; 961 $mybb->input['newreply'] = ''; 962 $mybb->input['newreplysubject'] = '{subject}'; 963 $mybb->input['pm_subject'] = ''; 964 $mybb->input['pm_message'] = ''; 965 } 966 967 $form_container = new FormContainer($lang->general_options); 968 $form_container->output_row($lang->name." <em>*</em>", '', $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 969 $form_container->output_row($lang->short_description." <em>*</em>", '', $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description'); 970 971 $actions = "<script type=\"text/javascript\"> 972 function checkAction(id) 973 { 974 var checked = ''; 975 976 $('.'+id+'s_check').each(function(e, val) 977 { 978 if($(this).prop('checked') == true) 979 { 980 checked = $(this).val(); 981 } 982 }); 983 $('.'+id+'s').each(function(e) 984 { 985 $(this).hide(); 986 }); 987 if($('#'+id+'_'+checked)) 988 { 989 $('#'+id+'_'+checked).show(); 990 } 991 } 992 </script> 993 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 994 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"1\" {$forum_checked[1]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_forums}</strong></label></dt> 995 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"2\" {$forum_checked[2]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_forums}</strong></label></dt> 996 <dd style=\"margin-top: 4px;\" id=\"forum_2\" class=\"forums\"> 997 <table cellpadding=\"4\"> 998 <tr> 999 <td valign=\"top\"><small>{$lang->forums_colon}</small></td> 1000 <td>".$form->generate_forum_select('forum_1_forums[]', $mybb->input['forum_1_forums'], array('multiple' => true, 'size' => 5))."</td> 1001 </tr> 1002 </table> 1003 </dd> 1004 </dl> 1005 <script type=\"text/javascript\"> 1006 checkAction('forum'); 1007 </script>"; 1008 $form_container->output_row($lang->available_in_forums." <em>*</em>", '', $actions); 1009 1010 $actions = "<dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1011 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"1\" {$group_checked[1]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_groups}</strong></label></dt> 1012 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"2\" {$group_checked[2]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_groups}</strong></label></dt> 1013 <dd style=\"margin-top: 4px;\" id=\"group_2\" class=\"groups\"> 1014 <table cellpadding=\"4\"> 1015 <tr> 1016 <td valign=\"top\"><small>{$lang->groups_colon}</small></td> 1017 <td>".$form->generate_group_select('group_1_groups[]', $mybb->input['group_1_groups'], array('multiple' => true, 'size' => 5))."</td> 1018 </tr> 1019 </table> 1020 </dd> 1021 </dl> 1022 <script type=\"text/javascript\"> 1023 checkAction('group'); 1024 </script>"; 1025 $form_container->output_row($lang->available_to_groups." <em>*</em>", '', $actions); 1026 $form_container->output_row($lang->show_confirmation." <em>*</em>", '', $form->generate_yes_no_radio('confirmation', $mybb->input['confirmation'], array('style' => 'width: 2em;'))); 1027 $form_container->end(); 1028 1029 $approve_unapprove = array( 1030 '' => $lang->no_change, 1031 'approve' => $lang->approve, 1032 'unapprove' => $lang->unapprove, 1033 'toggle' => $lang->toggle 1034 ); 1035 1036 $open_close = array( 1037 '' => $lang->no_change, 1038 'open' => $lang->open, 1039 'close' => $lang->close, 1040 'toggle' => $lang->toggle 1041 ); 1042 1043 $stick_unstick = array( 1044 '' => $lang->no_change, 1045 'stick' => $lang->stick, 1046 'unstick' => $lang->unstick, 1047 'toggle' => $lang->toggle 1048 ); 1049 1050 $form_container = new FormContainer($lang->thread_moderation); 1051 $form_container->output_row($lang->approve_unapprove." <em>*</em>", '', $form->generate_select_box('approvethread', $approve_unapprove, $mybb->input['approvethread'], array('id' => 'approvethread')), 'approvethread'); 1052 $form_container->output_row($lang->open_close_thread." <em>*</em>", '', $form->generate_select_box('openthread', $open_close, $mybb->input['openthread'], array('id' => 'openthread')), 'openthread'); 1053 $form_container->output_row($lang->stick_unstick_thread." <em>*</em>", '', $form->generate_select_box('stickthread', $stick_unstick, $mybb->input['stickthread'], array('id' => 'stickthread')), 'stickthread'); 1054 1055 1056 $actions = " 1057 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1058 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"1\" {$move_checked[1]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_move_thread}</strong></label></dt> 1059 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"2\" {$move_checked[2]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->move_thread}</strong></label></dt> 1060 <dd style=\"margin-top: 4px;\" id=\"move_2\" class=\"moves\"> 1061 <table cellpadding=\"4\"> 1062 <tr> 1063 <td><small>{$lang->forum_to_move_to}</small></td> 1064 <td>".$form->generate_forum_select('move_1_forum', $mybb->input['move_1_forum'])."</td> 1065 </tr> 1066 <tr> 1067 <td><small>{$lang->leave_redirect}</small></td> 1068 <td>".$form->generate_yes_no_radio('move_2_redirect', $mybb->input['move_2_redirect'], array('style' => 'width: 2em;'))."</td> 1069 </tr> 1070 <tr> 1071 <td><small>{$lang->delete_redirect_after}</small></td> 1072 <td>".$form->generate_numeric_field('move_3_redirecttime', $mybb->input['move_3_redirecttime'], array('style' => 'width: 3em;', 'min' => 0))." {$lang->days}</td> 1073 </tr> 1074 </table> 1075 </dd> 1076 </dl> 1077 <script type=\"text/javascript\"> 1078 checkAction('move'); 1079 </script>"; 1080 $form_container->output_row($lang->move_thread." <em>*</em>", $lang->move_thread_desc, $actions); 1081 1082 $actions = " 1083 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1084 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"1\" {$copy_checked[1]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_copy_thread}</strong></label></dt> 1085 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"2\" {$copy_checked[2]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->copy_thread}</strong></label></dt> 1086 <dd style=\"margin-top: 4px;\" id=\"copy_2\" class=\"copys\"> 1087 <table cellpadding=\"4\"> 1088 <tr> 1089 <td><small>{$lang->forum_to_copy_to}</small></td> 1090 <td>".$form->generate_forum_select('copy_1_forum', $mybb->input['copy_1_forum'])."</td> 1091 </tr> 1092 </table> 1093 </dd> 1094 </dl> 1095 <script type=\"text/javascript\"> 1096 checkAction('copy'); 1097 </script>"; 1098 $form_container->output_row($lang->copy_thread." <em>*</em>", '', $actions); 1099 1100 $softdelete_restore = array( 1101 '' => $lang->no_change, 1102 'restore' => $lang->restore, 1103 'softdelete' => $lang->softdelete, 1104 'toggle' => $lang->toggle 1105 ); 1106 1107 $form_container->output_row($lang->softdelete_restore_thread." <em>*</em>", '', $form->generate_select_box('softdeletethread', $softdelete_restore, $mybb->input['softdeletethread'], array('id' => 'softdeletethread')), 'softdeletethread'); 1108 $form_container->output_row($lang->delete_thread." <em>*</em>", '', $form->generate_yes_no_radio('deletethread', $mybb->input['deletethread'], array('style' => 'width: 2em;'))); 1109 $form_container->output_row($lang->merge_thread." <em>*</em>", $lang->merge_thread_desc, $form->generate_yes_no_radio('mergethreads', $mybb->input['mergethreads'], array('style' => 'width: 2em;'))); 1110 $form_container->output_row($lang->delete_poll." <em>*</em>", '', $form->generate_yes_no_radio('deletepoll', $mybb->input['deletepoll'], array('style' => 'width: 2em;'))); 1111 $form_container->output_row($lang->delete_redirects." <em>*</em>", '', $form->generate_yes_no_radio('removeredirects', $mybb->input['removeredirects'], array('style' => 'width: 2em;'))); 1112 $form_container->output_row($lang->remove_subscriptions." <em>*</em>", '', $form->generate_yes_no_radio('removesubscriptions', $mybb->input['removesubscriptions'], array('style' => 'width: 2em;'))); 1113 $form_container->output_row($lang->recount_rebuild." <em>*</em>", '', $form->generate_yes_no_radio('recountrebuild', $mybb->input['recountrebuild'], array('style' => 'width: 2em;'))); 1114 1115 $threadprefixes = build_prefixes(); 1116 if(!empty($threadprefixes)) 1117 { 1118 $thread_prefixes = array( 1119 '-1' => $lang->no_change, 1120 '0' => $lang->no_prefix 1121 ); 1122 1123 foreach($threadprefixes as $prefix) 1124 { 1125 $thread_prefixes[$prefix['pid']] = $prefix['prefix']; 1126 } 1127 1128 $form_container->output_row($lang->apply_thread_prefix." <em>*</em>", '', $form->generate_select_box('threadprefix', $thread_prefixes, $mybb->input['threadprefix'], array('id' => 'threadprefix')), 'threadprefix'); 1129 } 1130 1131 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1132 $form_container->output_row($lang->new_subject." <em>*</em>", $lang->new_subject_desc, $form->generate_text_box('newsubject', $mybb->input['newsubject'], array('id' => 'newsubject'))); 1133 $form_container->end(); 1134 1135 $form_container = new FormContainer($lang->add_new_reply); 1136 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1137 $form_container->output_row($lang->add_new_reply, $lang->add_new_reply_desc, $form->generate_text_area('newreply', $mybb->input['newreply'], array('id' => 'newreply')), 'newreply'); 1138 $form_container->output_row($lang->reply_subject, $lang->reply_subject_desc, $form->generate_text_box('newreplysubject', $mybb->input['newreplysubject'], array('id' => 'newreplysubject')), 'newreplysubject'); 1139 $form_container->end(); 1140 1141 $form_container = new FormContainer($lang->send_private_message); 1142 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1143 $form_container->output_row($lang->private_message_message, $lang->private_message_message_desc, $form->generate_text_area('pm_message', $mybb->input['pm_message'], array('id' => 'pm_message')), 'pm_message'); 1144 $form_container->output_row($lang->private_message_subject, $lang->private_message_subject_desc, $form->generate_text_box('pm_subject', $mybb->input['pm_subject'], array('id' => 'pm_subject')), 'pm_subject'); 1145 $form_container->end(); 1146 1147 $plugins->run_hooks("admin_config_mod_tools_add_thread_tool_end"); 1148 1149 $buttons[] = $form->generate_submit_button($lang->save_thread_tool); 1150 1151 $form->output_submit_wrapper($buttons); 1152 $form->end(); 1153 1154 $page->output_footer(); 1155 } 1156 1157 // This will be accounted for both GET and POST requests in both 'add_post_tool' / 'edit_post_tool' 1158 $do_not_split_checked = ''; 1159 $split_same_checked = ''; 1160 1161 if($mybb->input['action'] == "edit_post_tool") 1162 { 1163 $query = $db->simple_select("modtools", "COUNT(tid) as tools", "tid = '{$mybb->input['tid']}' AND type='p'"); 1164 if($db->fetch_field($query, "tools") < 1) 1165 { 1166 flash_message($lang->error_invalid_post_tool, 'error'); 1167 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 1168 } 1169 1170 $plugins->run_hooks("admin_config_mod_tools_edit_post_tool"); 1171 1172 if($mybb->request_method == 'post') 1173 { 1174 if(trim($mybb->input['title']) == "") 1175 { 1176 $errors[] = $lang->error_missing_title; 1177 } 1178 1179 if(trim($mybb->input['description']) == "") 1180 { 1181 $errors[] = $lang->error_missing_description; 1182 } 1183 1184 if($mybb->input['forum_type'] == 2) 1185 { 1186 if(is_array($mybb->input['forum_1_forums']) && count($mybb->input['forum_1_forums']) < 1) 1187 { 1188 $errors[] = $lang->error_no_forums_selected; 1189 } 1190 } 1191 else 1192 { 1193 $mybb->input['forum_1_forums'] = ''; 1194 } 1195 1196 if($mybb->input['group_type'] == 2) 1197 { 1198 if(is_array($mybb->input['group_1_groups']) && count($mybb->input['group_1_groups']) < 1) 1199 { 1200 $errors[] = $lang->error_no_groups_selected; 1201 } 1202 } 1203 else 1204 { 1205 $mybb->input['group_1_groups'] = ''; 1206 } 1207 1208 if($mybb->input['approvethread'] != '' && $mybb->input['approvethread'] != 'approve' && $mybb->input['approvethread'] != 'unapprove' && $mybb->input['approvethread'] != 'toggle') 1209 { 1210 $mybb->input['approvethread'] = ''; 1211 } 1212 1213 if($mybb->input['softdeletethread'] != '' && $mybb->input['softdeletethread'] != 'softdelete' && $mybb->input['softdeletethread'] != 'restore' && $mybb->input['softdeletethread'] != 'toggle') 1214 { 1215 $mybb->input['softdeletethread'] = ''; 1216 } 1217 1218 if($mybb->input['openthread'] != '' && $mybb->input['openthread'] != 'open' && $mybb->input['openthread'] != 'close' && $mybb->input['openthread'] != 'toggle') 1219 { 1220 $mybb->input['openthread'] = ''; 1221 } 1222 1223 if($mybb->input['stickthread'] != '' && $mybb->input['stickthread'] != 'stick' && $mybb->input['stickthread'] != 'unstick' && $mybb->input['stickthread'] != 'toggle') 1224 { 1225 $mybb->input['stickthread'] = ''; 1226 } 1227 1228 if($mybb->input['move_type'] == 2) 1229 { 1230 if(!$mybb->input['move_1_forum']) 1231 { 1232 $errors[] = $lang->error_no_move_forum_selected; 1233 } 1234 else 1235 { 1236 // Check that the destination forum is not a category 1237 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('move_1_forum', MyBB::INPUT_INT)."'"); 1238 if($db->fetch_field($query, "type") == "c") 1239 { 1240 $errors[] = $lang->error_forum_is_category; 1241 } 1242 } 1243 } 1244 else 1245 { 1246 $mybb->input['move_1_forum'] = ''; 1247 $mybb->input['move_2_redirect'] = 0; 1248 $mybb->input['move_3_redirecttime'] = ''; 1249 } 1250 1251 if($mybb->input['copy_type'] == 2) 1252 { 1253 if(!$mybb->input['copy_1_forum']) 1254 { 1255 $errors[] = $lang->error_no_copy_forum_selected; 1256 } 1257 else 1258 { 1259 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('copy_1_forum', MyBB::INPUT_INT)."'"); 1260 if($db->fetch_field($query, "type") == "c") 1261 { 1262 $errors[] = $lang->error_forum_is_category; 1263 } 1264 } 1265 } 1266 else 1267 { 1268 $mybb->input['copy_1_forum'] = ''; 1269 } 1270 1271 if($mybb->input['approveposts'] != '' && $mybb->input['approveposts'] != 'approve' && $mybb->input['approveposts'] != 'unapprove' && $mybb->input['approveposts'] != 'toggle') 1272 { 1273 $mybb->input['approveposts'] = ''; 1274 } 1275 1276 if($mybb->input['softdeleteposts'] != '' && $mybb->input['softdeleteposts'] != 'approve' && $mybb->input['softdeleteposts'] != 'unapprove' && $mybb->input['softdeleteposts'] != 'toggle') 1277 { 1278 $mybb->input['softdeleteposts'] = ''; 1279 } 1280 1281 if($mybb->input['splitposts'] < -2) 1282 { 1283 $mybb->input['splitposts'] = -1; 1284 } 1285 1286 if($mybb->input['splitpostsclose'] == 1) 1287 { 1288 $mybb->input['splitpostsclose'] = 'close'; 1289 } 1290 else 1291 { 1292 $mybb->input['splitpostsclose'] = ''; 1293 } 1294 1295 if($mybb->input['splitpostsstick'] == 1) 1296 { 1297 $mybb->input['splitpostsstick'] = 'stick'; 1298 } 1299 else 1300 { 1301 $mybb->input['splitpostsstick'] = ''; 1302 } 1303 1304 if($mybb->input['splitpostsunapprove'] == 1) 1305 { 1306 $mybb->input['splitpostsunapprove'] = 'unapprove'; 1307 } 1308 else 1309 { 1310 $mybb->input['splitpostsunapprove'] = ''; 1311 } 1312 1313 if(!$errors) 1314 { 1315 $thread_options = array( 1316 'confirmation' => $mybb->get_input('confirmation', MyBB::INPUT_INT), 1317 'deletethread' => $mybb->get_input('deletethread', MyBB::INPUT_INT), 1318 'softdeletethread' => $mybb->input['softdeletethread'], 1319 'approvethread' => $mybb->input['approvethread'], 1320 'openthread' => $mybb->input['openthread'], 1321 'stickthread' => $mybb->input['stickthread'], 1322 'movethread' => $mybb->get_input('move_1_forum', MyBB::INPUT_INT), 1323 'movethreadredirect' => $mybb->get_input('move_2_redirect', MyBB::INPUT_INT), 1324 'movethreadredirectexpire' => $mybb->get_input('move_3_redirecttime', MyBB::INPUT_INT), 1325 'copythread' => $mybb->get_input('copy_1_forum', MyBB::INPUT_INT), 1326 'newsubject' => $mybb->input['newsubject'], 1327 'addreply' => $mybb->input['newreply'], 1328 'replysubject' => $mybb->input['newreplysubject'], 1329 'pm_subject' => $mybb->input['pm_subject'], 1330 'pm_message' => $mybb->input['pm_message'], 1331 'threadprefix' => $mybb->get_input('threadprefix', MyBB::INPUT_INT) 1332 ); 1333 1334 if(stripos($mybb->input['splitpostsnewsubject'], '{subject}') === false) 1335 { 1336 $mybb->input['splitpostsnewsubject'] = '{subject}'.$mybb->input['splitpostsnewsubject']; 1337 } 1338 1339 $post_options = array( 1340 'deleteposts' => $mybb->get_input('deleteposts', MyBB::INPUT_INT), 1341 'softdeleteposts' => $mybb->input['softdeleteposts'], 1342 'mergeposts' =>$mybb->get_input('mergeposts', MyBB::INPUT_INT), 1343 'approveposts' => $mybb->input['approveposts'], 1344 'splitposts' => $mybb->get_input('splitposts', MyBB::INPUT_INT), 1345 'splitpostsclose' => $mybb->input['splitpostsclose'], 1346 'splitpostsstick' => $mybb->input['splitpostsstick'], 1347 'splitpostsunapprove' => $mybb->input['splitpostsunapprove'], 1348 'splitthreadprefix' => $mybb->get_input('splitthreadprefix', MyBB::INPUT_INT), 1349 'splitpostsnewsubject' => $mybb->input['splitpostsnewsubject'], 1350 'splitpostsaddreply' => $mybb->input['splitpostsaddreply'], 1351 'splitpostsreplysubject' => $mybb->input['splitpostsreplysubject'] 1352 ); 1353 1354 $args = array( 1355 'thread_options' => &$thread_options, 1356 'post_options' => &$post_options, 1357 ); 1358 1359 $plugins->run_hooks("admin_config_mod_tools_edit_post_tool_options", $args); 1360 1361 $update_tool['type'] = 'p'; 1362 $update_tool['threadoptions'] = $db->escape_string(my_serialize($thread_options)); 1363 $update_tool['postoptions'] = $db->escape_string(my_serialize($post_options)); 1364 $update_tool['name'] = $db->escape_string($mybb->input['title']); 1365 $update_tool['description'] = $db->escape_string($mybb->input['description']); 1366 $update_tool['forums'] = ''; 1367 $update_tool['groups'] = ''; 1368 1369 if($mybb->input['forum_type'] == 2) 1370 { 1371 if(is_array($mybb->input['forum_1_forums'])) 1372 { 1373 $checked = array(); 1374 1375 foreach($mybb->input['forum_1_forums'] as $fid) 1376 { 1377 $checked[] = (int)$fid; 1378 } 1379 1380 $update_tool['forums'] = implode(',', $checked); 1381 } 1382 } 1383 else 1384 { 1385 $update_tool['forums'] = "-1"; 1386 } 1387 1388 if($mybb->input['group_type'] == 2) 1389 { 1390 if(is_array($mybb->input['group_1_groups'])) 1391 { 1392 $checked = array(); 1393 1394 foreach($mybb->input['group_1_groups'] as $gid) 1395 { 1396 $checked[] = (int)$gid; 1397 } 1398 1399 $update_tool['groups'] = implode(',', $checked); 1400 } 1401 } 1402 else 1403 { 1404 $update_tool['groups'] = "-1"; 1405 } 1406 1407 $plugins->run_hooks("admin_config_mod_tools_edit_post_tool_commit"); 1408 1409 $db->update_query("modtools", $update_tool, "tid = '{$mybb->input['tid']}'"); 1410 1411 // Log admin action 1412 log_admin_action($mybb->input['tid'], $mybb->input['title']); 1413 $cache->update_forumsdisplay(); 1414 1415 flash_message($lang->success_mod_tool_updated, 'success'); 1416 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 1417 } 1418 } 1419 1420 $page->add_breadcrumb_item($lang->edit_post_tool); 1421 $page->output_header($lang->mod_tools." - ".$lang->edit_post_tool); 1422 1423 $sub_tabs['edit_post_tool'] = array( 1424 "title" => $lang->edit_post_tool, 1425 "description" => $lang->edit_post_tool_desc, 1426 "link" => "index.php?module=config-mod_tools" 1427 ); 1428 1429 $page->output_nav_tabs($sub_tabs, 'edit_post_tool'); 1430 1431 $form = new Form("index.php?module=config-mod_tools&action=edit_post_tool", 'post'); 1432 echo $form->generate_hidden_field("tid", $mybb->input['tid']); 1433 1434 1435 if($errors) 1436 { 1437 $page->output_inline_error($errors); 1438 } 1439 else 1440 { 1441 $query = $db->simple_select("modtools", "*", "tid = '{$mybb->input['tid']}'"); 1442 $modtool = $db->fetch_array($query); 1443 $thread_options = my_unserialize($modtool['threadoptions']); 1444 $post_options = my_unserialize($modtool['postoptions']); 1445 1446 $mybb->input['title'] = $modtool['name']; 1447 $mybb->input['description'] = $modtool['description']; 1448 $mybb->input['forum_1_forums'] = explode(",", $modtool['forums']); 1449 $mybb->input['group_1_groups'] = explode(",", $modtool['groups']); 1450 1451 if(!$modtool['forums'] || $modtool['forums'] == -1) 1452 { 1453 $forum_checked[1] = "checked=\"checked\""; 1454 $forum_checked[2] = ''; 1455 } 1456 else 1457 { 1458 $forum_checked[1] = ''; 1459 $forum_checked[2] = "checked=\"checked\""; 1460 } 1461 1462 if(!$modtool['groups'] || $modtool['groups'] == -1) 1463 { 1464 $group_checked[1] = "checked=\"checked\""; 1465 $group_checked[2] = ''; 1466 } 1467 else 1468 { 1469 $group_checked[1] = ''; 1470 $group_checked[2] = "checked=\"checked\""; 1471 } 1472 1473 $mybb->input['confirmation'] = $thread_options['confirmation']; 1474 $mybb->input['approvethread'] = $thread_options['approvethread']; 1475 $mybb->input['softdeletethread'] = $thread_options['softdeletethread']; 1476 $mybb->input['openthread'] = $thread_options['openthread']; 1477 $mybb->input['stickthread'] = $thread_options['stickthread']; 1478 $mybb->input['move_1_forum'] = $thread_options['movethread']; 1479 $mybb->input['move_2_redirect'] = $thread_options['movethreadredirect']; 1480 $mybb->input['move_3_redirecttime'] = $thread_options['movethreadredirectexpire']; 1481 1482 if(!$thread_options['movethread']) 1483 { 1484 $move_checked[1] = "checked=\"checked\""; 1485 $move_checked[2] = ''; 1486 } 1487 else 1488 { 1489 $move_checked[1] = ''; 1490 $move_checked[2] = "checked=\"checked\""; 1491 } 1492 1493 if(!$thread_options['copythread']) 1494 { 1495 $copy_checked[1] = "checked=\"checked\""; 1496 $copy_checked[2] = ''; 1497 } 1498 else 1499 { 1500 $copy_checked[1] = ''; 1501 $copy_checked[2] = "checked=\"checked\""; 1502 } 1503 1504 $mybb->input['copy_1_forum'] = $thread_options['copythread']; 1505 $mybb->input['deletethread'] = $thread_options['deletethread']; 1506 $mybb->input['threadprefix'] = $thread_options['threadprefix']; 1507 $mybb->input['newsubject'] = $thread_options['newsubject']; 1508 $mybb->input['newreply'] = $thread_options['addreply']; 1509 $mybb->input['newreplysubject'] = $thread_options['replysubject']; 1510 $mybb->input['pm_subject'] = $thread_options['pm_subject']; 1511 $mybb->input['pm_message'] = $thread_options['pm_message']; 1512 1513 if($post_options['splitposts'] == '-1') 1514 { 1515 $do_not_split_checked = ' selected="selected"'; 1516 } 1517 else if($post_options['splitposts'] == '-2') 1518 { 1519 $split_same_checked = ' selected="selected"'; 1520 } 1521 1522 $mybb->input['softdeleteposts'] = $post_options['softdeleteposts']; 1523 $mybb->input['deleteposts'] = $post_options['deleteposts']; 1524 $mybb->input['mergeposts'] = $post_options['mergeposts']; 1525 $mybb->input['approveposts'] = $post_options['approveposts']; 1526 1527 if($post_options['splitpostsclose'] == 'close') 1528 { 1529 $mybb->input['splitpostsclose'] = '1'; 1530 } 1531 else 1532 { 1533 $mybb->input['splitpostsclose'] = '0'; 1534 } 1535 1536 if($post_options['splitpostsstick'] == 'stick') 1537 { 1538 $mybb->input['splitpostsstick'] = '1'; 1539 } 1540 else 1541 { 1542 $mybb->input['splitpostsstick'] = '0'; 1543 } 1544 1545 if($post_options['splitpostsunapprove'] == 'unapprove') 1546 { 1547 $mybb->input['splitpostsunapprove'] = '1'; 1548 } 1549 else 1550 { 1551 $mybb->input['splitpostsunapprove'] = '0'; 1552 } 1553 1554 $mybb->input['splitposts'] = $post_options['splitposts']; 1555 $mybb->input['splitthreadprefix'] = $post_options['splitthreadprefix']; 1556 $mybb->input['splitpostsnewsubject'] = $post_options['splitpostsnewsubject']; 1557 $mybb->input['splitpostsaddreply'] = $post_options['splitpostsaddreply']; 1558 $mybb->input['splitpostsreplysubject'] = $post_options['splitpostsreplysubject']; 1559 } 1560 1561 $form_container = new FormContainer($lang->general_options); 1562 $form_container->output_row($lang->name." <em>*</em>", '', $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 1563 $form_container->output_row($lang->short_description." <em>*</em>", '', $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description'); 1564 1565 $actions = "<script type=\"text/javascript\"> 1566 function checkAction(id) 1567 { 1568 var checked = ''; 1569 1570 $('.'+id+'s_check').each(function(e, val) 1571 { 1572 if($(this).prop('checked') == true) 1573 { 1574 checked = $(this).val(); 1575 } 1576 }); 1577 $('.'+id+'s').each(function(e) 1578 { 1579 $(this).hide(); 1580 }); 1581 if($('#'+id+'_'+checked)) 1582 { 1583 $('#'+id+'_'+checked).show(); 1584 } 1585 } 1586 </script> 1587 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1588 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"1\" {$forum_checked[1]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_forums}</strong></label></dt> 1589 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"2\" {$forum_checked[2]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_forums}</strong></label></dt> 1590 <dd style=\"margin-top: 4px;\" id=\"forum_2\" class=\"forums\"> 1591 <table cellpadding=\"4\"> 1592 <tr> 1593 <td valign=\"top\"><small>{$lang->forums_colon}</small></td> 1594 <td>".$form->generate_forum_select('forum_1_forums[]', $mybb->input['forum_1_forums'], array('multiple' => true, 'size' => 5))."</td> 1595 </tr> 1596 </table> 1597 </dd> 1598 </dl> 1599 <script type=\"text/javascript\"> 1600 checkAction('forum'); 1601 </script>"; 1602 $form_container->output_row($lang->available_in_forums." <em>*</em>", '', $actions); 1603 1604 $actions = "<dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1605 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"1\" {$group_checked[1]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_groups}</strong></label></dt> 1606 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"2\" {$group_checked[2]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_groups}</strong></label></dt> 1607 <dd style=\"margin-top: 4px;\" id=\"group_2\" class=\"groups\"> 1608 <table cellpadding=\"4\"> 1609 <tr> 1610 <td valign=\"top\"><small>{$lang->groups_colon}</small></td> 1611 <td>".$form->generate_group_select('group_1_groups[]', $mybb->input['group_1_groups'], array('multiple' => true, 'size' => 5))."</td> 1612 </tr> 1613 </table> 1614 </dd> 1615 </dl> 1616 <script type=\"text/javascript\"> 1617 checkAction('group'); 1618 </script>"; 1619 $form_container->output_row($lang->available_to_groups." <em>*</em>", '', $actions); 1620 $form_container->output_row($lang->show_confirmation." <em>*</em>", '', $form->generate_yes_no_radio('confirmation', $mybb->input['confirmation'], array('style' => 'width: 2em;'))); 1621 $form_container->end(); 1622 1623 $approve_unapprove = array( 1624 '' => $lang->no_change, 1625 'approve' => $lang->approve, 1626 'unapprove' => $lang->unapprove, 1627 'toggle' => $lang->toggle 1628 ); 1629 1630 $form_container = new FormContainer($lang->inline_post_moderation); 1631 1632 $softdelete_restore = array( 1633 '' => $lang->no_change, 1634 'restore' => $lang->restore, 1635 'softdelete' => $lang->softdelete, 1636 'toggle' => $lang->toggle 1637 ); 1638 1639 $form_container->output_row($lang->softdelete_restore_posts." <em>*</em>", '', $form->generate_select_box('softdeleteposts', $softdelete_restore, $mybb->input['softdeleteposts'], array('id' => 'softdeleteposts')), 'softdeleteposts'); 1640 $form_container->output_row($lang->delete_posts." <em>*</em>", '', $form->generate_yes_no_radio('deleteposts', $mybb->input['deleteposts'])); 1641 $form_container->output_row($lang->merge_posts." <em>*</em>", $lang->merge_posts_desc, $form->generate_yes_no_radio('mergeposts', $mybb->input['mergeposts'])); 1642 $form_container->output_row($lang->approve_unapprove_posts." <em>*</em>", '', $form->generate_select_box('approveposts', $approve_unapprove, $mybb->input['approveposts'], array('id' => 'approveposts')), 'approveposts'); 1643 $form_container->end(); 1644 1645 $selectoptions = "<option value=\"-1\"{$do_not_split_checked}>{$lang->do_not_split}</option>\n"; 1646 $selectoptions .= "<option value=\"-2\"{$split_same_checked} style=\"border-bottom: 1px solid #000;\">{$lang->split_to_same_forum}</option>\n"; 1647 1648 $form_container = new FormContainer($lang->split_posts); 1649 $form_container->output_row($lang->split_posts2." <em>*</em>", '', $form->generate_forum_select('splitposts', $mybb->input['splitposts'])); 1650 $form_container->output_row($lang->close_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsclose', $mybb->input['splitpostsclose'])); 1651 $form_container->output_row($lang->stick_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsstick', $mybb->input['splitpostsstick'])); 1652 $form_container->output_row($lang->unapprove_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsunapprove', $mybb->input['splitpostsunapprove'])); 1653 1654 $splitthreadprefix = build_prefixes(); 1655 if(!empty($splitthreadprefix)) 1656 { 1657 $split_thread_prefixes = array( 1658 '0' => $lang->no_prefix 1659 ); 1660 1661 foreach($splitthreadprefix as $prefix) 1662 { 1663 $split_thread_prefixes[$prefix['pid']] = $prefix['prefix']; 1664 } 1665 1666 $form_container->output_row($lang->split_thread_prefix." <em>*</em>", '', $form->generate_select_box('splitthreadprefix', $split_thread_prefixes, array($mybb->get_input('splitthreadprefix', MyBB::INPUT_INT)), array('id' => 'splitthreadprefix')), 'splitthreadprefix'); 1667 } 1668 1669 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1670 $form_container->output_row($lang->split_thread_subject, $lang->split_thread_subject_desc, $form->generate_text_box('splitpostsnewsubject', $mybb->input['splitpostsnewsubject'], array('id' => 'splitpostsnewsubject ')), 'newreplysubject'); 1671 $form_container->output_row($lang->add_new_split_reply, $lang->add_new_split_reply_desc, $form->generate_text_area('splitpostsaddreply', $mybb->input['splitpostsaddreply'], array('id' => 'splitpostsaddreply')), 'splitpostsaddreply'); 1672 $form_container->output_row($lang->split_reply_subject, $lang->split_reply_subject_desc, $form->generate_text_box('splitpostsreplysubject', $mybb->input['splitpostsreplysubject'], array('id' => 'splitpostsreplysubject')), 'splitpostsreplysubject'); 1673 $form_container->end(); 1674 1675 $open_close = array( 1676 '' => $lang->no_change, 1677 'open' => $lang->open, 1678 'close' => $lang->close, 1679 'toggle' => $lang->toggle 1680 ); 1681 1682 $stick_unstick = array( 1683 '' => $lang->no_change, 1684 'stick' => $lang->stick, 1685 'unstick' => $lang->unstick, 1686 'toggle' => $lang->toggle 1687 ); 1688 1689 $form_container = new FormContainer($lang->thread_moderation); 1690 $form_container->output_row($lang->approve_unapprove." <em>*</em>", '', $form->generate_select_box('approvethread', $approve_unapprove, $mybb->input['approvethread'], array('id' => 'approvethread')), 'approvethread'); 1691 $form_container->output_row($lang->open_close_thread." <em>*</em>", '', $form->generate_select_box('openthread', $open_close, $mybb->input['openthread'], array('id' => 'openthread')), 'openthread'); 1692 $form_container->output_row($lang->stick_unstick_thread." <em>*</em>", '', $form->generate_select_box('stickthread', $stick_unstick, $mybb->input['stickthread'], array('id' => 'stickthread')), 'stickthread'); 1693 1694 1695 $actions = " 1696 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1697 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"1\" {$move_checked[1]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_move_thread}</strong></label></dt> 1698 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"2\" {$move_checked[2]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->move_thread}</strong></label></dt> 1699 <dd style=\"margin-top: 4px;\" id=\"move_2\" class=\"moves\"> 1700 <table cellpadding=\"4\"> 1701 <tr> 1702 <td><small>{$lang->forum_to_move_to}</small></td> 1703 <td>".$form->generate_forum_select('move_1_forum', $mybb->input['move_1_forum'])."</td> 1704 </tr> 1705 <tr> 1706 <td><small>{$lang->leave_redirect}</small></td> 1707 <td>".$form->generate_yes_no_radio('move_2_redirect', $mybb->input['move_2_redirect'])."</td> 1708 </tr> 1709 <tr> 1710 <td><small>{$lang->delete_redirect_after}</small></td> 1711 <td>".$form->generate_numeric_field('move_3_redirecttime', $mybb->input['move_3_redirecttime'], array('style' => 'width: 3em;', 'min' => 0))." {$lang->days}</td> 1712 </tr> 1713 </table> 1714 </dd> 1715 </dl> 1716 <script type=\"text/javascript\"> 1717 checkAction('move'); 1718 </script>"; 1719 $form_container->output_row($lang->move_thread." <em>*</em>", $lang->move_thread_desc, $actions); 1720 1721 $actions = " 1722 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 1723 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"1\" {$copy_checked[1]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_copy_thread}</strong></label></dt> 1724 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"2\" {$copy_checked[2]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->copy_thread}</strong></label></dt> 1725 <dd style=\"margin-top: 4px;\" id=\"copy_2\" class=\"copys\"> 1726 <table cellpadding=\"4\"> 1727 <tr> 1728 <td><small>{$lang->forum_to_copy_to}</small></td> 1729 <td>".$form->generate_forum_select('copy_1_forum', $mybb->input['copy_1_forum'])."</td> 1730 </tr> 1731 </table> 1732 </dd> 1733 </dl> 1734 <script type=\"text/javascript\"> 1735 checkAction('copy'); 1736 </script>"; 1737 $form_container->output_row($lang->copy_thread." <em>*</em>", '', $actions); 1738 $form_container->output_row($lang->softdelete_restore_thread." <em>*</em>", '', $form->generate_select_box('softdeletethread', $softdelete_restore, $mybb->input['softdeletethread'], array('id' => 'softdeletethread')), 'softdeletethread'); 1739 $form_container->output_row($lang->delete_thread." <em>*</em>", '', $form->generate_yes_no_radio('deletethread', $mybb->input['deletethread'])); 1740 1741 $threadprefixes = build_prefixes(); 1742 if(!empty($threadprefixes)) 1743 { 1744 $thread_prefixes = array( 1745 '-1' => $lang->no_change, 1746 '0' => $lang->no_prefix 1747 ); 1748 1749 foreach($threadprefixes as $prefix) 1750 { 1751 $thread_prefixes[$prefix['pid']] = $prefix['prefix']; 1752 } 1753 1754 $form_container->output_row($lang->apply_thread_prefix." <em>*</em>", '', $form->generate_select_box('threadprefix', $thread_prefixes, array($mybb->get_input('threadprefix', MyBB::INPUT_INT)), array('id' => 'threadprefix')), 'threadprefix'); 1755 } 1756 1757 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1758 $form_container->output_row($lang->new_subject." <em>*</em>", $lang->new_subject_desc, $form->generate_text_box('newsubject', $mybb->input['newsubject'])); 1759 $form_container->end(); 1760 1761 $form_container = new FormContainer($lang->add_new_reply); 1762 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1763 $form_container->output_row($lang->add_new_reply, $lang->add_new_reply_desc, $form->generate_text_area('newreply', $mybb->input['newreply']), 'newreply'); 1764 $form_container->output_row($lang->reply_subject, $lang->reply_subject_desc, $form->generate_text_box('newreplysubject', $mybb->input['newreplysubject'], array('id' => 'newreplysubject')), 'newreplysubject'); 1765 $form_container->end(); 1766 1767 $form_container = new FormContainer($lang->send_private_message); 1768 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 1769 $form_container->output_row($lang->private_message_message, $lang->private_message_message_desc, $form->generate_text_area('pm_message', $mybb->input['pm_message'], array('id' => 'pm_message')), 'pm_message'); 1770 $form_container->output_row($lang->private_message_subject, $lang->private_message_subject_desc, $form->generate_text_box('pm_subject', $mybb->input['pm_subject'], array('id' => 'pm_subject')), 'pm_subject'); 1771 $form_container->end(); 1772 1773 $plugins->run_hooks("admin_config_mod_tools_edit_post_tool_end"); 1774 1775 $buttons[] = $form->generate_submit_button($lang->save_post_tool); 1776 1777 $form->output_submit_wrapper($buttons); 1778 $form->end(); 1779 1780 $page->output_footer(); 1781 } 1782 1783 if($mybb->input['action'] == "add_post_tool") 1784 { 1785 $plugins->run_hooks("admin_config_mod_tools_add_post_tool"); 1786 1787 if($mybb->request_method == 'post') 1788 { 1789 if(trim($mybb->input['title']) == "") 1790 { 1791 $errors[] = $lang->error_missing_title; 1792 } 1793 1794 if(trim($mybb->input['description']) == "") 1795 { 1796 $errors[] = $lang->error_missing_description; 1797 } 1798 1799 if($mybb->input['forum_type'] == 2) 1800 { 1801 $forum_checked[1] = ''; 1802 $forum_checked[2] = "checked=\"checked\""; 1803 1804 if(is_array($mybb->input['forum_1_forums']) && count($mybb->input['forum_1_forums']) < 1) 1805 { 1806 $errors[] = $lang->error_no_forums_selected; 1807 } 1808 } 1809 else 1810 { 1811 $forum_checked[1] = "checked=\"checked\""; 1812 $forum_checked[2] = ''; 1813 1814 $mybb->input['forum_1_forums'] = ''; 1815 } 1816 1817 if($mybb->input['group_type'] == 2) 1818 { 1819 $group_checked[1] = ''; 1820 $group_checked[2] = "checked=\"checked\""; 1821 1822 if(is_array($mybb->input['group_1_groups']) && count($mybb->input['group_1_groups']) < 1) 1823 { 1824 $errors[] = $lang->error_no_groups_selected; 1825 } 1826 } 1827 else 1828 { 1829 $group_checked[1] = "checked=\"checked\""; 1830 $group_checked[2] = ''; 1831 1832 $mybb->input['group_1_groups'] = ''; 1833 } 1834 1835 if($mybb->input['approvethread'] != '' && $mybb->input['approvethread'] != 'approve' && $mybb->input['approvethread'] != 'unapprove' && $mybb->input['approvethread'] != 'toggle') 1836 { 1837 $mybb->input['approvethread'] = ''; 1838 } 1839 1840 if($mybb->input['softdeletethread'] != '' && $mybb->input['softdeletethread'] != 'softdelete' && $mybb->input['softdeletethread'] != 'restore' && $mybb->input['softdeletethread'] != 'toggle') 1841 { 1842 $mybb->input['softdeletethread'] = ''; 1843 } 1844 1845 if($mybb->input['openthread'] != '' && $mybb->input['openthread'] != 'open' && $mybb->input['openthread'] != 'close' && $mybb->input['openthread'] != 'toggle') 1846 { 1847 $mybb->input['openthread'] = ''; 1848 } 1849 1850 if($mybb->input['stickthread'] != '' && $mybb->input['stickthread'] != 'stick' && $mybb->input['stickthread'] != 'unstick' && $mybb->input['stickthread'] != 'toggle') 1851 { 1852 $mybb->input['stickthread'] = ''; 1853 } 1854 1855 if(!$mybb->get_input('threadprefix', MyBB::INPUT_INT)) 1856 { 1857 $mybb->input['threadprefix'] = ''; 1858 } 1859 1860 if($mybb->input['move_type'] == 2) 1861 { 1862 $move_checked[1] = ''; 1863 $move_checked[2] = "checked=\"checked\""; 1864 1865 if(!$mybb->input['move_1_forum']) 1866 { 1867 $errors[] = $lang->error_no_move_forum_selected; 1868 } 1869 else 1870 { 1871 // Check that the destination forum is not a category 1872 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('move_1_forum', MyBB::INPUT_INT)."'"); 1873 if($db->fetch_field($query, "type") == "c") 1874 { 1875 $errors[] = $lang->error_forum_is_category; 1876 } 1877 } 1878 } 1879 else 1880 { 1881 $move_checked[1] = "checked=\"checked\""; 1882 $move_checked[2] = ''; 1883 1884 $mybb->input['move_1_forum'] = ''; 1885 $mybb->input['move_2_redirect'] = 0; 1886 $mybb->input['move_3_redirecttime'] = ''; 1887 } 1888 1889 if($mybb->input['copy_type'] == 2) 1890 { 1891 $copy_checked[1] = ''; 1892 $copy_checked[2] = "checked=\"checked\""; 1893 1894 if(!$mybb->input['copy_1_forum']) 1895 { 1896 $errors[] = $lang->error_no_copy_forum_selected; 1897 } 1898 else 1899 { 1900 $query = $db->simple_select("forums", "type", "fid = '".$mybb->get_input('copy_1_forum', MyBB::INPUT_INT)."'"); 1901 if($db->fetch_field($query, "type") == "c") 1902 { 1903 $errors[] = $lang->error_forum_is_category; 1904 } 1905 } 1906 } 1907 else 1908 { 1909 $copy_checked[1] = 'checked=\"checked\"'; 1910 $copy_checked[2] = ''; 1911 1912 $mybb->input['copy_1_forum'] = ''; 1913 } 1914 1915 if($mybb->input['approveposts'] != '' && $mybb->input['approveposts'] != 'approve' && $mybb->input['approveposts'] != 'unapprove' && $mybb->input['approveposts'] != 'toggle') 1916 { 1917 $mybb->input['approveposts'] = ''; 1918 } 1919 1920 if($mybb->input['softdeleteposts'] != '' && $mybb->input['softdeleteposts'] != 'softdelete' && $mybb->input['softdeleteposts'] != 'restore' && $mybb->input['softdeleteposts'] != 'toggle') 1921 { 1922 $mybb->input['softdeleteposts'] = ''; 1923 } 1924 1925 if($mybb->input['splitposts'] < -2) 1926 { 1927 $mybb->input['splitposts'] = -1; 1928 } 1929 1930 if($mybb->input['splitpostsclose'] == 1) 1931 { 1932 $mybb->input['splitpostsclose'] = 'close'; 1933 } 1934 else 1935 { 1936 $mybb->input['splitpostsclose'] = ''; 1937 } 1938 1939 if($mybb->input['splitpostsstick'] == 1) 1940 { 1941 $mybb->input['splitpostsstick'] = 'stick'; 1942 } 1943 else 1944 { 1945 $mybb->input['splitpostsstick'] = ''; 1946 } 1947 1948 if($mybb->input['splitpostsunapprove'] == 1) 1949 { 1950 $mybb->input['splitpostsunapprove'] = 'unapprove'; 1951 } 1952 else 1953 { 1954 $mybb->input['splitpostsunapprove'] = ''; 1955 } 1956 1957 if(!$mybb->get_input('splitthreadprefix', MyBB::INPUT_INT)) 1958 { 1959 $mybb->input['splitthreadprefix'] = ''; 1960 } 1961 1962 if(!$errors) 1963 { 1964 $thread_options = array( 1965 'confirmation' => $mybb->get_input('confirmation', MyBB::INPUT_INT), 1966 'deletethread' => $mybb->get_input('deletethread', MyBB::INPUT_INT), 1967 'softdeletethread' => $mybb->input['softdeletethread'], 1968 'approvethread' => $mybb->input['approvethread'], 1969 'openthread' => $mybb->input['openthread'], 1970 'stickthread' => $mybb->input['stickthread'], 1971 'movethread' => $mybb->get_input('move_1_forum', MyBB::INPUT_INT), 1972 'movethreadredirect' => $mybb->get_input('move_2_redirect', MyBB::INPUT_INT), 1973 'movethreadredirectexpire' => $mybb->get_input('move_3_redirecttime', MyBB::INPUT_INT), 1974 'copythread' => $mybb->get_input('copy_1_forum', MyBB::INPUT_INT), 1975 'newsubject' => $mybb->input['newsubject'], 1976 'addreply' => $mybb->input['newreply'], 1977 'replysubject' => $mybb->input['newreplysubject'], 1978 'pm_subject' => $mybb->input['pm_subject'], 1979 'pm_message' => $mybb->input['pm_message'], 1980 'threadprefix' => $mybb->get_input('threadprefix', MyBB::INPUT_INT) 1981 ); 1982 1983 if(stripos($mybb->input['splitpostsnewsubject'], '{subject}') === false) 1984 { 1985 $mybb->input['splitpostsnewsubject'] = '{subject}'.$mybb->input['splitpostsnewsubject']; 1986 } 1987 1988 $post_options = array( 1989 'deleteposts' => $mybb->get_input('deleteposts', MyBB::INPUT_INT), 1990 'softdeleteposts' => $mybb->input['softdeleteposts'], 1991 'mergeposts' => $mybb->get_input('mergeposts', MyBB::INPUT_INT), 1992 'approveposts' => $mybb->input['approveposts'], 1993 'splitposts' => $mybb->get_input('splitposts', MyBB::INPUT_INT), 1994 'splitpostsclose' => $mybb->input['splitpostsclose'], 1995 'splitpostsstick' => $mybb->input['splitpostsstick'], 1996 'splitpostsunapprove' => $mybb->input['splitpostsunapprove'], 1997 'splitthreadprefix' => $mybb->get_input('splitthreadprefix', MyBB::INPUT_INT), 1998 'splitpostsnewsubject' => $mybb->input['splitpostsnewsubject'], 1999 'splitpostsaddreply' => $mybb->input['splitpostsaddreply'], 2000 'splitpostsreplysubject' => $mybb->input['splitpostsreplysubject'] 2001 ); 2002 2003 $args = array( 2004 'thread_options' => &$thread_options, 2005 'post_options' => &$post_options, 2006 ); 2007 2008 $plugins->run_hooks("admin_config_mod_tools_add_post_tool_options", $args); 2009 2010 $new_tool['type'] = 'p'; 2011 $new_tool['threadoptions'] = $db->escape_string(my_serialize($thread_options)); 2012 $new_tool['postoptions'] = $db->escape_string(my_serialize($post_options)); 2013 $new_tool['name'] = $db->escape_string($mybb->input['title']); 2014 $new_tool['description'] = $db->escape_string($mybb->input['description']); 2015 $new_tool['forums'] = ''; 2016 $new_tool['groups'] = ''; 2017 2018 if($mybb->input['forum_type'] == 2) 2019 { 2020 if(is_array($mybb->input['forum_1_forums'])) 2021 { 2022 $checked = array(); 2023 2024 foreach($mybb->input['forum_1_forums'] as $fid) 2025 { 2026 $checked[] = (int)$fid; 2027 } 2028 2029 $new_tool['forums'] = implode(',', $checked); 2030 } 2031 } 2032 else 2033 { 2034 $new_tool['forums'] = "-1"; 2035 } 2036 2037 if($mybb->input['group_type'] == 2) 2038 { 2039 if(is_array($mybb->input['group_1_groups'])) 2040 { 2041 $checked = array(); 2042 2043 foreach($mybb->input['group_1_groups'] as $gid) 2044 { 2045 $checked[] = (int)$gid; 2046 } 2047 2048 $new_tool['groups'] = implode(',', $checked); 2049 } 2050 } 2051 else 2052 { 2053 $new_tool['groups'] = "-1"; 2054 } 2055 2056 $tid = $db->insert_query("modtools", $new_tool); 2057 2058 $plugins->run_hooks("admin_config_mod_tools_add_post_tool_commit"); 2059 2060 // Log admin action 2061 log_admin_action($tid, $mybb->input['title']); 2062 $cache->update_forumsdisplay(); 2063 2064 flash_message($lang->success_mod_tool_created, 'success'); 2065 admin_redirect("index.php?module=config-mod_tools&action=post_tools"); 2066 } 2067 } 2068 2069 $page->add_breadcrumb_item($lang->add_new_post_tool); 2070 $page->output_header($lang->mod_tools." - ".$lang->add_new_post_tool); 2071 2072 $sub_tabs['thread_tools'] = array( 2073 'title' => $lang->thread_tools, 2074 'link' => "index.php?module=config-mod_tools" 2075 ); 2076 $sub_tabs['add_thread_tool'] = array( 2077 'title'=> $lang->add_new_thread_tool, 2078 'link' => "index.php?module=config-mod_tools&action=add_thread_tool" 2079 ); 2080 $sub_tabs['post_tools'] = array( 2081 'title' => $lang->post_tools, 2082 'link' => "index.php?module=config-mod_tools&action=post_tools", 2083 ); 2084 $sub_tabs['add_post_tool'] = array( 2085 'title'=> $lang->add_new_post_tool, 2086 'link' => "index.php?module=config-mod_tools&action=add_post_tool", 2087 'description' => $lang->add_post_tool_desc 2088 ); 2089 2090 $page->output_nav_tabs($sub_tabs, 'add_post_tool'); 2091 2092 $form = new Form("index.php?module=config-mod_tools&action=add_post_tool", 'post'); 2093 2094 if($errors) 2095 { 2096 $page->output_inline_error($errors); 2097 } 2098 else 2099 { 2100 $mybb->input['title'] = ''; 2101 $mybb->input['description'] = ''; 2102 $mybb->input['forum_1_forums'] = ''; 2103 $forum_checked[1] = "checked=\"checked\""; 2104 $forum_checked[2] = ''; 2105 $mybb->input['group_1_groups'] = ''; 2106 $group_checked[1] = "checked=\"checked\""; 2107 $group_checked[2] = ''; 2108 $mybb->input['confirmation'] = '0'; 2109 $mybb->input['approvethread'] = ''; 2110 $mybb->input['softdeletethread'] = ''; 2111 $mybb->input['openthread'] = ''; 2112 $mybb->input['stickthread'] = ''; 2113 $mybb->input['move_1_forum'] = ''; 2114 $mybb->input['move_2_redirect'] = '0'; 2115 $mybb->input['move_3_redirecttime'] = ''; 2116 $move_checked[1] = "checked=\"checked\""; 2117 $move_checked[2] = ''; 2118 $copy_checked[1] = "checked=\"checked\""; 2119 $copy_checked[2] = ''; 2120 $mybb->input['copy_1_forum'] = ''; 2121 $mybb->input['deletethread'] = '0'; 2122 $mybb->input['threadprefix'] = '-1'; 2123 $mybb->input['newsubject'] = '{subject}'; 2124 $mybb->input['newreply'] = ''; 2125 $mybb->input['newreplysubject'] = '{subject}'; 2126 $do_not_split_checked = ' selected="selected"'; 2127 $mybb->input['deleteposts'] = '0'; 2128 $mybb->input['mergeposts'] = '0'; 2129 $mybb->input['approveposts'] = ''; 2130 $mybb->input['softdeleteposts'] = ''; 2131 $mybb->input['splitposts'] = '-1'; 2132 $mybb->input['splitpostsclose'] = '0'; 2133 $mybb->input['splitpostsstick'] = '0'; 2134 $mybb->input['splitpostsunapprove'] = '0'; 2135 $mybb->input['splitthreadprefix'] = '0'; 2136 $mybb->input['splitpostsnewsubject'] = '{subject}'; 2137 $mybb->input['splitpostsaddreply'] = ''; 2138 $mybb->input['splitpostsreplysubject'] = '{subject}'; 2139 } 2140 2141 $form_container = new FormContainer($lang->general_options); 2142 $form_container->output_row($lang->name." <em>*</em>", '', $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title'); 2143 $form_container->output_row($lang->short_description." <em>*</em>", '', $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description'); 2144 2145 $actions = "<script type=\"text/javascript\"> 2146 function checkAction(id) 2147 { 2148 var checked = ''; 2149 2150 $('.'+id+'s_check').each(function(e, val) 2151 { 2152 if($(this).prop('checked') == true) 2153 { 2154 checked = $(this).val(); 2155 } 2156 }); 2157 $('.'+id+'s').each(function(e) 2158 { 2159 $(this).hide(); 2160 }); 2161 if($('#'+id+'_'+checked)) 2162 { 2163 $('#'+id+'_'+checked).show(); 2164 } 2165 } 2166 </script> 2167 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 2168 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"1\" {$forum_checked[1]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_forums}</strong></label></dt> 2169 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"forum_type\" value=\"2\" {$forum_checked[2]} class=\"forums_check\" onclick=\"checkAction('forum');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_forums}</strong></label></dt> 2170 <dd style=\"margin-top: 4px;\" id=\"forum_2\" class=\"forums\"> 2171 <table cellpadding=\"4\"> 2172 <tr> 2173 <td valign=\"top\"><small>{$lang->forums_colon}</small></td> 2174 <td>".$form->generate_forum_select('forum_1_forums[]', $mybb->input['forum_1_forums'], array('multiple' => true, 'size' => 5))."</td> 2175 </tr> 2176 </table> 2177 </dd> 2178 </dl> 2179 <script type=\"text/javascript\"> 2180 checkAction('forum'); 2181 </script>"; 2182 $form_container->output_row($lang->available_in_forums." <em>*</em>", '', $actions); 2183 2184 $actions = "<dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 2185 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"1\" {$group_checked[1]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->all_groups}</strong></label></dt> 2186 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"group_type\" value=\"2\" {$group_checked[2]} class=\"groups_check\" onclick=\"checkAction('group');\" style=\"vertical-align: middle;\" /> <strong>{$lang->select_groups}</strong></label></dt> 2187 <dd style=\"margin-top: 4px;\" id=\"group_2\" class=\"groups\"> 2188 <table cellpadding=\"4\"> 2189 <tr> 2190 <td valign=\"top\"><small>{$lang->groups_colon}</small></td> 2191 <td>".$form->generate_group_select('group_1_groups[]', $mybb->input['group_1_groups'], array('multiple' => true, 'size' => 5))."</td> 2192 </tr> 2193 </table> 2194 </dd> 2195 </dl> 2196 <script type=\"text/javascript\"> 2197 checkAction('group'); 2198 </script>"; 2199 $form_container->output_row($lang->available_to_groups." <em>*</em>", '', $actions); 2200 $form_container->output_row($lang->show_confirmation." <em>*</em>", '', $form->generate_yes_no_radio('confirmation', $mybb->input['confirmation'], array('style' => 'width: 2em;'))); 2201 $form_container->end(); 2202 2203 $approve_unapprove = array( 2204 '' => $lang->no_change, 2205 'approve' => $lang->approve, 2206 'unapprove' => $lang->unapprove, 2207 'toggle' => $lang->toggle 2208 ); 2209 2210 $form_container = new FormContainer($lang->inline_post_moderation); 2211 2212 $softdelete_restore = array( 2213 '' => $lang->no_change, 2214 'restore' => $lang->restore, 2215 'softdelete' => $lang->softdelete, 2216 'toggle' => $lang->toggle 2217 ); 2218 2219 $form_container->output_row($lang->softdelete_restore_posts." <em>*</em>", '', $form->generate_select_box('softdeleteposts', $softdelete_restore, $mybb->input['softdeleteposts'], array('id' => 'softdeleteposts')), 'softdeleteposts'); 2220 $form_container->output_row($lang->delete_posts." <em>*</em>", '', $form->generate_yes_no_radio('deleteposts', $mybb->input['deleteposts'])); 2221 $form_container->output_row($lang->merge_posts." <em>*</em>", $lang->merge_posts_desc, $form->generate_yes_no_radio('mergeposts', $mybb->input['mergeposts'])); 2222 $form_container->output_row($lang->approve_unapprove_posts." <em>*</em>", '', $form->generate_select_box('approveposts', $approve_unapprove, $mybb->input['approveposts'], array('id' => 'approveposts')), 'approveposts'); 2223 $form_container->end(); 2224 2225 $selectoptions = "<option value=\"-1\"{$do_not_split_checked}>{$lang->do_not_split}</option>\n"; 2226 $selectoptions .= "<option value=\"-2\"{$split_same_checked} style=\"border-bottom: 1px solid #000;\">{$lang->split_to_same_forum}</option>\n"; 2227 2228 $form_container = new FormContainer($lang->split_posts); 2229 $form_container->output_row($lang->split_posts2." <em>*</em>", '', $form->generate_forum_select('splitposts', $mybb->input['splitposts'])); 2230 $form_container->output_row($lang->close_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsclose', $mybb->input['splitpostsclose'])); 2231 $form_container->output_row($lang->stick_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsstick', $mybb->input['splitpostsstick'])); 2232 $form_container->output_row($lang->unapprove_split_thread." <em>*</em>", '', $form->generate_yes_no_radio('splitpostsunapprove', $mybb->input['splitpostsunapprove'])); 2233 2234 $splitthreadprefix = build_prefixes(); 2235 if(!empty($splitthreadprefix)) 2236 { 2237 $split_thread_prefixes = array( 2238 '0' => $lang->no_prefix 2239 ); 2240 2241 foreach($splitthreadprefix as $prefix) 2242 { 2243 $split_thread_prefixes[$prefix['pid']] = $prefix['prefix']; 2244 } 2245 2246 $form_container->output_row($lang->split_thread_prefix." <em>*</em>", '', $form->generate_select_box('splitthreadprefix', $split_thread_prefixes, array($mybb->get_input('splitthreadprefix', MyBB::INPUT_INT)), array('id' => 'splitthreadprefix')), 'splitthreadprefix'); 2247 } 2248 2249 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 2250 $form_container->output_row($lang->split_thread_subject, $lang->split_thread_subject_desc, $form->generate_text_box('splitpostsnewsubject', $mybb->input['splitpostsnewsubject'], array('id' => 'splitpostsnewsubject ')), 'newreplysubject'); 2251 $form_container->output_row($lang->add_new_split_reply, $lang->add_new_split_reply_desc, $form->generate_text_area('splitpostsaddreply', $mybb->input['splitpostsaddreply'], array('id' => 'splitpostsaddreply')), 'splitpostsaddreply'); 2252 $form_container->output_row($lang->split_reply_subject, $lang->split_reply_subject_desc, $form->generate_text_box('splitpostsreplysubject', $mybb->input['splitpostsreplysubject'], array('id' => 'splitpostsreplysubject')), 'splitpostsreplysubject'); 2253 $form_container->end(); 2254 2255 $open_close = array( 2256 '' => $lang->no_change, 2257 'open' => $lang->open, 2258 'close' => $lang->close, 2259 'toggle' => $lang->toggle 2260 ); 2261 2262 $stick_unstick = array( 2263 '' => $lang->no_change, 2264 'stick' => $lang->stick, 2265 'unstick' => $lang->unstick, 2266 'toggle' => $lang->toggle 2267 ); 2268 2269 2270 $form_container = new FormContainer($lang->thread_moderation); 2271 $form_container->output_row($lang->approve_unapprove." <em>*</em>", '', $form->generate_select_box('approvethread', $approve_unapprove, $mybb->input['approvethread'], array('id' => 'approvethread')), 'approvethread'); 2272 $form_container->output_row($lang->open_close_thread." <em>*</em>", '', $form->generate_select_box('openthread', $open_close, $mybb->input['openthread'], array('id' => 'openthread')), 'openthread'); 2273 $form_container->output_row($lang->stick_unstick_thread." <em>*</em>", '', $form->generate_select_box('stickthread', $stick_unstick, $mybb->input['stickthread'], array('id' => 'stickthread')), 'stickthread'); 2274 2275 2276 $actions = " 2277 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 2278 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"1\" {$move_checked[1]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_move_thread}</strong></label></dt> 2279 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"move_type\" value=\"2\" {$move_checked[2]} class=\"moves_check\" onclick=\"checkAction('move');\" style=\"vertical-align: middle;\" /> <strong>{$lang->move_thread}</strong></label></dt> 2280 <dd style=\"margin-top: 4px;\" id=\"move_2\" class=\"moves\"> 2281 <table cellpadding=\"4\"> 2282 <tr> 2283 <td><small>{$lang->forum_to_move_to}</small></td> 2284 <td>".$form->generate_forum_select('move_1_forum', $mybb->input['move_1_forum'])."</td> 2285 </tr> 2286 <tr> 2287 <td><small>{$lang->leave_redirect}</small></td> 2288 <td>".$form->generate_yes_no_radio('move_2_redirect', $mybb->input['move_2_redirect'])."</td> 2289 </tr> 2290 <tr> 2291 <td><small>{$lang->delete_redirect_after}</small></td> 2292 <td>".$form->generate_numeric_field('move_3_redirecttime', $mybb->input['move_3_redirecttime'], array('style' => 'width: 3em;', 'min' => 0))." {$lang->days}</td> 2293 </tr> 2294 </table> 2295 </dd> 2296 </dl> 2297 <script type=\"text/javascript\"> 2298 checkAction('move'); 2299 </script>"; 2300 $form_container->output_row($lang->move_thread." <em>*</em>", $lang->move_thread_desc, $actions); 2301 2302 $actions = " 2303 <dl style=\"margin-top: 0; margin-bottom: 0; width: 100%;\"> 2304 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"1\" {$copy_checked[1]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->do_not_copy_thread}</strong></label></dt> 2305 <dt><label style=\"display: block;\"><input type=\"radio\" name=\"copy_type\" value=\"2\" {$copy_checked[2]} class=\"copys_check\" onclick=\"checkAction('copy');\" style=\"vertical-align: middle;\" /> <strong>{$lang->copy_thread}</strong></label></dt> 2306 <dd style=\"margin-top: 4px;\" id=\"copy_2\" class=\"copys\"> 2307 <table cellpadding=\"4\"> 2308 <tr> 2309 <td><small>{$lang->forum_to_copy_to}</small></td> 2310 <td>".$form->generate_forum_select('copy_1_forum', $mybb->input['copy_1_forum'])."</td> 2311 </tr> 2312 </table> 2313 </dd> 2314 </dl> 2315 <script type=\"text/javascript\"> 2316 checkAction('copy'); 2317 </script>"; 2318 $form_container->output_row($lang->copy_thread." <em>*</em>", '', $actions); 2319 $form_container->output_row($lang->softdelete_restore_thread." <em>*</em>", '', $form->generate_select_box('softdeletethread', $softdelete_restore, $mybb->input['softdeletethread'], array('id' => 'softdeletethread')), 'softdeletethread'); 2320 $form_container->output_row($lang->delete_thread." <em>*</em>", '', $form->generate_yes_no_radio('deletethread', $mybb->input['deletethread'])); 2321 2322 $threadprefixes = build_prefixes(); 2323 if(!empty($threadprefixes)) 2324 { 2325 $thread_prefixes = array( 2326 '-1' => $lang->no_change, 2327 '0' => $lang->no_prefix 2328 ); 2329 2330 foreach($threadprefixes as $prefix) 2331 { 2332 $thread_prefixes[$prefix['pid']] = $prefix['prefix']; 2333 } 2334 2335 $form_container->output_row($lang->apply_thread_prefix." <em>*</em>", '', $form->generate_select_box('threadprefix', $thread_prefixes, $mybb->input['threadprefix'], array('id' => 'threadprefix')), 'threadprefix'); 2336 } 2337 2338 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 2339 $form_container->output_row($lang->new_subject." <em>*</em>", $lang->new_subject_desc, $form->generate_text_box('newsubject', $mybb->input['newsubject'])); 2340 $form_container->end(); 2341 2342 $form_container = new FormContainer($lang->add_new_reply); 2343 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 2344 $form_container->output_row($lang->add_new_reply, $lang->add_new_reply_desc, $form->generate_text_area('newreply', $mybb->input['newreply'], array('id' => 'newreply')), 'newreply'); 2345 $form_container->output_row($lang->reply_subject, $lang->reply_subject_desc, $form->generate_text_box('newreplysubject', $mybb->input['newreplysubject'], array('id' => 'newreplysubject')), 'newreplysubject'); 2346 $form_container->end(); 2347 2348 $form_container = new FormContainer($lang->send_private_message); 2349 $form_container->output_row($lang->subject_message_replacements, $lang->subject_message_replacements_desc); 2350 $form_container->output_row($lang->private_message_message, $lang->private_message_message_desc, $form->generate_text_area('pm_message', $mybb->get_input('pm_message'), array('id' => 'pm_message')), 'pm_message'); 2351 $form_container->output_row($lang->private_message_subject, $lang->private_message_subject_desc, $form->generate_text_box('pm_subject', $mybb->get_input('pm_subject'), array('id' => 'pm_subject')), 'pm_subject'); 2352 $form_container->end(); 2353 2354 $plugins->run_hooks("admin_config_mod_tools_add_post_tool_end"); 2355 2356 $buttons[] = $form->generate_submit_button($lang->save_post_tool); 2357 2358 $form->output_submit_wrapper($buttons); 2359 $form->end(); 2360 2361 $page->output_footer(); 2362 } 2363 2364 if(!$mybb->input['action']) 2365 { 2366 $plugins->run_hooks("admin_config_mod_tools_start"); 2367 2368 $page->output_header($lang->mod_tools." - ".$lang->thread_tools); 2369 2370 $sub_tabs['thread_tools'] = array( 2371 'title' => $lang->thread_tools, 2372 'link' => "index.php?module=config-mod_tools", 2373 'description' => $lang->thread_tools_desc 2374 ); 2375 $sub_tabs['add_thread_tool'] = array( 2376 'title'=> $lang->add_new_thread_tool, 2377 'link' => "index.php?module=config-mod_tools&action=add_thread_tool" 2378 ); 2379 $sub_tabs['post_tools'] = array( 2380 'title' => $lang->post_tools, 2381 'link' => "index.php?module=config-mod_tools&action=post_tools", 2382 ); 2383 $sub_tabs['add_post_tool'] = array( 2384 'title'=> $lang->add_new_post_tool, 2385 'link' => "index.php?module=config-mod_tools&action=add_post_tool" 2386 ); 2387 2388 $page->output_nav_tabs($sub_tabs, 'thread_tools'); 2389 2390 $table = new Table; 2391 $table->construct_header($lang->title); 2392 $table->construct_header($lang->controls, array('class' => "align_center", 'colspan' => 2)); 2393 2394 $query = $db->simple_select('modtools', 'tid, name, description, type', "type='t'", array('order_by' => 'name')); 2395 while($tool = $db->fetch_array($query)) 2396 { 2397 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=edit_thread_tool&tid={$tool['tid']}\"><strong>".htmlspecialchars_uni($tool['name'])."</strong></a><br /><small>".htmlspecialchars_uni($tool['description'])."</small>"); 2398 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=edit_thread_tool&tid={$tool['tid']}\">{$lang->edit}</a>", array('width' => 100, 'class' => "align_center")); 2399 $table->construct_cell("<a href=\"index.php?module=config-mod_tools&action=delete_thread_tool&tid={$tool['tid']}&my_post_key={$mybb->post_code}\" onclick=\"return AdminCP.deleteConfirmation(this, '{$lang->confirm_thread_tool_deletion}')\">{$lang->delete}</a>", array('width' => 100, 'class' => "align_center")); 2400 $table->construct_row(); 2401 } 2402 2403 if($table->num_rows() == 0) 2404 { 2405 $table->construct_cell($lang->no_thread_tools, array('colspan' => 3)); 2406 $table->construct_row(); 2407 } 2408 2409 $table->output($lang->thread_tools); 2410 2411 $page->output_footer(); 2412 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
2005 - 2021 © MyBB.de | Alle Rechte vorbehalten! | Sponsor: netcup | Cross-referenced by PHPXref |