forked from GreenMeteor/codebox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEvents.php
56 lines (46 loc) · 1.69 KB
/
Events.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
<?php
namespace humhub\modules\codebox;
use Yii;
use yii\helpers\Url;
use yii\base\BaseObject;
use humhub\modules\ui\menu\MenuLink;
use humhub\modules\ui\icon\widgets\Icon;
use humhub\modules\admin\widgets\AdminMenu;
use humhub\modules\codebox\widgets\CodeboxFrame;
use humhub\modules\codebox\models\ConfigureForm;
use humhub\modules\admin\permissions\ManageModules;
class Events extends BaseObject
{
public static function onAdminMenuInit($event)
{
if (!Yii::$app->user->can(ManageModules::class)) {
return;
}
/** @var AdminMenu $menu */
$menu = $event->sender;
$menu->addEntry(new MenuLink([
'label' => Yii::t('CodeboxModule.base', 'Codebox Settings'),
'url' => Url::toRoute('/codebox/admin/index'),
'icon' => Icon::get('code'),
'isActive' => Yii::$app->controller->module && Yii::$app->controller->module->id == 'codebox' && Yii::$app->controller->id == 'admin',
'sortOrder' => 600,
'isVisible' => true,
]));
}
public static function addCodeboxFrame($event)
{
// Retrieve the Codebox module
$module = Yii::$app->getModule('codebox');
// Check if the module is enabled
if ($module !== null) {
// Retrieve the settings from the database
$entries = ConfigureForm::find()->asArray()->all();
// Add the CodeboxFrame widget with the entries
$event->sender->addWidget(
CodeboxFrame::class,
['entries' => $entries],
['sortOrder' => $module->getOrder()]
);
}
}
}