Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/applications/members/modules_admin/warnings/reasons.php
Строк: 236
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Warning Reasons
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
*
* @author $Author: bfarber $ (original: Mark)
* @copyright © 2011 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Members
* @link http://www.invisionpower.com
* @version $Revision: 10721 $
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly.";
exit();
}
class admin_members_warnings_reasons extends ipsCommand
{
/**
* Skin object shortcut
*
* @var $html
*/
public $html;
/**
* String for the screen url bit
*
* @var $form_code
*/
public $form_code = '';
/**
* String for the JS url bit
*
* @var $form_code_js
*/
public $form_code_js = '';
/**
* Main function executed automatically by the controller
*
* @param object $registry Registry object
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
//-----------------------------------------
// Init
//-----------------------------------------
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_view' );
ipsRegistry::getClass('class_localization')->loadLanguageFile( array( 'admin_member' ), 'members' );
$this->html = $this->registry->output->loadTemplate( 'cp_skin_warnings_reasons' );
$this->form_code = $this->html->form_code = 'module=warnings&section=reasons&';
$this->form_code_js = $this->html->form_code_js = 'module=warnings§ion=reasons&';
//-----------------------------------------
// What are we doing
//-----------------------------------------
switch ( $this->request['do'] )
{
case 'add':
$this->form( 'add' );
break;
case 'edit':
$this->form( 'edit' );
break;
case 'save':
$this->save();
break;
case 'delete':
$this->delete();
break;
case 'do_delete':
$this->do_delete();
break;
case 'reorder':
$this->reorder();
break;
default:
$this->manage();
break;
}
//-----------------------------------------
// Pass to CP output hander
//-----------------------------------------
$this->registry->getClass('output')->html_main .= $this->registry->getClass('output')->global_template->global_frame_wrapper();
$this->registry->getClass('output')->sendOutput();
}
/**
* Action: Manage
*/
private function manage()
{
$reasons = array();
$this->DB->build( array( 'select' => '*', 'from' => 'members_warn_reasons', 'order' => 'wr_order' ) );
$this->DB->execute();
while( $row = $this->DB->fetch() )
{
$reasons[ $row['wr_id'] ] = $row;
}
$this->registry->output->html .= $this->html->manage( $reasons );
}
/**
* Action: Show form
*/
private function form( $type )
{
$current = array();
if ( $type == 'edit' )
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_edit' );
$id = intval( $this->request['id'] );
$current = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'members_warn_reasons', 'where' => "wr_id={$id}" ) );
if ( !$current['wr_id'] )
{
ipsRegistry::getClass('output')->showError( 'err_no_warn_reason', '112150', FALSE, '', 404 );
}
}
else
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_add' );
}
$this->registry->output->html .= $this->html->form( $current );
}
/**
* Action: Save
*/
private function save()
{
//-----------------------------------------
// Validate Data
//-----------------------------------------
if ( !$this->request['name'] )
{
ipsRegistry::getClass('output')->showError( 'err_warning_reason_name', '112151', FALSE, '', 500 );
}
//-----------------------------------------
// Save
//-----------------------------------------
$save = array(
'wr_name' => $this->request['name'],
'wr_points' => floatval( $this->request['points'] ),
'wr_points_override' => intval( $this->request['points_override'] ),
'wr_remove' => intval( $this->request['remove'] ),
'wr_remove_unit' => ( $this->request['remove_unit'] == 'd' ) ? 'd' : 'h',
'wr_remove_override' => intval( $this->request['remove_override'] )
);
if ( $this->request['id'] )
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_edit' );
$id = intval( $this->request['id'] );
$current = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'members_warn_reasons', 'where' => "wr_id={$id}" ) );
if ( !$current['wr_id'] )
{
ipsRegistry::getClass('output')->showError( 'err_no_warn_reason', '112152', FALSE, '', 500 );
}
$this->DB->update( 'members_warn_reasons', $save, "wr_id={$id}" );
$this->registry->adminFunctions->saveAdminLog( sprintf( $this->lang->words['warn_reasons_edited'], $save['wr_name'] ) );
}
else
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_add' );
$top = $this->DB->buildAndFetch( array( 'select' => 'MAX(wr_id) as _top', 'from' => 'members_warn_reasons' ) );
$save['wr_order'] = ++$top['_top'];
$this->DB->insert( 'members_warn_reasons', $save );
$this->registry->adminFunctions->saveAdminLog( sprintf( $this->lang->words['warn_reasons_created'], $save['wr_name'] ) );
}
//-----------------------------------------
// Display
//-----------------------------------------
$this->registry->output->redirect( "{$this->settings['base_url']}app=members&module=warnings&section=reasons", $this->lang->words['warn_reasons_saved'] );
}
/**
* Action: Delete
*/
private function delete()
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'reasons_delete' );
$id = intval( $this->request['id'] );
$current = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'members_warn_reasons', 'where' => "wr_id={$id}" ) );
if ( !$current['wr_id'] )
{
ipsRegistry::getClass('output')->showError( 'err_no_warn_reason', '112153', FALSE, '', 404 );
}
$new = intval( $this->request['new'] );
$new = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'members_warn_reasons', 'where' => "wr_id={$new}" ) );
if ( !$current['wr_id'] )
{
ipsRegistry::getClass('output')->showError( 'err_no_warn_reason', '112154', FALSE, '', 500 );
}
$this->DB->delete( 'members_warn_reasons', "wr_id={$id}" );
$this->registry->adminFunctions->saveAdminLog( sprintf( $this->lang->words['warn_reasons_deleted'], $current['wl_name'] ) );
$this->registry->output->redirect( "{$this->settings['base_url']}app=members&module=warnings&section=reasons", $this->lang->words['warn_reasons_del_saved'] );
}
/**
* AJAX Action: Reorder
*/
private function reorder()
{
/* Get ajax class */
$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classAjax.php', 'classAjax' );
$ajax = new $classToLoad();
//-----------------------------------------
// Checks...
//-----------------------------------------
if( $this->registry->adminFunctions->checkSecurityKey( $this->request['md5check'], true ) === false )
{
$ajax->returnString( $this->lang->words['postform_badmd5'] );
exit();
}
//-----------------------------------------
// Save new position
//-----------------------------------------
$position = 1;
if( is_array($this->request['reasons']) AND count($this->request['reasons']) )
{
foreach( $this->request['reasons'] as $this_id )
{
$this->DB->update( 'members_warn_reasons', array( 'wr_order' => $position ), 'wr_id=' . $this_id );
$position++;
}
}
$ajax->returnString( 'OK' );
}
}