|
Primera parte sobre como crear un template para Joomla!
A diferencia de otros tutoriales que explican como crear un template para Joomla!, en este, no sera necesario ningún programa del tipo Dreamweaver, ni nada por el estilo, tan solo un editor de textos y conocimiento básico de HTML, CSS y PHP (no mucho). La estructura básica de un template de Joomla! consta de: - 'Index.php' el cual contendrá el HTML y las directivas PHP;
- 'TemplateDetails.xml', esencial para la instalación del template y su reconocimiento en la administración;
- Una carpeta llamada 'css' que contendrá el estilo en cascada 'template_css.css';
- Una carpeta llamada 'images' que contendrá las imágenes utilizadas para el diseño de la plantilla;
- 'Template_thumbnail.png', una pequeña imagen que funcionará como previsualizacion del template en la administración.
Por lo tanto un template en Joomla! tendrá la siguiente apariencia:
Todos las plantillas van alojadas en la carpeta 'templates', dentro del directorio raiz de Joomla!. En este caso la plantilla será de tres columnas, header y footer [ Ver Layout ] [ Descargar ]. No es la esencia de esta guia explicar cómo crear el layout, existen varios sitios para descargarlos y ahorrar trabajo. Creación del index.php. Con tan solo saber como se desempeñan tres funciones PHP y dos variables ya se puede empezar con la creación del index...
Funciones: - mosShowHead(): Esta función al invocarla muestra la información metatag, el titulo y favicon. Se lo usa entre <head> y </head>.
- mosMainBody(): Se utiliza para mostrar el cuerpo principal del documento. Se lo usa en el body del documento.
- mosLoadModules (): Carga los módulos en una posición predispuesta y en un estilo determinado. Para eso posee dos parámetros (posición , estilo). El primero dirá que módulos cargar (left, right, user1, user2, user3, top, etc). El segundo parámetro dirá en que forma cargarlos: 1= horizontal (cada modulo se cargan en celdas en una única fila), 0= normal (cada modulo se cargan en celdas en una única columna), -1= raw (los módulos se cargan en bruto y sin título), -2= XHTML (muestra a los módulos en divs), -3= extra divs (similar al anterior, pero con más divs). De esta forma si tenemos mosLoadModules (left, -2) cargará los módulos predispuestos en la posición 'left' y los mostrará en diferentes divs. Otro ejemplo. Si tenemos mosLoadModules (user2, 1) cargamos los módulos predispuestos en la posición 'user2' y los mostrará de manera horizontal.
Variables:
- $mosConfig_live_site: Esta variable contiene la URL del sitio en cuestión. Asi por ejemplo la variable $mosConfig_live_site para este sitio es http://www.leandrodonofrio.com. Se la utilizará para cargar el CSS.
- $mosConfig_sitename: Contiene el nombre del sitio en cuestión. Asi la variable $mosConfig_sitename para este sitio es Leandono´s Blog.
Con esto ya podemos empezar. El paquete de descarga del layout posee dos archivos, 'index.html' y 'main.css'. Al estilo en cascada lo renombramos 'template_css.css' y lo guardamos en la carpeta 'css' anteriormente creada. En tanto que a index.html lo abrimos con nuestro editor de textos. Veremos un código similar a:
HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Fixed Width CSS Layouts - 3 Column - fw-34-3-col </title> <link rel="stylesheet" type="text/css" href="main.css" /> </head> <!-- Begin Wrapper --> <!-- Begin Header --> This is the Header </div> <!-- End Header --> <!-- Begin Left Column --> Left Column </div> <!-- End Left Column --> <!-- Begin Content Column --> <a href="#">Download this CSS Layout </a> </div> <!-- End Content Column --> <!-- Begin Right Column --> Right Column </div> <!-- End Right Column --> <!-- Begin Footer --> This is the Footer </div> <!-- End Footer --> </div> <!-- End Wrapper --> </body> </html>
Lo que haremos será copiar todo el código y pegarlo en un nuevo archivo. Este último lo guardamos como 'index.php' y lo metemos dentro de la carpeta de nuestro template. Lo siguiente será insertar las funciones PHP y las variables para cargar el contenido a nuestra plantilla. Para eso abrimos el archivo recién guardado. Empezaremos por la cabecera del documento: PHP <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!--Incorporo el Título, Info Meta, y Favicon--> <?php mosShowHead(); ?> <!--Obtengo mi estilo en cascada--> <link href="<?php echo $mosConfig_live_site;?>/templates/nombre_del_template/css/template_css.css" rel="stylesheet" type="text/css" /> </head>
Lo primero que se hizo fue mostrar toda la información metatag, titulo del documento y el favicon. Esto se hizo con la directiva <? php mosShowHead(); ?>. Por otro lado utilizando la variable <?php echo $mosConfig_live_site;?> se cargo el estilo en cascada del documento guardada en la carpeta 'css' dentro del directorio de nuestro template (nombre_del_template). Esta carpeta se ubicará en el directorio 'templates' cuando hallamos instalado la plantilla. Siguiendo con el header del documento lo que haremos será mostrar el nombre del sitio y linkearlo: PHP <div id="header"> <!-- Muestro el nombre del sitio --> <h1><a href= "<?php echo $mosConfig_live_site; ?>"><?php echo $mosConfig_sitename; ?></a></h1> </div> Con <?php echo $mosConfig_sitename; ?> estamos mostrando el nombre del sitio. A su vez se utiliza <?php echo $mosConfig_live_site; ?> para poder crear un link. Lo siguiente será cargar y mostrar el contenido principal y los módulos: PHP <!-- Begin Left Column --> <div id="leftcolumn"> <!-- Cargo los modulos left a la izquierda --> <?php mosLoadModules ( 'left',-2);?> </div> <!-- Begin Content Column --> <div id="content"> <!-- Cargo el contenido principal --> <?php mosMainBody(); ?> </div> <!-- End Content Column --> <!-- Begin Right Column --> <div id="rightcolumn"> <!-- Cargo los modulos right a la derecha --> <?php mosLoadModules ( 'right',-2);?> </div> <!-- End Right Column -->
La lectura del documento es fácil. En el div 'leftcolumn' cargaremos los módulos predispuestos en la posición 'left' (<?php mosLoadModules ( 'left',-2);?>). Estos serán mostrados en diferentes divs. Lo mismo sucede con el div 'rightcolumn' y los módulos en posición 'right' (<?php mosLoadModules ( 'right',-2);?>). Mientras tanto, el contenido principal del documento se muestra en la columna central a través de <?php mosMainBody(); ?>. Finalmente nos queda el footer. Aqui podemos poner lo que queramos o incluir los datos predispuestos en 'footer.php'. Para eso: PHP <!-- Begin Footer --> <div id="footer"> <!-- Cargo el footer --> <?php include_once('includes/footer.php'); ?> </div>
Editando el archivo 'footer.php' (dentro del directorio 'includes', en la carpeta raiz de Joomla!) podremos cambiar la información a mostrar. Y asi terminamos el 'index.php', el resultado final es: PHP <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!--Incorporo el Título, Info Meta, y Favicon--> <?php mosShowHead(); ?> <!--Obtengo mi estilo en cascada--> <link href="<?php echo $mosConfig_live_site;?>/templates/nombre_del_template/css/template_css.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- Begin Wrapper --> <div id="wrapper"> <div id="header"> <!-- Muestro el nombre del sitio --> <h1><a href= "<?php echo $mosConfig_live_site; ?>"><?php echo $mosConfig_sitename; ?></a></h1> </div> <!-- Begin Left Column --> <div id="leftcolumn"> <!-- Cargo los modulos left a la izquierda --> <?php mosLoadModules ( 'left',-2);?> </div> <!-- Begin Content Column --> <div id="content"> <!-- Cargo el contenido principal --> <?php mosMainBody(); ?> </div> <!-- End Content Column --> <!-- Begin Right Column --> <div id="rightcolumn"> <!-- Cargo los modulos right a la derecha --> <?php mosLoadModules ( 'right',-2);?> </div> <!-- End Right Column --> <!-- Begin Footer --> <div id="footer"> <!-- Cargo el footer --> <?php include_once('includes/footer.php'); ?> </div> </div> </body> </html>
Descargar ejemplo . En la segunda parte explicaré un poco sobre los atributos CSS más importantes de este CMS. |
Salu2.
Desde la Instalacion en Local hasta la configuracion y construccion de plantillas.
Espero que os entretengais
Un abrazo
Gracias Leo.
Pero no sabes de alguna manera para evitar tantas tablas del core?
Así sea hackeandolo no importa pero esas tablas son lo unico que no me gusta de joomla y me hace vacilar
Cualquier material o algo así que tengas a bien recomendarnos te lo agradecería también en el alma tio
Por otro lado te comento que para la versión 1.5 de Joomla! está pensado dejar un poco atras la incorporación del contenido a través de tablas. Saludos
Y felicidades por tu blog te tengo marcado entre los que leo a diario
Excelente tutorial !!
Mviene de mucha utilidad yo solo modifique una plantilla bastante que ya parece otra pero nunca hice una desde 0 asi que muchas gracias !!
Solo una consulta como puedo modificar la resolucion a la que se adapta mi plantilla (es de 1024x768) lo que pasa es que quiero dejarla a 1640 x 1200
Saludos y muchas gracias
estoy tratando de migrar mi sitio de Blogspot a Joomla y la verdad que sin tener casi conocimientos me hiciste todo mas facil.
Saludos a todos y sigamos adelante!!
Sigue adelante, leyendo se aprende. Y practicando mucho mas.
Se usa para meter todas los contenidos o diseño en una caja, o contenedor. El diseño con CSS es ir contruyendo cajas, en este caso el wrapper las contiene a todas.
saludos
como puedo incorporar a un menu normal de joomla mi propio menu desplegable. te agradeceria un monton please
y abajito muestra esto: Archivo de desinstalación no encontrado:
C:\\xampp\\htdocs\\joomla\\media\\install_47225f50350a3\\cea_templates\\ No entiendo
Hago todo lo que dice el tutorial, pero cuando voy a subir el comprimido joomla me dice que: ERROR: No encuentro el archivo de configuración XML en el paquete.
y abajito muestra esto: Archivo de desinstalación no encontrado:
C:\\xampp\\htdocs\\joomla\\media\\install_47225f50350a3\\cea_templ ates\\ No entiendo
// desabilita php secure
Muchas gracias Leandro. Gran aportación.
Muy didactico y la verdad es bueno que publiques estos tutoriales para poder ganarno la vida, jeje.
Saludos sr profesor chuack
TENGO UNA PREGUNTA.¿COMO HAGO PARA QUE MI PAGINA SE AJUSTE AUTOMATICA A CUALQUIER RESOLUCION DE PANTALA, O COMO PUEDO CENTRARLA PARA QUE EN RESOLUCION 1024*768 Y SUPERIORES SE VEA CENTRADA. GRACIAS.
lo que pasa que no se mucho sobre esto pero me gustaria saber, y me pierdo en donde colocar lo que indicas arriba.
Gracias
necesito saber como agregar una imagen en Right Column y colocarle un link de modo q pueda acceder con solo hacer clic en la imagen. porfa necesito ayuda
Que pasa si no quiero poner contenido ni a la izq ni a la derecha, SOLO el contenido principal, puedo borrar las etiquetas donde esta la especificacion del contenido a izq y a derecha y solo dejar el " " ??
muchisimas gracias de antemano
te hago la sgte consulta : mi navegador me tira el sgte herror
Fatal error: Call to undefined function mosShowHead() in C:\AppServ\www\plantilla\index.php on line 6
ya he instalado una version mas nueva del php la 5.2.3. podrias decir el pq del error, desde ya muchas gracias..
fausto
archivo de desconfiguracion no encontrado....
q onda?
ayudaaa
bye
y me pasa al cargar el ejemplo......
bye
Gracias alguien que me pueda responder...saludos!!
El conocimiento no es un delito!