Moodle enlazando recursos en Alfresco

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.

 

00

More Blog Entries

0 Comments