$string['configdoctonewwindow'] = 'If you enable this, then links to Moodle Docs will be shown in a new window.';
$string['configeditorfontlist'] = 'Select the fonts that should appear in the editor\'s drop-down list.';
$string['configeditordictionary'] = 'This value will be used if aspell doesn\'t have dictionary for users own language.';
+$string['configemoticons'] = 'Change the code on the left that relates to the name of the emoticon on the right. To add new emoticons, add a code and a name, then add an image as name.gif in /pix/s.';
$string['configenableajax'] = 'This setting allows you to control the use of AJAX (advanced client/server interfaces using Javascript) across the whole site. With this setting enabled users can still make a choice in their profile, otherwise AJAX is disabled for everybody.';
$string['configenablecourserequests'] = 'This will allow any user to request a course be created.';
$string['configenableglobalsearch'] = 'This setting enables global text searching in resources and activities, it is not compatible with PHP 4.';
$string['editorspellinghelp'] = 'Enable or disable spell-checking. When enabled, <strong>aspell</strong> must be installed on the server.';
$string['editorspelling'] = 'Editor spelling';
$string['editstrings'] = 'Edit words or phrases';
+$string['emoticons'] = 'Emoticons';
$string['enableajax'] = 'Enable AJAX';
$string['enablecourserequests'] = 'Enable course requests';
$string['enableglobalsearch'] = 'Enable global search';
}
+class admin_setting_emoticons extends admin_setting {
+
+ var $items;
+
+ function admin_setting_emoticons() {
+ global $CFG;
+ $name = 'emoticons';
+ $visiblename = get_string('emoticons', 'admin');
+ $description = get_string('configemoticons', 'admin');
+ $defaults = array('k0' => ':-)',
+ 'v0' => 'smiley',
+ 'k1' => ':)',
+ 'v1' => 'smiley',
+ 'k2' => ':-D',
+ 'v2' => 'biggrin',
+ 'k3' => ';-)',
+ 'v3' => 'wink',
+ 'k4' => ':-/',
+ 'v4' => 'mixed',
+ 'k5' => 'V-.',
+ 'v5' => 'thoughtful',
+ 'k6' => ':-P',
+ 'v6' => 'tongueout',
+ 'k7' => 'B-)',
+ 'v7' => 'cool',
+ 'k8' => '^-)',
+ 'v8' => 'approve',
+ 'k9' => '8-)',
+ 'v9' => 'wideeyes',
+ 'k10' => ':o)',
+ 'v10' => 'clown',
+ 'k11' => ':-(',
+ 'v11' => 'sad',
+ 'k12' => ':(',
+ 'v12' => 'sad',
+ 'k13' => '8-.',
+ 'v13' => 'shy',
+ 'k14' => ':-I',
+ 'v14' => 'blush',
+ 'k15' => ':-X',
+ 'v15' => 'kiss',
+ 'k16' => '8-o',
+ 'v16' => 'surprise',
+ 'k17' => 'P-|',
+ 'v17' => 'blackeye',
+ 'k18' => '8-[',
+ 'v18' => 'angry',
+ 'k19' => 'xx-P',
+ 'v19' => 'dead',
+ 'k20' => '|-.',
+ 'v20' => 'sleepy',
+ 'k21' => '}-]',
+ 'v21' => 'evil',
+ 'k22' => '(h)',
+ 'v22' => 'heart',
+ 'k23' => '(heart)',
+ 'v23' => 'heart',
+ 'k24' => '(y)',
+ 'v24' => 'yes',
+ 'k25' => '(n)',
+ 'v25' => 'no',
+ 'k26' => '(martin)',
+ 'v26' => 'martin',
+ 'k27' => '( )',
+ 'v27' => 'egg');
+ parent::admin_setting($name, $visiblename, $description, $defaults);
+ }
+
+ function get_setting() {
+ global $CFG;
+ if (isset($CFG->emoticons)) {
+ $i = 0;
+ $currentsetting = array();
+ $items = explode('{;}', $CFG->emoticons);
+ foreach ($items as $item) {
+ $item = explode('{:}', $item);
+ $currentsetting['k' . $i] = $item[0];
+ $currentsetting['v' . $i] = $item[1];
+ $i++;
+ }
+ return $currentsetting;
+ } else {
+ return NULL;
+ }
+ }
+
+ function write_setting($data) {
+
+ // there miiight be an easier way to do this :)
+ // if this is changed, make sure the $defaults array above is modified so that this
+ // function processes it correctly
+
+ $keys = array();
+ $values = array();
+
+ foreach ($data as $key => $value) {
+ if (substr($key,0,1) == 'k') {
+ $keys[substr($key,1)] = $value;
+ } elseif (substr($key,0,1) == 'v') {
+ $values[substr($key,1)] = $value;
+ }
+ }
+
+ $result = '';
+ for ($i = 0; $i < count($keys); $i++) {
+ if (($keys[$i] !== '') && ($values[$i] !== '')) {
+ $result .= clean_param($keys[$i],PARAM_NOTAGS) . '{:}' . clean_param($values[$i], PARAM_NOTAGS) . '{;}';
+ }
+ }
+
+ $result = substr($result, 0, -3); // trim the last separator
+
+ return (set_config($this->name, $result) ? '' : get_string('errorsetting', 'admin') . $this->visiblename . '<br />');
+ }
+
+ function output_html() {
+
+ if ($this->get_setting() === NULL) {
+ $currentsetting = $this->defaultsetting;
+ } else {
+ $currentsetting = $this->get_setting();
+ }
+
+ $return = '<div class="form-group">';
+ for ($i = 0; $i < count($currentsetting) / 2; $i++) {
+ $return .= '<input type="text" class="form-text" name="s_emoticons[k' . $i . ']" value="' . $currentsetting['k' . $i] . '" />';
+ $return .= ' ';
+ $return .= '<input type="text" class="form-text" name="s_emoticons[v' . $i . ']" value="' . $currentsetting['v' . $i] . '" /><br />';
+ }
+ $return .= '<input type="text" class="form-text" name="s_emoticons[k' . $i . ']" value="" />';
+ $return .= ' ';
+ $return .= '<input type="text" class="form-text" name="s_emoticons[v' . $i . ']" value="" /><br />';
+ $return .= '<input type="text" class="form-text" name="s_emoticons[k' . ($i + 1) . ']" value="" />';
+ $return .= ' ';
+ $return .= '<input type="text" class="form-text" name="s_emoticons[v' . ($i + 1) . ']" value="" />';
+ $return .= '</div>';
+
+ return format_admin_setting($this->name, $this->visiblename, $return, $this->description, false);
+ }
+
+}
+
class admin_setting_special_editordictionary extends admin_setting_configselect {
function admin_setting_special_editordictionary() {
function replace_smilies(&$text) {
///
global $CFG;
-
$lang = current_language();
-
-/// this builds the mapping array only once
+ $emoticonstring = $CFG->emoticons;
static $e = array();
static $img = array();
- static $emoticons = array(
- ':-)' => 'smiley',
- ':)' => 'smiley',
- ':-D' => 'biggrin',
- ';-)' => 'wink',
- ':-/' => 'mixed',
- 'V-.' => 'thoughtful',
- ':-P' => 'tongueout',
- 'B-)' => 'cool',
- '^-)' => 'approve',
- '8-)' => 'wideeyes',
- ':o)' => 'clown',
- ':-(' => 'sad',
- ':(' => 'sad',
- '8-.' => 'shy',
- ':-I' => 'blush',
- ':-X' => 'kiss',
- '8-o' => 'surprise',
- 'P-|' => 'blackeye',
- '8-[' => 'angry',
- 'xx-P' => 'dead',
- '|-.' => 'sleepy',
- '}-]' => 'evil',
- '(h)' => 'heart',
- '(heart)' => 'heart',
- '(y)' => 'yes',
- '(n)' => 'no',
- '(martin)' => 'martin',
- '( )' => 'egg'
- );
+ static $emoticons = null;
+
+ if (is_null($emoticons)) {
+ $emoticons = array();
+ if ($emoticonstring) {
+ $items = explode('{;}', $CFG->emoticons);
+ foreach ($items as $item) {
+ $item = explode('{:}', $item);
+ $emoticons[$item[0]] = $item[1];
+ }
+ }
+ }
+
if (empty($img[$lang])) { /// After the first time this is not run again
$e[$lang] = array();
$img[$lang] = array();
foreach ($emoticons as $emoticon => $image){
$alttext = get_string($image, 'pix');
-
$e[$lang][] = $emoticon;
$img[$lang][] = '<img alt="'. $alttext .'" width="15" height="15" src="'. $CFG->pixpath .'/s/'. $image .'.gif" />';
}