zira/chat/chat.php

62 lines
No EOL
2.3 KiB
PHP

<?php
/**
* Zira project.
* chat.php
* (c)2017 http://dro1d.ru
*/
namespace Chat;
use Zira;
use Dash;
class Chat {
const PERMISSION_MODERATE = 'Moderate chat';
const WIDGET_CLASS = '\Chat\Widgets\Chat';
const WIDGET_PLACEHOLDER = Zira\View::VAR_SIDEBAR_RIGHT;
const DEFAULT_DELAY = 5;
const MAX_CHARS = 1024;
const WIDGET_LIMIT = 30;
private static $_instance;
public static function getInstance() {
if (self::$_instance === null) {
self::$_instance = new self();
}
return self::$_instance;
}
public function onActivate() {
Zira\Assets::registerCSSAsset('chat/chat.css');
Zira\Assets::registerJSAsset('chat/chat.js');
}
public function onDeactivate() {
Zira\Assets::unregisterCSSAsset('chat/chat.css');
Zira\Assets::unregisterJSAsset('chat/chat.js');
}
public function beforeDispatch() {
Zira\Assets::registerCSSAsset('chat/chat.css');
Zira\Assets::registerJSAsset('chat/chat.js');
}
public function bootstrap() {
Zira\View::addDefaultAssets();
Zira\View::addStyle('chat/chat.css');
Zira\View::addScript('chat/chat.js');
Zira\View::addParser();
if (ENABLE_CONFIG_DATABASE && Dash\Dash::getInstance()->isPanelEnabled() && Zira\Permission::check(Zira\Permission::TO_ACCESS_DASHBOARD) && (Zira\Permission::check(Zira\Permission::TO_CHANGE_OPTIONS) || Zira\Permission::check(self::PERMISSION_MODERATE))) {
Dash\Dash::loadDashLanguage();
Dash\Dash::getInstance()->addPanelModulesGroupItem('glyphicon glyphicon-transfer', Zira\Locale::tm('Chat', 'chat', null, Dash\Dash::getDashLanguage()), null, 'chatsWindow()');
Dash\Dash::getInstance()->registerModuleWindowClass('chatsWindow', 'Chat\Windows\Chats', 'Chat\Models\Chats');
Dash\Dash::getInstance()->registerModuleWindowClass('chatWindow', 'Chat\Windows\Chat', 'Chat\Models\Chats');
Dash\Dash::getInstance()->registerModuleWindowClass('chatMessagesWindow', 'Chat\Windows\Messages', 'Chat\Models\Messages');
Dash\Dash::getInstance()->registerModuleWindowClass('chatMessageWindow', 'Chat\Windows\Message', 'Chat\Models\Messages');
Dash\Dash::unloadDashLanguage();
}
}
}