[ Index ]

PHP Cross Reference of MyBB 1.6.5

title

Body

[close]

/admin/modules/user/ -> group_promotions.php (source)

   1  <?php
   2  /**
   3   * MyBB 1.6
   4   * Copyright � 2010 MyBB Group, All Rights Reserved
   5   *
   6   * Website: http://mybb.com
   7   * License: http://mybb.com/about/license
   8   *
   9   * $Id: group_promotions.php 5297 2010-12-28 22:01:14Z Tomm $
  10   */
  11  
  12  // Disallow direct access to this file for security reasons
  13  if(!defined("IN_MYBB"))
  14  {
  15      die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
  16  }
  17  
  18  $page->add_breadcrumb_item($lang->user_group_promotions, "index.php?module=user-group_promotions");
  19  
  20  $sub_tabs['usergroup_promotions'] = array(
  21      'title' => $lang->user_group_promotions,
  22      'link' => "index.php?module=user-group_promotions",
  23      'description' => $lang->user_group_promotions_desc
  24  );
  25  
  26  $sub_tabs['add_promotion'] = array(
  27      'title' => $lang->add_new_promotion,
  28      'link' => "index.php?module=user-group_promotions&amp;action=add",
  29      'description' => $lang->add_new_promotion_desc
  30  );
  31  
  32  $sub_tabs['promotion_logs'] = array(
  33      'title' => $lang->view_promotion_logs,
  34      'link' => "index.php?module=user-group_promotions&amp;action=logs",
  35      'description' => $lang->view_promotion_logs_desc
  36  );
  37  
  38  $plugins->run_hooks("admin_user_group_promotions_begin");
  39  
  40  if($mybb->input['action'] == "disable")
  41  {
  42      $plugins->run_hooks("admin_user_group_promotions_disable");
  43      
  44      if(!trim($mybb->input['pid']))
  45      {
  46          flash_message($lang->error_no_promo_id, 'error');
  47          admin_redirect("index.php?module=user-group_promotions");
  48      }
  49      
  50      $query = $db->simple_select("promotions", "*", "pid='".intval($mybb->input['pid'])."'");
  51      $promotion = $db->fetch_array($query);
  52  
  53      if(!$promotion['pid'])
  54      {
  55          flash_message($lang->error_invalid_promo_id, 'error');
  56          admin_redirect("index.php?module=user-group_promotions");
  57      }
  58  
  59      $promotion = array(
  60          "enabled" => 0
  61      );
  62      $db->update_query("promotions", $promotion, "pid = '{$mybb->input['pid']}'");
  63      
  64      $plugins->run_hooks("admin_user_group_promotions_disable_commit");
  65  
  66      // Log admin action
  67      log_admin_action($promotion['pid'], $promotion['title']);
  68  
  69      flash_message($lang->success_promo_disabled, 'success');
  70      admin_redirect("index.php?module=user-group_promotions");
  71  }
  72  
  73  if($mybb->input['action'] == "delete")
  74  {
  75      $plugins->run_hooks("admin_user_group_promotions_delete");
  76      
  77      if($mybb->input['no']) 
  78      { 
  79          admin_redirect("index.php?module=user-group_promotions"); 
  80      } 
  81      
  82      if(!trim($mybb->input['pid']))
  83      {
  84          flash_message($lang->error_no_promo_id, 'error');
  85          admin_redirect("index.php?module=user-group_promotions");
  86      }
  87      
  88      $query = $db->simple_select("promotions", "*", "pid='".intval($mybb->input['pid'])."'");
  89      $promotion = $db->fetch_array($query);
  90  
  91      if(!$promotion['pid'])
  92      {
  93          flash_message($lang->error_invalid_promo_id, 'error');
  94          admin_redirect("index.php?module=user-group_promotions");
  95      }
  96      
  97      if($mybb->request_method == "post")
  98      {
  99          $db->delete_query("promotions", "pid = '{$mybb->input['pid']}'");
 100          
 101          $plugins->run_hooks("admin_user_group_promotions_delete_commit");
 102  
 103          // Log admin action
 104          log_admin_action($promotion['pid'], $promotion['title']);
 105  
 106          flash_message($lang->success_promo_deleted, 'success');
 107          admin_redirect("index.php?module=user-group_promotions");
 108      }
 109      else
 110      {
 111          $page->output_confirm_action("index.php?module=user-group_promotions&amp;action=delete&amp;pid={$mybb->input['pid']}", $lang->confirm_promo_deletion); 
 112      }
 113  }
 114  
 115  if($mybb->input['action'] == "enable")
 116  {
 117      $plugins->run_hooks("admin_user_group_promotions_enable");
 118      
 119      if(!trim($mybb->input['pid']))
 120      {
 121          flash_message($lang->error_no_promo_id, 'error');
 122          admin_redirect("index.php?module=user-group_promotions");
 123      }
 124      
 125      $query = $db->simple_select("promotions", "*", "pid='".intval($mybb->input['pid'])."'");
 126      $promotion = $db->fetch_array($query);
 127  
 128      if(!$promotion['pid'])
 129      {
 130          flash_message($lang->error_invalid_promo_id, 'error');
 131          admin_redirect("index.php?module=user-group_promotions");
 132      }
 133  
 134      $promotion = array(
 135          "enabled" => 1
 136      );
 137      
 138      $db->update_query("promotions", $promotion, "pid = '{$mybb->input['pid']}'");
 139      
 140      $plugins->run_hooks("admin_user_group_promotions_enable_commit");
 141  
 142      // Log admin action
 143      log_admin_action($promotion['pid'], $promotion['title']);
 144  
 145      flash_message($lang->success_promo_enabled, 'success');
 146      admin_redirect("index.php?module=user-group_promotions");
 147  }
 148  
 149  if($mybb->input['action'] == "edit")
 150  {
 151      $plugins->run_hooks("admin_user_group_promotions_edit");
 152      
 153      if(!trim($mybb->input['pid']))
 154      {
 155          flash_message($lang->error_no_promo_id, 'error');
 156          admin_redirect("index.php?module=user-group_promotions");
 157      }
 158      
 159      $query = $db->simple_select("promotions", "*", "pid = '{$mybb->input['pid']}'");
 160      $promotion = $db->fetch_array($query);
 161      
 162      if(!$promotion)
 163      {
 164          flash_message($lang->error_invalid_promo_id, 'error');
 165          admin_redirect("index.php?module=user-group_promotions");
 166      }
 167      
 168      if($mybb->request_method == "post")
 169      {
 170          if(!trim($mybb->input['title']))
 171          {
 172              $errors[] = $lang->error_no_title;
 173          }
 174  
 175          if(!trim($mybb->input['description']))
 176          {
 177              $errors[] = $lang->error_no_desc;
 178          }
 179          
 180          if(empty($mybb->input['requirements']))
 181          {
 182              $errors[] = $lang->error_no_requirements;
 183          }
 184  
 185          if(empty($mybb->input['originalusergroup']))
 186          {
 187              $errors[] = $lang->error_no_orig_usergroup;
 188          }
 189          
 190          if(!trim($mybb->input['newusergroup']))
 191          {
 192              $errors[] = $lang->error_no_new_usergroup;
 193          }
 194  
 195          if(!trim($mybb->input['usergroupchangetype']))
 196          {
 197              $errors[] = $lang->error_no_usergroup_change_type;
 198          }
 199  
 200          if(!$errors)
 201          {
 202              if(in_array('*', $mybb->input['originalusergroup']))
 203              {
 204                  $mybb->input['originalusergroup'] = '*';
 205              }
 206              else
 207              {
 208                  $mybb->input['originalusergroup'] = implode(',', array_map('intval', $mybb->input['originalusergroup']));
 209              }
 210              
 211              $update_promotion = array(
 212                  "title" => $db->escape_string($mybb->input['title']),
 213                  "description" => $db->escape_string($mybb->input['description']),
 214                  "posts" => intval($mybb->input['postcount']),
 215                  "posttype" => $db->escape_string($mybb->input['posttype']),
 216                  "registered" => intval($mybb->input['timeregistered']),
 217                  "registeredtype" => $db->escape_string($mybb->input['timeregisteredtype']),
 218                  "reputations" => intval($mybb->input['reputationcount']),
 219                  "reputationtype" => $db->escape_string($mybb->input['reputationtype']),
 220                  "referrals" => intval($mybb->input['referrals']),
 221                  "referralstype" => $db->escape_string($mybb->input['referralstype']),
 222                  "requirements" => $db->escape_string(implode(",", $mybb->input['requirements'])),
 223                  "originalusergroup" => $db->escape_string($mybb->input['originalusergroup']),
 224                  "newusergroup" => intval($mybb->input['newusergroup']),
 225                  "usergrouptype" => $db->escape_string($mybb->input['usergroupchangetype']),
 226                  "enabled" => intval($mybb->input['enabled']),
 227                  "logging" => intval($mybb->input['logging'])
 228              );
 229              
 230              $db->update_query("promotions", $update_promotion, "pid = '".intval($mybb->input['pid'])."'");
 231              
 232              $plugins->run_hooks("admin_user_group_promotions_edit_commit");
 233  
 234              // Log admin action
 235              log_admin_action($promotion['pid'], $mybb->input['title']);
 236  
 237              flash_message($lang->success_promo_updated, 'success');
 238              admin_redirect("index.php?module=user-group_promotions");
 239          }
 240      }
 241      
 242      $page->add_breadcrumb_item($lang->edit_promotion);
 243      $page->output_header($lang->user_group_promotions." - ".$lang->edit_promotion);
 244  
 245      $sub_tabs = array();
 246      $sub_tabs['edit_promotion'] = array(
 247          'title' => $lang->edit_promotion,
 248          'link' => "index.php?module=user-group_promotions&amp;action=edit",
 249          'description' => $lang->edit_promotion_desc
 250      );
 251  
 252      $page->output_nav_tabs($sub_tabs, 'edit_promotion');
 253      $form = new Form("index.php?module=user-group_promotions&amp;action=edit", "post", "edit");
 254      echo $form->generate_hidden_field("pid", $mybb->input['pid']);
 255      if($errors)
 256      {
 257          $page->output_inline_error($errors);
 258      }
 259      else
 260      {
 261          $mybb->input['title'] = $promotion['title'];
 262          $mybb->input['description'] = $promotion['description'];
 263          $mybb->input['requirements'] = explode(',', $promotion['requirements']);
 264          $mybb->input['reputationcount'] = $promotion['reputations'];
 265          $mybb->input['reputationtype'] = $promotion['reputationtype'];
 266          $mybb->input['postcount'] = $promotion['posts'];
 267          $mybb->input['posttype'] = $promotion['posttype'];
 268          $mybb->input['referrals'] = $promotion['referrals'];
 269          $mybb->input['referralstype'] = $promotion['referralstype'];
 270          $mybb->input['timeregistered'] = $promotion['registered'];
 271          $mybb->input['timeregisteredtype'] = $promotion['registeredtype'];
 272          $mybb->input['originalusergroup'] = explode(',', $promotion['originalusergroup']);
 273          $mybb->input['usergroupchangetype'] = $promotion['usergrouptype'];
 274          $mybb->input['newusergroup'] = $promotion['newusergroup'];
 275          $mybb->input['enabled'] = $promotion['enabled'];
 276          $mybb->input['logging'] = $promotion['logging'];
 277      }
 278      
 279      $form_container = new FormContainer($lang->edit_promotion);
 280      $form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title');
 281      $form_container->output_row($lang->short_desc." <em>*</em>", "", $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description');
 282  
 283      $options = array(
 284          "postcount" => $lang->post_count,
 285          "reputation" => $lang->reputation,
 286          "referrals" => $lang->referrals,
 287          "timeregistered" => $lang->time_registered
 288      );
 289      
 290      $form_container->output_row($lang->promo_requirements." <em>*</em>", $lang->promo_requirements_desc, $form->generate_select_box('requirements[]', $options, $mybb->input['requirements'], array('id' => 'requirements', 'multiple' => true, 'size' => 3)), 'requirements');
 291      
 292      $options_type = array(
 293          ">" => $lang->greater_than,
 294          ">=" => $lang->greater_than_or_equal_to,
 295          "=" => $lang->equal_to,
 296          "<=" => $lang->less_than_or_equal_to,
 297          "<" => $lang->less_than
 298      );
 299      
 300      $form_container->output_row($lang->post_count, $lang->post_count_desc, $form->generate_text_box('postcount', $mybb->input['postcount'], array('id' => 'postcount'))." ".$form->generate_select_box("posttype", $options_type, $mybb->input['posttype'], array('id' => 'posttype')), 'postcount');
 301      
 302      $form_container->output_row($lang->reputation_count, $lang->reputation_count_desc, $form->generate_text_box('reputationcount', $mybb->input['reputationcount'], array('id' => 'reputationcount'))." ".$form->generate_select_box("reputationtype", $options_type, $mybb->input['reputationtype'], array('id' => 'reputationtype')), 'reputationcount');
 303      
 304      $options = array(
 305          "hours" => $lang->hours,
 306          "days" => $lang->days,
 307          "weeks" => $lang->weeks,
 308          "months" => $lang->months,
 309          "years" => $lang->years
 310      );
 311      
 312      $form_container->output_row($lang->referral_count, $lang->referral_count_desc, $form->generate_text_box('referrals', $mybb->input['referrals'], array('id' => 'referrals'))." ".$form->generate_select_box("referralstype", $options_type, $mybb->input['referralstype'], array('id' => 'referralstype')), 'referrals');
 313      
 314      $form_container->output_row($lang->time_registered, $lang->time_registered_desc, $form->generate_text_box('timeregistered', $mybb->input['timeregistered'], array('id' => 'timeregistered'))." ".$form->generate_select_box("timeregisteredtype", $options, $mybb->input['timeregisteredtype'], array('id' => 'timeregisteredtype')), 'timeregistered');
 315      
 316      $options = array();
 317      
 318      $query = $db->simple_select("usergroups", "gid, title", "gid != '1'", array('order_by' => 'title'));
 319      while($usergroup = $db->fetch_array($query))
 320      {
 321          $options[(int)$usergroup['gid']] = $usergroup['title'];
 322      }
 323  
 324      $form_container->output_row($lang->orig_user_group." <em>*</em>", $lang->orig_user_group_desc, $form->generate_select_box('originalusergroup[]', $options, $mybb->input['originalusergroup'], array('id' => 'originalusergroup', 'multiple' => true, 'size' => 5)), 'originalusergroup');
 325      
 326      unset($options['*']); // Remove the all usergroups option
 327      $form_container->output_row($lang->new_user_group." <em>*</em>", $lang->new_user_group_desc, $form->generate_select_box('newusergroup', $options, $mybb->input['newusergroup'], array('id' => 'newusergroup')), 'newusergroup');
 328  
 329      $options = array(
 330          'primary' => $lang->primary_user_group,
 331          'secondary' => $lang->secondary_user_group
 332      );
 333      
 334      $form_container->output_row($lang->user_group_change_type." <em>*</em>", $lang->user_group_change_type_desc, $form->generate_select_box('usergroupchangetype', $options, $mybb->input['usergroupchangetype'], array('id' => 'usergroupchangetype')), 'usergroupchangetype');
 335  
 336      $form_container->output_row($lang->enabled." <em>*</em>", "", $form->generate_yes_no_radio("enabled", $mybb->input['enabled'], true));
 337      
 338      $form_container->output_row($lang->enable_logging." <em>*</em>", "", $form->generate_yes_no_radio("logging", $mybb->input['logging'], true));
 339      $form_container->end();
 340  
 341      $buttons[] = $form->generate_submit_button($lang->update_promotion);
 342  
 343      $form->output_submit_wrapper($buttons);
 344      $form->end();
 345  
 346      $page->output_footer();
 347  }
 348  
 349  if($mybb->input['action'] == "add")
 350  {
 351      $plugins->run_hooks("admin_user_group_promotions_add");
 352      
 353      if($mybb->request_method == "post")
 354      {
 355          if(!trim($mybb->input['title']))
 356          {
 357              $errors[] = $lang->error_no_title;
 358          }
 359  
 360          if(!trim($mybb->input['description']))
 361          {
 362              $errors[] = $lang->error_no_desc;
 363          }
 364          
 365          if(empty($mybb->input['requirements']))
 366          {
 367              $errors[] = $lang->error_no_requirements;
 368          }
 369  
 370          if(empty($mybb->input['originalusergroup']))
 371          {
 372              $errors[] = $lang->error_no_orig_usergroup;
 373          }
 374          
 375          if(!trim($mybb->input['newusergroup']))
 376          {
 377              $errors[] = $lang->error_no_new_usergroup;
 378          }
 379          
 380          if(!trim($mybb->input['usergroupchangetype']))
 381          {
 382              $errors[] = $lang->error_no_usergroup_change_type;
 383          }
 384          
 385          if(!$errors)
 386          {
 387              if(in_array('*', $mybb->input['originalusergroup']))
 388              {
 389                  $mybb->input['originalusergroup'] = '*';
 390              }
 391              else
 392              {
 393                  $mybb->input['originalusergroup'] = implode(',', array_map('intval', $mybb->input['originalusergroup']));
 394              }
 395              
 396              $new_promotion = array(
 397                  "title" => $db->escape_string($mybb->input['title']),
 398                  "description" => $db->escape_string($mybb->input['description']),
 399                  "posts" => intval($mybb->input['postcount']),
 400                  "posttype" => $db->escape_string($mybb->input['posttype']),
 401                  "registered" => intval($mybb->input['timeregistered']),
 402                  "registeredtype" => $db->escape_string($mybb->input['timeregisteredtype']),
 403                  "reputations" => intval($mybb->input['reputationcount']),
 404                  "reputationtype" => $db->escape_string($mybb->input['reputationtype']),
 405                  "referrals" => intval($mybb->input['referrals']),
 406                  "referralstype" => $db->escape_string($mybb->input['referralstype']),
 407                  "requirements" => $db->escape_string(implode(",", $mybb->input['requirements'])),
 408                  "originalusergroup" => $db->escape_string($mybb->input['originalusergroup']),
 409                  "usergrouptype" => $db->escape_string($mybb->input['usergroupchangetype']),
 410                  "newusergroup" => intval($mybb->input['newusergroup']),
 411                  "enabled" => intval($mybb->input['enabled']),
 412                  "logging" => intval($mybb->input['logging'])
 413              );
 414              
 415              $pid = $db->insert_query("promotions", $new_promotion);
 416              
 417              $plugins->run_hooks("admin_user_group_promotions_add_commit");
 418  
 419              // Log admin action
 420              log_admin_action($pid, $mybb->input['title']);
 421              
 422              flash_message($lang->success_promo_added, 'success');
 423              admin_redirect("index.php?module=user-group_promotions");
 424          }
 425      }
 426      $page->add_breadcrumb_item($lang->add_new_promotion);
 427      $page->output_header($lang->user_group_promotions." - ".$lang->add_new_promotion);
 428      
 429      $sub_tabs['usergroup_promotions'] = array(
 430          'title' => $lang->user_group_promotions,
 431          'link' => "index.php?module=user-group_promotions"
 432      );
 433  
 434      $sub_tabs['add_promotion'] = array(
 435          'title' => $lang->add_new_promotion,
 436          'link' => "index.php?module=user-group_promotions&amp;action=add",
 437          'description' => $lang->add_new_promotion_desc
 438      );
 439  
 440      $sub_tabs['promotion_logs'] = array(
 441          'title' => $lang->view_promotion_logs,
 442          'link' => "index.php?module=user-group_promotions&amp;action=logs"
 443      );
 444  
 445      $page->output_nav_tabs($sub_tabs, 'add_promotion');
 446      $form = new Form("index.php?module=user-group_promotions&amp;action=add", "post", "add");
 447      if($errors)
 448      {
 449          $page->output_inline_error($errors);
 450      }
 451      else
 452      {
 453          $mybb->input['reputationcount'] = '0';
 454          $mybb->input['referrals'] = '0';
 455          $mybb->input['postcount'] = '0';
 456          $mybb->input['timeregistered'] = '0';
 457          $mybb->input['timeregisteredtype'] = 'days';
 458          $mybb->input['originalusergroup'] = '*';
 459          $mybb->input['newusergroup'] = '2';
 460          $mybb->input['enabled'] = '1';
 461          $mybb->input['logging'] = '1';
 462      }
 463      $form_container = new FormContainer($lang->add_new_promotion);
 464      $form_container->output_row($lang->title." <em>*</em>", "", $form->generate_text_box('title', $mybb->input['title'], array('id' => 'title')), 'title');
 465      $form_container->output_row($lang->short_desc." <em>*</em>", "", $form->generate_text_box('description', $mybb->input['description'], array('id' => 'description')), 'description');
 466  
 467      $options = array(
 468          "postcount" => $lang->post_count,
 469          "reputation" => $lang->reputation,
 470          "referrals" => $lang->referrals,
 471          "timeregistered" => $lang->time_registered
 472      );
 473      
 474      $form_container->output_row($lang->promo_requirements." <em>*</em>", $lang->promo_requirements_desc, $form->generate_select_box('requirements[]', $options, $mybb->input['requirements'], array('id' => 'requirements', 'multiple' => true, 'size' => 4)), 'requirements');
 475      
 476      $options_type = array(
 477          ">" => $lang->greater_than,
 478          ">=" => $lang->greater_than_or_equal_to,
 479          "=" => $lang->equal_to,
 480          "<=" => $lang->less_than_or_equal_to,
 481          "<" => $lang->less_than
 482      );
 483      
 484      $form_container->output_row($lang->post_count, $lang->post_count_desc, $form->generate_text_box('postcount', $mybb->input['postcount'], array('id' => 'postcount'))." ".$form->generate_select_box("posttype", $options_type, $mybb->input['posttype'], array('id' => 'posttype')), 'postcount');
 485      
 486      $form_container->output_row($lang->reputation_count, $lang->reputation_count_desc, $form->generate_text_box('reputationcount', $mybb->input['reputationcount'], array('id' => 'reputationcount'))." ".$form->generate_select_box("reputationtype", $options_type, $mybb->input['reputationtype'], array('id' => 'reputationtype')), 'reputationcount');
 487      
 488      $options = array(
 489          "hours" => $lang->hours,
 490          "days" => $lang->days,
 491          "weeks" => $lang->weeks,
 492          "months" => $lang->months,
 493          "years" => $lang->years
 494      );
 495      
 496      $form_container->output_row($lang->referral_count, $lang->referral_count_desc, $form->generate_text_box('referrals', $mybb->input['referrals'], array('id' => 'referrals'))." ".$form->generate_select_box("referralstype", $options_type, $mybb->input['referralstype'], array('id' => 'referralstype')), 'referrals');
 497      
 498      $form_container->output_row($lang->time_registered, $lang->time_registered_desc, $form->generate_text_box('timeregistered', $mybb->input['timeregistered'], array('id' => 'timeregistered'))." ".$form->generate_select_box("timeregisteredtype", $options, $mybb->input['timeregisteredtype'], array('id' => 'timeregisteredtype')), 'timeregistered');
 499      $options = array();
 500      
 501      $query = $db->simple_select("usergroups", "gid, title", "gid != '1'", array('order_by' => 'title'));
 502      while($usergroup = $db->fetch_array($query))
 503      {
 504          $options[(int)$usergroup['gid']] = $usergroup['title'];
 505      }
 506  
 507      $form_container->output_row($lang->orig_user_group." <em>*</em>", $lang->orig_user_group_desc, $form->generate_select_box('originalusergroup[]', $options, $mybb->input['originalusergroup'], array('id' => 'originalusergroup', 'multiple' => true, 'size' => 5)), 'originalusergroup');
 508  
 509      unset($options['*']);
 510      $form_container->output_row($lang->new_user_group." <em>*</em>", $lang->new_user_group_desc, $form->generate_select_box('newusergroup', $options, $mybb->input['newusergroup'], array('id' => 'newusergroup')), 'newusergroup');
 511      
 512      $options = array(
 513          'primary' => $lang->primary_user_group,
 514          'secondary' => $lang->secondary_user_group
 515      );
 516      
 517      $form_container->output_row($lang->user_group_change_type." <em>*</em>", $lang->user_group_change_type_desc, $form->generate_select_box('usergroupchangetype', $options, $mybb->input['usergroupchangetype'], array('id' => 'usergroupchangetype')), 'usergroupchangetype');
 518      
 519      $form_container->output_row($lang->enabled." <em>*</em>", "", $form->generate_yes_no_radio("enabled", $mybb->input['enabled'], true));
 520      
 521      $form_container->output_row($lang->enable_logging." <em>*</em>", "", $form->generate_yes_no_radio("logging", $mybb->input['logging'], true));
 522      $form_container->end();
 523  
 524      $buttons[] = $form->generate_submit_button($lang->update_promotion);
 525  
 526      $form->output_submit_wrapper($buttons);
 527      $form->end();
 528  
 529      $page->output_footer();
 530  }
 531  
 532  if($mybb->input['action'] == "logs")
 533  {
 534      $plugins->run_hooks("admin_user_group_promotions_logs");
 535      
 536      if($mybb->input['page'] && $mybb->input['page'] > 1)
 537      {
 538          $mybb->input['page'] = intval($mybb->input['page']);
 539          $start = ($mybb->input['page']*20)-20;
 540      }
 541      else
 542      {
 543          $mybb->input['page'] = 1;
 544          $start = 0;
 545      }
 546      
 547      $page->add_breadcrumb_item($lang->promotion_logs);
 548      $page->output_header($lang->user_group_promotions." - ".$lang->promotion_logs);
 549      
 550      $page->output_nav_tabs($sub_tabs, 'promotion_logs');
 551  
 552      $table = new Table;
 553      $table->construct_header($lang->promoted_user, array("class" => "align_center", "width" => '20%'));
 554      $table->construct_header($lang->user_group_change_type, array("class" => "align_center", "width" => '20%'));
 555      $table->construct_header($lang->orig_user_group, array("class" => "align_center", "width" => '20%'));
 556      $table->construct_header($lang->new_user_group, array("class" => "align_center", "width" => '20%'));
 557      $table->construct_header($lang->time_promoted, array("class" => "align_center", "width" => '20%'));
 558  
 559      $query = $db->query("
 560          SELECT pl.*,u.username
 561          FROM ".TABLE_PREFIX."promotionlogs pl
 562          LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=pl.uid)
 563          ORDER BY dateline DESC 
 564          LIMIT {$start}, 20
 565      ");
 566      while($log = $db->fetch_array($query))
 567      {
 568          $log['username'] = "<a href=\"index.php?module=user-view&amp;action=edit&amp;uid={$log['uid']}\">".htmlspecialchars_uni($log['username'])."</a>";
 569          
 570          if($log['type'] == "secondary" || (!empty($log['oldusergroup']) && strstr(",", $log['oldusergroup'])))
 571          {
 572              $log['oldusergroup'] = "<i>".$lang->multiple_usergroups."</i>";
 573              $log['newusergroup'] = htmlspecialchars_uni($groupscache[$log['newusergroup']]['title']);
 574          }
 575          else
 576          {
 577              $log['oldusergroup'] = htmlspecialchars_uni($groupscache[$log['oldusergroup']]['title']);
 578              $log['newusergroup'] = htmlspecialchars_uni($groupscache[$log['newusergroup']]['title']);
 579          }
 580          
 581          if($log['type'] == "secondary")
 582          {
 583              $log['type'] = $lang->secondary;
 584          }
 585          else
 586          {
 587              $log['type'] = $lang->primary;
 588          }
 589          
 590          $log['dateline'] = date($mybb->settings['dateformat'], $log['dateline']).", ".date($mybb->settings['timeformat'], $log['dateline']);
 591          $table->construct_cell($log['username']);
 592          $table->construct_cell($log['type'], array('style' => 'text-align: center;'));
 593          $table->construct_cell($log['oldusergroup'], array('style' => 'text-align: center;'));
 594          $table->construct_cell($log['newusergroup'], array('style' => 'text-align: center;'));
 595          $table->construct_cell($log['dateline'], array('style' => 'text-align: center;'));
 596          $table->construct_row();
 597      }
 598      
 599      if($table->num_rows() == 0)
 600      {
 601          $table->construct_cell($lang->no_promotion_logs, array("colspan" => "5"));
 602          $table->construct_row();
 603      }
 604      
 605      $table->output($lang->promotion_logs);
 606      
 607      $query = $db->simple_select("promotionlogs", "COUNT(plid) as promotionlogs");
 608      $total_rows = $db->fetch_field($query, "promotionlogs");
 609      
 610      echo "<br />".draw_admin_pagination($mybb->input['page'], "20", $total_rows, "index.php?module=user-group_promotions&amp;action=logs&amp;page={page}");
 611      
 612      $page->output_footer();
 613  }
 614  
 615  if(!$mybb->input['action'])
 616  {
 617      $plugins->run_hooks("admin_user_group_promotions_start");
 618      
 619      $page->output_header($lang->promotion_manager);
 620      
 621      $page->output_nav_tabs($sub_tabs, 'usergroup_promotions');
 622  
 623      $table = new Table;
 624      $table->construct_header($lang->promotion);
 625      $table->construct_header($lang->controls, array("class" => "align_center", "width" => 150));
 626  
 627      $query = $db->simple_select("promotions", "*", "", array("order_by" => "title", "order_dir" => "asc"));
 628      while($promotion = $db->fetch_array($query))
 629      {
 630          $promotion['title'] = htmlspecialchars_uni($promotion['title']);
 631          $promotion['description'] = htmlspecialchars_uni($promotion['description']);
 632          $table->construct_cell("<div><strong><a href=\"index.php?module=user-group_promotions&amp;action=edit&amp;pid={$promotion['pid']}\">{$promotion['title']}</a></strong><br /><small>{$promotion['description']}</small></div>");
 633  
 634          $popup = new PopupMenu("promotion_{$promotion['pid']}", $lang->options);
 635          $popup->add_item($lang->edit_promotion, "index.php?module=user-group_promotions&amp;action=edit&amp;pid={$promotion['pid']}");
 636          if($promotion['enabled'] == 1)
 637          {
 638              $popup->add_item($lang->disable_promotion, "index.php?module=user-group_promotions&amp;action=disable&amp;pid={$promotion['pid']}");
 639          }
 640          else
 641          {
 642              $popup->add_item($lang->enable_promotion, "index.php?module=user-group_promotions&amp;action=enable&amp;pid={$promotion['pid']}");
 643          }
 644          $popup->add_item($lang->delete_promotion, "index.php?module=user-group_promotions&amp;action=delete&amp;pid={$promotion['pid']}&amp;my_post_key={$mybb->post_code}", "return AdminCP.deleteConfirmation(this, '{$lang->confirm_promo_deletion}')");
 645          $table->construct_cell($popup->fetch(), array("class" => "align_center"));
 646          $table->construct_row();
 647      }
 648      
 649      if($table->num_rows() == 0)
 650      {
 651          $table->construct_cell($lang->no_promotions_set, array("colspan" => "2"));
 652          $table->construct_row();
 653      }
 654      
 655      $table->output($lang->user_group_promotions);
 656      
 657      $page->output_footer();
 658  }
 659  
 660  ?>


Generated: Sun Dec 11 14:16:27 2011 Cross-referenced by PHPXref 0.7.1