}
function toHtml() {
- global $CFG, $COURSE;
+ global $CFG, $COURSE, $PAGE;
if ($this->_flagFrozen) {
return $this->getFrozenHtml();
$str .= '<object type="text/html" data="'.$editorurl.'" height="160" width="600" style="border:1px solid #000">Error</object>'; // TODO: localise, fix styles, etc.
$str .= '</div>';
- require_once($CFG->dirroot.'/repository/lib.php');
- $client_id = uniqid();
- $repojs = repository_get_client($ctx, $client_id, array('image', 'video', 'media'), '*');
-
- $str .= $repojs;
- $str .= <<<EOD
-<script type="text/javascript">
-id2clientid['$id'] = '$client_id';
-id2itemid['$id'] = '$draftitemid';
-</script>
-EOD;
-
- if ($editor->supports_repositories()) {
- $str .= <<<EOD
-<script type="text/javascript">
-//<![CDATA[
-var fileman = document.getElementById("{$id}_filemanager");
-fileman.style.visibility = "hidden";
-fileman.style.height = "0";
-//]]>
-</script>
-EOD;
+ require_once($CFG->dirroot.'/repository/lib.php');
+ $client_id = uniqid();
+ $repojs = repository_get_client($ctx, $client_id, array('image', 'video', 'media'), '*');
+
+ $str .= $repojs;
+ $str .= $PAGE->requires->data_for_js('id2clientid', Array($id, $client_id))->asap();
+ $str .= $PAGE->requires->data_for_js('id2itemid', Array($id, $draftitemid))->asap();
+
+ if ($editor->supports_repositories()) {
+ $str .= $PAGE->requires->js_function_call('hide_item', Array("{$id}_filemanager"))->asap();
}
}
--- /dev/null
+var selected_file = null;
+var rm_cb = {
+ success: function(o) {
+ if(o.responseText){
+ repository_client.files[o.responseText]--;
+ selected_file.parentNode.removeChild(selected_file);
+ }
+ }
+}
+function rm_file(id, name, context) {
+ if (confirm(filemanager.strdelete)) {
+ var trans = YAHOO.util.Connect.asyncRequest('POST',
+ moodle_cfg.wwwroot+'/repository/ws.php?action=delete&itemid='+id,
+ rm_cb,
+ 'title='+name+'&client_id='+filemanager.clientid
+ );
+ selected_file = context.parentNode;
+ }
+}
+function fp_callback(obj) {
+ var list = document.getElementById('draftfiles-'+obj.client_id);
+ var html = '<li><a href="'+obj['url']+'"><img src="'+obj['icon']+'" class="icon" /> '+obj['file']+'</a> ';
+ html += '<a href="###" onclick=\'rm_file('+obj['id']+', "'+obj['file']+'", this)\'><img src="'+filemanager.deleteicon+'" class="iconsmall" /></a>';
+ html += '</li>';
+ list.innerHTML += html;
+}
+function callpicker(el_id, client_id, itemid) {
+ var picker = document.createElement('DIV');
+ picker.id = 'file-picker-'+client_id;
+ picker.className = 'file-picker';
+ document.body.appendChild(picker);
+ var el=document.getElementById(el_id);
+ var params = {};
+ params.env = 'filemanager';
+ params.maxbytes = filemanager.maxbytes;
+ params.maxfiles = filemanager.maxfiles;
+ params.itemid = itemid;
+ params.target = el;
+ params.callback = fp_callback;
+ var fp = open_filepicker(client_id, params);
+ return false;
+}
\ No newline at end of file
}
function toHtml() {
- global $CFG, $USER, $COURSE, $OUTPUT;
+ global $CFG, $USER, $COURSE, $PAGE, $OUTPUT;
require_once("$CFG->dirroot/repository/lib.php");
$strdelete = get_string('confirmdeletefile', 'repository');
$str .= <<<EOD
<input value="$draftitemid" name="{$this->_attributes['name']}" type="hidden" />
<a href="###" id="btnadd-{$client_id}" style="display:none" class="btnaddfile" onclick="return callpicker('$id', '$client_id', '$draftitemid')">$straddfile</a>
-<script type="text/javascript">
-//<![CDATA[
-document.getElementById('btnadd-{$client_id}').style.display="inline";
-//]]>
-</script>
EOD;
+ $PAGE->requires->yui_lib('dom');
+ $PAGE->requires->js_function_call('YAHOO.util.Dom.setStyle', Array("btnadd-{$client_id}", 'display', 'inline'));
if (empty($CFG->filemanagerjsloaded)) {
- $str .= <<<EOD
-<script type="text/javascript">
-//<![CDATA[
-var selected_file = null;
-var rm_cb = {
- success: function(o) {
- if(o.responseText){
- repository_client.files[o.responseText]--;
- selected_file.parentNode.removeChild(selected_file);
- }
- }
-}
-function rm_file(id, name, context) {
- if (confirm('$strdelete')) {
- var trans = YAHOO.util.Connect.asyncRequest('POST',
- '{$CFG->httpswwwroot}/repository/ws.php?action=delete&itemid='+id,
- rm_cb,
- 'title='+name+'&client_id=$client_id'
- );
- selected_file = context.parentNode;
- }
-}
-function fp_callback(obj) {
- var list = document.getElementById('draftfiles-'+obj.client_id);
- var html = '<li><a href="'+obj['url']+'"><img src="'+obj['icon']+'" class="icon" /> '+obj['file']+'</a> ';
- html += '<a href="###" onclick=\'rm_file('+obj['id']+', "'+obj['file']+'", this)\'><img src="{$OUTPUT->old_icon_url('t/delete')}" class="iconsmall" /></a>';;
- html += '</li>';
- list.innerHTML += html;
-}
-function callpicker(el_id, client_id, itemid) {
- var picker = document.createElement('DIV');
- picker.id = 'file-picker-'+client_id;
- picker.className = 'file-picker';
- document.body.appendChild(picker);
- var el=document.getElementById(el_id);
- var params = {};
- params.env = 'filemanager';
- params.maxbytes = {$this->_options['maxbytes']};
- params.maxfiles = {$this->_options['maxfiles']};
- params.itemid = itemid;
- params.target = el;
- params.callback = fp_callback;
- var fp = open_filepicker(client_id, params);
- return false;
-}
-//]]>
-</script>
-<noscript>
-<object type="text/html" data="{$CFG->httpswwwroot}/repository/filepicker.php?action=embedded&itemid={$draftitemid}&ctx_id=$context->id" height="300" width="800" style="border:1px solid #000">Error</object>
-</noscript>
-EOD;
+ $jsvars = Array('clientid' => $client_id,
+ 'strdelete' => $strdelete,
+ 'maxbytes' => $this->_options['maxbytes'],
+ 'maxfiles' => $this->_options['maxfiles'],
+ 'deleteicon' => $OUTPUT->old_icon_url('t/delete'));
+ $str .= $PAGE->requires->data_for_js('filemanager', $jsvars)->asap();
+ $str .= $PAGE->requires->js('lib/form/filemanager.js')->asap();
$CFG->filemanagerjsloaded = true;
}
return $str;