Joomla! Platform 1: Configuración y otros datos, JConfig y JPlatform

2013-06-05 - Categorías: PHP
Continuando con la serie de minitutoriales sobre la Plataforma Joomla, en éste post voy a empezar a despellejar y destripar poco a poco ésta joya de la informática. A fecha de hoy Joomla es el CMS más utilizado en todo el mundo y hay una comunidad muy grande que lo mantiene.
Si vamos a usar un framework PHP, nos vamos a asegurar de que la aplicación va a seguir una estructura, un orden a la hora de programar. Cada archivo, módulo, subprograma, función… va a ser claro de su padre y de su madre. Pero si usamos un framework, cualquiera que lo conozca podrá colaborar en el proyecto más pronto que tarde, porque será más legible, tendrá menos líneas de código probablemente que si lo hubieramos desarrollado desde cero. Todo ésto porque nos ahorraremos unas cuantas líneas de código.

Así que veamos pues cómo lo han hecho…

Materiales

Simplemente 3 cosas para seguir éste minitutorial:
  1. Un servidor web con PHP como XAMPP, disponible para varios Sistemas Operativos, o el Uniform Server portable y para Windows.
  2. Nuestro editor o entorno de desarrollo preferido. Como por ejemplo Eclipse, Notepad++, etc…
  3. El CMS si queremos probarlo lo tenemos en castellano en http:/www.joomlaspanish.org. Y la Joomla! Platform, yo he usado la versión 12.1, que lo tenemos en descarga en http://api.joomla.org/.
Empezando
Supongo que nos manejamos bien en PHP y con nuestro editor de código fuente, y tambien sabemos poner en marcha un servidor servidor local para nuestras pruebas. Además doy por entendido que conocemos el CMS de Joomla! lo sabemos instalar y más o menos llevamos un nivel adecuado de su manejo. Si no es así recomiendo no seguir y mirar antes éstas cosas.
Usaré para muchos de los ejemplos la clase JApplicationWeb para usar el framework, por si acaso comento que no es necesario, pero para ejecutar con un servidor web y ver en un navegador los resultados hace falta.
Antes de seguir descomprimimos el fichero de la Plataforma Joomla en el directorio donde vamos a hacer las pruebas y configuramos el servidor para acceder a él. Si queremos probar el CMS lo que ponemos en el directorio es el paquete Joomla para instalarlo., que también trae incluido una versión de la Plataforma.
JConfig y el fichero de configuraciones
En el CMS de Joomla! el fichero de configuracion de la web es /configuration.php. Cuando descomprimimos una instalación nueva, y visualizamos el nuevo Joomla! lo que vamos a ver el módulo o subprograma contenido en el directorio de instalación /installation. Dicho directorio está destinado a configurar la nueva instalación de Joomla! con una serie de formularios que nos guian paso a paso para poner todas las configuraciones, además de crear las tablas en la base de datos e introducir los datos necesarios para comenzar a usarlo.
Después de la instalación se debe de borrar el directorio /installation y se habrá creado dicho fichero /configuration.php. Simplemente tiene la clase JConfig que es un conjunto de variables. En el framework nos viene un ejemplo en /libraries/config.example.php como el siguiente:
<?php
class JConfigExample
{
public $dbtype = 'mysql';
public $host = 'localhost';
public $user = '';
public $password = '';
public $db = '';
public $dbprefix = 'jos_';
public $ftp_host = '127.0.0.1';
public $ftp_port = '21';
public $ftp_user = '';
public $ftp_pass = '';
public $ftp_root = '';
public $ftp_enable = 0;
public $tmp_path = '/tmp';
public $log_path = '/var/logs';
public $mailer = 'mail';
public $mailfrom = 'admin@localhost.home';
public $fromname = '';
public $sendmail = '/usr/sbin/sendmail';
public $smtpauth = '0';
public $smtpsecure = 'none';
public $smtpport = '25';
public $smtpuser = '';
public $smtppass = '';
public $smtphost = 'localhost';
public $debug = 0;
public $caching = '0';
public $cachetime = '900';
public $language = 'en-GB';
public $secret = null;
public $editor = 'none';
public $offset = 0;
public $lifetime = 15;
}
El ejemplo nos indica una forma de tener ordenadas las principales variables… En el siguiente ejemplo, he requerido el archivo de configuración de ejemplo que nos proporciona el framework para verlo como usaríamos uno nuestro:
<?php

// punto de entrada seguro
define('_JEXEC', 1);

require "libraries/import.php";
require "libraries/config.example.php";

class laWeb extends JApplicationWeb {
protected function doExecute()
{
$this->setBody("<html><body>");

$this->appendBody("<h1>Configuración de ejemplo</h1>");

// crea el objeto con las configuraciones
$conf = new JConfigExample();

// lista dicho objeto
foreach($conf as $nombre=>$valor)
$this->appendBody("<p><b>" . $nombre . "</b>: " . $valor . "</p>");

$this->appendBody("</body></html>");


}
}

JApplicationWeb::getInstance("laWeb")->execute();
En el punto de entrada seguro a Joomla, lo que se suele hacer es definir una variable, que en partes del CMS se busca y si no está declarada entonces termina la ejecución. Ésto se hace para evitar accesos directos por URL a ciertos archivos. Ésto es otro tema pero es de uso aconsejable.
La historia está en crear el objeto $conf declarado como un objeto de tipo JConfigExample, entonces en cualquier parte de nuestro programa podemos consultar los datos de configuración guardados en dicha variable $conf. En la práctica el CMS usa un objeto de tipo JConfig y se almacena para su uso posterior.
JPlatform, datos de la plataforma
Ésto es una clase destinada a guardar la información sobre la plataforma, versión del framework, nombre en clave y otros datos. Poniendo JPlatform::VARIABLE, podemos acceder a esos datos como en el ejemplo siguiente:
<?php
 
define('_JEXEC', 1);
require "libraries/import.php";

class laWeb extends JApplicationWeb {
protected function doExecute()
{
$this->setBody("<html><body>");
$this->appendBody("<h1>Información sobre la Plataforma Joomla!</h1>" .
"<p>Compilación: " . JPlatform:: BUILD . "</p>" .
"<p>Nombre en código: " . JPlatform:: CODE_NAME . "</p>" .
"<p>Copyright: " . JPlatform:: COPYRIGHT . "</p>" .
"<p>Texto del link: " . JPlatform:: LINK_TEXT . "</p>" .
"<p>Mantenimiento: " . JPlatform:: MAINTENANCE . "</p>" .
"<p>Producto: " . JPlatform:: PRODUCT . "</p>" .
"<p>Liberación: " . JPlatform:: RELEASE . "</p>" .
"<p>Fecha de liberación: " . JPlatform:: RELEASE_DATE . "</p>" .
"<p>Tiempo de liberación: " . JPlatform:: RELEASE_TIME . "</p>" .
"<p>Zona de tiempo de liberación: " . JPlatform:: RELEASE_TIME_ZONE . "</p>" .
"<p>Estado: " . JPlatform:: STATUS . "</p>" );

$this->appendBody("<p>Versión larga: " . JPlatform::getLongVersion() . "</p>" );
$this->appendBody("</body></html>");


}
}

JApplicationWeb::getInstance("laWeb")->execute();
Además de lo de aquí arriba también tenemos la función getShortVersion y isCompatible que devuelven una versión corta de la versión del framework que estemos usando y para comprobar si es compatible. isCompatible se usa para el CMS, para saber si es compatible el framework y el CMS.
Terminando
Los dos ejemplos anteriores los tienen en descarga aquí.

Con ésto me despido por hoy.

Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

© 2020 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.