Files
aastra-xml-php/xml-xampp/stock/currency.php
2018-02-15 23:20:25 +01:00

889 lines
36 KiB
PHP

<?php
#############################################################################
# Internet Quote for International Currencies
#
# Aastra SIP Phones 1.4.2 or better
#
# Copyright 2005-2015 Mitel Networks
#
# script.php
#############################################################################
#############################################################################
# PHP customization for includes and warnings
#############################################################################
$os = strtolower(PHP_OS);
if(strpos($os, 'win') === false) ini_set('include_path',ini_get('include_path').':include:../include');
else ini_set('include_path',ini_get('include_path').';include;..\include');
error_reporting(E_ERROR | E_PARSE);
#############################################################################
# Includes
#############################################################################
require_once('AastraIPPhoneFormattedTextScreen.class.php');
require_once('AastraIPPhoneTextScreen.class.php');
require_once('AastraIPPhoneTextMenu.class.php');
require_once('AastraIPPhoneInputScreen.class.php');
require_once('AastraCommon.php');
#############################################################################
# Private functions
#############################################################################
###################################################################################################
# get_currency(array)
#
# This function retrieves currency values
#
# Parameters
# Array
# source source currency
# target target currency
#
# Returns an array
# 0 Boolean to indicate success or failure
# 1 Array for the results for each symbol
# 0 Name
# 1 Last Trade (Price Only)
# 2 Date
# 3 Time
# 4 Ask
# 5 Bid
###################################################################################################
function get_currency($array)
{
# OK so far
$return[0]=True;
# Create the HTTP request
$src = 'http://finance.yahoo.com/d/quotes.csv?s=';
foreach ($array as $key=>$value) $src.=$array[$key]['source'].$array[$key]['target'].'=X+';
# Complete the request with the flags
$src=substr($src,0,-1).'&f=nl1d1t1ab';
# Launch the request
$fp = @fopen ($src, 'r');
if($fp)
{
while (($result[] = fgetcsv($fp,1000)) !== FALSE);
fclose($fp);
}
else $return[0]=False;
# Return result
$return[1]=$result;
return($return);
}
##################################################################################################
# format_line(nb_carac,title,value)
#
# This function format the screen for a FormattedTextScreen with Title....Value
#
# Parameters
# nb_carac Number of characters of the line
# title Title to be displayed
# value Value to be displayed
#
# Returns a string
###################################################################################################
function format_line($nb_carac,$title,$value)
{
# Compute string
$string=$title.str_repeat('.',$nb_carac-strlen($title)-strlen($value)-1).$value;
# Return string
return($string);
}
##################################################################################################
# find_default(default)
#
# This function finds the location of the currency in the pages
#
# Parameters
# default Currency to look for
#
# Returns an array
# page Page of the currency (0=main)
# index Index in the page
###################################################################################################
function find_default($default)
{
Global $currency;
Global $main;
$found=False;
# Try first with the main currencies
$index=1;
foreach($main as $key=>$value)
{
if($key==$default)
{
$found=True;
break;
}
else $index++;
}
# Trey with all of them
if($found)
{
$return['page']=0;
$return['index']=$index;
}
else
{
$index=1;
foreach($currency as $key=>$value)
{
if($key==$default)
{
$found=True;
break;
}
else $index++;
}
if($found)
{
$return['page']=intval($index/AASTRA_MAXLINES);
if(($index-$return['page']*AASTRA_MAXLINES) != 0) $return['page']++;
$return['index']=$index%AASTRA_MAXLINES;
}
else
{
$return['page']=0;
$return['index']=1;
}
}
# Return results
return($return);
}
##########################################
# Retrieve parameters
$user=Aastra_getvar_safe('user');
$action=Aastra_getvar_safe('action','init');
$input=Aastra_getvar_safe('input');
$choice=Aastra_getvar_safe('choice');
$page=Aastra_getvar_safe('page','0');
$selection=Aastra_getvar_safe('selection');
# Get user if not provided
$header=Aastra_decode_HTTP_header();
if($user=='') $user=$header['mac'];
# Update URI
$XML_SERVER.='?user='.$user;
# Trace
Aastra_trace_call('currency','user='.$user.', action='.$action.', selection='.$selection.', input='.$input);
# Test User Agent
Aastra_test_phone_version('2.1.1.',0);
Aastra_test_phone_model(array('Aastra9480i','Aastra9480iCT','Aastra55i','Aastra57i','Aastra57iCT','Aastra35i','Aastra37i','Aastra6867i','Aastra6869i','Aastra6873i','Aastra6739i'),True,0);
# Get Language
$language=Aastra_get_language();
# Retrieve user context
$data=Aastra_get_user_context($user,'currency');
if($data['last']['source']=='') $data['last']['source']='USD';
if($data['last']['target']=='') $data['last']['target']='EUR';
Aastra_save_user_context($user,'currency',$data);
# Global compatibility
$nb_softkeys=Aastra_number_physical_softkeys_supported();
$is_toptitle_supported=Aastra_is_top_title_supported();
# Create the table with the currencies if needed
if(($action=='input1') or ($action=='input2') or ($action=='inputfav1') or ($action=='inputfav2'))
{
# Currency
$main=array( 'AUD'=>'Australian Dollar','GBP'=>'British Pound','CAD'=>'Canadian Dollar',
'CNY'=>'Chinese Yuan','EUR'=>'Euro','XAU'=>'Gold Ounces',
'JPY'=>'Japanese Yen','MXN'=>'Mexican Peso','XPD'=>'Palladium Ounces',
'XPT'=>'Platinum Ounces','SEK'=>'Swedish Krona','CHF'=>'Swiss Franc',
'USD'=>'US Dollar');
$currency=array( 'AFA'=>'Afghanistan Afghani', 'ALL'=>'Albanian Lek', 'DZD'=>'Algerian Dinar',
'ADF'=>'Andorran Franc', 'ADP'=>'Andorran Peseta', 'ARS'=>'Argentine Peso',
'AWG'=>'Aruba Florin', 'AUD'=>'Australian Dollar', 'ATS'=>'Austrian Schilling',
'BSD'=>'Bahamian Dollar', 'BHD'=>'Bahraini Dinar', 'BDT'=>'Bangladesh Taka',
'BBD'=>'Barbados Dollar', 'BEF'=>'Belgian Franc', 'BZD'=>'Belize Dollar',
'BMD'=>'Bermuda Dollar', 'BTN'=>'Bhutan Ngultrum', 'BOB'=>'Bolivian Boliviano',
'BWP'=>'Botswana Pula', 'BRL'=>'Brazilian Real', 'GBP'=>'British Pound',
'BND'=>'Brunei Dollar', 'BIF'=>'Burundi Franc', 'XOF'=>'CFA Franc (BCEAO)',
'XAF'=>'CFA Franc (BEAC)', 'KHR'=>'Cambodia Riel', 'CAD'=>'Canadian Dollar',
'CVE'=>'Cape Verde Escudo', 'KYD'=>'Cayman Islands Dollar', 'CLP'=>'Chilean Peso',
'CNY'=>'Chinese Yuan', 'COP'=>'Colombian Peso', 'KMF'=>'Comoros Franc',
'CRC'=>'Costa Rica Colon', 'HRK'=>'Croatian Kuna', 'CUP'=>'Cuban Peso',
'CYP'=>'Cyprus Pound', 'CZK'=>'Czech Koruna', 'DKK'=>'Danish Krone',
'DJF'=>'Dijibouti Franc', 'DOP'=>'Dominican Peso', 'NLG'=>'Dutch Guilder',
'XCD'=>'East Caribbean Dollar', 'ECS'=>'Ecuadorian Sucre', 'EGP'=>'Egyptian Pound',
'SVC'=>'El Salvador Colon', 'EEK'=>'Estonian Kroon', 'ETB'=>'Ethiopian Birr',
'EUR'=>'Euro', 'FKP'=>'Falkland Islands Pound', 'FJD'=>'Fiji Dollar',
'FIM'=>'Finnish Mark', 'FRF'=>'French Franc', 'GMD'=>'Gambian Dalasi',
'DEM'=>'German Mark', 'GHC'=>'Ghanian Cedi', 'GIP'=>'Gibraltar Pound',
'XAU'=>'Gold Ounces', 'GRD'=>'Greek Drachma', 'GTQ'=>'Guatemala Quetzal',
'GNF'=>'Guinea Franc', 'GYD'=>'Guyana Dollar', 'HTG'=>'Haiti Gourde',
'HNL'=>'Honduras Lempira', 'HKD'=>'Hong Kong Dollar', 'HUF'=>'Hungarian Forint',
'ISK'=>'Iceland Krona', 'INR'=>'Indian Rupee', 'IDR'=>'Indonesian Rupiah',
'IQD'=>'Iraqi Dinar', 'IEP'=>'Irish Punt', 'ILS'=>'Israeli Shekel',
'ITL'=>'Italian Lira', 'JMD'=>'Jamaican Dollar', 'JPY'=>'Japanese Yen',
'JOD'=>'Jordanian Dinar', 'KZT'=>'Kazakhstan Tenge', 'KES'=>'Kenyan Shilling',
'KRW'=>'Korean Won', 'KWD'=>'Kuwaiti Dinar', 'LAK'=>'Lao Kip', 'LVL'=>'Latvian Lat',
'LBP'=>'Lebanese Pound', 'LSL'=>'Lesotho Loti', 'LRD'=>'Liberian Dollar',
'LYD'=>'Libyan Dinar', 'LTL'=>'Lithuanian Lita', 'LUF'=>'Luxembourg Franc',
'MOP'=>'Macau Pataca', 'MKD'=>'Macedonian Denar', 'MGF'=>'Malagasy Franc',
'MWK'=>'Malawi Kwacha', 'MYR'=>'Malaysian Ringgit', 'MVR'=>'Maldives Rufiyaa',
'MTL'=>'Maltese Lira', 'MRO'=>'Mauritania Ougulya', 'MUR'=>'Mauritius Rupee',
'MXN'=>'Mexican Peso', 'MDL'=>'Moldovan Leu', 'MNT'=>'Mongolian Tugrik',
'MAD'=>'Moroccan Dirham', 'MZM'=>'Mozambique Metical', 'MMK'=>'Myanmar Kyat',
'NAD'=>'Namibian Dollar', 'NPR'=>'Nepalese Rupee', 'ANG'=>'Neth Antilles Guilder',
'NZD'=>'New Zealand Dollar', 'NIO'=>'Nicaragua Cordoba', 'NGN'=>'Nigerian Naira',
'KPW'=>'North Korean Won', 'NOK'=>'Norwegian Krone', 'OMR'=>'Omani Rial',
'XPF'=>'Pacific Franc', 'PKR'=>'Pakistani Rupee', 'XPD'=>'Palladium Ounces',
'PAB'=>'Panama Balboa', 'PGK'=>'Papua New Guinea Kina', 'PYG'=>'Paraguayan Guarani',
'PEN'=>'Peruvian Nuevo Sol', 'PHP'=>'Philippine Peso', 'XPT'=>'Platinum Ounces',
'PLN'=>'Polish Zloty', 'PTE'=>'Portuguese Escudo', 'QAR'=>'Qatar Rial',
'ROL'=>'Romanian Leu', 'RUB'=>'Russian Rouble', 'WST'=>'Samoa Tala',
'STD'=>'Sao Tome Dobra', 'SAR'=>'Saudi Arabian Riyal', 'SCR'=>'Seychelles Rupee',
'SLL'=>'Sierra Leone Leone', 'XAG'=>'Silver Ounces', 'SGD'=>'Singapore Dollar',
'SKK'=>'Slovak Koruna', 'SIT'=>'Slovenian Tolar', 'SBD'=>'Solomon Islands Dollar',
'SOS'=>'Somali Shilling', 'ZAR'=>'South African Rand', 'ESP'=>'Spanish Peseta',
'LKR'=>'Sri Lanka Rupee', 'SHP'=>'St Helena Pound', 'SDD'=>'Sudanese Dinar',
'SRG'=>'Surinam Guilder', 'SZL'=>'Swaziland Lilageni', 'SEK'=>'Swedish Krona',
'CHF'=>'Swiss Franc', 'SYP'=>'Syrian Pound', 'TWD'=>'Taiwan Dollar',
'TZS'=>'Tanzanian Shilling', 'THB'=>'Thai Baht', 'TOP'=>'Tonga Pa\'anga',
'TTD'=>'Trinida and Tobago Dollar', 'TND'=>'Tunisian Dinar', 'TRL'=>'Turkish Lira',
'USD'=>'US Dollar', 'AED'=>'UAE Dirham', 'UGX'=>'Ugandan Shilling',
'UAH'=>'Ukraine Hryvnia', 'UYU'=>'Uruguayan New Peso', 'VUV'=>'Vanuatu Vatu',
'VEB'=>'Venezuelan Bolivar', 'VND'=>'Vietnam Dong', 'YER'=>'Yemen Riyal',
'YUM'=>'Yugoslav Dinar', 'ZMK'=>'Zambian Kwacha', 'ZWD'=>'Zimbabwe Dollar'
);
}
# Retrieve last page
$last=intval(count($currency)/AASTRA_MAXLINES);
if((count($currency)-$last*AASTRA_MAXLINES) != 0) $last++;
# Process special sctions
switch($action)
{
# Reverse Source/target
case 'reverse':
# Reverse currencies
$temp=$data['last']['source'];
$data['last']['source']=$data['last']['target'];
$data['last']['target']=$temp;
Aastra_save_user_context($user,'currency',$data);
$action='init';
break;
# Reset favorite
case 'clear':
# Retrieve favorites
$data=Aastra_get_user_context($user,'currency');
$data['favorites'][$selection]['source']='';
$data['favorites'][$selection]['target']='';
Aastra_save_user_context($user,'currency',$data);
$action='favorites';
$default=$selection+1;
break;
# Up
case 'up':
# Retrieve favorites
$data=Aastra_get_user_context($user,'currency');
if(($data['favorites'][$selection]!='') and ($selection!=0))
{
$temp=$data['favorites'][$selection-1];
$data['favorites'][$selection-1]=$data['favorites'][$selection];
$data['favorites'][$selection]=$temp;
Aastra_save_user_context($user,'currency',$data);
$default=$selection;
}
else $default=$selection+1;
$action='favorites';
break;
# Down
case 'down':
# Retrieve favorites
$data=Aastra_get_user_context($user,'currency');
if(($data['favorites'][$selection]!='') and ($selection!=(AASTRA_MAXLINES-1)))
{
$temp=$data['favorites'][$selection+1];
$data['favorites'][$selection+1]=$data['favorites'][$selection];
$data['favorites'][$selection]=$temp;
Aastra_save_user_context($user,'currency',$data);
$default=$selection+2;
}
else $default=$selection+1;
$action='favorites';
break;
# Favorites
case 'favorites':
$default=$selection+1;
break;
# Set source
case 'set_1':
if($input!='')
{
$data['last']['source']=$input;
Aastra_save_user_context($user,'currency',$data);
}
$action='init';
break;
# Set Target
case 'set_2':
if($input!='')
{
$data['last']['target']=$input;
Aastra_save_user_context($user,'currency',$data);
}
$action='init';
break;
}
# Depending on action
switch($action)
{
# Initial screen
case 'init':
# Prepare result screen
$object = new AastraIPPhoneInputScreen();
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Currency converter',$language));
else $object->setTitle(Aastra_get_label('Currency converter',$language));
$object->setURL($XML_SERVER.'&action=display');
$object->setDisplayMode('condensed');
$object->addField('empty');
$object->addField('string');
$object->setFieldEditable('no');
$object->setFieldPrompt(Aastra_get_label('Source',$language));
$object->setFieldDefault($data['last']['source']);
$object->addField('string');
$object->setFieldEditable('no');
$object->setFieldPrompt(Aastra_get_label('Target',$language));
$object->setFieldDefault($data['last']['target']);
# Softkeys
if($nb_softkeys==4)
{
if($page=='0')
{
$object->addSoftkey('1', Aastra_get_label('Source',$language), $XML_SERVER.'&action=input1&choice='.$data['last']['source']);
$object->addSoftkey('2', Aastra_get_label('Target',$language), $XML_SERVER.'&action=input2&choice='.$data['last']['target']);
$object->addSoftkey('3', Aastra_get_label('Convert',$language), 'SoftKey:Submit');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&action=init&page=1');
}
else
{
$object->addSoftkey('1', Aastra_get_label('Reverse',$language), $XML_SERVER.'&action=reverse');
$object->addSoftkey('2', Aastra_get_label('Watch List',$language), $XML_SERVER.'&action=favorites');
$object->addSoftkey('3', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&action=init&page=0');
}
}
else if($nb_softkeys==6)
{
$object->addSoftkey('1', Aastra_get_label('Source',$language), $XML_SERVER.'&action=input1&choice='.$data['last']['source']);
$object->addSoftkey('2', Aastra_get_label('Target',$language), $XML_SERVER.'&action=input2&choice='.$data['last']['target']);
$object->addSoftkey('3', Aastra_get_label('Reverse',$language), $XML_SERVER.'&action=reverse');
$object->addSoftkey('4', Aastra_get_label('Watch List',$language), $XML_SERVER.'&action=favorites');
$object->addSoftkey('5', Aastra_get_label('Convert',$language), 'SoftKey:Submit');
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
$object->addSoftkey('1', Aastra_get_label('Change Source',$language), $XML_SERVER.'&action=input1&choice='.$data['last']['source']);
$object->addSoftkey('2', Aastra_get_label('Change Target',$language), $XML_SERVER.'&action=input2&choice='.$data['last']['target']);
$object->addSoftkey('3', Aastra_get_label('Reverse',$language), $XML_SERVER.'&action=reverse');
$object->addSoftkey('6', Aastra_get_label('Watch List',$language), $XML_SERVER.'&action=favorites');
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
break;
# Input Source and target
case 'input1':
case 'input2':
case 'inputfav1':
case 'inputfav2':
# Save last request
if($action=='input2')
{
unset($main[$data['last']['source']]);
unset($currency[$data['last']['source']]);
}
# Save last request
if($action=='inputfav2')
{
if($input!='')
{
$data['favorites'][$selection]['source']=$input;
Aastra_save_user_context($user,'currency',$data);
}
unset($main[$data['favorites'][$selection]['source']]);
unset($currency[$data['favorites'][$selection]['source']]);
}
# Set choice for fav1
if(($action=='inputfav1') and ($choice!='')) $choice=$data['favorites'][$selection]['source'];
# Create the Textmenu
$object = new AastraIPPhoneTextMenu();
# Position on the right page and Index
if($choice!='')
{
$array=find_default($choice);
$page=$array['page'];
$object->setDefaultIndex($array['index']);
}
# Display the list
if($page==0)
{
$index=1;
$start='';
foreach($main as $key=>$value)
{
switch($action)
{
case 'input1':
$object->addEntry($value,$XML_SERVER.'&action=set_1&input='.$key);
break;
case 'input2':
$object->addEntry($value,$XML_SERVER.'&action=set_2&input='.$key);
break;
case 'inputfav1':
$object->addEntry($value,$XML_SERVER.'&action=inputfav2&input='.$key.'&choice='.$data['favorites'][$selection]['target'].'&selection='.$selection);
break;
case 'inputfav2':
$object->addEntry($value,$XML_SERVER.'&action=favorites&input='.$key.'&selection='.$selection);
break;
}
}
# Title displaying first and last element of the list
switch($action)
{
case 'input1':
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Source Currency (Main)',$language));
else $object->setTopTitle(Aastra_get_label('Source Currency (Main)',$language));
break;
case 'input2':
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Target Currency (Main)',$language));
else $object->setTitle(Aastra_get_label('Target Currency (Main)',$language));
break;
case 'inputfav1':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Source Fav #%s (Main)',$language),$selection+1));
else $object->setTitle(sprintf(Aastra_get_label('Source Fav #%s (Main)',$language),$selection+1));
break;
case 'inputfav2':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Target Fav #%s (Main)',$language),$selection+1));
else $object->setTitle(sprintf(Aastra_get_label('Target Fav #%s (Main)',$language),$selection+1));
break;
}
}
else
{
$index=1;
$start='';
foreach($currency as $key=>$value)
{
if(($index>=($page-1)*AASTRA_MAXLINES+1) and ($index<=($page*AASTRA_MAXLINES)))
{
switch($action)
{
case 'input1':
$object->addEntry($value,$XML_SERVER.'&action=set_1&input='.$key);
break;
case 'input2':
$object->addEntry($value,$XML_SERVER.'&action=set_2&input='.$key);
break;
case 'inputfav1':
$object->addEntry($value,$XML_SERVER.'&action=inputfav2&input='.$key.'&choice='.$data['favorites'][$selection]['target'].'&selection='.$selection);
break;
case 'inputfav2':
$object->addEntry($value,$XML_SERVER.'&action=favorites&input='.$key.'&selection='.$selection);
break;
}
if($start=='') $start=substr($value,0,2);
$end=substr($value,0,2);
}
$index++;
}
# Title displaying first and last element of the list
switch($action)
{
case 'input1':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Source Currency (%s-%s)',$language),$start,$end));
else $object->setTitle(sprintf(Aastra_get_label('Source Currency (%s-%s)',$language),$start,$end));
break;
case 'input2':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Target Currency (%s-%s)',$language),$start,$end));
else $object->setTitle(sprintf(Aastra_get_label('Target Currency (%s-%s)',$language),$start,$end));
break;
case 'inputfav1':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Source Fav #%s (%s-%s)',$language),$selection+1,$start,$end));
else $object->setTitle(sprintf(Aastra_get_label('Source Fav #%s (%s-%s)',$language),$selection+1,$start,$end));
break;
case 'inputfav2':
if($is_toptitle_supported) $object->setTopTitle(sprintf(Aastra_get_label('Target Fav #%s (%s-%s)',$language),$selection+1,$start,$end));
else $object->setTitle(sprintf(Aastra_get_label('Target Fav #%s (%s-%s)',$language),$selection+1,$start,$end));
break;
}
}
# Softkeys
if($nb_softkeys==4)
{
# Phone with 4 physical softkeys
if(($page!=0) or ($page!=$last)) {
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($page!=0) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&action='.$action.'&page='.($page-1).'&selection='.$selection);
if($page!=$last) $object->addSoftkey('3', Aastra_get_label('Next',$language), $XML_SERVER.'&action='.$action.'&page='.($page+1).'&selection='.$selection);
switch($action)
{
case 'input1':
case 'input2':
$object->addSoftkey('4', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=init');
break;
case 'inputfav1':
$object->addSoftkey('4', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
break;
case 'inputfav2':
$object->addSoftkey('4', Aastra_get_label('Back',$language), $XML_SERVER.'&action=inputfav1&choice='.$data['favorites'][$selection]['source'].'&selection='.$selection);
break;
}
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
switch($action)
{
case 'input1':
case 'input2':
$object->addSoftkey('3', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=init');
break;
case 'inputfav1':
$object->addSoftkey('3', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
break;
case 'inputfav2':
$object->addSoftkey('3', Aastra_get_label('Back',$language), $XML_SERVER.'&action=inputfav1&choice='.$data['favorites'][$selection]['source'].'&selection='.$selection);
break;
}
$object->addSoftkey('4', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
}
else if($nb_softkeys==6)
{
# Phone with 6 softkeys
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
if($page!=0) $object->addSoftkey('2', Aastra_get_label('Previous',$language), $XML_SERVER.'&action='.$action.'&page='.($page-1).'&selection='.$selection);
switch($action)
{
case 'input1':
case 'input2':
$object->addSoftkey('4', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=init');
break;
case 'inputfav1':
$object->addSoftkey('4', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
break;
case 'inputfav2':
$object->addSoftkey('4', Aastra_get_label('Back',$language), $XML_SERVER.'&action=inputfav1&choice='.$data['favorites'][$selection]['source'].'&selection='.$selection);
break;
}
if($page!=$last) $object->addSoftkey('5', Aastra_get_label('Next',$language), $XML_SERVER.'&action='.$action.'&page='.($page+1).'&selection='.$selection);
$object->addSoftkey('6', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
# 6739i
if($page!=0) $object->addSoftkey('3', Aastra_get_label('Previous',$language), $XML_SERVER.'&action='.$action.'&page='.($page-1).'&selection='.$selection);
switch($action)
{
case 'input1':
case 'input2':
$object->addSoftkey('9', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=init');
$object->setCancelAction($XML_SERVER.'&action=init');
break;
case 'inputfav1':
$object->addSoftkey('9', Aastra_get_label('Cancel',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
break;
case 'inputfav2':
$object->addSoftkey('9', Aastra_get_label('Back',$language), $XML_SERVER.'&action=inputfav1&choice='.$data['favorites'][$selection]['source'].'&selection='.$selection);
break;
}
if($page!=$last) $object->addSoftkey('8', Aastra_get_label('Next',$language), $XML_SERVER.'&action='.$action.'&page='.($page+1).'&selection='.$selection);
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
break;
# Display favorites
case 'favorites':
# Save last request
if($input!='')
{
$data['favorites'][$selection]['target']=$input;
Aastra_save_user_context($user,'currency',$data);
}
# Create list
$object = new AastraIPPhoneTextMenu();
$summary=False;
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Watch List',$language));
else $object->setTitle(Aastra_get_label('Watch List',$language));
for($i=0;$i<AASTRA_MAXLINES;$i++)
{
if(($data['favorites'][$i]['source']=='') or ($data['favorites'][$i]['target']==''))
{
$object->addEntry('...........................',$XML_SERVER.'&action=inputfav1&selection='.$i,$i);
$data['favorites'][$i]['source']='';
$data['favorites'][$i]['target']='';
}
else
{
$object->addEntry(sprintf(Aastra_get_label('%s to %s',$language),$data['favorites'][$i]['source'],$data['favorites'][$i]['target']),$XML_SERVER.'&action=displayfav&selection='.$i,$i);
$summary=True;
}
}
# Update user favorites
Aastra_save_user_context($user,'currency',$data);
# Set default index
if($default!='') $object->setDefaultIndex($default);
# Add softkeys
if($nb_softkeys==4)
{
# 6867i
if($page=='0')
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
$object->addSoftkey('2', Aastra_get_label('Move Up',$language), $XML_SERVER.'&action=up');
$object->addSoftkey('3', Aastra_get_label('Move Down',$language), $XML_SERVER.'&action=down');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&action=favorites&page=1&selection='.$selection);
}
else if($page=='1')
{
if($summary) $object->addSoftkey('1', Aastra_get_label('Summary',$language), $XML_SERVER.'&action=summary');
$object->addSoftkey('2', Aastra_get_label('Edit',$language), $XML_SERVER.'&action=inputfav1&choice=fav1');
$object->addSoftkey('3', Aastra_get_label('Clear',$language), $XML_SERVER.'&action=clear&page=1');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&action=favorites&page=2&selection='.$selection);
}
else if($page=='3')
{
$object->addSoftkey('2', Aastra_get_label('Back',$language), $XML_SERVER.'&action=init');
$object->addSoftkey('3', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('4', Aastra_get_label('More',$language), $XML_SERVER.'&action=favorites&page=0&selection='.$selection);
}
}
else if($nb_softkeys==6)
{
# Regular phone
if($page=='0')
{
$object->addSoftkey('1', Aastra_get_label('Select',$language), 'SoftKey:Select');
$object->addSoftkey('2', Aastra_get_label('Move Up',$language), $XML_SERVER.'&action=up');
if($summary) $object->addSoftkey('3', Aastra_get_label('Summary',$language), $XML_SERVER.'&action=summary');
$object->addSoftkey('4', Aastra_get_label('Edit',$language), $XML_SERVER.'&action=inputfav1&choice=fav1');
$object->addSoftkey('5', Aastra_get_label('Move Down',$language), $XML_SERVER.'&action=down');
$object->addSoftkey('6', Aastra_get_label('More',$language), $XML_SERVER.'&action=favorites&page=1&selection='.$selection);
}
else
{
$object->addSoftkey('2', Aastra_get_label('Clear',$language), $XML_SERVER.'&action=clear&page=1');
if($summary) $object->addSoftkey('3', Aastra_get_label('Summary',$language), $XML_SERVER.'&action=summary');
$object->addSoftkey('4', Aastra_get_label('Back',$language), $XML_SERVER.'&action=init');
$object->addSoftkey('5', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
$object->addSoftkey('6', Aastra_get_label('More',$language), $XML_SERVER.'&action=favorites&page=0&selection='.$selection);
}
}
else
{
$object->addSoftkey('3', Aastra_get_label('Move Up',$language), $XML_SERVER.'&action=up');
$object->addSoftkey('5', Aastra_get_label('Clear',$language), $XML_SERVER.'&action=clear&page=1');
$object->addSoftkey('6', Aastra_get_label('Edit',$language), $XML_SERVER.'&action=inputfav1&choice=fav1');
$object->addSoftkey('8', Aastra_get_label('Move Down',$language), $XML_SERVER.'&action=down');
$object->addSoftkey('9', Aastra_get_label('Back',$language), $XML_SERVER.'&action=init');
$object->addSoftkey('10', Aastra_get_label('Exit',$language), 'SoftKey:Exit');
if($summary) $object->addSoftkey('1', Aastra_get_label('Summary',$language), $XML_SERVER.'&action=summary');
}
break;
# Summary
case 'summary':
# Retrieve favorites
foreach($data['favorites'] as $key=>$value)
{
if($value['target']!='') $array[]=$value;
}
$return=get_currency($array);
# Return OK
if($return[0])
{
# Create the object
$object = new AastraIPPhoneFormattedTextScreen();
# Process the results
if($nb_softkeys==6)
{
# Regular phone
$nb_carac=Aastra_size_display_line();
$object->addLine(Aastra_get_label('Watch List',$language),NULL,'center');
$object->addLine('');
$object->setScrollStart(Aastra_size_formattedtextscreen()-2);
foreach($return[1] as $key=>$value)
{
if($value!=NULL)
{
if(!strstr($value[0],'=X')) $object->addLine(format_line($nb_carac,$value[0],$value[1]));
else $object->addLine(format_line($nb_carac,sprintf(Aastra_get_label('%s to %s',$language),substr($value[0],0,3),substr($value[0],3,3)),'N/A'));
}
}
$object->addLine(Aastra_get_label('Powered by Yahoo',$language),'','center');
$object->setScrollEnd();
}
else
{
# 6867i/6739i
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Watch List',$language));
else $object->addLine(Aastra_get_label('Watch List',$language),'double','center');
$object->addLine('');
$object->setScrollStart();
foreach($return[1] as $key=>$value)
{
if($value!=NULL)
{
if(!strstr($value[0],'=X')) $object->addLine($value[0].': '.$value[1]);
else $object->addLine(sprintf(Aastra_get_label('%s to %s',$language),substr($value[0],0,3),substr($value[0],3,3).': N/A'));
}
}
$object->setScrollEnd();
$object->addLine(Aastra_get_label('Powered by Yahoo',$language),'','center');
}
}
else
{
# Prepare result screen
$object = new AastraIPPhoneTextScreen();
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Currency conversion',$language));
$object->setTitle(Aastra_get_label('Currency conversion',$language));
$object->setText(Aastra_get_label('Information not available at this time. Please try again later.',$language));
}
# Add remaining softkeys
if($nb_softkeys==4)
{
$object->addSoftkey('3',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('4',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==6)
{
$object->addSoftkey('5',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('6',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
$object->addSoftkey('9',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('10',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
break;
# Display result
case 'display':
case 'displayfav':
# Retrieve quote
if($action=='display') $array[0]=$data['last'];
else $array[0]=$data['favorites'][$selection];
$return=get_currency($array);
# Return OK
if($return[0])
{
# Create the object
$object = new AastraIPPhoneFormattedTextScreen();
# Display results
if($nb_softkeys==6)
{
# Regular phone
if($action=='display') $object->addLine($data['last']['source'].' to '.$data['last']['target'],NULL,'center');
else $object->addLine($data['favorites'][$selection]['source'].' to '.$data['favorites'][$selection]['target'],NULL,'center');
$object->setScrollStart(Aastra_size_formattedtextscreen()-1);
$nb_carac=Aastra_size_display_line();
$object->addLine('');
$object->addLine(format_line($nb_carac,Aastra_get_label('Last Trade',$language),$return[1][0][1]));
$object->addLine(format_line($nb_carac,Aastra_get_label('Ask',$language),$return[1][0][4]));
$object->addLine(format_line($nb_carac,Aastra_get_label('Bid',$language),$return[1][0][5]));
$object->addLine(format_line($nb_carac,Aastra_get_label('Date',$language),$return[1][0][2]));
$object->addLine(format_line($nb_carac,Aastra_get_label('Time',$language),$return[1][0][3]));
$object->addLine(Aastra_get_label('Powered by Yahoo',$language),'','center');
$object->setScrollEnd();
}
else
{
# 6867i/6739i
if($is_toptitle_supported) $object->setTopTitle(Aastra_get_label('Currency converter',$language));
if($action=='display') $object->addLine($data['last']['source'].' to '.$data['last']['target'],'double','center');
else $object->addLine($data['favorites'][$selection]['source'].' to '.$data['favorites'][$selection]['target'],'double','center');
$object->setScrollStart();
$object->addLine('');
$object->addLine(Aastra_get_label('Last Trade',$language).': '.$return[1][0][1]);
$object->addLine(Aastra_get_label('Ask',$language).': '.$return[1][0][4]);
$object->addLine(Aastra_get_label('Bid',$language).': '.$return[1][0][5]);
$object->addLine(Aastra_get_label('Date',$language).': '.$return[1][0][2]);
$object->addLine(Aastra_get_label('Time',$language).': '.$return[1][0][3]);
$object->setScrollEnd();
$object->addLine(Aastra_get_label('Powered by Yahoo',$language),'','center');
}
}
else
{
# Prepare result screen
$object = new AastraIPPhoneTextScreen();
$object->setTitle(Aastra_get_label('Currency converter',$language));
$object->setText(Aastra_get_label('Information not available at this time. Please try again later.',$language));
}
# Add remaining softkeys
if($nb_softkeys==4)
{
if($action=='display') $object->addSoftkey('1',Aastra_get_label('New Lookup',$language), $XML_SERVER.'&action=init');
else $object->addSoftkey('3',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('4',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==6)
{
if($action=='display') $object->addSoftkey('4',Aastra_get_label('New Lookup',$language), $XML_SERVER.'&action=init');
else $object->addSoftkey('4',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('6',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
else if($nb_softkeys==10)
{
if($action=='display') $object->addSoftkey('6',Aastra_get_label('New Lookup',$language), $XML_SERVER.'&action=init');
else $object->addSoftkey('9',Aastra_get_label('Back',$language), $XML_SERVER.'&action=favorites&selection='.$selection);
$object->addSoftkey('10',Aastra_get_label('Exit',$language), 'SoftKey:Exit');
}
break;
}
# Display object
$object->setDestroyOnExit();
$object->output();
exit;
?>