Tuesday, March 19, 2013

Importar producto VirtueMart mediante script PHP

En esta entrada voy a explicar de una forma sencilla como importar productos a la base de datos de virtuemart mediante un script php.

En mi web necesito crear artículos personalizados para cada usuario, que dependen de los parámetros que ellos seleccionen en un momento determinado. El código que tenemos que utilizar es el siguiente.


Con la sentencia mysqli_connect establecemos la conexión con nuestra base de datos, y dentro de la misma, con la tabal que vamos a utilizar para la creación del producto. Una cosa a tener en cuenta es que para importar un producto tenemos que modificar dos tablas, como vemos en el código: jos_virtuemart_products para la creación del producto y jos_virtuemart_product_prices donde asociamos este producto a su precio correspondiente.

En nuestro caso, necesitamos enviar una consulta (mysql_query) a la base de datos de creación de registro. Para ello hacemos uso de la sentencia INSERT INTO tabla ('campo_tabla') VALUES ('valor campo'). 

Por último, cerramos la conexión con la base de datos con el comando mysqli_close.

Aqui vemos un solo campo para el producto y el precio. Si accedéis al panel de administración de la base de dato a las tablas mencionadas anteriormente podéis comprobar que hay multitud de campos que se pueden modificar.

Wednesday, March 13, 2013

Cargar un módulo dentro de un artículo

Fuente: gnumla.com

Lo primero que tenemos que hacer es acceder a la zona de administración. Una vez allí vamos a Extensiones -> Administrador de Plugins, y buscamos en la lista el plugin "Content - Load Module". Si no está activado, lo activamos pinchando en el icono de la bolita roja con una cruz blanca, que se convertirá en una marca verde. 

Lo siguiente que tenemos que hacer es irnos a Extensiones -> Administrador de módulos. Una vez ahí editamos el módulo que queremos cargar en un artículo (pinchamos sobre el nombre del módulo), y en la caja de la izquierda llamada "Detalles", veremos una lista desplegable titulada "Posición". Seleccionamos la posición que cargaremos dentro del artículo. 

Normalmente suele ser buena idea crear una posición específica en la que irán los módulos que se cargarán en artículos, o incluso varias, ya que si, por ejemplo, seleccionamos la posición "user1", los módulos de esa posición se cargarán en ella y, simultáneamente, en el artículo, lo que en algunos casos puede dar como resultado que la página no se cargue, y en cualquier caso no suele quedar bien tener la misma información en dos sitios a la vez. Para ello os recomendamos que le echéis un vistazo al truco "crear nueva posición en el template", o si no queréis complicaros la vida y sólo queréis cargar un módulo tipo "HTML personalizado" dentro de un único artículo, podéis usar el plugin ND LoadModule. 

Con el plugin activado y el módulo listo, nos vamos al editor de artículos, y lo único que tenemos que hacer es incluir la línea
{loadposition posicion}
donde "posicion" será sustituída por la posición en la que pusimos el módulo que queremos cargar.

Forma alternativa

Podemos hacer uso del plugin Load-Module-in-Article (pinche aquí para descargar). Su funcionamiento es bastante sencillo; unicamente tenemos que poner la siguiente sentencia en el editor HTML del articulo en el que queremos insertar el módulo
{module [id]}
siendo el parámetro [id] la id del módulo. No olvidéis de activar el plugin en el Gestor de Extensiones. Este módulo también tiene algunas opciones avanzadas, que son las que siguen.

  • 'none' no edita el módulo (obviamente)
  • 'xhtml' inserta el módulo en un div
  • 'rounded' insert el módulo en multiples divs
Para hacer uso de ellos, la sentencia sería la siguiente
{module [63|rounded]}