Componentes

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.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

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.

nueva plantilla virtuemart ordes administrador

 

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.

nueva plantilla virtuemart orde administrador

 

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)
    1. #CartsDontSave = 0 // no guarde los carritos para los compradores registrados
    2. # CartsDontSaveByshoppergroup = 50 // no almacene carritos para los compradores de este grupo de compradores
    3. # 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.

 

 

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

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; ?>">
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

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 utiliza los siguiente ficheros:

  • user/edit
  • user/edit_shopper
  • user/edit_vmshopper
  • user/edit_address
  • user/edit_address_userfields
  • user/edit_address_addshipto

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:

  • Desde el Item de menu "Muestra el mantenimiento de la cuenta del cliente".
  • 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

La idea es crear un repositorio espejo en GitHub del repositorio de virtuemart que esta Subversion.Esto surge despues de ver y preguntar en este hilo del foro de Virtuemart. Nunca trabaje con SVN, soy de GIT. :-)

Lo primero que hacemos es bajarnos el repositorio SVN en local con:

git svn clone https://dev.virtuemart.net/svn/virtuemart

Esta ruta la sacamos de https://docs.virtuemart.net/tutorials/development/100-svn-download.html

OJO:
Tiene que tene instalado el paquete git-svn, si no tuvieras
sudo apt install git-svn

Entonces empieza descargar todo el repositorio y todo su historial, en este caso tarda bastante ya que es muy grande, lleva muchos años el repositorio.

Una vez terminado, una de la primeras preguntas que me hago es, donde tiene guarda la ruta del SVN que clono, ya que con "git remote" no aparece nada.

Buscando informacion en "git svn --help", encuentro:

▶ git svn info 
Path: .
URL: https://dev.virtuemart.net/svn/virtuemart/trunk/virtuemart
Repository Root: https://dev.virtuemart.net/svn/virtuemart
Repository UUID: 87cc427b-4a1e-0410-b729-b2260ec0f063
Revision: 10338
Node Kind: directory
Schedule: normal
Last Changed Author: Milbo
Last Changed Rev: 10338
Last Changed Date: 2020-07-06 11:18:18 +0200 (lun, 06 jul 2020)

Con esto es suficiente por ahora.

Creo una rama llamada svn, para tener todo igual en esa rama, luego vero como sincronizarla.

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

Con :

  • Php 7.2
  • Joomla 3.9.21
  • Virtuemar 3.8.4 10335

me da un error al intentar cambiar el estado de algunos pedidos.

[Sun Aug 30 20:08:50.604004 2020] [php7:warn] [pid 6369] [client ::1:43724] PHP Warning: strtoupper() expects parameter 1 to be string, object given in /www/Clientes/superoliva/web/libraries/src/Language/Language.php on line 314, referer: http://localhost/Clientes/superoliva/web/administrator/index.php?option=com_virtuemart&view=orders
[Sun Aug 30 20:08:50.604083 2020] [php7:warn] [pid 6369] [client ::1:43724] PHP Warning: strpos() expects parameter 1 to be string, object given in /www/Clientes/superoliva/web/libraries/src/Language/Language.php on line 361, referer: http://localhost/Clientes/superoliva/web/administrator/index.php?option=com_virtuemart&view=orders
[Sun Aug 30 20:08:50.604106 2020] [php7:error] [pid 6369] [client ::1:43724] PHP Recoverable fatal error: Object of class stdClass could not be converted to string in /www/Clientes/superoliva/web/libraries/src/Language/Language.php on line 364, referer: http://localhost/Clientes/superoliva/web/administrator/index.php?option=com_virtuemart&view=orders

 

El problema creo que solo surge en los pedido que tiene un estado creado por nosotros. ( lo texteare mas)

Buscamos cual puede ser la causa y es el fichero administrator/components/com_virtuemart/models/orderstatus.php

Donde veo con la ultima actualizacion de virtuemart cambiaron esto:

diferencias orderstatus

Si dejo la version en rojo (la anterior) , funciona perfectamente.

Bueno, creare un tema en foro de virtuemart, a ver que me comentas.

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?

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

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.