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.
En la version 4.1.0 sacan la opcion de duplicar plantilla y la sustituyen por crear subplantilla de Joomla (plantillas hijas).
Duplicar plantilla, lo hacia es copiar los ficheros tal cual en el directorio de template, de esa plantilla.
La nueva opcion ( subplantilla) lo que hace copiar la estructura directorios en template y añaden el archivo templateDetails.xml.
En esa versión hay otro cambio bastante relevante, que es cambio la ubicacion de los ficheros css,sass y js de las plantillas pasandolos para el directorio media/templates/nombrePlantilla/, esto en principio para mi es un cambio bastante importante.
Creando una subplantilla de cassiopeia
Entró la plantilla cassiopeia y pulso crear subplantilla, no abre un popup que nos puede un nombre, yo pongo cassiopeia_minombre. A continuación reviso en el codigo que me creo y veo:
Cambios en directorio templates
Podemos ver crea un directorio en plantillas  con el nombre que le pusimos, dentro del directorio añade el fichero templateDetails.xml
Joomla por defecto trae dos plugins de recaptcha que funciona perfectamente.
Hoy me surgio el problema que un cliente los desinstalo, que si permite deinstalar, pese que no pero si se puede.
Lo que hicimos para recuperarlo , fue subir de nuevo los fichero de esos plugins directamente a la instalacion del cliente, pero no los reconoce automaticamente, para ello tenemos que instalarlos como nos indica Sergio Iglesias en 5 forma de instalar una extension, lo explica muy bien este post.
Extensiones/Gestionar/Descubrir.
Una vez pulsamos descubrir nos aparece los dos plugin recaptcha que había eliminado el cliente, ahi ya nos deja instalarlo y ya nos lo reconoce el plugin.
Virtuemart genera json para metadatos en fichero sublayout/snippets.php
Nosotros nos encontramos con el dilema que nosotros redondeamos el precio a dos decimales, aunque en el metadatos ponemos todos los digitos, esto hace que google mechants nos rechace la ficha, ya que la web pone un precio y el metadato otro.
Para solicionarlo modificamos ese fichero en nuestra plantilla, redondeando el campo de precio : product->prices['salesPrice']
El codigo lo dejamos asi:
$description = str_replace('"','\"',htmlspecialchars(strip_tags($description)));
$PrecioFinal = number_format($product->prices['salesPrice'], 2, '.', ' '); // Precio ya con descuento..
?>.....
 
    
    
    
        Solemos utilizar un modulo personalizado para poner encima del menu una alerta, así momento determinado podemos advertir o indicar alguna cosa queramos
Estos avisos utilizamos ya el color y código que nos proporcione la propia plantilla, en este caso los tiene por defecto bootstrap 3.8, la intención con este post es indicar donde esta ese modulo y como activarlo y desactivarlo.
¿Donde puedo encontrar el modulo de aviso ?
En menu extensiones , selecionamos Modulo
Luego buscamos el modulo personalizado que tiene titulo aviso.
Hoy me solicitan la instalación de un prestashop, recuerdo que hace años lo hice con un compañero, hoy me toca intentarlo yo solo, si puedo :-)
Busco información y encuentro este post en la pagina oficial de prestashop.
En principio voy instalarlo en local, en una maquina con SO debian 10 y apache, teniendo en cuenta que luego tendremos migrarlo al hosting del cliente, asi vamos anotando lo que vamos haciendo y los problemas que nos vamos encontrando.
- Descargo fichero del repositorio de Github de prestashop.
Hoy actualizando el servidor a php 8.0 , una web que tenía Joomla 3.10.2 a 3.10.6 , que tengo virtuemart 3.8.8 10472 , no me deja editar un producto de virtuemart.
Rompe en la parte administrativa con el siguiente error:
0 Missing format specifier at end of string
 Call stack
# Function Location
1 () JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:154
2 sprintf() JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:154
3 vmText::sprintf() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit_customer.php:72
4 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
5 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit_status.php:126
6 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
7 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/helpers/adminui.php:248
8 AdminUIHelper::buildTabs() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit.php:47
Os pongo pantallazo:
El objetivo de está entrada es explicar paso a paso como hacer una nueva presentación en una categoría y una nueva opción en item de menú del componente content. Como no podría ser de otra forma , va ser una web en Joomla 4. Inicialmente empezó con el vídeo que pondré continuación y está pregunta en el foro de Joomla
La intención es crear una presentación para utilizar una categoría que va ser un directorio de empresa para una web, lo voy hacer sin necesidad de utilizar ninguna extensión externa. Para poder realizar lo tendré que hacer override de mi plantilla actual, que es una copia de Cassiopedia, como explico en esta otra entrada.
En principio en ese override de la plantilla vamos utilizar del content la view de:
- category
 - categories
 
 En ella copio los fichero:
- default.php y default_items.php en directorio categories poniendo los ficheros colaborador.php y colaborador_items.php
- default.php, default_articles.php y default_children.php en directorio category poniendo el nombre los ficheros colaborador.php , colaborador_articles.php y colaborador_children.php.
Cassipeia es el nombre que le pusieron los programadores del core Joomla a la plantilla que trae por defecto Joomla 4 para el front-end de tu web en esté maravilloso CMS, es ya tradición que la Comunidad de Joomla le ponga nombres a las plantillas en cada versión:
- Joomla 1.0 -> Solarflare
 - Joomla 1.5 -> Milkyway ( pienso que traía alguna mas.. )
 - Joomla 2.5 -> Atomic ( Aunque trae dos mas Beez2 y beez5
 - Joomla 3.0 -> Protostar
 
Hasta la version 3 , hacia mis propia base de plantilla para utilizar en mis proyectos, a partir 3.5 utilice como base protostar, ahora en Joomla 4 pienso hacer lo lo mismo con Cassiopedia.
Cuando empece a utiliar PROTOSTART como base para mis proyectos, estudié un poco mas a fondo como funcionaba, lo podéis ver en este post de protostart de esta web.
Buscando información de cassiopeia, encuentro el modulo Kickstart Casiopeia, es impresionante lo que consiguio hacer con un modulo, sin afectar para nada en plantilla, espero poder utilizarlos algun día y os contaré. De momento seguiré estudiando a fondo el funcionamiento de está plantilla que será la base de mis proyectos que realice en Joomla 4.
En este post iré poniendo anotaciones, y todo aquello voy utilizando para personalizar Cassiopeia en esos y futuros proyectos web.
Hoy buscando este plugin que no veo nada similar en las extensiones de la tienda virtuermat, encuentro Studio42 que tiene un plugin que añade a content ( articulo de Joomla) un producto Virtuemart. Es plugin me parece interesante y necesario por lo que lo comprare en breves.
De momento solo os pongo el link a la cantidad cosas que tienen hechas para Virtuemart de Studio42
                        


Lee más…