Componentes
Un Componente también conocida como extensiones, es un programa que insertamos dentro de nuestro Joomla. Sólo puede haber un componente activo por página. Son los elementos más complejos que podemos instalar en Joomla.
Por lo general los componentes tienen dos partes bien diferenciadas la parte BackEnd y otra FrontEnd. En la Administrativa (BackEND) podemos ver sus configuración y más acciones administrativas
Los componentes son las partes software de nuestro portal, que le dan la funcionalidad básica al mismo.
Si recibes un email de tu web que en el asunto "Error con su forma de pago paypal en su tienda online" y en el body del email pone:
"Hola,
Error con su forma de pago paypal en su tienda Online. Los detalles están logueados en el archivo paypal.2.log.php
El equipo de VirtueMart"
No te asustes, es un error que se produjo en Pay Pal, en el archivo que indica, podras ver que tipo error fue.
Ahora voy tratar el siguiente error os indico que le apareció a varios clientes que les llevamos el mantenimiento web.
"ERROR checkPaypalIps: Error with REMOTE IP ADDRESS "
The remote address of the script posting to this notify script does not match a valid PayPal IP address
Si a ti, te aparece otro error no dudes en ponerte en contacto con nosotros y te lo estudiamos.
La intención con este post es ir anotando las errores que vamos encontrando para ello vamos diferencias cuando lo tenemos instalado en joomla 3.10.11 o en joomla 4.2.3, ya que hay errores diferentes en ambos.
Virtuemart 4.0.6.10690
- No encuentra en productos con la Ñ, en las versiones anteriores si lo hacía.
Busque cual era el error y encontré que en la clase de producto /administrator/components/com_virtuemart/models/product.php en la linea 454 tenía un filtro de string con el siguiente código:
$keyword = vRequest::filter(html_entity_decode($keyword, ENT_QUOTES, "UTF-8"),FILTER_SANITIZE_FULL_SPECIAL_CHARS,FILTER_FLAG_ENCODE_LOW);
Si lo sustituimos por uno menos estricto, por este:
$keyword = vRequest::filter(html_entity_decode($keyword, ENT_QUOTES, "UTF-8"),FILTER_SANITIZE_SPECIAL_CHARS,FILTER_FLAG_ENCODE_LOW);
Pues funciona , perfectamente.
El caso es que cuando fui ver si le podía mandar un issue a los creadores, me doy cuenta que en las nuevas versiones ya lo resolvieron, y lo cambiaron muchos mas ficheros, no me diera cuenta que fallaban también.
Llegué tarde :-)
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.. ?>.....
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:
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
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!!
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
Esto es una traduccion del post de virtuemart de Release VirtueMart 3.8.8
Publicado: 29 de enero de 2021
Aquí hay algunas palabras del líder de VirtueMart (Max Milbers):
"Estos son tiempos revueltos. Por un lado, la vida cambió por completo para la mayoría de los miembros, ofreciendo nuevas oportunidades. En mi caso, actualmente estoy muy ocupado con los problemas de bloqueo. Literalmente, conseguir una simple solucion de un gran problema que requiere mucho tiempo. La política divide a las personas y los negocios. Recibí preguntas indirectas, preguntando si VirtueMart va a tomar medidas con respecto a su 'uso político correcto'.
Cuando me uní a VirtueMart, mi objetivo era crear un sistema de tienda gratuita para la gente. VirtueMart es un sistema de código abierto gratuito para cualquier persona. Ningún miembro de la comunidad puede controlar lo que vendes con él. No es nuestra responsabilidad. Personalmente creo en la buena voluntad de las personas y que nadie debería juzgar a los demás sin andar con sus zapatos por un tiempo. Nosotros, la comunidad VirtueMart, tenemos miembros en todo el mundo. ¡Mantengámoslo de esa manera! "
Ahora volvamos a VirtueMart. Ya intentamos hace un año crear una nueva plantilla de administración. Esta vez, nuestra miembro del equipo, Valerie Isaksen de alatak.net, rompió los obstáculos y encendió un nuevo fuego para la nueva plantilla de administrador. La plantilla anterior se fusionará más tarde con la nueva plantilla y se proporcionará como estilo o tema (no será exactamente el mismo). La nueva plantilla de administración se proporciona actualmente como plantilla de backend. Los actualizadores deben usar nuestro paquete (use el gran botón azul de descarga) para obtener la nueva plantilla de administración. Puede instalar el paquete sobre su instalación actual. Garantiza que también obtenga los últimos tcpdf y vmbeez. Pero también puede extraerlo e instalar vmadmin.zip. De esta forma se asegura que los cambios en la plantilla de backend no interfieran con ninguna instalación productiva.
Diseño de plantilla de interfaz de administrador actualizado
Hay una nueva plantilla de administrador disponible para pruebas que mejora la apariencia y usabilidad de dispositivos móviles y de escritorio para administradores de tiendas.
Los iconos modernos se utilizan para representar funciones clave y dar a la interfaz una apariencia más limpia.
Los comentarios nos dicen que las características principales y la flexibilidad de configuración siguen siendo un aspecto central de por qué VirtueMart es una excelente opción para el comercio electrónico de Joomla.
Por lo tanto, esta es una actualización de la interfaz de usuario de la plantilla y no un rediseño completo de las páginas de administración. Los propietarios de tiendas seguirán encontrando la información y las configuraciones de su negocio en el mismo lugar.
Se ha modificado ligeramente el aspecto de una pequeña cantidad de pantallas de configuración mediante el uso de iconos y proporcionan una alineación más consistente de características / nombres de campo con entrada / selección.
Reflejos
- Barra lateral
- Funcionalidad de alternancia de apariencia más limpia.
- Está completamente oculto y disponible mediante la alternancia de diapositivas o superposiciones en todas las vistas, lo que brinda más espacio para mostrar la información.
- Móvil / Tableta:
- Las pantallas de lista para la mayoría de las funciones de administración de VM ahora se ajustan de manera efectiva.
- Las selecciones de funciones (filtro / búsqueda) se muestran correctamente.
- La alineación del nombre del campo con la selección / entrada facilita la visualización en el escritorio y mejora significativamente la interfaz de usuario en dispositivos móviles / tabletas.
- General
- Uso general mejorado de iconos.
- Selecciones de pestañas más limpias para configuraciones de varias páginas.
- Los selectores simples de radio sí / no ahora se alinean con el aspecto de la interfaz de usuario de Joomla.
- Visualización y carga de imágenes: pequeñas mejoras en el cambio de diseño de productos / categorías / fabricantes y medios.
Nuevas funciones, mejoras, correcciones
Mejorado o nuevo
- Actualización de pago de Skrill
- La tienda eliminada es una función fuera de línea. En su lugar, se agregó un enlace que muestra mejores posibilidades para hacer eso (usando joomla o modo catálogo).
- Restricción de envío / pago mediante Cupón
- Nota de pedido adicional. Solo una simple nota para pedidos para uso interno.
- La lista de pedidos busca ahora también la nota_cliente y la nota_pedido
- La lista de pedidos ahora también se puede filtrar por proveedor
- Nuevas opciones de almacenamiento de carros (actualmente por configuración oculta)
- #CartsDontSave = 0 // no guarde los carritos para los compradores registrados
- # CartsDontSaveByshoppergroup = 50 // no almacene carritos para los compradores de este grupo de compradores
- # CartsDontSaveCartFields = 1 // no guarde los campos del carrito cuando almacene un carrito para un comprador
- La función de modelo de pedido getOrder carga ahora todos los datos del estado de un pedido (interesante para los templaters)
- Filtro de categoría múltiple para la lista de productos en el backend. Deshabilitado de forma predeterminada, actualmente puede habilitarlo mediante la configuración oculta AllowMultipleCatsFilter = 1
Nuevo para desarrolladores
- nuevo patrón si se da una matriz, y necesitamos el primer elemento, entonces usamos ahora restablecer y no el elemento 0.
- Nuevo activador en storeProductCustomfields, para campos personalizados eliminados.
- Se agregó la función "andWhere" al parámetro de la función de carga VmTableXarray, se agregó la función loadOrderingCurrentItem
- VmTable orden limpiado, función agregada loadOrderingCurrentItem
- Compatibilidad con PHP 8, aún pueden ocurrir errores.
Arreglos
- Pedido de productos
- Todas las advertencias desagradables como "Advertencia: Parámetro 1 para plgVmShipmentWeight_countries :: plgVmOnSelectCheckShipment () se espera que sea una referencia, valor dado en /var/www/vhosts/..../libraries/joomla/event/event.php en la línea 70"
- el tiempo para los cupones es a partir de ahora no "AHORA" sino "timestamp_utc"
- Arreglo para 1054 Columna desconocida 'Array' in 'donde cláusula después de la actualización a 3.8.6 http://forum.virtuemart.net/index.php?topic=145855.30 Arreglo para ordenar productos si se muestran productos de subcategorías
- Los enlaces de detalles del pedido en el correo electrónico consideran el caso, que ni el enlace de invitado ni el registrado están establecidos
- Característica que los usuarios registrados deben activar ellos mismos
- getUserInfoInUserFields obteniendo los datos de usuario correctos de Joomla por ID dado
- Mensaje de error de carrito faltante en js
- Falta '' para VMPATH_ROOT constante en el script del instalador
- Se eliminó \ n inútil en la descripción de la tienda de muestras
- getVendorAddressFields cuando un administrador y un proveedor editan a otro proveedor.
- El modelo de categoría llama a clearCategoryRelatedCaches
- idioma del complemento de envío en la vista de pedidos
- agregado elegidoDropDowns en el carrito de compras predeterminado
- pequeña solución para cartlayout personalizado
- Años de copyright actualizados, variables renombradas y otros menores
- Se corrigieron muchas advertencias del tipo "Desaprobado: el parámetro obligatorio $ isSite sigue al parámetro opcional $ selectedCategories en /var/www/vhosts/.../administrator/components/com_virtuemart/helpers/shopfunctions.php en la línea 652". Entonces ya estamos preparados para PHP8.
Lo primero que es saber que no se tiene instalar absolutamente ningún plugin y componente, es simplemente un override de la plantilla de virtuemart de orders en los ficheros:
- html/com_virtuemart/orders/detail.php
- html/com_virtuemart/orders/details_item.php
En fichero de detail añadimos:
<input type="hidden" name="task" value="add"/>
<input type="hidden" name="option" value="com_virtuemart">
<input type="hidden" name="view" value="cart">
<input type="hidden" name="Itemid" value="101">
</form>
En fichero de details_items.php añadimos esta input ocultos:
<input type="hidden" name="virtuemart_product_id[]" value="<?php echo $item->virtuemart_product_id; ?>">
<input type="hidden" name="quantity[]" value="<?php echo $qtt; ?>">
Lee más…