mirror of
https://github.com/moodle/moodle.git
synced 2025-08-02 23:59:41 +02:00
MDL-16654 Move javascript used by the emoticons help file from javascript.php to javascript-static.js. Fix it so that it actually works.
This commit is contained in:
parent
16851b22ad
commit
740939ec61
5 changed files with 99 additions and 75 deletions
25
help.php
25
help.php
|
@ -142,7 +142,7 @@ if(preg_match('~^(.*?)<title>(.*?)</title>(.*)$~s',$output,$matches)) {
|
||||||
|
|
||||||
// use ##emoticons_html## to replace the emoticons documentation
|
// use ##emoticons_html## to replace the emoticons documentation
|
||||||
if(preg_match('~(##emoticons_html##)~', $output, $matches)) {
|
if(preg_match('~(##emoticons_html##)~', $output, $matches)) {
|
||||||
$output = preg_replace('~(##emoticons_html##)~', get_emoticons_html(), $output);
|
$output = preg_replace('~(##emoticons_html##)~', get_emoticons_list_for_help_file(), $output);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do the main output.
|
// Do the main output.
|
||||||
|
@ -163,29 +163,6 @@ echo '<p class="helpindex"><a href="help.php?file=index.html">'. get_string('hel
|
||||||
$CFG->docroot = ''; // We don't want a doc link here
|
$CFG->docroot = ''; // We don't want a doc link here
|
||||||
print_footer('none');
|
print_footer('none');
|
||||||
|
|
||||||
// Utility function =================================================================
|
|
||||||
|
|
||||||
function get_emoticons_html(){
|
|
||||||
global $CFG;
|
|
||||||
$output = '';
|
|
||||||
$emoticonstring = $CFG->emoticons;
|
|
||||||
$output .= '<ul>';
|
|
||||||
if ($emoticonstring) {
|
|
||||||
$items = explode('{;}', $CFG->emoticons);
|
|
||||||
foreach ($items as $item) {
|
|
||||||
$item = explode('{:}', $item);
|
|
||||||
$emoticons[$item[0]] = $item[1];
|
|
||||||
$output .= '<li><a href="javascript:inserttext(\''.$item[0].'\')"><img src="'.
|
|
||||||
$CFG->pixpath.'/s/'.$item[1].'.gif" alt="'.$item[0].'" /></a>'.' <code>'.$item[0].
|
|
||||||
'</code></li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
$output .= '</ul>';
|
|
||||||
return $output;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function file_exists_and_readable($filepath) {
|
function file_exists_and_readable($filepath) {
|
||||||
return file_exists($filepath) and is_file($filepath) and is_readable($filepath);
|
return file_exists($filepath) and is_file($filepath) and is_readable($filepath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
<h1>Using Smilies (emoticons)</h1>
|
<h1>Using Smilies (emoticons)</h1>
|
||||||
|
|
||||||
|
<!-- Note, this file is no loger used in HEAD, it has been replaced by emoticons2.html
|
||||||
|
which uses a dynamically buils list of smilies. The purpose of this note is to
|
||||||
|
point out that it is not a problem that none fo the href="javascript:inserttext('...')"
|
||||||
|
links work any more in HEAD. See MDL-16654. -->
|
||||||
|
|
||||||
<table align="center" border="1">
|
<table align="center" border="1">
|
||||||
<tbody><tr valign="top">
|
<tbody><tr valign="top">
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -514,7 +514,7 @@ function getElementsByClassName(oElm, strTagName, oClassNames){
|
||||||
}
|
}
|
||||||
|
|
||||||
function openpopup(url, name, options, fullscreen) {
|
function openpopup(url, name, options, fullscreen) {
|
||||||
var fullurl = moodle_config.wwwroot + url;
|
var fullurl = moodle_cfg.wwwroot + url;
|
||||||
var windowobj = window.open(fullurl,name,options);
|
var windowobj = window.open(fullurl,name,options);
|
||||||
if (fullscreen) {
|
if (fullscreen) {
|
||||||
windowobj.moveTo(0,0);
|
windowobj.moveTo(0,0);
|
||||||
|
@ -523,3 +523,34 @@ function openpopup(url, name, options, fullscreen) {
|
||||||
windowobj.focus();
|
windowobj.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* This is only used on a few help pages. */
|
||||||
|
emoticons_help = {
|
||||||
|
inputarea: null,
|
||||||
|
|
||||||
|
init: function(formname, fieldname, listid) {
|
||||||
|
if (!opener || !opener.document.forms[formname]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
emoticons_help.inputarea = opener.document.forms[formname][fieldname];
|
||||||
|
if (!emoticons_help.inputarea) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var emoticons = document.getElementById(listid).getElementsByTagName('li');
|
||||||
|
for (var i = 0; i < emoticons.length; i++) {
|
||||||
|
var text = emoticons[i].getElementsByTagName('img')[0].alt;
|
||||||
|
YAHOO.util.Event.addListener(emoticons[i], 'click', emoticons_help.inserttext, text);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
inserttext: function(e, text) {
|
||||||
|
text = ' ' + text + ' ';
|
||||||
|
if (emoticons_help.inputarea.createTextRange && emoticons_help.inputarea.caretPos) {
|
||||||
|
var caretPos = emoticons_help.inputarea.caretPos;
|
||||||
|
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
|
||||||
|
} else {
|
||||||
|
emoticons_help.inputarea.value += text;
|
||||||
|
}
|
||||||
|
emoticons_help.inputarea.focus();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,17 +1,15 @@
|
||||||
<?php /// $Id$
|
<?php /// $Id$
|
||||||
|
/// Load up any required Javascript libraries
|
||||||
|
|
||||||
/// Load up any required Javascript libraries
|
if (!defined('MOODLE_INTERNAL')) {
|
||||||
|
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('MOODLE_INTERNAL')) {
|
if (can_use_html_editor() && !empty($CFG->editorsrc)) {
|
||||||
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
|
foreach ( $CFG->editorsrc as $scriptsource ) {
|
||||||
|
echo '<script type="text/javascript" src="'. $scriptsource .'"></script>'."\n";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (can_use_html_editor() && !empty($CFG->editorsrc)) {
|
|
||||||
foreach ( $CFG->editorsrc as $scriptsource ) {
|
|
||||||
echo '<script type="text/javascript" src="'. $scriptsource .'"></script>'."\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!--<style type="text/css">/*<![CDATA[*/ body{behavior:url(<?php echo $CFG->httpswwwroot ?>/lib/csshover.htc);} /*]]>*/</style>-->
|
<!--<style type="text/css">/*<![CDATA[*/ body{behavior:url(<?php echo $CFG->httpswwwroot ?>/lib/csshover.htc);} /*]]>*/</style>-->
|
||||||
|
|
||||||
|
@ -30,40 +28,19 @@ setTimeout('fix_column_widths()', 20);
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//<![CDATA[
|
//<![CDATA[
|
||||||
|
var id2suffix = {};
|
||||||
<?php
|
<?php
|
||||||
echo "function inserttext(text) {\n";
|
if (!empty($focus)) {
|
||||||
if (!empty($SESSION->inserttextform)) {
|
if(($pos = strpos($focus, '.')) !== false) {
|
||||||
$insertfield = "opener.document.forms['$SESSION->inserttextform'].$SESSION->inserttextfield";
|
//old style focus using form name - no allowed inXHTML Strict
|
||||||
echo " if(!opener.document.forms['$SESSION->inserttextform']){";
|
$topelement = substr($focus, 0, $pos);
|
||||||
|
echo "addonload(function() { if(document.$topelement) document.$focus.focus(); });\n";
|
||||||
} else {
|
} else {
|
||||||
$insertfield = "opener.document.forms['theform'].message";
|
//focus element with given id
|
||||||
echo " if(!opener.document.forms['theform']){";
|
echo "addonload(function() { if(el = document.getElementById('$focus')) el.focus(); });\n";
|
||||||
}
|
}
|
||||||
echo " return;";
|
$focus = false; // Prevent themes from adding it to body tag which breaks addonload(), MDL-10249
|
||||||
echo " }";
|
}
|
||||||
echo " text = ' ' + text + ' ';\n";
|
|
||||||
echo " if ( $insertfield.createTextRange && $insertfield.caretPos) {\n";
|
|
||||||
echo " var caretPos = $insertfield.caretPos;\n";
|
|
||||||
echo " caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;\n";
|
|
||||||
echo " } else {\n";
|
|
||||||
echo " $insertfield.value += text;\n";
|
|
||||||
echo " }\n";
|
|
||||||
echo " $insertfield.focus();\n";
|
|
||||||
echo "}\n";
|
|
||||||
|
|
||||||
if (!empty($focus)) {
|
|
||||||
if(($pos = strpos($focus, '.')) !== false) {
|
|
||||||
//old style focus using form name - no allowed inXHTML Strict
|
|
||||||
$topelement = substr($focus, 0, $pos);
|
|
||||||
echo "addonload(function() { if(document.$topelement) document.$focus.focus(); });\n";
|
|
||||||
} else {
|
|
||||||
//focus element with given id
|
|
||||||
echo "addonload(function() { if(el = document.getElementById('$focus')) el.focus(); });\n";
|
|
||||||
}
|
|
||||||
$focus=false; // Prevent themes from adding it to body tag which breaks addonload(), MDL-10249
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "var id2suffix = {};\n";
|
|
||||||
echo "//]]>\n";
|
|
||||||
echo "</script>\n";
|
|
||||||
?>
|
?>
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
|
|
@ -2040,6 +2040,40 @@ function replace_smilies(&$text) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This code is called from help.php to inject a list of smilies into the
|
||||||
|
* emoticons help file.
|
||||||
|
*
|
||||||
|
* @return string HTML for a list of smilies.
|
||||||
|
*/
|
||||||
|
function get_emoticons_list_for_help_file(){
|
||||||
|
global $CFG, $SESSION;
|
||||||
|
if (empty($CFG->emoticons)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
require_js(array('yui_yahoo', 'yui_event'));
|
||||||
|
$items = explode('{;}', $CFG->emoticons);
|
||||||
|
$output = '<ul id="emoticonlist">';
|
||||||
|
foreach ($items as $item) {
|
||||||
|
$item = explode('{:}', $item);
|
||||||
|
$output .= '<li><img src="' . $CFG->pixpath.'/s/' . $item[1] . '.gif" alt="' .
|
||||||
|
$item[0] . '" /><code>' . $item[0] . '</code></li>';
|
||||||
|
}
|
||||||
|
$output .= '</ul>';
|
||||||
|
if (!empty($SESSION->inserttextform)) {
|
||||||
|
$formname = $SESSION->inserttextform;
|
||||||
|
$fieldname = $SESSION->inserttextfield;
|
||||||
|
} else {
|
||||||
|
$formname = 'theform';
|
||||||
|
$fieldname = 'message';
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= print_js_call('emoticons_help.init', array($formname, $fieldname, 'emoticonlist'), true);
|
||||||
|
return $output;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given plain text, makes it into HTML as nicely as possible.
|
* Given plain text, makes it into HTML as nicely as possible.
|
||||||
* May contain HTML tags already
|
* May contain HTML tags already
|
||||||
|
@ -2716,12 +2750,12 @@ function print_js_config($settings = array(), $prefix='', $return = false) {
|
||||||
// Have to treat the prefix and no prefix cases separately.
|
// Have to treat the prefix and no prefix cases separately.
|
||||||
if ($prefix) {
|
if ($prefix) {
|
||||||
// Recommended way, only one thing in global scope.
|
// Recommended way, only one thing in global scope.
|
||||||
$html .= 'var $name = ' . json_encode($settings) . "\n";
|
$html .= "var $prefix = " . json_encode($settings) . "\n";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Old fashioned way.
|
// Old fashioned way.
|
||||||
foreach ($settings as $name => $value) {
|
foreach ($settings as $name => $value) {
|
||||||
$html .= "var " . $name . " = '" . addslashes_js($value) . "'\n";
|
$html .= "var $name = '" . addslashes_js($value) . "'\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5797,9 +5831,9 @@ function editorhelpbutton(){
|
||||||
$urlparams[] = "module$i=".urlencode($item[2]);
|
$urlparams[] = "module$i=".urlencode($item[2]);
|
||||||
}
|
}
|
||||||
$titles[] = trim($item[1], ". \t");
|
$titles[] = trim($item[1], ". \t");
|
||||||
}elseif (is_string($item)){
|
} else if (is_string($item)) {
|
||||||
$urlparams[] = "button$i=".urlencode($item);
|
$urlparams[] = "button$i=".urlencode($item);
|
||||||
switch ($item){
|
switch ($item) {
|
||||||
case 'reading' :
|
case 'reading' :
|
||||||
$titles[] = get_string("helpreading");
|
$titles[] = get_string("helpreading");
|
||||||
break;
|
break;
|
||||||
|
@ -5809,13 +5843,13 @@ function editorhelpbutton(){
|
||||||
case 'questions' :
|
case 'questions' :
|
||||||
$titles[] = get_string("helpquestions");
|
$titles[] = get_string("helpquestions");
|
||||||
break;
|
break;
|
||||||
case 'emoticons' :
|
case 'emoticons2' :
|
||||||
$titles[] = get_string("helpemoticons");
|
$titles[] = get_string("helpemoticons");
|
||||||
break;
|
break;
|
||||||
case 'richtext' :
|
case 'richtext2' :
|
||||||
$titles[] = get_string('helprichtext');
|
$titles[] = get_string('helprichtext');
|
||||||
break;
|
break;
|
||||||
case 'text' :
|
case 'text2' :
|
||||||
$titles[] = get_string('helptext');
|
$titles[] = get_string('helptext');
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue