CMS
Nos enfocaremos en los CMS más populares programados en PHP, como Joomla, Wordpress, Drupal y Prestashop, que utilizan HTML, CSS, JavaScript y PHP con alguna otras bibliotecas.
Si buscas un programador de cms te puedo ayudar esta entrada.
El template xsl de VCARD es el que se utiliza para mostrar las entradas de SOBI PRO de una categoria.
Publico este fichero por el problema que me surgió al crear una plantilla.
También lo podeís descargar en Google Drive
<?xml version="1.0" encoding="UTF-8"?>
<!--
@version: $Id: vcard.xsl 3924 2013-12-17 08:01:19Z Radek Suski $
@package: SobiPro Component for Joomla!
@author
Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH
Email: sobi[at]sigsiu.net
Url: http://www.Sigsiu.NET
@copyright Copyright (C) 2006 - 2013 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved.
@license GNU/GPL Version 3
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3
as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3.
See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
$Date: 2013-12-17 09:01:19 +0100 (Tue, 17 Dec 2013) $
$Revision: 3924 $
$Author: Radek Suski $
File location: components/com_sobipro/usr/templates/default2/common/vcard.xsl $
Esta es la vista de una categoria...
Tengo que hacer la carga e los campos 3 veces
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" encoding="UTF-8"/>
<xsl:template name="vcard">
<xsl:variable name="Clase">
<xsl:text>sobi-vcard</xsl:text>
</xsl:variable>
<!-- No podemos definir una variable dentro de un bucle o if por eso lo pongo al principio -->
<xsl:variable name="OpcDestacado">
<xsl:for-each select="fields/*">
<xsl:if test="(@id) = 38">
<xsl:if test="string-length(options/option/@selected)">
<xsl:text> Destacado</xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<!-- Generamos la clase sobi-vcard Destacado -->
<div>
<xsl:attribute name="class">
<xsl:value-of select='concat($Clase,$OpcDestacado)'/>
</xsl:attribute>
<div class="sobi-columna1">
<xsl:for-each select="fields/*">
<!-- Aqui filtramos solo id 23 que es imagen logo -->
<xsl:if test="(@id) = 23">
<xsl:if test="string-length(data/@thumbnail)">
<img>
<xsl:attribute name="src">
<xsl:value-of select="data/@thumbnail"/>;
</xsl:attribute>
</img>
</xsl:if>
<xsl:if test="string-length(data/@thumbnail) = 0">
<img>
<xsl:attribute name="src">
<xsl:text>/images/imagenes/iconos/no_photo-thumb.gif</xsl:text>
</xsl:attribute>
</img>
</xsl:if>
</xsl:if>
</xsl:for-each>
</div>
<div class="sobi-columna2">
<div class="Sobi-Categoria-Titulo">
<h2>
<a href="/{url}">
<xsl:value-of select="name" />
<xsl:call-template name="status">
<xsl:with-param name="entry" select="." />
</xsl:call-template>
</a>
</h2>
</div>
<xsl:for-each select="fields/*">
<xsl:if test="(@id) != 23 and string-length(@itemprop) = 0">
<div class="{@css_class}">;
<xsl:if test="string-length(@itemprop)">
<xsl:attribute name="itemprop"><xsl:value-of select="@itemprop"/></xsl:attribute>
</xsl:if>
<xsl:if test="count(data/*) or string-length(data)">
<xsl:if test="label/@show = 1">
<strong><xsl:value-of select="label" />: </strong>
</xsl:if>
</xsl:if>
<xsl:choose>
<xsl:when test="count(data/*)">
<xsl:if test="(@id) != 38">
<xsl:copy-of select="data/*"/>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="string-length(data)">
<xsl:value-of select="data" disable-output-escaping="yes" />
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="count(data/*) or string-length(data)">
<xsl:if test="string-length(@suffix)">
<xsl:text> </xsl:text>
<xsl:value-of select="@suffix"/>
</xsl:if>
</xsl:if>
</div>
</xsl:if>
<!-- Aqui meto los campos que tenga propiedad con span -->
<xsl:if test="(@id) != 23 and string-length(@itemprop) != 0">
<span>
<xsl:attribute name="itemprop"><xsl:value-of select="@itemprop"/></xsl:attribute>
<xsl:attribute name="class"><xsl:value-of select="@itemprop"/></xsl:attribute>
<xsl:value-of select="data"/>
</span>
</xsl:if>
</xsl:for-each>
<div class="SPBottones">
<!-- La url del link de tiene que se decoficada ya que sino da un error -->
<div class="link-button SPPresupuestos">
<a>
<xsl:attribute name="href">
<xsl:text>index.php?option=com_contact&view=contact&id=1&Itemid=116</xsl:text>
</xsl:attribute>
<xsl:text>Solicita Presupuesto</xsl:text>
</a>
</div>
<div class="link-button SPLeerMas">
<a href="/{url}">
<xsl:text>Leer Más</xsl:text>
</a>
</div>
</div>
</div>
<!-- Cierra columna 2 -->
<div class="separador"></div>
</div>
</xsl:template>
</xsl:stylesheet>
PROBLEMA QUE NOS SURGE A LA HORA DE MONTAR ESTÁ WEB.
Datos a tener en cuenta:
Versión de JOOMLA:3.2+
Versión de SOBI PRO: 1.1.6
Plantilla SOBI PRO : Creación Propia
Template xsl: Fichero Vcard.xls ( modificado )
¿ Explicación del PROBLEMA con SOBIPRO ?
Tenemos como página principal una categoria que llamamos DESTACADOS, que son la entradas en SOBI PRO que seleccionamos y queremos mostrar de INICIO.
SOBI PRO nos permite crear campos en cualquier momento para nuestro DIRECTORIO y nos permite ordenarlos para que aparezcan el las vistas en el orden que le indiquemos.
En SOBI PRO hay varias versiones que utilizamos ,en las ultimas 1.1.8 que utilizamos para Joomla 3+ no encontrabamos donde ordenar estos campos.
Para ayudar aquellos que les pueda pasar lo mismo os ponemos recorte pantallazos donde podeís observar que se hace en listado campos realizando un filtrado por posiciones, donde nos permite cambiarlo.
Si lo cambiamos a posiciones nos crea una columna más para poder realizar el cambio de orden.
Nuevo módulo de Búsqueda corrigiendo error y mejorando el módulo nativo (mod_search)
Partiendo del módulo mod_search creamos uno nuevo solucionando el problema de que encontramos en módulo nativo, que al hacer una busqueda el resultado lo muestra pero no asociado a ningún tipo de item, es decir no busca en los menus un item de menu donde tengamos la lista de los resuldados de búsqueda, que es lo creo que debería hacer.
Cuando instalamos el "Editor JCE" en nuestro Joomla, por defecto trae desactivado el poder añadir <iframe> en nuestros articulos.
Este componentes (" Editor " ) tiene una gestión perfiles, la cual es muy util para poder tener varias configuraciones distintas a la hora utilizar el editor, por ejemplo:
- No permitir iframe a editores y permitir a administracion .
Para poder configurar si permitimos el IFRAME en JCE debemos entrar en el :
Perfil>>Parametros Plugin >> Soporte Multimedia...
PANTALLAZO DE CONFIGURACIÓN JOOMLA 2.5 DE IFRAME JCE :
Quitar el Link de Powered by Sigsiu.NET del pie pagina de la vista categoria , vista detalle del componentes.
En la version anterior (SOBI2) erá las tedioso, pero en SOBI PRO los creadores nos dieron la opción en el back-end del componenti, por lo que no necesitas modificar codigo.
En Configuracion del Sistema >> Miscelaneo
Este va ser el primero de los muchos articulos que escribiremos de SOPI PRO ya que la curva de aprendizaje como usuario es bastante larga.
La instalación de SOBI PRO es igual que otra extensión de Joomla ,nos descargamos el paquete de instalación (aquí). Podemos encontrar varias opciones , ahí vuestra decisión, la que pone full trae datos por defecto.
Nosotros utilizamos la versión 1.0.7 limpia.
También necesitaremos el paquete del idioma que queremos si es distinto del ingles, por lo que podemos descargarlo también ya (aquí).
Instalación del componente.
El paquete de la extensión (componente) SOBI PRO lo subimos con el gestor de extensiones y lo instalamos.
Luego nos pide comprobar la compatibilidad del sistema, una vez lo realiza y si todo es correcto, el componente esta instalado.
Está comprobación de la compatibilidad del sistema podremos realizarlo cuando queramos ya que es una opción en la parte administrativa de la extensión.
El componente al instalarse no aparece en el menu de componentes de nuestro Joomla, ya que igual que alguna extensiones crea un item menu aparte.
Instalación del Idioma.
Aquí notamos lo particular que es este componente, ya que para poder instalar el paquete de idioma tenemos que hacerlo desde el back-end del componente, ya trae uno gestor extensiones propio (Aplication Manager).
Configuracion de "Articulos Principales e Introducidos" en view de Blog de Joomla
La configuracion de view de blog Joomla se puede realizar en tres sitios distintos, en el item de menu, en el articulo y en la categoria de ese articulo, las tres son validad, pero el rango de valor es orden anterior.
En las opciones que podemos encontrar en view de blog de Joomla que tenemos del componente content son las siguientes entre otras:
Articulos Principales: Que los articulos que presentamos al principio, como si fueran los destacados.
Introducción de Articulos: Son los articulos que vamos a mostrar en las columnas.
Columnas: El numero de columnas para introducir el numero de articulos que pusimos en el campo anterior.
Hay que tener en cuenta que la plantilla que utilizas debe soportar las opciones que tiene por defecto el componente content.
- Olalla
- Componentes
Joomla - Formulario de Contacto
Joomla trae por defecto el componente de contacto, en el cual podemos crear contactos, clasificarlos por categorias y incluso crear campo para añadir.
Este componente tiene bastante opciones y cosas interesantes con mucho potencial, pero ahora nos vamos centrar en el formulario que podemos mostrar en el Front-End. Un formulario que simplemente configurando en el componente sa se muestra.
Recuerda que el campo de email en un contacto debe tener datos sino el formulario de contacto no se mostrara. No tiene porque mostrarlo, ya que sin él la web no te puede mandar un email diciendo que cubrieron el formulario.. :-)
Los campos que muestrar el formulario son:
- Nombre
- Correo electronico
- Asunto
- Mensaje.
Estos campo por defecto suelen ser suficientes para muchas webs, pero a veces queremos tener mas campos.
Desde la version 3.5 Joomla permite crear campos a mayores en la mayoria de los componentes nativos, por ello en el componente contactos también.
De momento la pruebas que realice creando algún campo en este componente no fui capaz de añadirlos al formulario de forma interactiva.
Necesidad de crear un campo a mayores en el formulario.
Seguramente muchas veces os hizo falta añadir campos a mayores al formulario de contacto que trae joomla por defecto, como por ejemlo : Pedir el telefono a la hora cubrir el formulario.
Hay varios sitios interesantes donde nos indican como hacerlos si tenemos conocimiento de php y html, donde podremos hacer overwrite del componente contactos y ahi empezar desarrollar nuestra imaginacion:
- Añadir mas campos ( Consultoria Innova)
- Añadir campo de telefono a formulario (Foro de Joomla )
- ...
Los ficheros que debemos utilizar ( recuerda hacer overwrite en tu plantilla )
- components\com_contact\views\contact\tmpl\default_form.php ( overwrite plantilla )
- components\com_contact\models\forms\contact.xml ( overwrite plantilla )
- language\es-Es\es-ES.com_contact ( No lo tocaría nunca)
- components\com_contact\controllers\contact.php ( No lo tocaría nunca)
Otras maneras añadir mas campos:
Utilizando extensiones , modulos o plugins de terceros. Os recomiendo que provéis nuestro modulo formulario, desarrollado por nosotros y gratuito, el cual consiste un modulo sencillo con algunos campos mas.
Este modulo lo tenemos operativo en varias web en produccion, donde lo tenemos testeado y con filtros de spam. Cualquier duda o necesidad en este modulo (formulario) comentalo y veremos lo que puede hacer.