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.
Cuando creamos nuestras plantillas lo que pretendemos es poder cambiar de plantilla sin tocar nada más. por eso necesitamos hacer plantillas para Joomla 3.X con unas posiciones estándares, basándonos en las plantillas que trae por defecto Joomla 3.X y sus posiciones.
Explicación basica de lo que son plantillas (temas) de Joomla
Las posiciones de las plantillas en Joomla son donde van los módulos y el contenido de nuestra web, donde se definen estas posiciones son la propia plantilla, hasta el momento, JOOMLA no tiene un estándar para nombra esas posiciones, por lo que cada creador de plantillas puede nombrar está posiciones como quiere.
Lo que pretendemos con esté articulo es crear un estándar de posiciones para nosotros, para todas las plantillas que creemos para Joomla 3.*, basándonos en las posiciones que utiliza alguna de las plantillas que trae por defecto Joomla.
Con esto conseguimos que si en algún momento queremos probar el funcionamiento de esta plantillas estándares podemos hacerlo sin cambiar las posiciones en cada modulo.
Ver cuales son las posiciones que tienes creado en tu plantilla.
La opción de ver forma interactiva las posiciones de una plantilla , una previsualización. Joomla por defecto lo trae desactivado, se comenta los foros oficiales que es por seguridad. Si quieres activar la previsualización en el "Gestor Plantilla" en opciones puedes activarlo. Recuerda desactivarlo después de utilizarlo.

Un poco mas afondo sobre plantillas.
Las plantillas son realmente los que manda a la hora mostrar y visualizar nuestra web, las posiciones de tu plantilla principalmente se utilizan en los módulos, ya que en estos es donde se les indica en que posición se va mostrar cada uno ellos.
Hay unas posición que son fijas para todas las plantilla que son component y message.
El código que se utiliza en index.php de tu plantilla para mostrarlas son:
<jdoc:include type="message" /><jdoc:include type="component" />
Esta posiciones son fijas, ya que no se pueden definir por el usuario.
Estilos de posiciones de módulos
Los estilos de posiciones de módulos se define normalmente index.php, pero se puede cambiar por el usuario, estos estilos son los que puede hacer que vista de un modulo en una misma posición con un estilo distinto , se vea distinto.
Si existe un estándar predeterminado por Joomla, los cuales es interesante conocer y saber su utilidad.
No encuentro información detallada de estos estilos por lo que poco a poco iré ampliando.
Las plantillas que trae joomla por defecto la beez5 y la protostar tiene varios tipos estilos de posiciones, unas son ya estándar de Joomla y otras no.
TIPOS DE POSICIONES ESTANDAR DE JOOMLA
- none ( Que no pone titulo modulo)
- xhtml (En la opción de modulos tenemos marcado mostrar titulo, pues lo muestra)
- table ( Crea una tabla html con el contenido del modulo)
En las plantillas que trae joomla hay varios tipos más, que ya son particulares de ellas. TIPOS DE POSICIONES DE LAS PLANTILLAS POR DEFECTO DE JOOMLA
BEEZ5
- style beezDivision
- sytle beezTabs
PROTOSTAR
- well
Estos estilos y algunos más de sistema podremos seleccionarlos en el "Gestor de Módulos", pero no es necesario, ya que la plantilla tendrá uno por defecto para esa posición que se define en el fichero index.php de la plantilla.
A los creadores de plantillas, normalmente definen los suyos en la plantilla en el fichero /template/nombretemplate/html/modules.php , donde crean una función para cada estilo llamada modCrome_NOMBRESTYLE
En este link de la web documentación oficial de joomla puedes ver más información sobre esto.
El permitir realizar comentarios de los productos que vendemos en una tienda on-line , es algo fundamentarl y no iba ser menos virtuemart, el componente más famosos de joomla para convertir tu web (joomla) en una tienda on-line.
Virtuamart ya trae por defecto el permitir a nuestro usuarios que opinen sobre los productos que tenemos en nuestra tienda on-line.
Ahora nos surge la gestión de estos comentarios, ya que en la configuración de virtuemart nos deja activar y desactivar el permitir comentarios o no.
La cuestión es donde, como y que podemos hacer con esos comentarios, en esto virtuemart se queda corto y realmente no facilita mucho la gestion de esos comentarios, por ello nos encontramos con el problema que no podemos ver que productos son los que tiene comentarios.
<CAPA SISTEMA>
Os recomiendo que veaís este otro articulo por si os ahora tiempo. http://ayuda.svigo.es/index.php/programacion-2/cms/joomla/componentes/virtuemart/139-anadir-distritos-o-estados-de-paises-a-virtuemart
</CAPA SISTEMA>
Añadir provincias o estados de forma manual en virtuemart
Antes de ponernos manos a la obra, os recomiento que tengáis claro las provincias o estados que váis añadir, teniendo por lo menos enumerado de alguna forma esos estados.
Una forma sencilla, sería consultando en la wikipedia los estados del país en cuestión y poniendo por orden de "Código INSEE".
Ejemplo :
Estados de Francia
Ordenar por código INSEE pinchando en fecha que hay a lado de "Código INSEE"

Una vez tenemos claro las provincias que vamos añadir, ya que hay algunas que no nos interesa meter, ya que puede que no tengamos definido la forma de envío para esa provincia o estado, vamos a la parte administrativa de nuestra web.
Está pregunta se la hace tanto amaters como gente profesional que lleva ya muchos proyectos creandos a la hora crear un Web, aunque estos ultimos estoy seguro que ya lo tiene bastante definido.
Aquí no voy decir cual es mejor o peor, porque es algo bastante subjetivo y ademas pienso que realmente cada uno de los CMS que conozco tienen sus virtudes y sus deficiencias.
Lo que pretendo con está entrada es mostrar las virtudes y deficiencias de cada CMS que utilizo, con la premisa de que tiene que open source.
¿ Como saber si una web utiliza un CMS ?
Cuando queremos crear una WEB , los que hacemos habitualmente es buscar internet posibles paginas web que nos guste, y nos preguntamos como la hizo, que utilizo.
Por ellos ya hay varias aplicación en Online que simplemente con URL nos informa de una forma organizada que utiliza, indicando lenguaje de programación, CMS, libreria y mucha más información.
Aplicaciones que nos da información de una WEB:
¿ Que CMS open source hay ?
La verdad que hay muchísimos, en la web Opensourcecms.com , puede encontra muchísimos y cada días se añaden más.
Aquí simplemente vamos a nombrar los que conocemos y hemos trabajado con ellos alguna vez.
- Joomla
- Wordpress
- Drupal
- Pretashop
El archivador de multimedia de virtuemart
La opción de virtuemart para gestionar las imagenes de la tienda online le llama : "Archivo de medios"

En está seccion del administrador de virtuemart podrás encontrar todas las imagenes que hayamos subido a la tienda on line (productos, fabricantes, ...)
Hoy nos encontramos con el problema (error en virtuemart) que uno de nuestros clientes nos comenta que en su tienda creada con virtuemart version 3.0.6 no puede imprimir pedido desde back-end de su tienda, saliendo el siguiente error

Hay que tener en cuenta que que este error a la hora imprimir pedido ( icono imprimir) solo sucede a la hora de intentar imprimir un pedido cuando hay alguien logueado en la parte front-end.
Por lo que consideramos que es un error de la version que utilizamos, por falta de tiempo y presupuesto vamos a esperar que las nuevas versiones lo solucionen.
Cuando montamos una tienda, inicialmente siempre lo enfocamos a uno o varios países, por ello revisamos esos países y vemos la organización territorial de cada país en los que va vender nuestra tienda online.
Normalmente pensamos que virtuemart ya no facilita esa organización, los estados o provincias... de cada país, pero no siempre es así.
El motivos, es que es algo muy particular de cada país, por lo que hay alguno metidos, pero eso no implica que estén bien o que no falte algunos.
En principio hablamos para una tienda ONLINE está creada con virtuemart version 3.0.6 o 3.0.8 , que son las que en esto momentos tenemos instaladas y gestionamos el mantenimiento web.
En estas versiones encontramos varios países que no tienen los estados:
Portugal, Francia, Belgica, Noruega ....
Incluso encuentro otros, como Reino Unido aunque se considerá un país es el conjunto de varios, que tambien son considerado países ( Inglaterra, Escocia, Gales ... ) , por ello es algo particular de cada uno el organizar estado y provincias de alguna manera.
Nosotros pretendemos organizar y tener una forma sencilla estos estado para poder añadirlos a las tiendas online que no necesiten, estándo siempre adaptadas a nuestros clientes y sus necesidades , pero quiere decir que sea lo correcto.
Creamos un repositorio en GITHUB con la tabla de los países con sus estados , distritos o provincias que les falta.
ANTES DE AÑADIR LOS REGISTROS A LA TABLA VIRTUEMART STATES
Hay par de puntos que debemos hacer y comprobar antes de añadir los estado que os facilitamos en el repositorio Git.
CAMBIAR PREFIJO POR EL DE NUESTRA INSTALACIÓN.
Para realizar esto, simplemente abrimos el fichero prefijo_virtuemart_states.sql
con un editor texto plano que utilicemos.
Buscamos las lineas:
CREATE TABLE IF NOT EXISTS `prefijo_virtuemart_states` (
INSERT INTO `prefijo_virtuemart_states` (
y sustituimos prefijo por el de nuestra instalación.
COMPROBAR LOS ID DE LOS PAÍSES QUE VAMOS AÑADIENDO.
El fichero que os facilito, añade los estado de los siguiente países:
- Portugal
...
Por ello debemos revisar si el ID de ese país es el mismo del que le ponemos nosotros en el fichero, deberái de ser, pero nunca se sabe.
ID DE PORTUGAL: 171
<CAPA SISTEMA>
Os comento que de momento no probamos a añadir esos campo automaticamente, pero lo haremos y ya continuaremos con con este post.
<CAPA SISTEMA>
CREAR ESTADO / PROVINCIAS DE OTROS PAISES A MANO
Desde la parte administrativa de nuestra web, podemos crear a mano los estados de países, es relativamente fácil.
Pero nos encontramos un par de quebraderos de cabeza con dos campos que virtuemart no obliga meter.
codigo estado(2) -> Normalmente son letras
codigo estado(3)-> Normalmente son Numeros...
No se muy bien que es lo que pretende virtuemart con esos codigo, y que poner.
¡¡ Mandame el listado y os preparo un instrucción SQL para añadirlo automáticamente. !!
La modificación y la maquetación de los pdf que generamos en los pedidos, albaranes y facturas de Vituemart, son bastante complejos y no es una tarea fácil.
Aunque el componente virtuemart nos ofrece en el menù >>Tienda una forma bastante interactiva de modificar los pdf que genera, aunque con bastantes limitaciones.
Un modulo nativo de los más utilizados por nosotros, por la facilidad que nos permite añadir contenido.
Incluso podemos añadir instrucciones ejecucción de plugin, que nos hacer que este modulo sea mucho más vestatil.
Nosotros no somo partidarios de instalar muchos modulos de terceros, somos más partidarios de reutilizar modulos nativos, incluso copiarlos para añadirles más caracteristicas.
Normalmente es muy fácil poder duplicar un modulo, pero en este caso el mod_custom nos trajo alguna complicación.
Por ello analizamos a fondo el funcionamiento interno de este modulo, el uso a nivel de usuario hay ya mucha información en la red.
[PENDIENTE]CARGAR LINK DE AYUDA MODULOS PERSONALIZADOS.
CÓDIGO DEL MODULO COSTUM
Realmente este modulo no tiene mucho que explicar.
Tiene los siguiente fichero y carpetas:
- mod_custom.php
- mod_custom.xml
- DIRECTORIO: tmpl
El directorio tmpl, es donde podemos encontrar la vista por default, que podemos realizar overwrite para nuestra plantilla.
Lo más curioso y lo que nos hace que no podemos copiar el modulo y cambiarle el nombre y poder modificar el funcionamiento de este, es que este modulo en la parte administrativa carga una seccion llamada "Salida Personalizada" y no esta indicada en los fichero del código del modulo.
Esto es debido que la extension "Gestor de modulo" tal como conocemos en la parte administrativa , es un componente de la parte administrativa ( com_module), y es esté componente el que añade la sección del modulo custom ( "Salida Personalizada" ) por lo que si queremos que la añada en otro modulo tendriamos que cambiar el código del "Gestor de modulos" ,algo por lo que nosotros no estamos de acuerdo ,ya pertenece para nosotros al nucleo del Joomla.
Ficheros de com_module donde realiza la carga sección "Salida Personalizada"
com_module/views/module/edit.php
$hasContent = empty($this->item->module) || $this->item->module == 'custom' || $this->item->module == 'mod_custom';
/* Lineas adelante pone el siguiente código donde inserta la secciónd de "Salida Personaliza "*/
<?php if ($hasContent) : ?>
<div class="col main-section">
<fieldset class="adminform">
<legend><?php echo JText::_('COM_MODULES_CUSTOM_OUTPUT'); ?></legend>
<ul class="adminformlist">
<li><?php echo $this->form->getLabel('content'); ?>
<div class="clr"></div>
<?php echo $this->form->getInput('content'); ?></li>
</ul>
</fieldset>
</div>
<?php endif; ?>
Con esto nos obliga buscar otra solución para cuando queramos cambiar el funcionamiento o el uso del mod_custom
BUSQUEDA DE MODULOS EXTERNOS SIMILARES.
Antes ponernos a idear soluciones para lo que pretendemos hacer, nos ponemos a buscar otro modulos que sean similares.
Modulo Custom Advanzado: Este modulo simplemente utiliza la creación de campos texto, lo descarto ...
Ad Single Article: Este modulo es muy simple, lo que hace es añadir el contenido de un articulo dentro del modulo, por lo que podemos ponerlo en las posición que le indiquemos.( Muy util)...
