Joomla

logo-joomla

Joomla es un Sistema de gestión de contenidos (en inglés Content Management System, o CMS) que permite desarrollar sitios web dinámicos e interactivos. Permite crear, modificar o eliminar contenido de un sitio web de manera sencilla a través de un Panel de Administración. Es un software de código abierto, desarrollado en PHP y liberado bajo licencia GPL. Este administrador de contenidos puede utilizarse en una PC local (en Localhost), en una Intranet o a través de Internet y requiere para su funcionamiento una base de datos creada con un gestor de bases de datos (MySQL es lo más habitual), así como de un servidor HTTP Apache.

Su nombre es una pronunciación fonética para anglófonos de la palabra swahili jumla, que significa "todos juntos" o "como un todo". Se escogió como una reflexión del compromiso del grupo de desarrolladores y la comunidad del proyecto.

Utilizando el componente que trae por defecto ( COMPONENTE NATIVO ) Joomla de leer RSS , podemos crear un link donde podamos mostrar los videos de un canal de youtube:

https://www.youtube.com/feeds/videos.xml?channel_id=XXXXXXXXXXXXXXXXXXXXXXX

Donde solo tenemos que sustituir XXXXXXXXXXXXXXXXXXXXXXX por el id del usuario del canal de you tube.

 

if(!defined('DS')){

define('DS',DIRECTORY_SEPARATOR);

}

Controller class change from JController to JControllerLegacy

//$controller = JController::getInstance('HelloWorld');

$controller = JControllerLegacy::getInstance('HelloWorld');

 

Model class change from JModel to JModelLegacy

class HelloWorldModelHelloWorld extends JModelItemLegacy

 

View Class Change from JView to JViewLegacy

//class HelloWorldViewHelloWorlds extends JView class

HelloWorldViewHelloWorlds extends JViewLegacy

class HelloWorldController extends JControllerLegacy

 

class HelloWorldModelUpdHelloWorld extends JModelFormLegacy

JRegistry::getValue() now is JRegistry::get()

//Convert sample to JRegistry with LoadJSON - Sample from Joomla 3.0 sourcecode

// $params = new JRegistry;

// $params->loadJSON($this->item->params);

// $this->item->params = $params;

$params = new JRegistry;

$params->loadString($item->params);

$item->params = $params;

 

Database function changes -

nameQuote(joomla 2.5) - quoteName(joomla 3.0)

 

link: https://ramnihor.wordpress.com/2012/10/03/migrate-joomla-extension-from-2-5-to-3-0/ 

Una de las preguntas frecuentes de clientes es:
¿Como cambiar el texto de "Leer más" en los articulos (com_content) de Joomla?

El texto de "Leer Más.. " en Joomla puede variar en cada articulo según convenga al autor del articulo, ya que es en la "opciones avanzadas" de cada articulo donde se pueden cambiar.

Los editores de Joomla nos da la opción de poner Leer Más con facilidad, simplemente pulsando en el icono leer mas que traen por defecto.

Este icono lo que hace realmente es generar el sigiente código:

<hr id="system-readmore"/>

Está facilidad puede ser a veces un problema por los errores que nos puede generar, influyendo el editor que utilicemos en la instalación Joomla, pueden producirse más o menos errores.

Nosotros utilizamos casi siempre el editor JCE , y al utilizar <<leer más >> nos produce errores igualmente, pero aun no encontramos un editor WYSIWYG por eso seguimos utilizandolo.

La cuestión es que casi todos los editores que probamos al introducir el <<leer mas>> si estamos dentro de una etiqueta, esté elimina esa etiqueta, pero si tenemos varias etiquetas anidadas entonces es cuando surge los problemas.

Con esto quiero decir, que no se puede dar a leer mas (introducir el código), cuando estamos dentro de una etiqueta, si lo hacemos y nos queda una etiqueta abierta, el editor continua perfectamente, pero puede hacernos presentaciones estrañas nuestra web.

<< Me imagino que el editor JCE y otros tiene formas de configurar para evitar esto, pero no las conozco >>

Más información sobre <hr>

Está etiqueta de html indica en:
HMTL5 : Ruptura de temática
HMTL 4.01: Representa una regla horizontal...

Ver más info en w3school

Busqué en GOOGLE este error pero no encuentro nada, debe ser por que es muy obvio.

INICIO Y QUE PROVOCA EL ERROR URL AMIGABLES EN JOOMLA

Cuando empezamos con Joomla, normalmente no solemos tocar en configuración global>>Configuracion Seo >> Motor de Busqueda de Urlś Amigable , que esta por defecto NO. Esto hace, creemos MENUS, creemos enlaces en nuestro contenido , con una url poco amigable para los buscadores.

Para recibir formulario de contacto en nuestro email debemos ir a:

Configuracion Global --> Servidores --> Configuracion email (lado derecho abajo)

configuracion

**En contraseña SMTP , es la contraseña que usas con el correo que pones en Usuario SMTP.

**El servidor de SMTP siempre es mail.xxxx.es , si tubieses un subdominio no lo utilizarias aqui porque con el dominio principal basta! 

ej. olalla.svigo.es  --> Servidor de SMTP: mail.svigo.es

 

Si tu página esta en un subdominio:

La configuracion es la misma, tanto si eligen la funcion SMTP como la de mail PHP.

-SMTP: Simple Mail Transfer Protocol, Protocolo para la transferencia simple de correo electrónico. Protocolo de red basado en texto, utilizado para el intercambio de mensajes de correo electrónico entre computadoras u otros dispositivos.

 

Muchas veces nos puede hacer falta cambiar el formulario de contacto del componente que no facilita Joomla ( Contact ).

formularioContactoNormal

Asi como la imagenes de la derecha es como se normalmente.

Recordar que es hacer overwrite de este componente en nuestra plantilla, los ficheros que encontramos Nuestrotemplate/html/com_contact/contact/default_form.php

Si en nuestra plantilla no encuentras esos ficheros, entonces... crea ovewrite de ellos.

- El cliente nos pide que no pongamos el campo asunto y que pongamos el campo telefono.

Esto ya lo explique como hacerlo en otra entrada.

- Tambien nos pide que pongamos placeholder a los campos indicando ejemplo del contenido que tiene poner.

Despues buscar informacion, encontramos:

- API 3.8 Joomla de Clases JForm:

Donde vemos que podemos añadir attributos al los campos del formulario, sin tener que tocar mucho código.

Con el método getFieldAttribute la clase que ya tenemos cargada en esa vista  ($this->form) podemos añadir un atributo el campo.

El problema surge que cuando intentamos poner placeholder, ya que layout de la libreria de joomla del filed text , no lo entiendo o no la pone...

Encontramos buscando mas informacion encontramos:

- Documentacion field text de joomla

Ahí nos damos cuenta que el atributo para el xml es 'hint' en ve placeholder

Demomento con el cambio nombre campo y css tenemos esto:

formularioJoomlaContactSinPlacerHolder

Tenemos que añadir el atributo hint, que es el que utiliza joomla cuando monta el input para poner como placeholder.

 

$this->form->setFieldAttribute('contact_name','hint','texto_placeholder');

 

Entonces cuando mostramos el campo con :

echo $this->form->getInput('contact_name');

Ya nos muestra "texto_placeholder" en el input

Resultado :

formularioJoomlaContactConPlacerHolder

Otras formas:

- jQuery añadiendo el placerholder a cada campo.

- Overwrite del xml de los campos, aunque nunca lo hice, creo que funcionaría.

Utilizando JFactory::getDBO() podemos hacer una consulta a una tabla de la base de datos Joomla.

Esto puede ser util si necesitamos algun dato de tengamos en en alguna tabla y la no nos lo proporciona $this que tengamos en ese momento.

El siguiente ejemplo lo prove en una WEB con Joomla 1.5 por lo que no se si funcionará en versiones superiores, aunque me imagino que si.

$db =& JFactory::getDBO();
$query = 'SELECT * FROM `#__nombretable` WHERE nombrecampo = "buscar";
$db->setQuery($query);
$result = $db->loadObjectList();
$cuenta = count($result);

nombretable: es el nombre de la table sin el prefijo que genera automaticamente joomla a la hora instalarlo.

nombrecampo: el nombre del campo queremos hacer comparación de busqueda..

$result es objecto con tantos registros y campos que tiene el resultado de la busqueda .

Por ello utilizo count($result); para hacer un for de busqueda de todos los resultado y el campo que me interesa...

for ($i = 0; $i <= $cuenta; $i++)
{
if ($result[$i]->position = 1)
{
$id2 = $result[0]->filename;
break;
}
}

Aunque al final no utilice este for en la web de lo provee ,pienso que es sencillo de entender que es buscar en los resultado el campo posicion que tenga valor 1 y entonces crea la variable $id2

Bueno, espero que os valga de ejemplo, a mi lo que me dio mśa problema fue poner correcta la consulta (SELECT)

A mi si que vale este ejemplo para recordar en otra ocasión que necesite conectarme y extraer un dato de algun campo de una tabla.

Crear una vista distinta de un articulo en Joomla.

Simplemente creado la vista en nuestra plantilla en html/com_content/article/nuevavista.php

Y seleccionando en la opciones del articulo :

Presentacion alternativa -> Seleccionamos la nueva vista creada.

Subcategorías