Вход Регистрация
Файл: admin/applications/core/modules_public/ajax/comments.php
Строк: 189
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.3.3
 * Image Ajax
 * Last Updated: $LastChangedDate: 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.Gallery
 * @link        http://www.invisionpower.com
 * @version        $Rev: 10721 $
 */

if ( ! defined'IN_IPB' ) )
{
    print 
"<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
    exit();
}

class 
public_core_ajax_comments extends ipsAjaxCommand
{
    
/**
     * Main class entry point
     *
     * @param    object        ipsRegistry reference
     * @return    @e void        [Outputs to screen]
     */    
    
public function doExecuteipsRegistry $registry )
    {
        
/* From App */
        
$fromApp trim$this->request['fromApp'] );
        
        
/* Init some data */
        
require_once( IPS_ROOT_PATH 'sources/classes/comments/bootstrap.php' );/*noLibHook*/
        
$this->_comments classes_comments_bootstrap::controller$fromApp );

        
/* What to do? */
        
switch( $this->request['do'] )
        {
            case 
'add':
                
$this->_add();
            break;
            case 
'delete':
                
$this->_delete();
            break;
            case 
'showEdit':
                
$this->_showEdit();
            break;
            case 
'saveEdit':
                
$this->_saveEdit();
            break;
            case 
'fetchReply':
                
$this->_fetchReply();
            break;
            case 
'moderate':
                
$this->_moderate();
            break;
        }
    }
    
    
/**
     * Moderate
     *
     * @return    @e void
     */
    
protected function _moderate()
    {
        
$parentId   intval$this->request['parentId'] );
         
$commentIds = ( is_array$_POST['commentIds'] ) ) ? IPSLib::cleanIntArray$_POST['commentIds'] ) : array();
         
$modact         trim$this->request['modact'] );
                  
         if ( 
count$commentIds ) )
         {
             try
            {                
                 
$this->_comments->moderate$modact$parentId$commentIds$this->memberData );    
             
                 
$this->returnJsonArray( array( 'msg' => 'ok' ) );
            }
            catch( 
Exception $error )
            {
                
$this->returnJsonError'Error ' $error->getMessage() . ' line: ' $error->getFile() . '.' $error->getLine() );
            }
         }
    }
    
    
/**
     * Reply
     *
     * @return    @e void
     */
    
protected function _fetchReply()
    {
        
/* INIT */
        
$commentId intval$this->request['comment_id'] );
        
$parentId  intval$this->request['parentId'] );
        
        
/* Quick error checko */
        
if ( ! $commentId OR ! $parentId )
        {
            
$this->returnString'error' );
        }
        
        
/* Load editor stuff */
        
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/editor/composite.php''classes_editor_composite' );
        
$this->editor = new $classToLoad();
        
        
# Get Edit form
        
try
        {
            
$html $this->_comments->fetchReply$parentId$commentId$this->memberData );
    
            
$this->editor->setContent$html'topics' );
        
            
$this->returnHtml$this->editor->getContent() );
        }
        catch ( 
Exception $error )
        {
            
$this->returnString'Error ' $error->getMessage() );
        }
    }

    
    
/**
     * Deletes a comment
     *
     * @return    @e void
     */
    
protected function _delete()
    {
        
/* INIT */
        
$commentId intval$this->request['comment_id'] );
        
$parentId  intval$this->request['parentId'] );
        
        
/* Quick error checko */
        
if ( ! $commentId OR ! $parentId )
        {
            
$this->returnJsonError'error' );
        }
        
        try
        {
            
$this->_comments->delete$parentId$commentId$this->memberData );
            
            
$this->returnJsonArray( array( 'msg' => 'ok' ) );
        }
        catch ( 
Exception $error )
        {
            
$this->returnJsonError'Error ' $error->getMessage() );
        }
    }
    
    
/**
     * Shows the edit box
     *
     * @return    @e void
     */
    
protected function _showEdit()
    {
        
/* INIT */
        
$commentId intval$this->request['comment_id'] );
        
$parentId  intval$this->request['parentId'] );
        
        
/* Quick error checko */
        
if ( ! $commentId OR ! $parentId )
        {
            
$this->returnString'error' );
        }
        
        
# Get Edit form
        
try
        {
            
$html $this->_comments->displayAjaxEditForm$parentId$commentId$this->memberData );
            
            
$html $this->registry->output->replaceMacros$html );

            
$this->returnHtml$html );
        }
        catch ( 
Exception $error )
        {
            
$this->returnString'Error ' $error->getMessage() );
        }
    }
    
        
/**
     * Saves the post
     *
     * @return    @e void
     */
    
protected function _saveEdit()
    {
        
/* INIT */
        
$commentId intval$this->request['comment_id'] );
        
$parentId  intval$this->request['parentId'] );
        
        
/* Quick error checko */
        
if ( ! $parentId OR ! $commentId )
        {
            
$this->returnString'error' );
        }

        
/* Edit */
        
try
        {
            
$output $this->_comments->edit$parentId$commentId$_POST['Post'], $this->memberData );
            
            
$this->returnJsonArray( array( 'successString' => $this->registry->output->replaceMacros$output ) ) );
        }
        catch ( 
Exception $error )
        {
            
$this->returnJsonError$error->getMessage() );
        }
    }
    
    
/**
     * Add a comment via the magic and mystery of ajax
     *
     * @return    @e void
     */
    
protected function _add()
    {
        
/* init */
        
$parentId intval$this->request['parentId'] );
        
        if ( 
$_POST['Post'] AND $parentId )
        {
            try
            {
                
$newComment $this->_comments->add$parentId$_POST['Post'] );
                
                if( 
$newComment['comment_approved'] )
                {
                    return 
$this->returnHtml$this->_comments->fetchFormattedSingle$parentId$newComment['comment_id'] ) );
                }
                else
                {
                    
$this->returnJsonError'comment_requires_approval' );
                }    
            }
            catch( 
Exception $e )
            {
                
$this->returnJsonError$e->getMessage() );
            }
        }
        else
        {
            
$this->returnJsonError'no_permission' );
        }
    }
}
Онлайн: 3
Реклама