Archivo | Joomla RSS feed for this section

Bug en Joomla 2.5

26 Abr

Si estamos corriendo Joomla 2.5 con una versión de PHP 5.3, es posible que nos topemos con un bug en la clase imágenes. Al trabajar con JEA, una extensión de Joomla que utiliza la clase JImage, tenía este error al intentar subir una imagen:

«Attempting to load an image of unsupported type JPG»

El problema, radica en que en las versiones de PHP anteriores a 5.3, el atributo JPEG Support  se llamaba JPG Support.

En este sentido, la clase de Joomla JImage, en las líneas 79-80, chequea por  self::$formats[IMAGETYPE_JPEG] = ($info[‘JPEG Support’]) ? true : false;

Si estamos teniendo este problema entonces, lo mejor es directamente poner algo del estilo self::$formats[IMAGETYPE_JPEG] = true, o chequear por self::$formats[IMAGETYPE_JPEG] = ($info[‘JPG Support’]) ? true : false;

Recordar contraseña no funciona

24 Abr

Me ha ocurrido en alguno sitios, que el recordar contraseña no funciona correctamente, y se indica que el token recibido no es correcto.

Esto puede ocurrir, porque a partir de la versión 1.5.16 de Joomla!, se modificó el archivo de reseteo de contraseña. En este sentido, si el template que estamos utilizando sobreescribe el archivo confirm.php en templates\mitemplate\html\com_user\reset , quizá no tenga hecha esa corrección.

Lo que hay que hacer entonces, es agregar el campo de nombre de usuario, así:

<div>
	<label for="username" title="<?php echo JText::_('RESET_PASSWORD_USERNAME_TIP_TITLE'); ?>::<?php echo JText::_('RESET_PASSWORD_USERNAME_TIP_TEXT'); ?>"><?php echo JText::_('User Name'); ?>:</label>
	<input id="username" name="username" type="text" size="36" />
</div>

Tomado de: http://docs.joomla.org/Confirm_password_in_1.5.16

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: