Вход Регистрация
Файл: concrete5.7.5.6/concrete/blocks/core_conversation_message/controller.php
Строк: 155
<?php
namespace ConcreteBlockCoreConversationMessage;
use 
Loader;
use 
ConcreteCoreBlockBlockController;
/**
 * The controller for the conversation message block. This block is used to display conversation messages in a page.
 *
 * @package Blocks
 * @subpackage Conversation
 * @author Andrew Embler <andrew@concrete5.org>
 * @copyright  Copyright (c) 2003-2013 Concrete5. (http://www.concrete5.org)
 * @license    http://www.concrete5.org/license/     MIT License
 *
 */
    
class Controller extends BlockController {

        protected 
$btCacheBlockRecord true;
        protected 
$btTable 'btCoreConversationMessage';

        public function 
getBlockTypeDescription() {
            return 
t("Places a conversation message into a page.");
        }

        public function 
getBlockTypeName() {
            return 
t("Conversation Message");
        }

        public function 
composer() {
            
$r ResponseAssetGroup::get();
            
$r->requireAsset('core/conversation');
            
$this->view();
        }

        public function 
validate_composer($data) {
            
$vs Loader::helper('validation/strings');
            
$ve Loader::helper('validation/error');
            
$subject Loader::helper('security')->sanitizeString($data['cnvMessageSubject']);
            if (!
$vs->notempty($subject)) {
                
$ve->add(t('Your subject cannot be empty.'));
            }

            if (!
$vs->notempty($data['cnvMessageBody'])) {
                
$ve->add(t('Your message cannot be empty.'));
            }

            if (
Config::get('conversations.banned_words') && (
                
Loader::helper('validation/banned_words')->hasBannedWords($data['cnvMessageSubject']) ||
                
Loader::helper('validation/banned_words')->hasBannedWords($data['cnvMessageBody']))) {
                
$ve->add(t('Banned words detected.'));
            }
            return 
$ve;
        }

        public function 
save($args) {
            
$db Loader::db();
            
$cnvMessageID $db->GetOne('select cnvMessageID from btCoreConversationMessage where bID = ?', array($this->bID));
            if (!
$cnvMessageID) {
                
$message ConversationMessage::add(false$args['cnvMessageSubject'], $args['cnvMessageBody']);
                if (!
Loader::helper('validation/antispam')->check($args['cnvMessageBody'],'conversation_comment')) {
                    
$message->flag(ConversationFlagType::getByHandle('spam'));
                } else {
                    
$message->approve();
                }
                
$data = array();
                
$data['cnvMessageID'] = $message->getConversationMessageID();
                
parent::save($data);
                
// update any conversation blocks on that page to have their conversations reflect that this is a base message block.
                // we will then use that to group and show replies and messages in the dashboard
                
$b $this->getBlockObject();
                
$c $b->getBlockCollectionObject();
                
$blocks $c->getBlocks();
                foreach(
$blocks as $b) {
                    if (
$b->getBlockTypeHandle() == BLOCK_HANDLE_CONVERSATION) {
                        
$bi $b->getController();
                        
$conversation $bi->getConversationObject();
                        
$conversation->setConversationParentMessageID($message->getConversationMessageID());
                    }
                }
            }

        }

        public function 
view() {
            
$message $this->getConversationMessageObject();
            
$this->set('message'$message);
        }

        public function 
getConversationMessageObject() {
            if (!isset(
$this->message)) {
                
$db Loader::db();
                
$cnvMessageID $db->GetOne('select cnvMessageID from btCoreConversationMessage where bID = ?', array($this->bID));
                
$this->message ConversationMessage::getByID($cnvMessageID);
            }
            return 
$this->message;
        }

        public function 
getComposerControlPageNameValue() {
            
$message $this->getConversationMessageObject();
            return 
$message->getConversationMessageSubject();
        }

    }
Онлайн: 1
Реклама