Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/applications/members/modules_admin/members/ranks.php
Строк: 191
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Member management
* Last Updated: $Date: 2012-08-28 17:56:22 -0400 (Tue, 28 Aug 2012) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 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: 11296 $
*
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
class admin_members_members_ranks extends ipsCommand
{
/**
* Skin object
*
* @var object Skin templates
*/
protected $html;
/**
* Shortcut for url
*
* @var string URL shortcut
*/
protected $form_code;
/**
* Shortcut for url (javascript)
*
* @var string JS URL shortcut
*/
protected $form_code_js;
/**
* Main class entry point
*
* @param object ipsRegistry reference
* @return @e void [Outputs to screen]
*/
public function doExecute( ipsRegistry $registry )
{
//-----------------------------------------
// Load skin
//-----------------------------------------
$this->html = $this->registry->output->loadTemplate('cp_skin_ranks');
//-----------------------------------------
// Set up stuff
//-----------------------------------------
$this->form_code = $this->html->form_code = 'module=members&section=ranks';
$this->form_code_js = $this->html->form_code_js = 'module=members§ion=ranks';
//-----------------------------------------
// Load lang
//-----------------------------------------
ipsRegistry::getClass('class_localization')->loadLanguageFile( array( 'admin_member' ) );
///-----------------------------------------
// What to do...
//-----------------------------------------
switch( $this->request['do'] )
{
default:
case 'title':
$this->_titlesStart();
break;
case 'rank_edit':
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'ranks_edit' );
$this->_titlesForm( 'edit' );
break;
case 'rank_add':
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'ranks_add' );
$this->_titlesForm( 'add' );
break;
case 'do_add_rank':
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'ranks_add' );
$this->_titlesSave( 'add' );
break;
case 'do_rank_edit':
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'ranks_edit' );
$this->_titlesSave( 'edit' );
break;
case 'rank_delete':
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'ranks_delete' );
$this->_titlesDelete();
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();
}
/**
* Recache ranks
*
* @return @e void
*/
public function titlesRecache()
{
$ranks = array();
$this->DB->build( array( 'select' => 'id, title, pips, posts',
'from' => 'titles',
'order' => 'posts DESC',
) );
$this->DB->execute();
while ( $i = $this->DB->fetch() )
{
$ranks[ $i['id'] ] = array(
'TITLE' => $i['title'],
'PIPS' => $i['pips'],
'POSTS' => $i['posts'],
);
}
$this->cache->setCache( 'ranks', $ranks, array( 'array' => 1 ) );
}
/**
* Overview page
*
* @return @e void [Outputs to screen]
*/
protected function _titlesStart()
{
$this->registry->output->extra_nav[] = array( '', $this->lang->words['member_rank_nav'] );
$titles = array();
//-----------------------------------------
// Parse macro
//-----------------------------------------
$row = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'skin_replacements', 'where' => "replacement_set_id=0 AND replacement_key='pip_pip'" ) );
$row['A_STAR'] = str_replace( "{style_image_url}", $this->settings['img_url'], $row['replacement_content'] );
//-----------------------------------------
// Lets get on with it...
//-----------------------------------------
$this->DB->build( array( 'select' => '*', 'from' => 'titles', 'order' => "posts" ) );
$this->DB->execute();
while ( $r = $this->DB->fetch() )
{
$r['A_STAR'] = $row['A_STAR'];
$titles[] = $r;
}
$this->registry->output->html .= $this->html->titlesOverview( $titles );
}
/**
* Save rank [add/edit]
*
* @param string 'add' or 'edit'
* @return @e void [Outputs to screen]
*/
protected function _titlesSave( $type = 'add' )
{
//-----------------------------------------
// check for input
//-----------------------------------------
foreach( array( 'title', 'pips' ) as $field )
{
if ( ! isset( $this->request[ $field ] ) )
{
$this->registry->output->showError( $this->lang->words['rnk_completeform'], 11239 );
}
}
if ( is_numeric( $this->request['pips'] ) && $this->request['pips'] > 100 )
{
$this->registry->output->showError( $this->lang->words['rnk_mx100'], 11240 );
}
if( $type == 'add' )
{
$this->DB->insert( 'titles', array(
'posts' => intval( trim( $this->request['posts'] ) ),
'title' => trim($this->request['title']),
'pips' => trim($this->request['pips']),
) );
ipsRegistry::getClass('adminFunctions')->saveAdminLog( $this->lang->words['rnk_added'] );
}
else
{
if ( !$this->request['id'] )
{
$this->registry->output->showError( $this->lang->words['rnk_notfound'], 11241 );
}
$this->DB->update( 'titles', array ( 'posts' => trim($this->request['posts']),
'title' => trim($this->request['title']),
'pips' => trim($this->request['pips']),
) , "id=" . intval( $this->request['id'] ) );
ipsRegistry::getClass('adminFunctions')->saveAdminLog( $this->lang->words['rnk_edit'] );
}
$this->titlesRecache();
if( $type == 'add' )
{
$this->registry->output->global_message = $this->lang->words['rnk_added2'];
$this->registry->output->silentRedirectWithMessage( $this->settings['base_url'] . $this->form_code . '&do=title' );
}
else
{
$this->registry->output->global_message = $this->lang->words['rnk_edited'];
$this->registry->output->silentRedirectWithMessage( $this->settings['base_url'] . $this->form_code . '&do=title' );
}
}
/**
* Delete a rank
*
* @return @e void [Outputs to screen]
*/
protected function _titlesDelete()
{
//-----------------------------------------
// check for input
//-----------------------------------------
if ( !$this->request['id'] )
{
$this->registry->output->showError( $this->lang->words['rnk_notfounddel'], 11242 );
}
$this->DB->delete( 'titles', "id=" . intval($this->request['id']) );
$this->titlesRecache();
ipsRegistry::getClass('adminFunctions')->saveAdminLog( $this->lang->words['rnk_removed'] );
$this->registry->output->global_message = $this->lang->words['rnk_removed2'];
$this->registry->output->silentRedirectWithMessage( $this->settings['base_url'] . $this->form_code . '&do=title' );
}
/**
* Show the form to add/edit a rank
*
* @param string Type of form (add|edit)
* @return @e void [Outputs to screen]
*/
protected function _titlesForm( $mode='edit' )
{
$this->registry->output->extra_nav[] = array( '', $this->lang->words['rnk_setup'] );
if ( $mode == 'edit' )
{
$form_code = 'do_rank_edit';
if ( !$this->request['id'] )
{
$this->registry->output->showError( $this->lang->words['rnk_notfound'], 11243 );
}
$rank = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'titles', 'where' => "id=" . intval($this->request['id']) ) );
$button = $this->lang->words['rnk_editrank'];
}
else
{
$form_code = 'do_add_rank';
$rank = array( 'posts' => '', 'title' => "", 'pips' => "");
$button = $this->lang->words['rnk_addrank'];
}
//-----------------------------------------
$this->registry->output->html .= $this->html->titlesForm( $rank, $form_code, $button );
}
}