Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/applications/members/modules_admin/members/reputation.php
Строк: 157
<?php

/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Reputation System
 * Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 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        $Rev: 10721 $
 *
 */

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_reputation 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 doExecuteipsRegistry $registry 
    {
        
/* Load Skin & Lang */
        
$this->html $this->registry->output->loadTemplate'cp_skin_reputation' );
        
$this->registry->class_localization->loadLanguageFile( array( 'admin_member' ) );
        
        
/* URL Bits */
        
$this->form_code    $this->html->form_code    'module=members&amp;section=reputation';
        
$this->form_code_js    $this->html->form_code_js    'module=members&section=reputation';

        
/* What to do */
        
switch( $this->request['do'] )
        {
            case 
'add_level_form':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_manage' );
                
$this->levelForm'add' );
            break;
            
            case 
'do_add_level':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_manage' );
                
$this->doLevelForm'add' );
            break;
            
            case 
'edit_level_form':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_manage' );
                
$this->levelForm'edit' );
            break;
            
            case 
'do_edit_level':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_manage' );
                
$this->doLevelForm'edit' );
            break;
            
            case 
'delete_level':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_delete' );
                
$this->deleteLevel();
            break;
            
            default:
            case 
'overview':
                
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg'reps_manage' );
                
$this->reputationOverview();
            break;
        }
        
        
/* Output */
        
$this->registry->output->html_main .= $this->registry->output->global_template->global_frame_wrapper();
        
$this->registry->output->sendOutput();        
    }
    
    
/**
     * Rebuilds the reputation level cache
     *
     * @return    @e void
     */
    
public function rebuildReputationLevelCache()
    {
        
/* Cache */
        
$cache = array();
        
        
/* Query the levels */
        
$this->DB->build( array( 'select' => '*''from' => 'reputation_levels''order' => 'level_points DESC' ) );
        
$this->DB->execute();
        
        while( 
$r $this->DB->fetch() )
        {
            
$cache[] = $r;
        }
        
        
/* Update the cache */
        
$this->cache->setCache'reputation_levels'$cache, array( 'array' => ) );
    }
    
    
/**
     * Removes the selected reputation level
     *
     * @return    @e void
     */
    
public function deleteLevel()
    {
        
/* ID */
        
$id intval$this->request['id'] );
        
        if( ! 
$id )
        {
            
$this->registry->output->showError$this->lang->words['invalid_id'], 11244 );
        }
        
        
/* Delete */
        
$this->DB->delete'reputation_levels'"level_id={$id});
        
$this->rebuildReputationLevelCache();
        
        
/* Redirect */
        
$this->registry->output->global_message    $this->lang->words['rep_level_removed'];
        
$this->registry->output->silentRedirectWithMessage$this->settings['base_url'] . $this->form_code );
    }
    
    
/**
     * Handles the add/edit reputation level form
     *
     * @param    string    $mode    Either add or edit
     * @return    @e void
     */    
    
public function doLevelForm$mode='add' )
    {
        
/* Error Checking */
        
$errors = array();
        
        if( ! 
$this->request['level_title'] && ! $this->request['level_image'] )
        {
            
$errors[] = $this->lang->words['rep_no_title_img'];
        }
        
        if( 
count$errors ) )
        {
            
$this->levelForm$mode$errors );
            return;
        }
        
        
/* Build the data array */
        
$data = array(
                        
'level_title'  => $this->request['level_title'],
                        
'level_image'  => $this->request['level_image'],
                        
'level_points' => intval$this->request['level_points'] )
                    );
                    
        
/* Add the level */
        
if( $mode == 'add' )
        {
            
/* Insert */
            
$this->DB->insert'reputation_levels'$data );
            
$this->rebuildReputationLevelCache();
            
            
/* Redirect */
            
$this->registry->output->global_message    $this->lang->words['rep_level_added'];
            
$this->registry->output->silentRedirectWithMessage$this->settings['base_url'] . $this->form_code );
        }
        else
        {
            
/* ID Check */
            
$id intval$this->request['id'] );
            
            if( ! 
$id )
            {
                
$this->registry->output->showError$this->lang->words['invalid_id'], 11245 );
            }
            
            
/* Update */
            
$this->DB->update'reputation_levels'$data"level_id={$id});
            
$this->rebuildReputationLevelCache();
            
            
/* Redirect */
            
$this->registry->output->global_message    $this->lang->words['rep_level_edited'];
            
$this->registry->output->silentRedirectWithMessage$this->settings['base_url'] . $this->form_code );
        }        
    }
    
    
/**
     * Form for adding/exiting reputation levels
     *
     * @param    string    $mode    Either add or edit
     * @param    array    $errors    Array of error messages to display
     * @return    @e void
     */
    
public function levelForm$mode='add'$errors=array() )
    {
        
/* Add Level Form */
        
if( $mode == 'add' )
        {
            
/* ID */
            
$id 0;
            
            
/* Data */
            
$data = array();
                        
            
/* Text Bits */
            
$title $this->lang->words['rep_form_add_title'];
            
$do    'do_add_level';
        }
        
/* Edit Level Form */
        
else
        {
            
/* ID */
            
$id intval$this->request['id'] );
            
            if( ! 
$id )
            {
                
$this->registry->output->showError$this->lang->words['invalid_id'], 11246 );
            }
            
            
/* Data */
            
$data $this->DB->buildAndFetch( array( 'select' => '*''from' => 'reputation_levels''where' => 'level_id=' $id ) );
            
            
/* Text Bits */
            
$title $this->lang->words['rep_form_edit_title'];
            
$do    'do_edit_level';
        }

        
/* Default Values */
         
$data['level_title']  = isset( $this->request['level_title'] )  ? $this->request['level_title']  : $data['level_title'];
         
$data['level_image']  = isset( $this->request['level_image'] )  ? $this->request['level_image']  : $data['level_image'];
         
$data['level_points'] = isset( $this->request['level_points'] ) ? $this->request['level_points'] : $data['level_points'];

        
/* Form Elements */
        
$form = array();
        
        
$form['level_title']  = $this->registry->output->formInput'level_title' $data['level_title'] );
        
$form['level_image']  = $this->registry->output->formInput'level_image' $data['level_image'] );
        
$form['level_points'] = $this->registry->output->formInput'level_points'$data['level_points'] );
        
        
/* Output */
        
$this->registry->output->html .= $this->html->reputationForm$id$do$title$form$errors );
    }
    
    
/**
     * Reputation overview
     *
     * @return    @e void
     */
    
public function reputationOverview()
    {
        
/* INIT */
        
$levels = array();
        
        
/* Query Levels */
        
$this->DB->build( array( 'select' => '*''from' => 'reputation_levels''order' => 'level_points ASC' ) );
        
$this->DB->execute();

        while( 
$r $this->DB->fetch() )
        {
            
$r['level_image'] = $r['level_image'] ? "<img src='{$this->settings['public_dir']}style_extra/reputation_icons/{$r['level_image']}'>" '';
            
            
$levels[] = $r;
        }
        
        
/* Output */
        
$this->registry->output->html .= $this->html->reputationOverview$levels );
    }
}
Онлайн: 2
Реклама