NOTFORMERGE: Merged 84085 from 2.3

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@84089 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Andrew O'Neil 2009-08-10 04:32:39 +00:00
parent 5c68bb3bde
commit 66543e6002
3 changed files with 40 additions and 0 deletions

View File

@ -41,10 +41,27 @@ class HtmlEditorConfig {
return self::get($identifier); return self::get($identifier);
} }
/**
* Get the available configurations as a map of friendly_name to
* configuration name.
* @return array
*/
static function get_available_configs_map() {
$configs = array();
foreach(self::$configs as $identifier => $config) {
$configs[$identifier] = $config->getOption('friendly_name');
}
return $configs;
}
/** /**
* Holder for all TinyMCE settings _except_ plugins and buttons * Holder for all TinyMCE settings _except_ plugins and buttons
*/ */
protected $settings = array( protected $settings = array(
'friendly_name' => '(Please set a friendly name for this config)',
'priority' => 0,
'mode' => "specific_textareas", 'mode' => "specific_textareas",
'editor_selector' => "htmleditor", 'editor_selector' => "htmleditor",
'width' => "100%", 'width' => "100%",

View File

@ -14,6 +14,7 @@ class Group extends DataObject {
"Locked" => "Boolean", "Locked" => "Boolean",
"Sort" => "Int", "Sort" => "Int",
"IPRestrictions" => "Text", "IPRestrictions" => "Text",
"HtmlEditorConfig" => "Varchar"
); );
static $has_one = array( static $has_one = array(
@ -63,6 +64,7 @@ class Group extends DataObject {
) . ) .
"</p>" "</p>"
), ),
new DropdownField('HtmlEditorConfig', 'HTML Editor Configuration', HtmlEditorConfig::get_available_configs_map()),
new TableField( new TableField(
"Permissions", "Permissions",
"Permission", "Permission",

View File

@ -1026,6 +1026,27 @@ class Member extends DataObject {
} }
} }
} }
/**
* Get the HtmlEditorConfig for this user to be used in the CMS.
* This is set by the group.
* @return string
*/
function getHtmlEditorConfigForCMS() {
$currentName = '';
$currentPriority = 0;
foreach($this->Groups() as $group) {
$configName = $group->HtmlEditorConfig;
$config = HtmlEditorConfig::get($group->HtmlEditorConfig);
if($config && $config->getOption('priority') > $currentPriority) {
$currentName = $configName;
}
}
// If can't find a suitable editor, just default to cms
return $currentName ? $currentName : 'cms';
}
} }
/** /**