Hace unos dias lei un post antiguo de un foro de Moodle paa una
pequeña integración entre Alfresco y Moodle. Os dejo mi actualización
del post. Para que funcionase correctamente el conjunto de usuarios de
los profesores tienen los mismos nombres de usuarios en Moodle y en
Alfresco.Para esto o Moodle tira de la base de datos de usuarios de
Alfresco o se conectan los dos al mismo LDAP. Hay que hacer 5 pequeñas modificaciones:
1. Editar el archivo de idioma correspondiente:
$ vim /var/www/moodle/lang/en_utf8/resource.php $string['alfresco'] = 'Link to an alfresco resource';
2. Editar el formulario de selección de cursos para añadir el
botón de recurso de Alfresco:
$ vim /var/www/moodle/lib/form/choosecoursefile.php (this is the modified function _createElements()) function _createElements() { global $COURSE; $this->_elements = array(); $this->_elements[0] =& MoodleQuickForm::createElement('text', 'value', '', array('size'=>'62')); $this->_elements[1] =& MoodleQuickForm::createElement('button', 'popup', get_string('chooseafile', 'resource') .' ...'); //$this->_elements[2] =& MoodleQuickForm::createElement('static', 'break', '', '<BR>'); $this->_elements[3] =& MoodleQuickForm::createElement('button', 'Frescopopup', get_string('alfresco', 'resource'). ' ...'); $button =& $this->_elements[1]; if ($this->_options['courseid']!==null){ $courseid=$this->_options['courseid']; } else { $courseid=$COURSE->id; } // first find out the text field id - this is a bit hacky, is there a better way? $choose = 'id_'.str_replace(array('[', ']'), array('_', ''), $this->getElementName(0)); $url="/files/index.php?id=$courseid&choose=".$choose; if ($this->_options['options'] == 'none') { $options = 'menubar=0,location=0,scrollbars,resizable,width='. $this->_options['width'] .',height='. $this->_options['height']; }else{ $options = $this->_options['options']; } $fullscreen = 0; $buttonattributes = array('title'=>get_string("chooseafile", "resource"), 'onclick'=>"return openpopup('$url', '".$button->getName()."', '$options', $fullscreen);"); $button->updateAttributes($buttonattributes); global $USER; //Handle the alfresco button elements. $button =& $this->_elements[3]; $url=" http://school/alfresco/service/ui/myspaces?f=0&p=%2FCompany%20Home%2FUser%20Homes%2F$USER->username%2F&guest="; if ($this->_options['options'] == 'none') { $options = 'menubar=0,location=0,scrollbars,resizable,width='. $this->_options['width'] .',height='. $this->_options['height']; }else{ $options = $this->_options['options']; } $fullscreen = 0; $buttonattributes = array('title'=>get_string("alfresco", "resource"), 'onclick'=>"return openExtpopup('$url', '".$button->getName()."', '$options', $fullscreen);"); $button->updateAttributes($buttonattributes); //End of the alfresco modifications }
3. Editar algo de javascript en:
$ vim /var/www/moodle/lib/javascript.php function openExtpopup(url,name,options,fullscreen) { windowobj = window.open(url,name,options); if (fullscreen) { windowobj.moveTo(0,0); windowobj.resizeTo(screen.availWidth,screen.availHeight); } windowobj.focus(); return false; }
4. Recogiendo el link:
$ vim /var/www/moodle/mod/resource/type/repository/generic/makelink.php <?php require_once('../../../../../config.php'); print_header(); $alfresco_url = optional_param('repo_item_url', '', PARAM_RAW); $alfresco_title = optional_param('repo_item_title', '', PARAM_RAW); ?> This page should have populated the add resource form with the url to the Repository item.<br /><br /> <a href="#" Xonclick="window.close();">If this window does not close on its own, please click here.</a> <script type="text/javascript"> //<![CDATA[ opener.document.getElementById('id_reference_value').value = '<?php echo addslashes_js($alfresco_url) ?>'; opener.document.getElementById('id_name').value = '<?php echo addslashes_js($alfresco_title) ?>'; opener.focus(); window.close(); //]]> </script> <?php echo print_footer(); ?>
5. Y en el lado de Alfresco, cambiar un poquito la plantilla
de freemaker:
/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/client/myspaces_preview_panel.ftl
Cambiar la línea donde ${d.name?html} por el enlace siguiente:
<a style="padding-left:5px" class="childSpaceLink" href=" http://moodle.zylk.net/mod/resource/type/repository/generic/makelink.php?repo_item_url=http://localhost${url.context}${d.url}">${d.name?html}</a>
Y ya está. De esta manera podemos enlazar contenido desde Moodle a
través de Enlace a recuso y enlazarlo con contenido de Alfresco.