domingo, 23 de febrero de 2014
Como crear un plantilla para Joomla! 3.2.2 desde cero
sábado, 4 de febrero de 2012
Problemas comunes al activar URLs amigables en Joomla
Renombrar htaccess.txt
El primer problema que suele presentarse al Activar Motor de búsqueda para URLs amigables y Usar la reescritura URL en Joomla, es que no hacemos caso al aviso de Joomla sobre renombrar el archivo htaccess.txt a .htaccess o simplemente no nos deja el Windows.
Solución uno
Si no ves la extensión de los archivos, lo común seria ir a una ventana del explorador de Windows, presionar la tecla Alt para que nos aparezca el menú, seleccionar Herramientas y luego Opciones de carpeta. Luego hacer click en la pestaña Ver y finalmente en “Configuración avanzada” desmarcar la casilla “Ocultar las extensiones de archivo para tipos de archivo conocidos”. Después intentaríamos darle click derecho al archivo htaccess.txt y seleccionar “Cambiar nombre” (O presionar la tecla F2), intentaríamos cambiar el nombre a .htaccess y Windows nos diría “Debe escribir un nombre de archivo”. El explorador de Windows no nos dejara así que si tienes otro sistema operativo probablemente lo logres, pero si solo tienes Windows, no te preocupes que hay otras soluciones
Solución dos
Si estas en esto es porque probablemente te dediques a hacer páginas web, en ese caso puede ser que en tu computadora ya tengas otro archivo con el nombre .htaccess en otra carpeta. De ser así, simplemente cópialo y págalo donde lo ocupes, ábrelo con el Bloc de notas (Click derecho / Abrir con), bórrale el contenido y pégale el del archivo htaccess.txt que trae Joomla. No tendrás problemas para guardarlo.
Solución tres
Ya que estamos con eso del Bloc de notas, probablemente la forma más fácil y rápida es abrir el archivo htaccess.txt que trae Joomla, hacer click en Archivo / Guardar como, en la ventana “Guardar como” que se abre, escribir .htaccess en Nombre y en tipo seleccionar “Todos los archivos (*.*)”, presionar el botón Guardar y listo.
Solución cuatro
Si tienes instalado algún cliente FTP como FileZilla, puedes subir el archivo a tu servidor, renombrar el archivo y descargarlo de nuevo. Bueno esta solución puede ser un poco tediosa.
Solución cinco
Ir a Inicio / Ejecutar (o presionar la tecla Windows+R), escribir cmd y presionar Aceptar. En la consola o símbolo del sistema dirigirse a la ruta del archivo deseado, escribir lo siguiente y presionar Enter: rename htaccess.txt .htaccess
Conclusión
Estas son solo algunas soluciones, usa la que más se te acomode.
No tener cargado el módulo de rewrite en Apache
Bueno como ya explique en el post .htaccess: Invalid command 'RewriteEngine' uno de los principales problemas que se puede presentar a la hora de activar URLs amigables en Joomla es que justamente no tengamos activado el módulo de Apache para esto. Si este es tu caso, en ese post esta la solución.
Que el archivo .htaccess este corrupto o con un formato inadecuado
Otro problema que me ha tocado ver es cuando el archivo .htaccess esta corrupto. La versión correcta es esta:
##
# @package Joomla
# @copyright Copyright (C) 2005 - 2012 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##
##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
##
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
## Mod_rewrite in use.
RewriteEngine On
## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.
## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects
##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##
# RewriteBase /
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
RewriteBase está comentado
Si la ruta de los archivos físicos no está directamente relacionada con la ruta de las URL, debemos eliminar el comentario de esta linea del archvo .htaccess, para eso solo quitamos el símbolo # que esta al inicio de la misma. # RewriteBase /
RewriteBase inadecuado
En algunas ocasiones como por ejemplo si no tenemos Joomla en el directorio raíz sino en una subcarpeta, necesitamos especificar la ruta de Joomla en el archivo .htacces
Para eso, buscamos la linea: # RewriteBase /
Y la cambiamos por: RewriteBase /CarpetaJoomla
Donde CarpetaJoomla es el nombre del directorio donde tenemos los archivos de Joomla.
Options +FollowSymLinks
Algunos hostings no nos permiten hacer ciertas configuraciones como es caso de “Options +FollowSymLinks” que es requerida por mod_rewrite. El problema es que nuestro hosting ya la activo y no permite modificarlo desde el .htaccess, si es tu caso, solo comenta esta línea agregando el símbolo # al inicio de la misma.
#Options +FollowSymLinks
viernes, 3 de febrero de 2012
.htaccess: Invalid command 'RewriteEngine'
Hoy me toco que cuando quise activar el “Motor de búsqueda para URLs amigables” y “Usar la reescritura URL” en Joomla 2.5.1 pues simplemente se hiso un desastre, ya que solo obtenía el error 500 (Internal Server Error) en el navegador. Modifique el archivo .htaccess a mas no poder, le moví a Joomla algunas configuraciones, pensé que como la versión acababa de ser liberada traía errores, en fin, hice de todo hasta que se me ocurrió revisar el log de errores del Apache.
Para los que no saben dónde esta este archivo, la ruta más común para Appserv es esta: C:\AppServ\Apache2.2\logs\error.log
Y ahí estaba el error, completamente claro.
[Fri Feb 03 16:24:55 2012] [alert] [client 127.0.0.1] X:/YYYYY/ZZZZZ/Joomla_251/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration, referer: http://127.0.0.1/
Lo que estaba pasando es que no tenía cargado el módulo mod_rewrite. Activarlo es muy sencillo:
- Abrimos el archivo httpd.conf (C:\AppServ\Apache2.2\conf\httpd.conf)
- Buscamos la línea: #LoadModule rewrite_module modules/mod_rewrite.so
- Le quitamos el # para des comentar esa línea quedando de la siguiente manera: LoadModule rewrite_module modules/mod_rewrite.so
- Reiniciamos apache: Inicio / Todos los programas / Appserv / Control Server by Service / Apache Restart
Y listo!!! Con eso debería ser más que suficiente.
lunes, 14 de marzo de 2011
Submenús siempre visibles en Joomla 1.6
La mayoría de los menús que tenemos que realizar son simple ítems de menú y ya, pero de vez en cuando nos vamos a topar con la necesidad de crear submenús, en Joomla es fácil de lograr pero hay algunos pequeños detalles que no son tan obvios como el hecho de que los submenús no son siempre visibles.
No importa si hemos hecho que nuestro submenú aparezca y desaparezca con CSS y DISPLAY:NONE para la pseudo-clase HOVER, en ciertas paginas (como la página principal por ejemplo) los submenús no son visibles pero ¿por qué? La respuesta es sencilla, en esta parte Joomla no ha generado el código para el submenú, es decir, el submenú todavía no existe, por eso DISPLAY:BLOCK nunca funcionara.
Si deseas que tus submenús siempre estén visibles (y por visible me refiero a que el submenú exista y no que no lo podamos ver con display:none) hay que hacer lo siguiente:
- En el administrador de Joomla ir a Extensiones/Gestor de módulos
- Hacer click sobre Menú principal (o el menú que deseemos)
- A la derecha, en opciones básicas en “mostrar elementos del Menú secundario” seleccionar si
- Guardar
Para aquellos que no utilicen CSS para mostrar y ocultar el submenú con HOVER, sabrán más fácil a que me refiero.
sábado, 12 de marzo de 2011
Como crear una plantilla para Joomla 1.6
Lo primero es crear una carpeta con el nombre de la plantilla (en este ejemplo el nombre es jplan_ PlantillaPrueba). Dentro de esta carpeta debemos de crear un archivo llamado templateDetails.xml (siempre debemos de usar este nombre) con un contenido más o menos como el siguiente (adecuándolo a las necesidades de cada quien):
En el lugar donde ubiquen la etiqueta jdoc de tipo component (<jdoc:include type="component" />) es donde se desplegaran los artículos que publiquemos. Las etiquetas jdoc de tipo modules (<jdoc:include type="modules" name="position-0" />) sirven para establecer las posiciones donde queramos desplegar diferentes modulos en la página. Si se fijan el atributo NAME corresponde con los POSITION del archivo templateDetails.xml