-
Notifications
You must be signed in to change notification settings - Fork 0
/
class.prestigeslider.plugin.php
129 lines (106 loc) · 5.24 KB
/
class.prestigeslider.plugin.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
<?php defined('APPLICATION') or die;
$PluginInfo['PrestigeSlider'] = array(
'Name' => 'Prestige Slider',
'Description' => 'Adds an image slider above main content.',
'Version' => '0.1',
'RequiredTheme' => false,
'RequiredApplications' => array('Vanilla' => '2.1'),
'SettingsPermission' => array('Garden.Settings.Manage', 'PrestigeSlider.Settings.Manage'),
'SettingsUrl' => '/plugin/prestigeslider',
'RegisterPermissions' => array('PrestigeSlider.Settings.Manage'),
'MobileFriendly' => true,
'HasLocale' => false,
'Author' => 'Gianni DaSilva',
'AuthorUrl' => 'http://infinitum.co/'
);
class PrestigeSlider extends Gdn_Plugin {
public function PluginController_PrestigeSlider_Create($Sender) {
$Sender->Title('Prestige Slider');
$Sender->AddSideMenu('plugin/prestigeslider');
$Sender->Form = new Gdn_Form();
$this->Dispatch($Sender, $Sender->RequestArgs);
}
public function Base_Render_Before($Sender) {
$Sender->AddCssFile('plugins/PrestigeSlider/design/style.css');
$Sender->AddJsFile('jquery-ui-1.8.17.custom.min.js');
$Sender->AddJsFile('plugins/PrestigeSlider/js/unslider.min.js');
$Sender->AddJsFile('plugins/PrestigeSlider/js/script.js');
}
public function Controller_Index($Sender) {
// Prevent non-admins from accessing this page
$Sender->Permission('Vanilla.Settings.Manage');
$Sender->SetData('PluginDescription',$this->GetPluginKey('Description'));
$Validation = new Gdn_Validation();
$ConfigurationModel = new Gdn_ConfigurationModel($Validation);
$ConfigurationModel->SetField(array(
'Plugin.PrestigeSlider.RenderCondition' => 'all',
'Plugin.PrestigeSlider.ImageCount' => 0,
'Plugin.PrestigeSlider.Image1url' => '',
'Plugin.PrestigeSlider.Image2url' => '',
'Plugin.PrestigeSlider.Image3url' => '',
'Plugin.PrestigeSlider.Image4url' => '',
'Plugin.PrestigeSlider.Image5url' => '',
'Plugin.PrestigeSlider.Image1href' => '',
'Plugin.PrestigeSlider.Image2href' => '',
'Plugin.PrestigeSlider.Image3href' => '',
'Plugin.PrestigeSlider.Image4href' => '',
'Plugin.PrestigeSlider.Image5href' => ''
));
// Set the model on the form.
$Sender->Form->SetModel($ConfigurationModel);
// If seeing the form for the first time...
if ($Sender->Form->AuthenticatedPostBack() === FALSE) {
// Apply the config settings to the form.
$Sender->Form->SetData($ConfigurationModel->Data);
} else {
$ConfigurationModel->Validation->ApplyRule('Plugin.PrestigeSlider.ImageCount', 'Required');
$ConfigurationModel->Validation->ApplyRule('Plugin.PrestigeSlider.Image1url', 'Required');
$Saved = $Sender->Form->Save();
if ($Saved) {
$Sender->StatusMessage = T("Your changes have been saved.");
}
}
// GetView() looks for files inside plugins/PluginFolderName/views/ and returns their full path. Useful!
$Sender->Render($this->GetView('settings.php'));
}
public function Base_BeforeRenderAsset_Handler($Sender) {
$AssetName = GetValueR('EventArguments.AssetName', $Sender);
if (InSection("DiscussionList")) {
if (C('Plugin.PrestigeSlider.RenderCondition') == 'all' OR C('Plugin.PrestigeSlider.RenderCondition') == 'DiscussionList') {
if ($AssetName == "Content"){
echo $Sender->FetchView($this->GetView('slider.php'));
}
}
}
if (InSection("CategoryList")) {
if (C('Plugin.PrestigeSlider.RenderCondition') == 'all' OR C('Plugin.PrestigeSlider.RenderCondition') == 'CategoryList') {
if ($AssetName == "Content"){
echo $Sender->FetchView($this->GetView('slider.php'));
}
}
}
}
public function Base_AfterBody_Handler($Sender) {
echo '<script>$(function() {$(\'.banner\').unslider();});</script>';
}
public function Setup() {
SaveToConfig('Plugin.PrestigeSlider.RenderCondition', 'all');
SaveToConfig('Plugin.PrestigeSlider.ImageCount', '1');
SaveToConfig('Plugin.PrestigeSlider.Image1url', 'http://placehold.it/730x200');
SaveToConfig('Plugin.PrestigeSlider.Image2url', 'http://placehold.it/730x200');
}
public function onDisable () {
RemoveFromConfig('Plugin.PrestigeSlider.RenderCondition');
RemoveFromConfig('Plugin.PrestigeSlider.ImageCount');
RemoveFromConfig('Plugin.PrestigeSlider.Image1url');
RemoveFromConfig('Plugin.PrestigeSlider.Image2url');
RemoveFromConfig('Plugin.PrestigeSlider.Image3url');
RemoveFromConfig('Plugin.PrestigeSlider.Image4url');
RemoveFromConfig('Plugin.PrestigeSlider.Image5url');
RemoveFromConfig('Plugin.PrestigeSlider.Image1href');
RemoveFromConfig('Plugin.PrestigeSlider.Image2href');
RemoveFromConfig('Plugin.PrestigeSlider.Image3href');
RemoveFromConfig('Plugin.PrestigeSlider.Image4href');
RemoveFromConfig('Plugin.PrestigeSlider.Image5href');
}
}