Use event handler for creating Yaga settings page
This creates the core Yaga settings page as a method on the dashboard settings controller instead of having the page be its own controller.
This commit is contained in:
parent
3076915e5e
commit
8dc1656a27
@ -1,50 +0,0 @@
|
||||
<?php if(!defined('APPLICATION')) exit();
|
||||
/* Copyright 2013 Zachary Doll */
|
||||
|
||||
/**
|
||||
* This handles all the core settings for the gamification application.
|
||||
*
|
||||
* @since 1.0
|
||||
* @package Yaga
|
||||
*/
|
||||
class YagaSettingsController extends DashboardController {
|
||||
|
||||
/**
|
||||
* Make this look like a dashboard page and add the resources
|
||||
*
|
||||
* @since 1.0
|
||||
* @access public
|
||||
*/
|
||||
public function Initialize() {
|
||||
parent::Initialize();
|
||||
$this->Application = 'Yaga';
|
||||
Gdn_Theme::Section('Dashboard');
|
||||
if ($this->Menu) {
|
||||
$this->Menu->HighlightRoute('/yagasettings');
|
||||
}
|
||||
//$this->AddJsFile('yaga.js');
|
||||
$this->AddCssFile('yaga.css');
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple configuration page for the Yaga Application
|
||||
*/
|
||||
public function Index() {
|
||||
$this->Permission('Garden.Settings.Manage');
|
||||
|
||||
$ConfigModule = new ConfigurationModule($this);
|
||||
|
||||
$ConfigModule->Initialize(array(
|
||||
'Yaga.Reactions.Enabled' => array('LabelCode' => 'Use Reactions', 'Control' => 'Checkbox'),
|
||||
'Yaga.Badges.Enabled' => array('LabelCode' => 'Use Badges', 'Control' => 'Checkbox'),
|
||||
'Yaga.Ranks.Enabled' => array('LabelCode' => 'Use Ranks', 'Control' => 'Checkbox'),
|
||||
'Yaga.LeaderBoard.Enabled' => array('LabelCode' => 'Show leaderboard on activity page', 'Control' => 'Checkbox'),
|
||||
'Yaga.LeaderBoard.Limit' => array('LabelCode' => 'Maximum number of leaders to show', 'Control' => 'Textbox', 'Options' => array('Size' => 45, 'class' => 'SmallInput'))
|
||||
));
|
||||
$this->AddSideMenu('yagasettings');
|
||||
$this->Title(T('Yaga.Settings'));
|
||||
$this->ConfigurationModule = $ConfigModule;
|
||||
|
||||
$ConfigModule->RenderAll();
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ $ApplicationInfo['Yaga'] = array(
|
||||
'AuthorEmail' => 'hgtonight@daklutz.com',
|
||||
'AuthorUrl' => 'http://www.daklutz.com',
|
||||
'License' => 'GPLv3',
|
||||
'SettingsUrl' => '/yagasettings',
|
||||
'SettingsUrl' => '/settings/yaga',
|
||||
|
||||
// Application requirements
|
||||
'RequiredApplications' => array('Vanilla' => '2.1b2'),
|
||||
|
@ -7,6 +7,57 @@
|
||||
*/
|
||||
class YagaHooks implements Gdn_IPlugin {
|
||||
|
||||
/**
|
||||
* This handles all the core settings for the gamification application.
|
||||
*
|
||||
* @param SettingsController $Sender
|
||||
*/
|
||||
public function SettingsController_Yaga_Create($Sender) {
|
||||
$Sender->Application = 'Yaga';
|
||||
Gdn_Theme::Section('Dashboard');
|
||||
if ($Sender->Menu) {
|
||||
$Sender->Menu->HighlightRoute('/settings/yaga');
|
||||
}
|
||||
//$Sender->AddJsFile('yaga.js');
|
||||
$Sender->AddCssFile('yaga.css');
|
||||
|
||||
$Sender->Permission('Garden.Settings.Manage');
|
||||
|
||||
$ConfigModule = new ConfigurationModule($Sender);
|
||||
|
||||
$ConfigModule->Initialize(array(
|
||||
'Yaga.Reactions.Enabled' => array(
|
||||
'LabelCode' => 'Use Reactions',
|
||||
'Control' => 'Checkbox'
|
||||
),
|
||||
'Yaga.Badges.Enabled' => array(
|
||||
'LabelCode' => 'Use Badges',
|
||||
'Control' => 'Checkbox'
|
||||
),
|
||||
'Yaga.Ranks.Enabled' => array(
|
||||
'LabelCode' => 'Use Ranks',
|
||||
'Control' => 'Checkbox'
|
||||
),
|
||||
'Yaga.LeaderBoard.Enabled' => array(
|
||||
'LabelCode' => 'Show leaderboard on activity page',
|
||||
'Control' => 'Checkbox'
|
||||
),
|
||||
'Yaga.LeaderBoard.Limit' => array(
|
||||
'LabelCode' => 'Maximum number of leaders to show',
|
||||
'Control' => 'Textbox',
|
||||
'Options' => array(
|
||||
'Size' => 45,
|
||||
'class' => 'SmallInput'
|
||||
)
|
||||
)
|
||||
));
|
||||
$Sender->AddSideMenu('settings/yaga');
|
||||
$Sender->Title(T('Yaga.Settings'));
|
||||
$Sender->ConfigurationModule = $ConfigModule;
|
||||
|
||||
$ConfigModule->RenderAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the settings page links
|
||||
*
|
||||
@ -17,7 +68,7 @@ class YagaHooks implements Gdn_IPlugin {
|
||||
$Section = 'Gamification';
|
||||
$Attrs = array('class' => $Section);
|
||||
$Menu->AddItem($Section, $Section, FALSE, $Attrs);
|
||||
$Menu->AddLink($Section, T('Settings'), 'yagasettings', 'Garden.Settings.Manage');
|
||||
$Menu->AddLink($Section, T('Settings'), 'settings/yaga', 'Garden.Settings.Manage');
|
||||
if(C('Yaga.Reactions.Enabled')) {
|
||||
$Menu->AddLink($Section, T('Yaga.Reactions'), 'action/settings', 'Yaga.Reactions.Manage');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user