Archive for the ‘Moodle’ Category

Desplegar la fecha desde un formato UnixTime en Oracle

martes, abril 9th, 2013

Moodle guarda, yo creo que por tema de nacimiento en un sistema operativo tipo unix, la fecha en el estandar de Unix. Este formato es numerico, de forma que se guarda un numero de segundos dentro de la base de datos.

Por lo mismo es util conocerque la transformación de la fecha a formato calendario se puede hacer de la siguiente forma

to_date('1970-01-01','YYYY-MM-DD') +  numtodsinterval(campo_que_contiene_unixtime,'SECOND') 

Cambiando el lenguaje por defecto en moodle

lunes, abril 8th, 2013

En moodle muchas veces ocurre que el renderizado de la página aparece en otro idioma. Esto es por las idiosincracias del cache de moodle o porque por defecto, en la configuraciones de lenguaje tienes configurado que moodle autodetecte el lenguaje.

La autodetección ocurre cuando el browser tiene congigurado un lenguaje primario. Dependiendo del sistema operativo que tengas o quien sea el dueño de tu empresa (trabajo en Chile, hablo español, pero mi sistema operativo por la casa matriz en que trabajo esta en inglés).

Entonces, si en el config.php de Moodle estableces

$CFG->lang='es_utf8';

(en este caso español es el lenguaje primario por defecto, pero debes tener instalado el lenguaje).
Además la autodetección del lenguaje debe estar desactivada:

moodle_lenguaje

Recuerda tambien tener dentro de la carpeta mooledata/lang/xx/core_langconfig.php (en donde xx es tu lenguaje). De esta forma el core_langconfig.php podría lucir

< ?php $this->cache['es']['core_langconfig'] = array (
  'alphabet' => 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,Ñ,O,P,Q,R,S,T,U,V,W,X,Y,Z',
  'backupnameformat' => '%Y%m%d-%H%M',
  'decsep' => ',',
  'firstdayofweek' => '1',
  'iso6391' => 'es',
  'iso6392' => 'spa',
  'labelsep' => ':',
  'listsep' => ',',
  'locale' => 'es_ES.UTF-8',
  'localewin' => 'Spanish_Spain.1252',
  'localewincharset' => 'WINDOWS-1252',
  'oldcharset' => 'ISO-8859-1',
  'parentlanguage' => '',
  'strftimedate' => '%d de %B de %Y',
  'strftimedatefullshort' => '%d/%m/%a',
  'strftimedateshort' => '%d de %B',
  'strftimedatetime' => '%d de %B de %Y, %H:%M',
  'strftimedatetimeshort' => '%d/%m/%Y %H:%M',
  'strftimedaydate' => '%A, %d de %B de %Y',
  'strftimedaydatetime' => '%A, %d de %B de %Y, %H:%M',
  'strftimedayshort' => '%A, %d %B',
  'strftimedaytime' => '%a, %H:%M',
  'strftimemonthyear' => '%B %Y',
  'strftimerecent' => '%d de %b, %H:%M',
  'strftimerecentfull' => '%a, %d de %b de %Y, %H:%M',
  'strftimetime' => '%H:%M',
  'thisdirection' => 'ltr',
  'thisdirectionvertical' => 'btt',
  'thislanguage' => 'Español - Internacional',
  'thislanguageint' => 'Spanish (International)',
  'thousandssep' => '.',
);

Si quieres encontrar los lenguajes especificados por la iso6392 revisa el siguiente link

Resolviendo «Could not find a top-level course!» en Moodle

martes, marzo 26th, 2013

En un desarrollo especifico cometi el error de borrar todos los cursos que no pertenecían a los datos que me entregaron, entre esos cursos que borre fue el curso con ID 1, que es el curso maestro de moodle. Esto hizo que apareciera el error

«Could not find a top-level course!»

El que resolvi reinsertando el curso base.

insert into [prefijo_moodle]_course (id, category, sortorder, fullname, shortname, idnumber, summary, summaryformat, format, showgrades, modinfo, newsitems, startdate, numsections, marker, maxbytes, legacyfiles, showreports, visible, visibleold, hiddensections, groupmode, groupmodeforce, defaultgroupingid, lang, theme, timecreated, timemodified, requested, restrictmodules, enablecompletion, completionstartonenrol, completionnotify)
Value
( 1, 0, 1, 'moodle', 'moodle', '', '', 0, 'site', 1, 'a:0:{}', 3, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0);

Problemas con las ñ y tildes en Oracle + PHP + Moodle

miércoles, marzo 6th, 2013

Si ya configuraste el instant client de oracle para que puedas accesar con PHP a la base de datos, y tienes problemas con las ñ o tildes, fijate si en las variables de entorno puedes ubicar la variable

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Con esto la extracción de datos a pantalla se tiene que si aparecen las ñ y tilde

ORA-24408 Error de conexion a Oracle desde Moodle

jueves, febrero 28th, 2013

En una configuracion dond participan 7 servidores moodle apuntando a la misma base de datos Oracle 11g se produjo el siguiente error

Debug info: ORA-24408: could not generate unique server group name
Error code: dbconnectionfailed
Stack trace:

line 205 of /lib/dml/oci_native_moodle_database.php: dml_connection_exception thrown
line 344 of /lib/dmllib.php: call to oci_native_moodle_database->connect()
line 476 of /lib/setup.php: call to setup_DB()
line 31 of /config.php: call to require_once()
line 31 of /index.php: call to require_once()

Esto se debe a que el nombre del host esta mal configurado o lo resuelve mal. Por lo que si editas el achivo /etc/sysconfig/network

[root@servername mnt]# more /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servername

Debe ser igual al configurado en /etc/hosts, aqui yo convenientemente introduzco el servername en primer lugar, para que sea lo primero en reconocer.

127.0.0.1   servername  localhost localhost.localdomain 
::1         servername  localhost localhost.localdomain 

Encriptando password para Moodle 2.x

miércoles, febrero 27th, 2013

Si es que debes asumir el riesgo de saltarte las API y los Webservices que están para moodle, tambien debes preocuparte del encriptamiento correcto de la password de moodle a la hora de la insercion de un usuario de autenticación manual. Tiene que ver con la generacion en MD5 más una variable presente en el config.php de moodle.

$default=MD5('default'.$CFG->passwordsaltmain);