CMS

csm

CSM es el acrónimo de Content Management System, Sistema de manejo de contenido en Español.

Se considera un CMS todo software que gestiona el contenido de una pagina web dinámica, existen muchísimos y muy distintos. La mayoría son vía web, pero los hay de escritorio. Lo que hace es permitir a los administradores y creadores de la web, poder crear, editar y gestionar el contenido de su web de forma intuitiva , sin necesidad tener muchos conocimientos técnicos.

El contenido de la web normalmente se aloja en una bases de datos que es precisamente la controla el CMS, teniendo un control de roles usuarios: administradores, creadores, editores e incluso usuarios.

Aquí inicialmente vamos solo a tratar los que están programados en PHP con html, css ,javascript y alguna otra librería. Estos son los más populares: Joomla, Wordpress, Drupal y Prestashop.

Subcategorías

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

El mundo de las plantillas en Joomla es impresionante, las plantillas son las encargadas de mostrar algo de una forma u otra. En Joomla tiene muy bien separado la parte visual de la operativa, tanto en parte front-end  como en la administrativa, así es que podemos utilizar plantillas para la parte administrativa y front-end.

Saber que tiene mas importancia en nuestra web, si la plantilla o el componente, lleva años debatiendose entre cafes de desarrolladores, un ejemplo claro es esté debate abierto en Podcast de Mastermind Joomla:¿ Quién pinta en Joomla ?
:-) buenisímo

Hay un sinfín de sitios para descargar plantilla e incluso frameworks que son extensiones que nos confeccionan la plantilla de una forma más interactiva.

Algunos proveedores de plantillas y creadores frameworks:

  • Theme de ThemeForest
  • RocketTheme
  • Joomlart
  • Gantry framework
  • Helix Ultimate de Joomshaper
  • Wright v3 de Joomlashack
  • JA T3 de joomlart
  • Warp7 de Yootheme
  • Meet Gavern de Gavick

Yo personalmente los frameworks de plantillas los descarto, ya que generan código innecesario y hacen la web a veces muy pesadas.

Estos seguro ya os paso alguna vez:
Te pones a buscar plantillas o framework y encuentras alguna interensante y que te gusta, luego la instalas, te pone hacer cambios y pruebas, pero al poco o mucho tiempo te das cuenta que no es exactamente lo que buscas y da mucho trabajo cambiar las cosas, la descartas.
La rueda vuelve a empezar. vuelves a buscar plantilla para ese proyecto web.

Nosotros ya dejamos esa rueda, por ello optamos por modificar plantillas básica y sencillas , que suelen ser la menos complejas de añadir o quitar funcionalidades, de realizar cambios para adaptarlas a nuestras necesidades.

Modificar una plantilla de Joomla

Modificar una plantilla Joomla suele ser una tarea bastante sencilla. Lo primero que debemos hacer es conocer a fondo todas las posibilidades que nos da esa plantilla, opciones y configuraciones, si estas no llegan entonces con un poco de conocimiento php, html y css, nos ponemos a cambiarla y asi la ponemos a nuestro gusto.

Si te va introducir en cambiar plantillas te recomiendo principalmente la lectura de los documentos oficiales de Joomla:

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

A veces la cosas mas sencillas parecen muy compleja

El cambiar un precio a virtuemart es muy sencillo, pero virtuemart no hace que sea de forma intuitivo.

Ejemplo de cambio de precio:

1.- Tenemos un producto con un precio determinado , en este caso un ZZ que cuesta 2.19€, precio con iva incluido.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Hace mas 8 años que empecé a utilizar Joomla y lo primero que pensé fue en crear mis propios componentes.

Hoy en día hago mis pinitos como desarrollador de componentes de joomla, no soy experto, pero me voy defendiendo (ver mi github). Mis inicios fueron frustrantes, la cantidad de ficheros que hay crear para un componente se hacía una faceta compleja y desesperante. Esté es el motivo de esté articulo, conseguir una guía de lugares y métodos para crear un componente y no morir en el intento.

Anibal Sanchez
"En honor a la verdad, un componente mínimo solo necesita tener un solo archivo com_foo.php y opcionalmente un router. El resto es para seguir las prácticas del JFramework."

Realmente es muy cierto, solo haría falta un fichero. :-)

Mis primeras busquedas para desarrollar una extension en Joomla.

Empecé buscando aplicaciones que me ayudarán a crear componente de forma sencilla y las hay, me imagino que con la practica se puede hacer útiles para componentes sencillos.Algunas de esas aplicaciones y extensiones:

Hoy en día no las utilizo, porque soy un poco de los que piensa que es bueno crea la rueda varias veces antes de simplemente utilizarla :-)

 

Documentación de como crear una extensión de Joomla :

Listado sitios que me parecen interesantes y que algún momento me util para crear un componente en Joomla:

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Imaginaros queréis añadir un modulo a una extensión o componente de Joomla , pero no queréis y no debéis cambiar el código de ese componente, pues podéis hacerlo en vuestro override de la plantilla de ese componente/ extensión.

Por ejemplo nosotros queremos poner en un modulo en el formulario que trae componente contactos antes del botón de enviar ( añadir una clausula de privacidad, por ejemplo ). Pues hacemos los siguiente:

  1. Creamos un modulo tipo personalizado con el texto y le ponemos una posición única (nombre nuestra posición por ejemplo "clausula_contacto"), es decir que no se utilice en ninguna de la plantillas que tenemos instaladas.
  2. Añadimos el código en el override de ese componente en la plantilla que utilizas.

El ejemplo del código php para insertar en plantilla, sería:

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

 

Introduccion general de configuración

Una vez instalado virtuemart debes ir al CPANEL de virtuemart en parte administrativa de tu Joomla para configuración, en los apartado:

  • Tienda
  • Configuración

La configuración ya predeterminada por defecto, pocas cosas debes cambiar, eso si quieres cambiarlas fíjate en todas la opciones que tiene, ya que en cada apartado tienes varias pestañas.

 

Configuración

Debes ir la opción de cpanel de virtuemart de configuración, al hacer clic ya puede ver las siguientes pestañas.

Pestañas configuración

pestanha configuracion virtuemart

 

Configuración Tienda

cpanel configuracion tienda

Esta opción se llega pulsado en tienda en cpanel.

Aquí puede poner el nombre la tienda, que va aparecer en los pdf.

También puede indicar el importe mínimo de compra.

Las monedas que aceptas y la moneda por defecto de la tienda.

La imagen que aparece en pdf.

Tiene varios campos para meter una descripción de la tienda, otra para términos de servicio y otra informacion legal.

Metadatos

Yo todas estas opciones que están la pestaña Vendedor, realmente solo pongo Nombre del vendedor , Nombre de la tienda , imagen y asigno monedas.

El resto de campos los gestión a parte con artículos y los muestro yo.

La pestaña de Facturas/Emails es donde puede configurar los pdf que envías, pero realmente tampoco los utilizo suelo hacer overide en mi plantilla para montarlo.

Luego tiene la pestaña comprador, suelo cubrir los datos dirección,ya que son los pone como vendedor también.

Realmente despista un poco estas pestañas, pero si entiendes que el vendedor también puede ser comprador, te es mas fácil de comprender.

 

Estas son las pestañas que puedes encontrar en esta opción, que ya comente.

pestanha configuracion tienda virtuemart

 

 

Si quieres ver la documentación original puede verlo en: http://docs.virtuemart.net/manual

En configuración debemos indicar las ruta segura donde virtuemart va guardar los pdf de los pedidos, albaranes y facturas.

¿ Registro de usuarios de virtuemart o de Joomla ?

Por defecto virtuemart trae marcado que la gestion de usuarios sea realizada por virtuemart.

Hace años era lo habitual, yo creo que hoy en día con el componente  que trae joomla de GPR , es conveniente cambiar esta opción por que controle el registro de usuarios Joomla.

¿ Donde podemos cambiar control de registros de virtuemart?

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

En nuestro repositorio de GitHub puedes descargarte el mod_login_virtuemart, donde tiene la opción de cargar un menu, el que asignemos en la configuracion, este menu se muestra una vez no identificamos.

Es muy util, para mostrar en el mismo modulo cuando este registrado un menu exclusivo para los usuarios, la tipica Area privada.
Aparte tiene tres presentaciones:

  •  Enlaces: En la que solo muestra enlace Registro y mi cuenta.
  • Vertical: Muestra formulario acceso vertical,un campo debajo del otro.
  • Horizontal: Muestra formulario acceso horizontal, un campo al lado de otro.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Akeeba es una de esas extensiones que utilizo en todas mis webs, por la sencillez y eficacia, no puede faltar en ninguno de mis proyectos.

Ahora en la version v6.4.0 me genera un error al restaurar una copia.

No se si es un error de mi copia o un error de la version del componente, aunque me temo lo ultimo.

Captura de pantalla de 2019 02 27 09 48 47

 

La solucion es sustituir la linea 12  del fichero instalation/sql/site.sql por :

CREATE TABLE `#__akeeba_common` ( `key` varchar(192) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

Solucion ofrecidad por Nicolas el creador componente:

Aunque a la hora reportar el error en siguiente link, recibo una respuesta automatica diciendo que no responden, que si quiero una respuesta le mandemos un ticket ( cosa para hacerlo hay que tener una subcripción ).

Al día siguiente de enviar el error recibo una respuesta de Nicolas diciendo:

Before database restoration set:

Allow UTF8MB4 auto-detection : No
Force UTF-8 collation on tables : Yes

Como mi ingles es muy malo , me ayudo de Google y :

Antes conjunto de restauración de base de datos:

Permitir UTF8MB4 detección automática: No
Fuerza UTF-8 de colación en las tablas: Sí

En la nueva restauración que hice probé a cambiar la configuración y fue correctamente.

configuracion error 640 akeeba

MUCHÍSIMAS GRACIAS NICOLAS POR CONTESTAR.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Joomla 3.10 VirtueMart 4.0.12
El objetivo es tener claro que hace cada fichero de la vista user de virtuemart para  poder montar a nuestro en la plantilla que utilicemos en :
/templates/nuestraplantilla/html /virtuemart/user/

Overrides de views de Virtuemart

La vista user de virtuemart y la vista del carrito utilizan los siguientes ficheros:

  • edit_address: Comprueba si llegaste desde 'cart' o 'user'
  • edit_address_userfields: Crear todos los campos del formulario
  • edit_address_addshipto: Lista las direcciones que tienes creadas y te permite (editarlas, borrarlas y crear una nueva)

El enlace de 'editar' y 'nueva dirección' de edit_address_addshipto utiliza la siguiente estructura de ficheros:

  • edit.php: Cambia el titulo, crea el formulario, cargar 'edit_shopper', crea el div del boton de 'guardar' y del enlace de 'cancelar' y añade campos 'hidden'
  • edit_shopper.php: Carga 'edit_address_userfields' y añade campos 'hidden'
  • edit_address_userfields.php: Crear todos los campos del formulario

Fichero user/edit

Este fichero debería ser el que cargue primero siempre al editar cuando estamos tratando datos de usuario de virtuemart, pero no es así, ya que este fichero no se llega siempre, solo se llega:

  • A la hora de hacer registros usuarios nuevos, si lo hace Virtuemart. (al instalar virtuemart en el plugin "VM Framework Loader" viene por defecto )
  • Desde botton o link que "nueva dirección" dentro de la fichero edit_address_addshipto

Hay que tener en cuenta que el registro de un usuario nuevo se puede realizar desde un item de menu (normalmente) o desde el propio carro, desde el boton "Añadir/Editar información de facturación", lógicamente cuando no esta identificado y no se permite la compra como invitado.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Fuentes sobre como trabajar con la session de Joomla

En la documentación de Joomla encuentro el siguiente post:

¿ Cómo acceder a variables de session asignadas en Joomla desde un script externo ?¿ Cómo acceder a variables de session asignadas en Joomla desde un script externo ?

CMS 3.9 API -> SESSION

 

Marco JFactory::getSession() los envios que hace un usuario de enviar un formulario

La idea es guardar una variable en la sessión los envios de un formulario de una session. ( usuario)

En el metodo submit de nuestro modulo o componente, podemos poner:

$session = JFactory::getSession();
// Comprobamos si la session ya envio el formulario.
if (empty ($session->get('intentos'))
{
// Quiere decir que ya se mando el formulario .
$intentos = $session->get('intentos') + 1;
$session->set('intentos',$intentos);
} else {
$session->set('intentos',1);
}