Home » Archive

Articles in the PHP Category

LMS, Moodle, PHP, Programación »

[ | 24 may 2011 | No Comment | 2.964 views | ]

En la última MoodleMoot, realizamos un taller sobre cómo Moodle no tiene porqué ser feo.

Durante el taller, presentamos entre otras técnicas, el uso de JQuery y CSS para modificar ciertos comportamientos del tema gráfico y crear una sensación de dinamismo. En concreto hicimos dos pequeños códigos:

En el header.html, añadimos la librería de JQUERY (si no está ya instalada):

<script type=”text/javascript” src=”<?php echo $CFG->themewww .’/’. current_theme() ?>/jquery-1.2.6.min.js”></script>

y posteriormente añadimos este código:

<script language=”javascript”>
$(document).ready(function() {
$(“#left-column”).click(function(){
$(“#middle-column”).fadeIn();
$(this).toggleClass(“active”); return false;
});
$(“#right-column”).click(function(){
$(“#middle-column”).fadeOut();
$(this).toggleClass(“active”); return false;
});
});
</script>

El código lo que hace es algo tan “sencillo” cómo ocultar una columna al clicar en ella. No tiene una utilidad práctica, pero permite ver la potencia de trabajar con código de programación en los temas gráficos.

El segundo código es más divertido, primero añadimos un código php en el header.html para obtener la ciudad del alumno y pintarla en la construcción del div page:

<div id=”page” <?php
echo “class=’”;
if($USER->city==”") echo “default”;
else echo $USER->city;
echo “‘”;
?>
>

Según esto, el <div id=”page”> pasaría a ser <div id=”page” class=”madrid”>, por ejemplo.

Una vez que sabemos un dato de usuario podemos hacer cambios y juegos visuales vía css, por ejemplo:

.madrid #header,
.madrid #header-home{
background-image:url(barca.jpg);
background-repeat:repeat;
height:120px;
}

Lo que hacemos con el código es pintar una imagen del Barça a todos aquellos que son del Madrid. Aparte de la pequeña broma, nos permite personalizar la apariencia dependiendo de la variable que leamos del usuario.

Quedaría más o menos así:

Con esto ya podemos ampliar un poquito más los límites de Moodle…

Factorsim, Internet, PHP, Programación, Web 2.0 »

[ | 13 ene 2010 | No Comment | 2.193 views | ]

Trabajando en 2 proyectos similares de cursos para varios clientes (uno del sector banca y otro institucional) nos encontramos con la necesidad de pasar un archivo doc a html.

Las posibilidades eran hacerlo mediante código en el servidor o que los usuarios de la aplicación enviaran directamente los archivos html.

Tamaño

El método más “cómodo” para usuarios no técnicos es guardar el archivo en formato html desde el propio word. Haciéndolo de esta forma se introduce una cantidad exagerada de tags html, unas que solo sirven para poner estilos y que se podrían poner de forma más cómoda y las que corresponden a la estructura del html están en un formato que, como no, no sigue el estandard.

Así que buscando por la red al final se optó por hacer la conversión directamente en el servidor mediante php y openoffice de la siguiente forma:

En el editor de textos de openoffice (writer) crear una macro como la que sigue:

REM  *****  BASIC  *****

Sub odttohtml (Path)
Dim Url as String
Url = convertToUrl(Path)

Set oDesk = CreateUnoService( “com.sun.star.frame.Desktop” )
Dim OpenParam(1) As New com.sun.star.beans.PropertyValue ‘Parameters to open the doc
OpenParam(0).Name=”Hidden” : OpenParam(0).Value=True
Dim Doc
Doc = oDesk.loadComponentFromURL(Url, “_blank”, 0, OpenParam())

Dim outputfile as String
outputfile = Left( Path, Len( Path ) – 3 ) + “html”

Dim SaveParam(0) As New com.sun.star.beans.PropertyValue
SaveParam(0).Name=”FilterName” : SaveParam(0).Value=”HTML (StarWriter)”

Url = convertToUrl(outputfile)
Doc.storeAsURL(Url, SaveParam() )
Doc.close( True )
End Sub

Con la función odttohtml se consigue pasar un documento doc a html con un formato “casi” estricto (algunos tags no se cierran).

Una vez guardada la macro, ya se puede invocar mediante php con el siguiente código:

shell_exec(‘soffice -headless “macro:///Standard.Module1.odttohtml(doc_file.doc)”‘);

Esto nos da como resultado un documento html bastante aceptable para poder ser usado por “humanos” y que sigue el estandard.

Drupal, Factorsim, Herramientas, Innovación, Internet, PHP, Programación, Tendencias, Web 2.0 »

[ | 13 nov 2009 | 2 Comments | 11.350 views | ]

En los premios de “Open Source CMS Award” de 2009 ha sido premiado Drupal en la categoria de Mejor PHP Open Source CMS seguido de WordPress y Joomla!.

Lista de premiados:

Ganador General:

  1. WordPress
  2. MODx
  3. SilverStripe

Open Source CMS más prometedor:

  1. ImpressCMS
  2. Pixie
  3. Pligg

Mejor PHP Open Source CMS:

  1. Drupal
  2. WordPress
  3. Joomla!

Mirando el histórico desde el 2006 se ve una progresión de Drupal que ha logrado por segundo año consecutivo ganar el premio al Mejor PHP Open Source CMS y está entre los mejores CMS.

Recientemente se ha publicado la notícia que La Casa Blanca (http://www.whitehouse.gov/) ha migrado los contenidos de su web a Drupal lo cual indica que es un CMS con la suficiente estabilidad, funcionalidad y seguridad para llevar a cabo sites tan complejos como este.

drupal-whitehouse-gov-500x500

Tanto Drupal como WordPress son los CMS que habitualmente implementamos en proyectos, por su potencia y versatilidad en el caso de Drupal y por la facilidad de uso en WordPress. Coincide que en dos semanas saldrá publicado en MOSAIC, un artículo que compara Drupal, Joomla, WordPress y Plone.

Varios ejemplos de sites que ha realizado FactorSim con Drupal son:

Las webs segmentadas por países de Roca, entre ellos Roca protugal (http://www.roca-sa.com/):

roca_sa

Una web autogestionada para Clic-Austral (http://clic-austral.com/):

clic-austral

A nosotros, esta noticia nos ha traido una nueva tarea. Probar MODx y SilverStripe para evaluar porqué han sido elegidos entre los mejores CMS del mundo.

Moodle, PHP, Programación »

[ | 14 may 2009 | One Comment | 3.755 views | ]

Al programar un sitio web en moodle nos ha surgido la necesidad de añadir un archivo de estilos (css) dependiendo de si el usuario es un estudiante y no incluirlo de lo contrario.

Para ello hay que editar uno de los archivos del tema que se utiliza, se puede editar el “header.html” o bien el “meta.php” .

El código que hay que añadir al archivo es el siguiente:

<?php

global $CFG;

global $course;

if (!is_null($course->id)) {

$context = get_context_instance(CONTEXT_COURSE, $course->id); // Course context

$student_role=array_shift(get_roles_with_capability(‘moodle/legacy:student’, CAP_ALLOW, $context));

$user_roles=get_user_roles($context);

foreach($user_roles as $value){

if($value->name==$student_role->name){

print(‘<link rel=”stylesheet” type=”text/css” href=”‘.$CFG->httpsthemewww.’/standard/student.css” />’);

break;

}

}

}

?>

Y con esta simple modificación se incluye el archivo “student.css” con los estilos especificos para los estudiantes.

e-learning, Moodle, PHP »

[ | 18 sep 2008 | One Comment | 389 views | ]

Como ya comentamos en su momento, se acerca la MoodleMoot 2008, que reunirá a cientos de desarrolladores, usuarios, profesores y curiosos de la plataforma. Un evento interesante que se celebra este año en Barcelona los días 23-24-25 de octubre de 2008.

¿Te has apuntado ya?. Si vas a asistir, dinoslo.