MINOR make widgetarea/editor more suitable for generic use

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.4@95086 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Tom Rix 2009-12-14 01:26:49 +00:00 committed by Sam Minnee
parent ee49d36dd7
commit 2d3365f7b2
3 changed files with 28 additions and 10 deletions

View File

@ -5,7 +5,21 @@
* @subpackage content
*/
class WidgetAreaEditor extends FormField {
function __construct($name) {
/**
* 3 variables to hold titles for the template
*/
public $InUseTitle;
public $AvailableTitle;
public $ToAddTitle;
function __construct($name, $widgetClasses = array('Widget'), $maxWidgets = 0) {
$this->InUseTitle = _t('WidgetAreaEditor.ss', 'INUSE');
$this->AvailableTitle = _t('WidgetAreaEditor.ss', 'AVAILABLE');
$this->ToAddTitle = _t('WidgetAreaEditor.ss', 'TOADD');
$this->MaxWidgets = $maxWidgets;
$this->widgetClasses = $widgetClasses;
parent::__construct($name);
}
@ -17,12 +31,15 @@ class WidgetAreaEditor extends FormField {
}
function AvailableWidgets() {
$classes = ClassInfo::subclassesFor('Widget');
array_shift($classes);
$widgets= new DataObjectSet();
foreach($classes as $class) {
$widgets->push(singleton($class));
foreach($this->widgetClasses as $widgetClass) {
$classes = ClassInfo::subclassesFor($widgetClass);
array_shift($classes);
foreach($classes as $class) {
$widgets->push(singleton($class));
}
}
return $widgets;

View File

@ -24,6 +24,7 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
'ModelAdmin.DELETED': "Deleted",
'ModelAdmin.VALIDATIONERROR': "Validation Error",
'LeftAndMain.PAGEWASDELETED': "This page was deleted. To edit a page, select it from the left.",
'LeftAndMain.CONFIRMUNSAVED': "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page."
'LeftAndMain.CONFIRMUNSAVED': "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.",
'WidgetAreaEditor.TOOMANY': 'Sorry, you have reached the maximum number of widgets in this area'
});
}

View File

@ -1,7 +1,7 @@
<div class="WidgetAreaEditor" id="WidgetAreaEditor-$Name" name="$Name">
<div class="WidgetAreaEditor" id="WidgetAreaEditor-$Name" name="$Name"<% if MaxWidgets %> maxwidgets="$MaxWidgets"<% end_if %>>
<input type="hidden" id="$Name" name="$IdxField" value="$Value" />
<div class="availableWidgetsHolder">
<h2><% _t('AVAILABLE', 'Available Widgets') %></h2>
<h2>$AvailableTitle</h2>
<p>&nbsp;</p>
<div class="availableWidgets" id="availableWidgets-$Name">
<% if AvailableWidgets %>
@ -16,8 +16,8 @@
</div>
</div>
<div class="usedWidgetsHolder">
<h2><% _t('INUSE', 'Widgets currently used') %></h2>
<p><% _t('TOADD', 'To add widgets, click on the purple header on the left') %></p>
<h2>$InUseTitle</h2>
<p>$ToAddTitle</p>
<div class="usedWidgets" id="usedWidgets-$Name">
<% if UsedWidgets %>