Programando Joomla de 1.0.x a 1.5.x

:: Al inicio de cada archivo:
En 1.0.x:
defined( '_VALID_MOS' ) or die( 'Restricted access' );
En 1.5.x:
defined('_JEXEC') or die('Restricted access');

:: Joomla 1.5 defines:

JPATH_BASE = /var/www/html
JPATH_ROOT = /var/www/html
JPATH_SITE = /var/www/html
JPATH_CONFIGURATION = /var/www/html
JPATH_INSTALLATION = /var/www/html/installation
JPATH_ADMINISTRATOR = /var/www/html/administrator
JPATH_XMLRPC = /var/www/html/xmlrpc
JPATH_LIBRARIES = /var/www/html/libraries
JPATH_PLUGINS = /var/www/html/plugins
JPATH_CACHE = /var/www/html/cache
JPATH_THEMES = /var/www/html/templates
DS = /
JPATH_COMPONENT = /var/www/html/components/com_user
JPATH_COMPONENT_SITE = /var/www/html/components/com_user
JPATH_COMPONENT_ADMINISTRATOR = /var/www/html/administrator/components/com_user

:: Para los includes/requires:
En 1.5.x:
require_once( JPATH_ROOT .DS.'components'.DS.'com_social_network'.DS.'social_network.class.php' );
ó
jimport( 'joomla.application.component.view');
Donde “joomla.application.component.view” importará el archivo: “/libraries/joomla/application/component/view.php”.

:: Manejo de URLs:
1.0.x:
$mosConfig_live_site

1.5.x (forma 1):
JURI::root() Si estás en el BackEnd NO te devolverá http://elsitio.com/administrator/. Ya incluye el / al final de la URL y NO es necesario declarar como global a JURI.
JURI::base() Si estás en el BackEnd SÍ te devolverá http://elsitio.com/administrator/. Ya incluye el / al final de la URL y NO es necesario declarar como global a JURI.

1.5.x (forma 2):
$uri =& JFactory::getURI(); $uri devuelve un objeto con todas las partes que conforman la URL actual.

:: Variables post, get, request, etc.:

1.0.x:
$idReferred = mosGetparam( $_REQUEST, "idReferred", 62 );
1.5.x:
$idReferred = JRequest::getVar( "idReferred", 62 );

:: Usuarios:
1.0.x:
global $my;
1.5.x:
$my =& JFactory::getUser(); Devuelve un objeto representando al usuario actual.

Para dar acceso sólo para usuarios registrados (FrontEnd):
$my->id or JError::raiseError( 403, JText::_('ALERTNOTAUTH') );

:: En Admin components:
Para dar acceso sólo para usuarios registrados (FrontEnd):
1.0.x:
// ensure user has access to this function
if (!$acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' )) {
mosRedirect( 'index2.php', _NOT_AUTH );
}

1.0.15:
/*
* Make sure the user is authorized to view this page
*/
$user = & JFactory::getUser();
if (!$user->authorize( 'administration', 'edit', 'components', 'all' )) {
$mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
}

:: Base de datos:
1.0.x:
global $database;
1.5.x:
$db = &JFactory::getDBO();
Si se piensa usar a lo largo de todo un componente/módulo manejado por una class, pondríamos en el constructor de la class algo así:
$this->_db = &JFactory::getDBO();
(De hecho muchas class ya traen el atributo $_db)

Adicionalmente: Joomla! 1.5 introduce el concepto de manejadores de dase de datos que permitirán conseguir el objeto de las base de datos para diferentes fuentes de base de datos. El siguiente ejemplo describe de forma clara y práctica este concepto. Asumimos que hemos modificado el archivo de configuración para contener los datos de acceso a una segunda Base de Datos MySQL (ver más adelante el tema del archivo de configuración):
$config = JFactory::getConfig();
$options = array(
'host' => $config->getValue('mydns_host'),
'user' => $config->getValue('mydns_user'),
'password' => $config->getValue('mydns_password'),
'database' => $config->getValue('mydns_db'),
'prefix' => $config->getValue('mydns_dbprefix'),
'select' => true );
$myDB = JDatabase::getInstance( $options );

:: Quitar el logo de joomla de la template de admin (1.5.x [khepri]):

En el archivo:
administrator/templates/khepri/css/general.css
en la línea 89: cambiar el nombre de la imagen j_header_left.png por j_header_left_rtl.png
En la línea 101: cambiar el padding 250px por 25px

4 comentarios:

  1. Hola Ignacio,

    Durante los últimos 2 años aproximadamente se han popularizado las plantillas con soporte para dispositivos móviles. No es el Joomla como tal el que ofrece o no esta capacidad sino más bien la plantilla específica que se le ponga al sitio la que puede o no soportar la visualización en dispositivos móviles. Otro punto a tomarse en cuenta es el hecho de que cada vez más los navegadores de los dispositivos móviles presentan las páginas exactamente como lo haría un navegador de PC de escritorio, el punto dirimente suele ser más bien la disposición por el espacio reducido en un celular por ejemplo.

    Dónde encontrar plantillas de joomla que soporten esquemas particulares para dispositivos móviles? yo suelo usar mucho las plantillas de un proveedor llamado EquipoCohete[1] en inglés, sin embargo no son los únicos, hay muchos más que aparecerán googleando.

    [1]: Evité el nombre exacto por varias razones, especialmente comerciales.

  2. Estimado, hace varios años utilicé Joomla por necesidad, fué genial. Me gustaría saber si ahora se adapta a formato movil, sea Android, black berry, etc. Eso se logra con HTML5 y CSS??? Felicitaciones por los aportes. Gracias.

  3. Gracias por tu comentario y que bueno que te haya sido útil!

  4. Muy buenos tus comentarios, me han ayudado mucho en la conversion de componentes.
    te felicito. se ve que manejas muy bien el tema.
    un saludo
    gracias

No se admiten más comentarios