From e623c3d8833f3318920c9d1cb5f40a057352b9fe Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Wed, 16 Dec 2009 06:06:30 +0000 Subject: [PATCH] MINOR make widgetarea/editor more suitable for generic use (from r95086) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@95654 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/WidgetAreaEditor.php | 27 ++++++++++++++++++++++----- javascript/lang/en_US.js | 5 +++-- templates/WidgetAreaEditor.ss | 8 ++++---- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/code/WidgetAreaEditor.php b/code/WidgetAreaEditor.php index c862df48..035d6e07 100644 --- a/code/WidgetAreaEditor.php +++ b/code/WidgetAreaEditor.php @@ -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; diff --git a/javascript/lang/en_US.js b/javascript/lang/en_US.js index f0d5e936..a43e5233 100644 --- a/javascript/lang/en_US.js +++ b/javascript/lang/en_US.js @@ -32,6 +32,7 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { 'AssetTableField.REALLYDELETE': 'Do you really want to delete the marked files?', 'AssetTableField.MOVING': 'Moving %s file(s)', 'SecurityAdmin.BATCHACTIONSDELETECONFIRM': "Do you really want to delete %s groups?", - 'CMSMAIN.AddSearchCriteria': 'Add Criteria' + 'CMSMAIN.AddSearchCriteria': 'Add Criteria', + 'WidgetAreaEditor.TOOMANY': 'Sorry, you have reached the maximum number of widgets in this area' }); -} \ No newline at end of file +} diff --git a/templates/WidgetAreaEditor.ss b/templates/WidgetAreaEditor.ss index 6b1989f6..450386d3 100644 --- a/templates/WidgetAreaEditor.ss +++ b/templates/WidgetAreaEditor.ss @@ -1,7 +1,7 @@ -
+
maxwidgets="$MaxWidgets"<% end_if %>>
-

<% _t('AVAILABLE', 'Available Widgets') %>

+

$AvailableTitle

 

<% if AvailableWidgets %> @@ -16,8 +16,8 @@
-

<% _t('INUSE', 'Widgets currently used') %>

-

<% _t('TOADD', 'To add widgets, click on the purple header on the left') %>

+

$InUseTitle

+

$ToAddTitle

<% if UsedWidgets %>