Вход Регистрация
Файл: plugins/mailbox/components/toolbar.php
Строк: 365
<?php

class MAILBOX_CMP_Toolbar extends PEEP_Component
{
    private 
$useChat;

    public function 
__construct()
    {
        
parent::__construct();


        
$handlerAttributes PEEP::getRequestHandler()->getHandlerAttributes();
        
$event = new PEEP_Event('plugin.mailbox.on_plugin_init.handle_controller_attributes', array('handlerAttributes'=>$handlerAttributes));
        
PEEP::getEventManager()->trigger($event);

        
$handleResult $event->getData();

        if (
$handleResult === false)
        {
            
$this->setVisible(false);
        }

        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            
$this->setVisible(false);
        }
        else
        {
            if ( !
BOL_UserService::getInstance()->isApproved() && PEEP::getConfig()->getValue('base''mandatory_user_approve') )
            {
                
$this->setVisible(false);
            }

            
$user PEEP::getUser()->getUserObject();

            if (
BOL_UserService::getInstance()->isSuspended($user->getId()))
            {
                
$this->setVisible(false);
            }

            if ( (int) 
$user->emailVerify === && PEEP::getConfig()->getValue('base''confirm_email') )
            {
                
$this->setVisible(false);
            }

            
$this->useChat BOL_AuthorizationService::STATUS_AVAILABLE;

            
$this->assign('useChat'$this->useChat);
            
$this->assign('msg''');
        }
    }

    public function 
render()
    {
        
PEEP::getDocument()->addScript(PEEP::getPluginManager()->getPlugin("base")->getStaticJsUrl() . "jquery-ui.min.js");
        
PEEP::getDocument()->addScriptPEEP::getPluginManager()->getPlugin('base')->getStaticJsUrl().'underscore-min.js''text/javascript'3000 );
        
PEEP::getDocument()->addScriptPEEP::getPluginManager()->getPlugin('base')->getStaticJsUrl().'backbone-min.js''text/javascript'3000 );

        
PEEP::getDocument()->addScript(PEEP::getPluginManager()->getPlugin('mailbox')->getStaticJsUrl() . 'audio-player.js');
        
PEEP::getDocument()->addScript(PEEP::getPluginManager()->getPlugin('mailbox')->getStaticJsUrl() . 'mailbox.js''text/javascript'3000);
        
PEEP::getDocument()->addScript(PEEP::getPluginManager()->getPlugin('mailbox')->getStaticJsUrl() . 'contactmanager.js''text/javascript'3001);

        
PEEP::getDocument()->addStyleSheetPEEP::getPluginManager()->getPlugin('mailbox')->getStaticCssUrl().'mailbox.css' );

        
$conversationService MAILBOX_BOL_ConversationService::getInstance();
        
$userId PEEP::getUser()->getId();
        
$displayName BOL_UserService::getInstance()->getDisplayName($userId);
        
$avatarUrl BOL_AvatarService::getInstance()->getAvatarUrl($userId);
        if ( empty(
$avatarUrl) )
        {
            
$avatarUrl BOL_AvatarService::getInstance()->getDefaultAvatarUrl();
        }
        
$profileUrl BOL_UserService::getInstance()->getUserUrl($userId);

        
$jsGenerator UTIL_JsGenerator::newInstance();
        
$jsGenerator->setVariable('PEEPMailbox.documentTitle'PEEP::getDocument()->getTitle());
        
$jsGenerator->setVariable('PEEPMailbox.soundEnabled', (bool) BOL_PreferenceService::getInstance()->getPreferenceValue('mailbox_user_settings_enable_sound'$userId));
        
$jsGenerator->setVariable('PEEPMailbox.showOnlineOnly', (bool) BOL_PreferenceService::getInstance()->getPreferenceValue('mailbox_user_settings_show_online_only'$userId));
        
$jsGenerator->setVariable('PEEPMailbox.showAllMembersMode', (bool)PEEP::getConfig()->getValue('mailbox''show_all_members') );
        
$jsGenerator->setVariable('PEEPMailbox.soundSwfUrl'PEEP::getPluginManager()->getPlugin('mailbox')->getStaticUrl() . 'js/player.swf');
        
$jsGenerator->setVariable('PEEPMailbox.soundUrl'PEEP::getPluginManager()->getPlugin('mailbox')->getStaticUrl() . 'sound/receive.mp3');
        
$jsGenerator->setVariable('PEEPMailbox.defaultAvatarUrl'BOL_AvatarService::getInstance()->getDefaultAvatarUrl());
        
$jsGenerator->setVariable('PEEPMailbox.serverTimezoneOffset'date('Z') / 3600);
        
$jsGenerator->setVariable('PEEPMailbox.useMilitaryTime', (bool) PEEP::getConfig()->getValue('base''military_time'));
        
$jsGenerator->setVariable('PEEPMailbox.getHistoryResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''getHistory'));
        
$jsGenerator->setVariable('PEEPMailbox.openDialogResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''updateUserInfo'));
        
$jsGenerator->setVariable('PEEPMailbox.attachmentsSubmitUrl'PEEP::getRouter()->urlFor('BASE_CTRL_Attachment''addFile'));
        
$jsGenerator->setVariable('PEEPMailbox.attachmentsDeleteUrl',  PEEP::getRouter()->urlFor('BASE_CTRL_Attachment''deleteFile'));
        
$jsGenerator->setVariable('PEEPMailbox.authorizationResponderUrl',  PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''authorization'));
        
$jsGenerator->setVariable('PEEPMailbox.responderUrl'PEEP::getRouter()->urlFor("MAILBOX_CTRL_Mailbox""responder"));
        
$jsGenerator->setVariable('PEEPMailbox.userListUrl'PEEP::getRouter()->urlForRoute('mailbox_user_list'));
        
$jsGenerator->setVariable('PEEPMailbox.convListUrl'PEEP::getRouter()->urlForRoute('mailbox_conv_list'));
        
$jsGenerator->setVariable('PEEPMailbox.pingResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''ping'));
        
$jsGenerator->setVariable('PEEPMailbox.settingsResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''settings'));
        
$jsGenerator->setVariable('PEEPMailbox.userSearchResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''rsp'));
        
$jsGenerator->setVariable('PEEPMailbox.bulkOptionsResponderUrl'PEEP::getRouter()->urlFor('MAILBOX_CTRL_Ajax''bulkOptions'));

        
$plugin_update_timestamp 0;
        if ( 
PEEP::getConfig()->configExists('mailbox''plugin_update_timestamp') )
        {
            
$plugin_update_timestamp PEEP::getConfig()->getValue('mailbox''plugin_update_timestamp');
        }
        
$jsGenerator->setVariable('PEEPMailbox.pluginUpdateTimestamp'$plugin_update_timestamp);

        
$todayDate date('Y-m-d'time());
        
$jsGenerator->setVariable('PEEPMailbox.todayDate'$todayDate);
        
$todayDateLabel UTIL_DateTime::formatDate(time(), true);
        
$jsGenerator->setVariable('PEEPMailbox.todayDateLabel'$todayDateLabel);

        
$activeModeList $conversationService->getActiveModeList();
        
$chatModeEnabled = (in_array('chat'$activeModeList)) ? true false;
        
$this->assign('chatModeEnabled'$chatModeEnabled);
        
$jsGenerator->setVariable('PEEPMailbox.chatModeEnabled'$chatModeEnabled);
        
$jsGenerator->setVariable('PEEPMailbox.useChat'$this->useChat);

        
$mailModeEnabled = (in_array('mail'$activeModeList)) ? true false;
        
$this->assign('mailModeEnabled'$mailModeEnabled);
        
$jsGenerator->setVariable('PEEPMailbox.mailModeEnabled'$mailModeEnabled);

        
$isAuthorizedSendMessage PEEP::getUser()->isAuthorized('mailbox''send_message');
        
$this->assign('isAuthorizedSendMessage'$isAuthorizedSendMessage);

        
$configs PEEP::getConfig()->getValues('mailbox');
//        if ( !empty($configs['enable_attachments']))
//        {
            
PEEP::getDocument()->addScript(PEEP::getPluginManager()->getPlugin('base')->getStaticJsUrl() . 'attachments.js');
//        }

        
$this->assign('im_sound_url'PEEP::getPluginManager()->getPlugin('mailbox')->getStaticUrl() . 'sound/receive.mp3');


        
/* DEBUG MODE */
        
$debugMode false;
        
$jsGenerator->setVariable('im_debug_mode'$debugMode);
        
$this->assign('debug_mode'$debugMode);

        
$variables $jsGenerator->generateJs();

        
$details = array(
            
'userId' => $userId,
            
'displayName' => $displayName,
            
'profileUrl' => $profileUrl,
            
'avatarUrl' => $avatarUrl
        
);
        
PEEP::getDocument()->addScriptDeclaration("PEEPMailbox.userDetails = " json_encode($details) . ";n " $variables);

        
PEEP::getLanguage()->addKeyForJs('mailbox''find_contact');
        
PEEP::getLanguage()->addKeyForJs('base''user_block_message');
        
PEEP::getLanguage()->addKeyForJs('mailbox''send_message_failed');
        
PEEP::getLanguage()->addKeyForJs('mailbox''confirm_conversation_delete');
        
PEEP::getLanguage()->addKeyForJs('mailbox''silent_mode_off');
        
PEEP::getLanguage()->addKeyForJs('mailbox''silent_mode_on');
        
PEEP::getLanguage()->addKeyForJs('mailbox''show_all_users');
        
PEEP::getLanguage()->addKeyForJs('mailbox''show_all_users');
        
PEEP::getLanguage()->addKeyForJs('mailbox''show_online_only');
        
PEEP::getLanguage()->addKeyForJs('mailbox''new_message');
        
PEEP::getLanguage()->addKeyForJs('mailbox''mail_subject_prefix');
        
PEEP::getLanguage()->addKeyForJs('mailbox''chat_subject_prefix');
        
PEEP::getLanguage()->addKeyForJs('mailbox''new_message_count');
        
PEEP::getLanguage()->addKeyForJs('mailbox''chat_message_empty');
        
PEEP::getLanguage()->addKeyForJs('mailbox''text_message_invitation');

        
$avatar_proto_data = array('url' => 1'src' => BOL_AvatarService::getInstance()->getDefaultAvatarUrl(), 'class' => 'talk_box_avatar');
        
$this->assign('avatar_proto_data'$avatar_proto_data);

        
$this->assign('defaultAvatarUrl'BOL_AvatarService::getInstance()->getDefaultAvatarUrl());
        
$this->assign('online_list_url'PEEP::getRouter()->urlForRoute('base_user_lists', array('list' => 'online')));

        
/**/

        
$actionPromotedText '';

        
$isAuthorizedReplyToMessage PEEP::getUser()->isAuthorized('mailbox''reply_to_chat_message');
        
$isAuthorizedSendMessage PEEP::getUser()->isAuthorized('mailbox''send_chat_message');
        
$isAuthorized $isAuthorizedReplyToMessage || $isAuthorizedSendMessage;
        if (!
$isAuthorized)
        {
            
$actionName 'send_chat_message';
            
$status BOL_AuthorizationService::getInstance()->getActionStatus('mailbox'$actionName);

            if ( 
$status['status'] == BOL_AuthorizationService::STATUS_PROMOTED )
            {
                
$actionPromotedText $status['msg'];
            }
        }
        
$this->assign('replyToMessageActionPromotedText'$actionPromotedText);
        
$this->assign('isAuthorizedReplyToMessage'$isAuthorized);
  

        
/**/

        
$lastSentMessage $conversationService->getLastSentMessage($userId);
        
$lastMessageTimestamp = (int)($lastSentMessage $lastSentMessage->timeStamp 0);

        if (
$chatModeEnabled)
        {
            
$countOnline BOL_UserService::getInstance()->countOnline();
            if (
$countOnline 5)
            {
                
$pingInterval 5000;
            }
            else
            {
                if (
$countOnline 15)
                {
                    
$pingInterval 15000;
                }
                else
                {
                    
$pingInterval 5000//TODO think about ping interval here
                
}
            }
        }
        else
        {
            
$pingInterval 30000;
        }

        
$applicationParams = array(

            
'pingInterval'=>$pingInterval,
            
'lastMessageTimestamp' => $lastMessageTimestamp
        
);

        
$js UTIL_JsGenerator::composeJsString('PEEP.Mailbox = new PEEPMailbox.Application({$params});', array('params'=>$applicationParams));
        
PEEP::getDocument()->addOnloadScript($js3003);


        
$js "
        PEEP.Mailbox.contactManager = new MAILBOX_ContactManager;
        PEEP.Mailbox.contactManagerView = new MAILBOX_ContactManagerView({model: PEEP.Mailbox.contactManager});"
;

        
PEEP::getDocument()->addOnloadScript($js3009);

        return 
parent::render();
    }
}
Онлайн: 0
Реклама