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.
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
En la version Joomla 4.0.6 me da un error al cambiar algun parametro de la configuracion global y guardar me sale este error:

Despues de dar varias vueltas, creando varios ticket de soporte , haciendo pruebas el proyecto de desarrollo que tenemos en local nos funcionaba, se nos dio por preguntar en el grupo de telegram de Joomla en España, pregunte y me comentan que es un error de que no tenemos seleccionado el campo:
configuracion global > Registro >Registro Personalizado en "Prioridades de registro"
Encontre este componente de Joomla de CodingMail que permite realizar búsquedas en tu Joomla con Virtuemart con la cámara. Sin necesidad de buscar escribiendo ningún texto como el nombre del producto u otros detalles.
Supongamos que una persona encuentra una linda gorra en alguna parte. Le gusta. Ahora quiere verificar si un producto similar está disponible en su sitio web de comercio electrónico. ¿Qué él ha hecho? Solo toma su teléfono. Cargue la página 'Buscar por imagen' en su sitio web. Haga clic en el botón 'Escanear'. El video en vivo comienza a mostrarse en la pantalla. Apunta la cámara a la gorra y su sitio web intenta reconocer el artículo. Si reconoce, muestra una lista de elementos coincidentes.
Estoy deseando que me salga algun cliente quiera ponerlo en practica, la verdad impresionante!!
Revisando en la web de Jhon Marreros Guzman - DCODECMDS , lo recuerdo hace años con otra web monitoJoomla, que era todo un referente en Joomla. hacekado :-)
Como hacer modificaciones en un tema de wordpress.
La idea es hacer modificaciones en un tema de wordpres sin que no afecte al tema y así no tendremos problemas al actualizar el tema. Es la web anterior puede encontras una entrada como crear un plantilla hija y como siempre Jhon Marreros lo explica suber bien.
Como añadir analytics de forma manual en thema child
En la web Enrique J.ROS- Desarrollo en wordpress otra entrada puede ver como hacerlo de forma manual y sencillo.
Lo único que tenemos que hacer es copiar el fichero header.php del thema en el directorio del child y añadir el codigo justo antes del cierre del </ head>
Como cambiar el style.ccs por nuestro fichero css
En es misma entrada Jhon nos explica como utiliza style.css para poner el nuestro.
Tambien nos explica como utilizar el fichero style.css para poner nuestro css.
No habla del fichero functions.php, para cargar el css del tema padre
Precisamente este fichero es el tocamos en una web en la que estamos trabajando que NO nos carga el fichero style.css
Modificaciones que realizamos
function theme_enqueue_styles() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function avada_lang_setup() {
$lang = get_stylesheet_directory() . '/languages';
load_child_theme_textdomain( 'Avada', $lang );
}
add_action( 'after_setup_theme', 'avada_lang_setup' );
¿Programador CMS?
A menudo, cuando hablamos de buscar un "programador CMS", en realidad estamos buscando algo diferente. Más que un programador encargado de desarrollar un CMS desde cero, lo que realmente necesitamos es un experto en el uso y la personalización de un CMS existente. Veamos por qué:
¿Qué es un programador CMS?
Un programador CMS es aquel desarrollador especializado en la creación de sistemas de gestión de contenido desde cero. Su enfoque principal es diseñar y construir el núcleo del CMS, desarrollando sus características y funcionalidades desde cero.
¿Qué buscamos realmente?
En realidad, la mayoría de las veces estamos buscando un experto en el uso y la personalización de un CMS específico. Estos son algunos de los perfiles que podríamos necesitar:
Creativos y diseñadores: Son aquellos capaces de crear una experiencia de usuario atractiva y funcional dentro del CMS, utilizando sus herramientas de diseño y personalización.
Administradores de contenido: Responsables de gestionar y actualizar el contenido del sitio web utilizando las funcionalidades proporcionadas por el CMS. Su enfoque se centra en la creación, edición y organización del contenido.
Desarrolladores de extensiones, plugins o componentes: Estos profesionales se dedican a la creación de complementos personalizados para ampliar las funcionalidades del CMS. Su objetivo es mejorar y personalizar el CMS según las necesidades específicas del proyecto.
En resumen, aunque el término "programador CMS" puede ser confuso, en realidad estamos buscando expertos en diferentes áreas relacionadas con el uso y la personalización de un CMS existente.
Versión de seguridad VirtueMart 3.8.6 Cierre de una vulnerabilidad XSS
Publicado: 06 noviembre 2020
4N_CURZE (https://www.openbugbounty.org/researchers/4N_CURZE/) encontró un nuevo XSS. Tomó un tiempo reproducirlo, porque fue causado por el menú desplegable del fabricante, que no siempre está activado. El problema en sí fue fácil de solucionar, aunque el valor se incluyó en la lista blanca en todas partes, faltaba en la lista desplegable del fabricante.
Desde la versión anterior, se agregaron algunas características. Se implementó el deseado sistema multicart. Multicart significa para una tienda de múltiples proveedores, que hay un carrito adicional para cada proveedor. Entonces, cuando un cliente compra productos de diferentes proveedores, necesita realizar un pago para cada proveedor. Este sistema es muy interesante para mercados reales, que ofrecen productos de diferentes proveedores.
Otra buena característica nueva son las restricciones de pago / envío mediante cupones. Esto se puede utilizar para ofrecer a los clientes otros métodos de pago por teléfono, como transferencia bancaria, por ejemplo. O puede usarse para campañas de marketing como "use este cupón para obtener envío gratis".
El complemento textinput ahora se puede usar para texto obligatorio, ya que hemos introducido una verificación de caracteres requerida. iStraxx aportó el toggleCartButton.js con licencia MIT para la verificación de caracteres requerida.
StAn of RuposTel ha proporcionado una revisión útil del sistema de recaptcha VirtueMart. Ahora funciona de acuerdo con los nuevos estándares de Joomla y funciona con cualquier complemento joomla captcha. Lea más sobre esto en docs.virtuemart.net

Lee más…