Proceso de migración de módulos de JAMES a JAMES2


Conversión del config.inc a config.xml

Se usa el config.xml modelo para hacerlo. La conversión es bastante directa. Se ignora la parte de configOption que ya no es útil. En cuanto a los implements y requires, de momento no sirven, se utilizarán en un futuro.

No es obligatorio, pero se recomienda la siguiente nomenclatura:

Conversión del eventHandler.inc a MiModulo.class.php

El eventHandler.inc de todos los módulos ha cambiado de nombre. Ahora se llama MiModulo.class.php. Sin embargo, las diferencias internas son realmente pequeñas:

Conversión de las llamadas a la API del núcleo

  1. Añadir en las páginas a las que pueda acceder el usuario la línea JSystem::InitModule(“MiModulo”)

  2. Cambiar los include_once por los correspondientes en el nuevo núcleo. En general, se sustituye:

    1. inc/dbjames.inc por core/db/dbjames.class.php

    2. inc/session-james.inc por core/system/JSystem.class.php

    3. En las que pueda acceder el usuario, incluir también core/html/HtmlInterface.class.php

  3. Ejecutar el script para ver las llamadas al núcleo antiguo que hay en el módulo e ir realizando las siguientes sustituciones.

Clase User

Ahora en lugar de crear un objeto User de la forma:

$obj = new User($id);

se hace de:

$obj =& $GLOBALS[JUGRSYSTEM]->GetUser($id);

Para acceder a información sobre el usuario se hacía

$obj->data[“name”];

ahora se hace

$obj->GetLogin(); //Mirar los métodos de la clase user para más detalle

Clase Group

Igual a la clase user :-)

Clase ConfigJames

Si queríamos acceder a configuración del sistema era:

$config = new ConfigJames();

$value = $config->GetSystemConf(“clave”, “default”);

Ahora es

$value = JSystem::GetConfig(“clave”, “default”);

Para la configuración del módulo:

$value = $config->GetModuleConf(“clave”, “default”);

Ahora es:

$value = $GLOBALS[CURRENT_MODULE]->GetConfig(“clave”, “default”);

Funciones

InitModule(“mimodulo”)

Se cambia por:

$html = new HtmlInterface(“MiModulo”);

getUser()

Se cambia por

$user =& $GLOBALS[CURRENT_USER];

que devuelve el objeto correspondiente al usuario actual, para obtener su id, sería:

$uid = $GLOBALS[CURRENT_USER]->GetId();

También es posible hacer lo mismo mediante

$user =& JSystem::GetCurrentUser();

$user->GetId();

HasPermission(“permiso”)

Ha pasado a ser

$GLOBALS[CURRENT_USER]->HasPermission(“permiso”);

getGroup()

Se cambia por

$group =& $GLOBALS[CURRENT_USER];

que devuelve el objeto correspondiente al usuario actual, para obtener su id, sería

$gid = $GLOBALS[CURRENT_USER]->GetId();

También es posible hacer lo mismo mediante

$group =& JSystem::GetCurrentGroup();

$gid = $group->GetId();

Otras

Dirección de la hoja de estilos

Antes se usaba

../../estilo/james.css // o bien

getJamesWebDir().”/estilo/james.css”.

Ahora se hace:

$html = new HtmlInterface();

$html->GetCSSPath();

include(“inc/header.inc”)

Ha pasado a ser

include(“core/html/header.inc.php”)