ort_currency_convert es un plugin del lado público que le brinda al usuario un servicio de conversión de monedas, de modo tal que el usuario pueda poner un monto en una moneda y el tag lo mostrará convertido a otra con la tasa de conversión del momento.

uso del tag

El tag se pone en cualquier lugar de una página o un form de TextPattern.

ejemplo

Suponiendo que la tasa de conversión de dólares norteamericanos a pesos argentinos sea de 3,13, entonces, la siguiente invocación:

<p>El valor en pesos argentinos es <txp:ort_currency_convert from="USD" to="ARS" ammount="330,25" decimalsep="," thousandsep="." presymbol="$" />.</p>

debería generar lo siguiente

<p>El valor en pesos argentinos es $1.033,68.</p>

atributos soportados

Los siguientes son los atributos que debería manejar el tag <txp:ort_currency_convert />:

  • from: moneda del monto original - default = USD (la lista de monedas soportadas está en http://www.webservicex.net/CurrencyConvertor.asmx).
  • to: moneda del monto convertido - default = EUR.
  • ammount: monto original a convertir - default = 1.
  • decimals: cantidad de decimales a mostrar en el monto convertido - default = 2.
  • decimalsep: caracter para separar enteros de decimales - default = . (punto).
  • thousandsep: caracter para separar los miles, millones, etc. - default = (vacío).
  • presymbol: string de símbolo para poner delante del valor - default = (vacío).
  • postsymbol: string de símbolo para poner detrás del valor - default = (vacío).
  • wraptag: tag html para envolver todo lo que se devuelve - default = (vacío) (este es un atributo común a un montón de tags, ver http://textpattern.net/wiki/index.php?title=Attributes_Cross_Reference#wraptag).

implementación

La idea es usar el webservice en http://www.webservicex.net/CurrencyConvertor.asmx

Viendo la documentación en http://www.webservicex.net/CurrencyConvertor.asmx?op=ConversionRate lo más simple es usar HTTP GET.

Lo que podemos usar es la función de PHP file_get_contents() que devuelve el contenido de un archivo como string. La ventaja es que si en lugar de un nombre de archivo local se le pasa un URL, entonces devuelve el contenido de la página web.

Mal y pronto, si queremos resolver lo que está en el ejemplo, parte de nuestro código debería hacer algo así:

  $currencyfrom="USD";
  $currencyto="ARS";
  $xml_conversion=file_get_contents('http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=' . $currencyfrom . '&ToCurrency=' . $currencyto);

En este momento, la variable $xml_conversion va a tener un string con el siguiente contenido:

<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">3.133</double>

Donde 3.133 es la tasa de conversión que tenemos que usar para convertir de la moneda de origen a la de destino.