Вход Регистрация
Файл: upload/module/blog/include/component/controller/add.class.php
Строк: 102
<?php
/**
 * [PHPFOX_HEADER]
 */

defined('PHPFOX') or exit('NO DICE!');

/**
 * 
 * 
 * @copyright        [PHPFOX_COPYRIGHT]
 * @author          Raymond Benc
 * @package          Module_Blog
 * @version         $Id: add.class.php 3667 2011-12-06 07:08:52Z Raymond_Benc $
 */
class Blog_Component_Controller_Add extends Phpfox_Component
{
    
/**
     * Class process method wnich is used to execute this component.
     */
    
public function process()
    {        
        
Phpfox::isUser(true);
        
$bIsEdit false;
        
$bCanEditPersonalData true;
        
        if ((
$iEditId $this->request()->getInt('id')))
        {    
            
$oBlog Phpfox::getService('blog');
            
            
$aRow $oBlog->getBlogForEdit($iEditId);
            
            if (
$aRow['is_approved'] != '1' && !Phpfox::getUserParam('blog.edit_user_blog'))
            {
                return 
Phpfox_Error::display(Phpfox::getPhrase('blog.unable_to_edit_this_blog'));
            }
            
            if (
Phpfox::isModule('tag'))
            {
                
$aTags Phpfox::getService('tag')->getTagsById('blog'$aRow['blog_id']);
                if (isset(
$aTags[$aRow['blog_id']]))
                {
                    
$aRow['tag_list'] = '';                    
                    foreach (
$aTags[$aRow['blog_id']] as $aTag)
                    {
                        
$aRow['tag_list'] .= ' ' $aTag['tag_text'] . ',';    
                    }
                    
$aRow['tag_list'] = trim(trim($aRow['tag_list'], ','));
                }
            }

            (
Phpfox::getUserId() == $aRow['user_id'] ? Phpfox::getUserParam('blog.edit_own_blog'true) : Phpfox::getUserParam('blog.edit_user_blog'true));
            if (
Phpfox::getUserParam('blog.edit_user_blog') && Phpfox::getUserId() != $aRow['user_id'])
            {
                
$bCanEditPersonalData false;
            }
            
            
$aCategories Phpfox::getService('blog.category')->getCategoriesById($aRow['blog_id']);
            
$sCategories '';
            if (isset(
$aCategories[$aRow['blog_id']]))
            {
                foreach (
$aCategories[$aRow['blog_id']] as $aCategory)
                {
                    
$sCategories .= $aCategory['category_id'] . ',';    
                }
            }            
            
$aRow['selected_categories'] = $sCategories;                            
                    
            
$bIsEdit true;            
            
$this->template()->assign(array(
                    
'aForms' => $aRow                    
                
)
            );
            
            ((
$sPlugin Phpfox_Plugin::get('blog.component_controller_add_process_edit')) ? eval($sPlugin) : false);
        }
        else 
        {
            
Phpfox::getUserParam('blog.add_new_blog'true);
        }
        
        
$aValidation = array(
            
'title' => array(
                
'def' => 'required',
                
'title' => Phpfox::getPhrase('blog.fill_title_for_blog')
            ),
            
'text' => array(
                
'def' => 'required',
                
'title' => Phpfox::getPhrase('blog.add_content_to_blog')
            )        
        );
        
        if (
Phpfox::isModule('captcha') && Phpfox::getUserParam('captcha.captcha_on_blog_add'))
        {
            
$aValidation['image_verification'] = Phpfox::getPhrase('captcha.complete_captcha_challenge');
        }        
        
        ((
$sPlugin Phpfox_Plugin::get('blog.component_controller_add_process_validation')) ? eval($sPlugin) : false);

        
$oValid Phpfox::getLib('validator')->set(array(
                
'sFormName' => 'core_js_blog_form'
                
'aParams' => $aValidation
            
)
        );                

        if (
$aVals $this->request()->getArray('val'))
        {                            
            if (
$oValid->isValid($aVals))
            {                    
                
// Add the new blog
                
if (isset($aVals['publish']) || isset($aVals['draft']))
                {
                    if (isset(
$aVals['draft']))
                    {
                        
$aVals['post_status'] = 2;
                        
$sMessage Phpfox::getPhrase('blog.blog_successfully_saved');
                    }
                    else 
                    {
                        
$sMessage Phpfox::getPhrase('blog.your_blog_has_been_added');
                    }
                    
                    if ((
$iFlood Phpfox::getUserParam('blog.flood_control_blog')) !== 0)
                    {
                        
$aFlood = array(
                            
'action' => 'last_post'// The SPAM action
                            
'params' => array(
                                
'field' => 'time_stamp'// The time stamp field
                                
'table' => Phpfox::getT('blog'), // Database table we plan to check
                                
'condition' => 'user_id = ' Phpfox::getUserId(), // Database WHERE query
                                
'time_stamp' => $iFlood 60 // Seconds);    
                            
)
                        );
                                         
                        
// actually check if flooding
                        
if (Phpfox::getLib('spam')->check($aFlood))
                        {
                            
Phpfox_Error::set(Phpfox::getPhrase('blog.your_are_posting_a_little_too_soon') . ' ' Phpfox::getLib('spam')->getWaitTime());    
                        }
                    }                    
                    
                    if (
Phpfox_Error::isPassed())
                    {
                        
$iId Phpfox::getService('blog.process')->add($aVals);                                        
                    }
                }
                
                
// Update a blog
                
if ((isset($aVals['update']) || isset($aVals['draft_update']) || isset($aVals['draft_publish'])) && isset($aRow['blog_id']) && $bIsEdit)
                {
                    if (isset(
$aVals['draft_publish']))
                    {
                        
$aVals['post_status'] = 1;    
                    }
                    
                    
// Update the blog
                    
$iId Phpfox::getService('blog.process')->update($aRow['blog_id'], $aRow['user_id'], $aVals$aRow);                                        
                    
$sMessage Phpfox::getPhrase('blog.blog_updated');                                                    
                }                
                
                if (isset(
$iId) && $iId)
                {                
                    
Phpfox::permalink('blog'$iId$aVals['title'], true$sMessage);
                }
            }
        }        
        
        
$this->template()->setTitle((!empty($iEditId) ? Phpfox::getPhrase('blog.editing_blog') . ': ' $aRow['title'] : Phpfox::getPhrase('blog.adding_a_new_blog')))
            ->
setBreadcrumb(Phpfox::getPhrase('blog.blogs'), $this->url()->makeUrl('blog'))
            ->
setBreadcrumb((!empty($iEditId) ? Phpfox::getPhrase('blog.editing_blog') . ': ' Phpfox::getLib('parse.output')->shorten($aRow['title'], Phpfox::getService('core')->getEditTitleSize(), '...') : Phpfox::getPhrase('blog.adding_a_new_blog')), ($iEditId $this->url()->makeUrl('blog', array('add''id' => $iEditId)) : $this->url()->makeUrl('blog', array('add'))), true)
            ->
setFullSite()    
            ->
assign(array(
                    
'sCreateJs' => $oValid->createJS(),
                    
'sGetJsForm' => $oValid->getJsForm(),
                    
'bIsEdit' => $bIsEdit,
                    
'bCanEditPersonalData' => $bCanEditPersonalData
                
)
            )
            ->
setEditor(array('wysiwyg' => Phpfox::getUserParam('blog.can_use_editor_on_blog')))
            ->
setHeader('cache', array(
                
'jquery/plugin/jquery.highlightFade.js' => 'static_script',
                
'switch_legend.js' => 'static_script',
                
'switch_menu.js' => 'static_script',
                
'quick_edit.js' => 'static_script',
                
'pager.css' => 'style_css'
            
)
        );    
        
        if (
Phpfox::isModule('attachment') && Phpfox::getUserParam('attachment.can_attach_on_blog'))
        {
            
$this->setParam('attachment_share', array(
                    
'type' => 'blog',
                    
'id' => 'core_js_blog_form',
                    
'edit_id' => ($bIsEdit $iEditId 0)
                )
            );
        }
            
        ((
$sPlugin Phpfox_Plugin::get('blog.component_controller_add_process')) ? eval($sPlugin) : false);
    }
    
    
/**
     * Garbage collector. Is executed after this class has completed
     * its job and the template has also been displayed.
     */
    
public function clean()
    {
        ((
$sPlugin Phpfox_Plugin::get('blog.component_controller_add_clean')) ? eval($sPlugin) : false);
    }
}

?>
Онлайн: 2
Реклама