-
Notifications
You must be signed in to change notification settings - Fork 1
/
PluginImbaChat.class.php
131 lines (120 loc) · 4.97 KB
/
PluginImbaChat.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* Запрещаем напрямую через браузер обращение к этому файлу.
*/
if (!class_exists('Plugin')) {
die('Hacking attemp!');
}
/**
* Основной класс плагина
*/
class PluginImbaChatWidget extends Plugin
{
/**
* Переопределение стандартных классов и шаблонов
* Сначала указывается класс (или шаблон), который нужно переопределить, а значением указывается переопределяющий класс плагина (рекомендуется называть его тем же именем).
* Символ "_" перед классом означается автоматическую подстановку вместо него класса текущего плагина (или пути до шаблона плагина).
*
* @var array
*/
protected $aInherits = array(/*
'module' => array(
'ModuleTopic'=>'_ModuleTopic',
'ModuleUser'=>'_ModuleUser'
),
'mapper' => array(
'ModuleTopic_MapperTopic'=>'_ModuleTopic_MapperTopic',
),
'entity' => array(
'ModuleTopic_EntityTopic' => '_ModuleTopic_EntityTopic'
),
'action' => array(
'ActionIndex'=>'_ActionSomepage'
),
'block' => array(
'BlockBlogs'=>'_BlockBlogs'
),
'event' => array(
'ActionFoo_EventBar'=>'_ActionFoo_EventBar'
),
'behavior' => array(
'ModuleCategory_BehaviorModule'=>'_ModuleCategory_BehaviorModule'
),
'template' => array(
// Переопределяет шаблон экшена
'actions/ActionIndex/index.tpl'=>'_actions/ActionTest/index.tpl',
// Переопределяет шаблон 'login' компонента 'auth'
'component.auth.login' => '_components/auth/login.tpl',
),
*/
);
/**
* Выполняется в момент активации плагина
*
* @return bool
*/
public function Activate()
{
/**
* Создаем новый тип для дополнительных полей. В итоге к сущности Some можно будет через интерфейс добавлять новые поля.
* Третий параметр true ознает перезапись параметров, если такой тип уже есть в БД
*/
/*
if (!$this->Property_CreateTargetType('imba_chat_widget_some', array('entity' => 'PluginImbaChatWidget_ModuleMain_EntitySome', 'name' => 'Нечто'), true)) {
return false;
}
*/
/**
* Создаем новый тип для категорий. Позволяет прикрутить к сущности Some неограниченное дерево категорий управляемое из админки.
*/
/*
if (!$this->Category_CreateTargetType('imba_chat_widget_some', 'Нечто', array(), true)) {
return false;
}
*/
return true;
}
/**
* Выполняется в момент деактивации плагина
*
* @return bool
*/
public function Deactivate()
{
/**
* Отключаем дополнительные поля
*/
//$this->Property_RemoveTargetType('imba_chat_widget_some', ModuleProperty::TARGET_STATE_NOT_ACTIVE);
/**
* Отключаем категории
*/
//$this->Category_RemoveTargetType('imba_chat_widget_some', ModuleCategory::TARGET_STATE_NOT_ACTIVE);
return true;
}
/**
* Выполняется при удалении плагина
*
* @return bool
*/
public function Remove()
{
/**
* Удаляем тип дополнительных полей
*/
//$this->Property_RemoveTargetType('imba_chat_widget_some', ModuleProperty::TARGET_STATE_REMOVE);
/**
* Удаляем тип категорий
*/
//$this->Category_RemoveTargetType('imba_chat_widget_some', ModuleCategory::TARGET_STATE_REMOVE);
return true;
}
/**
* Выполняется каждый раз при загрузке сайта, если плагин активирован
*/
public function Init()
{
$this->Viewer_AppendStyle(Plugin::GetTemplateWebPath(__CLASS__) . "assets/css/main.css"); // Добавление своего CSS
$this->Viewer_AppendScript(Plugin::GetTemplateWebPath(__CLASS__) . "assets/js/main.js"); // Добавление своего JS
//$this->Viewer_AddMenu('blog',Plugin::GetTemplatePath(__CLASS__).'menu.blog.tpl'); // например, задаем свой вид меню
}
}