Tag Archives: virtuemart

Desplegar fotos en la búsqueda de Virtuemart

4 Feb

Es posible desplegar imágenes en los resultados de búsqueda de Virtuemart.

Para ello, en el archivo plugins\search\virtuemart.search.php , en donde se hace la búsqueda agregamos “,p.product_thumb_image AS thumb,”  en :

SELECT DISTINCT p.product_id, p.product_name as title,
FROM_UNIXTIME( p.cdate, ‘%Y-%m-%d %H:%i:%s’ ) AS created,
p.product_s_desc AS text, p.product_thumb_image AS thumb,

Luego, para mostrar el thumb, en COMPONENTS\COM_SEARCH\views\SEARCH\ tmpl\ default_results.php (o mejor aún en el template que estemos usando /templates/mitemplate/html/com_search/search/default_results.php – si no existe copiamos el archivo y lo modificamos -); agregamos en el lugar que queramos mostrar la imagen las líneas:

php:

if ($result->thumb != NULL && $result->thumb != “”) {

echo ‘<img src = “http://www.misitio.com/components/com_virtuemart/shop_image/product/&#8217;.$result->thumb.’ ” />’;

}

Tomado de: http://forum.joomla.org/viewtopic.php?p=2204510

Menu Items en Virtuemart

27 Feb

Virtuemart presenta algunos problemas cuando tenemos varios items de menú que despliegan una determinada categoría de Virtuemart. A veces aparecen módulos que no corresponden, y el módulo de breadcrumbs de Joomla! no funciona correctamente.

Para solucionar estos problemas, puede editarse el archivo ps_session.php dentro de administrator\components\com_virtuemart\classes y sustituir la función getShopItemid por lo siguiente:

function getShopItemid() {

// MODTAG: RICHARD G. MAYER MOD
if ( empty( $_REQUEST[‘shopItemid’] )) {
$_REQUEST[‘shopItemid’] = $_REQUEST[‘Itemid’];
}

/*
if( empty( $_REQUEST[‘shopItemid’] )) {
$db = new ps_DB;
$db->query( “SELECT id FROM #__menu WHERE link=’index.php?option=com_virtuemart’ AND published=1”);
if( $db->next_record() ) {
$_REQUEST[‘shopItemid’] = $db->f(“id”);
}
else {
if( !empty( $_REQUEST[‘Itemid’] )) {
$_REQUEST[‘shopItemid’] = intval( $_REQUEST[‘Itemid’] );
}
else {
$_REQUEST[‘shopItemid’] = 1;
}
}
} */

return intval($_REQUEST[‘shopItemid’]);

}

 

Tomado de: http://forum.virtuemart.net/index.php?topic=70482.0

Moneda múltiple en Virtuemart

31 Ene

Virtuemart permite trabajar con múltiples monedas. El funcionamiento es correcto, excepto cuando se visualiza el detalle de las órdenes, tanto por el usuario desde el front-end, como por los administradores desde el back-end.

El sistema guarda el pedido con los datos de la moneda con los que se efectuó la compra, pero cuando se despliega el pedido, los valores aparecen con la moneda de la compra, pero el símbolo de moneda es siempre $. Esto es confuso para los administradores del sitio, que no saben si por ejemplo la compra se realizó con Euros o con Dólares, ya que el símbolo es en todos los casos es $.

Para solucionar este problema, y que se muestre la moneda correcta con que se realizó la compra, los pasos a seguir son los siguientes:

1. Para el front-end:

Editar el archivo account.order_details.tpl.php en
components/com_virtuemart/themes/default/templates/pages/ (default o la plantilla que estemos utilizando)

Allí, se deberán buscar las líneas que contienen “$CURRENCY_DISPLAY” por ejemplo:

echo $CURRENCY_DISPLAY->getFullValue($item_price, ”, $db->f(‘order_currency’));

Esas líneas, las sustituiremos por echo $db->f(‘order_currency’).” “.$item_price; o lo que corresponda según lo que se está imprimiendo. Lo que hace esta línea es imprimir la moneda con “$db->f(‘order_currency’)” , y luego imprimir el valor a mostrar, en este caso el precio del producto $item_price.

2. Para el back-end:

a. Para que aparezca la moneda en el listado de pedidos, vamos a editar el archivo order.order_list.php que se encuentra en administrator/components/com_virtuemart/html .  Se deberá buscar la línea

$listObj->addCell( $GLOBALS[‘CURRENCY_DISPLAY’]->getFullValue($db->f(“order_total”), ”, $db->f(‘order_currency’)));

y sustituirla por

$listObj->addCell( $db->f(‘order_currency’).” “.$db->f(“order_total”));
b. En el detalle de Pedido, mi solución fue desplegar la Moneda dentro del listado. Para ello, en el archivo order.order_print.php dentro de
/administrator/components/com_virtuemart/html  se debe agregar el siguiente código en la línea 93 en mi caso, o en lugar que se desee dentro de la página:

<tr>
<td><strong><?php echo “Moneda” ?>:</strong></td>
<td><?php echo $db->f(‘order_currency’); ?></td>
</tr>

Espero que les sea de utilidad. Realmente hay poca información sobre este tema en los foros!

A %d blogueros les gusta esto: