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.






