Open IT Experts for Enterprise

Moodle enlazando recursos en Alfresco

Cesar Capillas
Cesar Capillas

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:

Moodle enlazando recursos en Alfresco

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.

Más entradas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *