/halogy/application/helpers/halogy_helper.php

https://bitbucket.org/haloweb/halogy-1.0/ · PHP · 778 lines · 692 code · 62 blank · 24 comment · 81 complexity · 6f7bb10c0be1de746aab69b2337f70f1 MD5 · raw file

  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. /**
  3. * Halogy
  4. *
  5. * A user friendly, modular content management system for PHP 5.0
  6. * Built on CodeIgniter - http://codeigniter.com
  7. *
  8. * @package Halogy
  9. * @author Haloweb Ltd.
  10. * @copyright Copyright (c) 2008-2011, Haloweb Ltd.
  11. * @license http://halogy.com/license
  12. * @link http://halogy.com/
  13. * @since Version 1.0
  14. * @filesource
  15. */
  16. // ------------------------------------------------------------------------
  17. // orderby helper (will be extended in time)
  18. function order_link($link, $orderby, $text, $segment = 4)
  19. {
  20. $CI =& get_instance();
  21. if (!$CI->uri->segment($segment) || $CI->uri->segment($segment) == 'orderdesc')
  22. {
  23. $order = 'orderasc';
  24. }
  25. else
  26. {
  27. $order = 'orderdesc';
  28. }
  29. if ($CI->uri->segment(($segment+1)) == $orderby)
  30. {
  31. $class = 'class="'.$order.'"';
  32. }
  33. else
  34. {
  35. $class = '';
  36. }
  37. echo anchor($link.'/'.$order.'/'.$orderby, $text, $class);
  38. }
  39. // get country codes
  40. function get_country_codes($country = '')
  41. {
  42. $countries = array(
  43. 'AF'=>'AFGHANISTAN',
  44. 'AX'=>'ALAND ISLANDS',
  45. 'AL'=>'ALBANIA',
  46. 'DZ'=>'ALGERIA',
  47. 'AS'=>'AMERICAN SAMOA',
  48. 'AD'=>'ANDORRA',
  49. 'AO'=>'ANGOLA',
  50. 'AI'=>'ANGUILLA',
  51. 'AQ'=>'ANTARCTICA',
  52. 'AG'=>'ANTIGUA AND BARBUDA',
  53. 'AR'=>'ARGENTINA',
  54. 'AM'=>'ARMENIA',
  55. 'AW'=>'ARUBA',
  56. 'AU'=>'AUSTRALIA',
  57. 'AT'=>'AUSTRIA',
  58. 'AZ'=>'AZERBAIJAN',
  59. 'BS'=>'BAHAMAS',
  60. 'BH'=>'BAHRAIN',
  61. 'BD'=>'BANGLADESH',
  62. 'BB'=>'BARBADOS',
  63. 'BY'=>'BELARUS',
  64. 'BE'=>'BELGIUM',
  65. 'BZ'=>'BELIZE',
  66. 'BJ'=>'BENIN',
  67. 'BM'=>'BERMUDA',
  68. 'BT'=>'BHUTAN',
  69. 'BO'=>'BOLIVIA',
  70. 'BA'=>'BOSNIA AND HERZEGOVINA',
  71. 'BW'=>'BOTSWANA',
  72. 'BV'=>'BOUVET ISLAND',
  73. 'BR'=>'BRAZIL',
  74. 'IO'=>'BRITISH INDIAN OCEAN TERRITORY',
  75. 'BN'=>'BRUNEI DARUSSALAM',
  76. 'BG'=>'BULGARIA',
  77. 'BF'=>'BURKINA FASO',
  78. 'BI'=>'BURUNDI',
  79. 'KH'=>'CAMBODIA',
  80. 'CM'=>'CAMEROON',
  81. 'CA'=>'CANADA',
  82. 'CV'=>'CAPE VERDE',
  83. 'CI'=>'CâTE D\'IVOIRE',
  84. 'KY'=>'CAYMAN ISLANDS',
  85. 'CF'=>'CENTRAL AFRICAN REPUBLIC',
  86. 'TD'=>'CHAD',
  87. 'CL'=>'CHILE',
  88. 'CN'=>'CHINA',
  89. 'CX'=>'CHRISTMAS ISLAND',
  90. 'CC'=>'COCOS (KEELING) ISLANDS',
  91. 'CO'=>'COLOMBIA',
  92. 'KM'=>'COMOROS',
  93. 'CG'=>'CONGO',
  94. 'CD'=>'CONGO, THE DEMOCRATIC REPUBLIC OF THE',
  95. 'CK'=>'COOK ISLANDS',
  96. 'CR'=>'COSTA RICA',
  97. 'HR'=>'CROATIA',
  98. 'CU'=>'CUBA',
  99. 'CY'=>'CYPRUS',
  100. 'CZ'=>'CZECH REPUBLIC',
  101. 'DK'=>'DENMARK',
  102. 'DJ'=>'DJIBOUTI',
  103. 'DM'=>'DOMINICA',
  104. 'DO'=>'DOMINICAN REPUBLIC',
  105. 'EC'=>'ECUADOR',
  106. 'EG'=>'EGYPT',
  107. 'SV'=>'EL SALVADOR',
  108. 'GQ'=>'EQUATORIAL GUINEA',
  109. 'ER'=>'ERITREA',
  110. 'EE'=>'ESTONIA',
  111. 'ET'=>'ETHIOPIA',
  112. 'FK'=>'FALKLAND ISLANDS (MALVINAS)',
  113. 'FO'=>'FAROE ISLANDS',
  114. 'FJ'=>'FIJI',
  115. 'FI'=>'FINLAND',
  116. 'FR'=>'FRANCE',
  117. 'GF'=>'FRENCH GUIANA',
  118. 'PF'=>'FRENCH POLYNESIA',
  119. 'TF'=>'FRENCH SOUTHERN TERRITORIES',
  120. 'GA'=>'GABON',
  121. 'GM'=>'GAMBIA',
  122. 'GE'=>'GEORGIA',
  123. 'DE'=>'GERMANY',
  124. 'GH'=>'GHANA',
  125. 'GI'=>'GIBRALTAR',
  126. 'GR'=>'GREECE',
  127. 'GL'=>'GREENLAND',
  128. 'GD'=>'GRENADA',
  129. 'GP'=>'GUADELOUPE',
  130. 'GU'=>'GUAM',
  131. 'GT'=>'GUATEMALA',
  132. 'GN'=>'GUINEA',
  133. 'GW'=>'GUINEA-BISSAU',
  134. 'GY'=>'GUYANA',
  135. 'HT'=>'HAITI',
  136. 'HM'=>'HEARD ISLAND AND MCDONALD ISLANDS',
  137. 'VA'=>'HOLY SEE (VATICAN CITY STATE)',
  138. 'HN'=>'HONDURAS',
  139. 'HK'=>'HONG KONG',
  140. 'HU'=>'HUNGARY',
  141. 'IS'=>'ICELAND',
  142. 'IN'=>'INDIA',
  143. 'ID'=>'INDONESIA',
  144. 'IR'=>'IRAN ISLAMIC REPUBLIC OF',
  145. 'IQ'=>'IRAQ',
  146. 'IE'=>'IRELAND',
  147. 'IL'=>'ISRAEL',
  148. 'IT'=>'ITALY',
  149. 'JM'=>'JAMAICA',
  150. 'JP'=>'JAPAN',
  151. 'JO'=>'JORDAN',
  152. 'KZ'=>'KAZAKHSTAN',
  153. 'KE'=>'KENYA',
  154. 'KI'=>'KIRIBATI',
  155. 'KP'=>'KOREA DEMOCRATIC PEOPLE\'S REPUBLIC OF',
  156. 'KR'=>'KOREA REPUBLIC OF',
  157. 'KW'=>'KUWAIT',
  158. 'KG'=>'KYRGYZSTAN',
  159. 'LA'=>'LAO PEOPLE\'S DEMOCRATIC REPUBLIC',
  160. 'LV'=>'LATVIA',
  161. 'LB'=>'LEBANON',
  162. 'LS'=>'LESOTHO',
  163. 'LR'=>'LIBERIA',
  164. 'LY'=>'LIBYAN ARAB JAMAHIRIYA',
  165. 'LI'=>'LIECHTENSTEIN',
  166. 'LT'=>'LITHUANIA',
  167. 'LU'=>'LUXEMBOURG',
  168. 'MO'=>'MACAO',
  169. 'MK'=>'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF',
  170. 'MG'=>'MADAGASCAR',
  171. 'MW'=>'MALAWI',
  172. 'MY'=>'MALAYSIA',
  173. 'MV'=>'MALDIVES',
  174. 'ML'=>'MALI',
  175. 'MT'=>'MALTA',
  176. 'MH'=>'MARSHALL ISLANDS',
  177. 'MQ'=>'MARTINIQUE',
  178. 'MR'=>'MAURITANIA',
  179. 'MU'=>'MAURITIUS',
  180. 'YT'=>'MAYOTTE',
  181. 'MX'=>'MEXICO',
  182. 'FM'=>'MICRONESIA, FEDERATED STATES OF',
  183. 'MD'=>'MOLDOVA, REPUBLIC OF',
  184. 'MC'=>'MONACO',
  185. 'MN'=>'MONGOLIA',
  186. 'MS'=>'MONTSERRAT',
  187. 'MA'=>'MOROCCO',
  188. 'MZ'=>'MOZAMBIQUE',
  189. 'MM'=>'MYANMAR',
  190. 'NA'=>'NAMIBIA',
  191. 'NR'=>'NAURU',
  192. 'NP'=>'NEPAL',
  193. 'NL'=>'NETHERLANDS',
  194. 'AN'=>'NETHERLANDS ANTILLES',
  195. 'NC'=>'NEW CALEDONIA',
  196. 'NZ'=>'NEW ZEALAND',
  197. 'NI'=>'NICARAGUA',
  198. 'NE'=>'NIGER',
  199. 'NG'=>'NIGERIA',
  200. 'NU'=>'NIUE',
  201. 'NF'=>'NORFOLK ISLAND',
  202. 'MP'=>'NORTHERN MARIANA ISLANDS',
  203. 'NO'=>'NORWAY',
  204. 'OM'=>'OMAN',
  205. 'PK'=>'PAKISTAN',
  206. 'PW'=>'PALAU',
  207. 'PS'=>'PALESTINIAN TERRITORY, OCCUPIED',
  208. 'PA'=>'PANAMA',
  209. 'PG'=>'PAPUA NEW GUINEA',
  210. 'PY'=>'PARAGUAY',
  211. 'PE'=>'PERU',
  212. 'PH'=>'PHILIPPINES',
  213. 'PN'=>'PITCAIRN',
  214. 'PL'=>'POLAND',
  215. 'PT'=>'PORTUGAL',
  216. 'PR'=>'PUERTO RICO',
  217. 'QA'=>'QATAR',
  218. 'RE'=>'REUNION',
  219. 'RO'=>'ROMANIA',
  220. 'RU'=>'RUSSIAN FEDERATION',
  221. 'RW'=>'RWANDA',
  222. 'SH'=>'SAINT HELENA',
  223. 'KN'=>'SAINT KITTS AND NEVIS',
  224. 'LC'=>'SAINT LUCIA',
  225. 'PM'=>'SAINT PIERRE AND MIQUELON',
  226. 'VC'=>'SAINT VINCENT AND THE GRENADINES',
  227. 'WS'=>'SAMOA',
  228. 'SM'=>'SAN MARINO',
  229. 'ST'=>'SAO TOME AND PRINCIPE',
  230. 'SA'=>'SAUDI ARABIA',
  231. 'SN'=>'SENEGAL',
  232. 'CS'=>'SERBIA AND MONTENEGRO',
  233. 'SC'=>'SEYCHELLES',
  234. 'SL'=>'SIERRA LEONE',
  235. 'SG'=>'SINGAPORE',
  236. 'SK'=>'SLOVAKIA',
  237. 'SI'=>'SLOVENIA',
  238. 'SB'=>'SOLOMON ISLANDS',
  239. 'SO'=>'SOMALIA',
  240. 'ZA'=>'SOUTH AFRICA',
  241. 'GS'=>'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS',
  242. 'ES'=>'SPAIN',
  243. 'LK'=>'SRI LANKA',
  244. 'SD'=>'SUDAN',
  245. 'SR'=>'SURINAME',
  246. 'SJ'=>'SVALBARD AND JAN MAYEN',
  247. 'SZ'=>'SWAZILAND',
  248. 'SE'=>'SWEDEN',
  249. 'CH'=>'SWITZERLAND',
  250. 'SY'=>'SYRIAN ARAB REPUBLIC',
  251. 'TW'=>'TAIWAN PROVINCE OF CHINA',
  252. 'TJ'=>'TAJIKISTAN',
  253. 'TZ'=>'TANZANIA UNITED REPUBLIC OF',
  254. 'TH'=>'THAILAND',
  255. 'TL'=>'TIMOR-LESTE',
  256. 'TG'=>'TOGO',
  257. 'TK'=>'TOKELAU',
  258. 'TO'=>'TONGA',
  259. 'TT'=>'TRINIDAD AND TOBAGO',
  260. 'TN'=>'TUNISIA',
  261. 'TR'=>'TURKEY',
  262. 'TM'=>'TURKMENISTAN',
  263. 'TC'=>'TURKS AND CAICOS ISLANDS',
  264. 'TV'=>'TUVALU',
  265. 'UG'=>'UGANDA',
  266. 'UA'=>'UKRAINE',
  267. 'AE'=>'UNITED ARAB EMIRATES',
  268. 'GB'=>'UNITED KINGDOM',
  269. 'US'=>'UNITED STATES',
  270. 'UM'=>'UNITED STATES MINOR OUTLYING ISLANDS',
  271. 'UY'=>'URUGUAY',
  272. 'UZ'=>'UZBEKISTAN',
  273. 'VU'=>'VANUATU',
  274. 'VE'=>'VENEZUELA',
  275. 'VN'=>'VIETNAM',
  276. 'VG'=>'VIRGIN ISLANDS BRITISH',
  277. 'VI'=>'VIRGIN ISLANDS U.S.',
  278. 'WF'=>'WALLIS AND FUTUNA',
  279. 'EH'=>'WESTERN SAHARA',
  280. 'YE'=>'YEMEN',
  281. 'ZM'=>'ZAMBIA',
  282. 'ZW'=>'ZIMBABWE'
  283. );
  284. return $countries;
  285. }
  286. // get country
  287. function lookup_country($country)
  288. {
  289. $countries = get_country_codes();
  290. return ucwords(strtolower(@$countries[$country]));
  291. }
  292. // helper for displaying countries (no ID)
  293. function display_countries($name = 'country', $selected = '', $extras = '')
  294. {
  295. $output = '';
  296. $countries = get_country_codes();
  297. $output .= '<select name="'.$name.'" '.$extras.'>'."\n";
  298. foreach($countries as $country => $name)
  299. {
  300. $name = ucwords(strtolower($name));
  301. $output .= '<option value="'.$country.'"';
  302. if ($country == $selected || ($selected == '' && $country == 'US'))
  303. {
  304. $output .= ' selected="selected"';
  305. }
  306. $output .= '>'.$name.'</option>'."\n";
  307. }
  308. $output .= '</select>'."\n";
  309. return $output;
  310. }
  311. // get state codes
  312. function get_state_codes($state = '')
  313. {
  314. $states = array(
  315. ''=>'',
  316. 'AL'=>'Alabama',
  317. 'AK'=>'Alaska',
  318. 'AZ'=>'Arizona',
  319. 'AR'=>'Arkansas',
  320. 'CA'=>'California',
  321. 'CO'=>'Colorado',
  322. 'CT'=>'Connecticut',
  323. 'DE'=>'Delaware',
  324. 'DC'=>'District Of Columbia',
  325. 'FL'=>'Florida',
  326. 'GA'=>'Georgia',
  327. 'HI'=>'Hawaii',
  328. 'ID'=>'Idaho',
  329. 'IL'=>'Illinois',
  330. 'IN'=>'Indiana',
  331. 'IA'=>'Iowa',
  332. 'KS'=>'Kansas',
  333. 'KY'=>'Kentucky',
  334. 'LA'=>'Louisiana',
  335. 'ME'=>'Maine',
  336. 'MD'=>'Maryland',
  337. 'MA'=>'Massachusetts',
  338. 'MI'=>'Michigan',
  339. 'MN'=>'Minnesota',
  340. 'MS'=>'Mississippi',
  341. 'MO'=>'Missouri',
  342. 'MT'=>'Montana',
  343. 'NE'=>'Nebraska',
  344. 'NV'=>'Nevada',
  345. 'NH'=>'New Hampshire',
  346. 'NJ'=>'New Jersey',
  347. 'NM'=>'New Mexico',
  348. 'NY'=>'New York',
  349. 'NC'=>'North Carolina',
  350. 'ND'=>'North Dakota',
  351. 'OH'=>'Ohio',
  352. 'OK'=>'Oklahoma',
  353. 'OR'=>'Oregon',
  354. 'PA'=>'Pennsylvania',
  355. 'RI'=>'Rhode Island',
  356. 'SC'=>'South Carolina',
  357. 'SD'=>'South Dakota',
  358. 'TN'=>'Tennessee',
  359. 'TX'=>'Texas',
  360. 'UT'=>'Utah',
  361. 'VT'=>'Vermont',
  362. 'VA'=>'Virginia',
  363. 'WA'=>'Washington',
  364. 'WV'=>'West Virginia',
  365. 'WI'=>'Wisconsin',
  366. 'WY'=>'Wyoming'
  367. );
  368. return $states;
  369. }
  370. // get state
  371. function lookup_state($state)
  372. {
  373. $states = get_state_codes();
  374. return ucwords(strtolower(@$states[$state]));
  375. }
  376. // helper for displaying countries (no ID)
  377. function display_states($name = 'state', $selected = '', $extras = '')
  378. {
  379. $output = '';
  380. $states = get_state_codes();
  381. $output .= '<select name="'.$name.'" '.$extras.'>'."\n";
  382. foreach($states as $state => $name)
  383. {
  384. $name = ucwords(strtolower($name));
  385. $output .= '<option value="'.$state.'"';
  386. if ($state == $selected || ($selected == '' && $state == 'US'))
  387. {
  388. $output .= ' selected="selected"';
  389. }
  390. $output .= '>'.$name.'</option>'."\n";
  391. }
  392. $output .= '</select>'."\n";
  393. return $output;
  394. }
  395. // image loader (requires images model/lib)
  396. function load_image($image, $thumb = false, $product = false)
  397. {
  398. $CI =& get_instance();
  399. $imagePath = $CI->uploads->load_image($image, $thumb, $product);
  400. return $imagePath['src'];
  401. }
  402. function display_image($path, $alt, $size = '', $extras = '', $nopic = FALSE)
  403. {
  404. if (!$imageSize = @getimagesize('.'.$path))
  405. {
  406. if ($nopic !== FALSE)
  407. {
  408. $imageHTML = '<img src="'.$nopic.'" alt="No Picture" ';
  409. }
  410. else
  411. {
  412. return FALSE;
  413. }
  414. }
  415. else
  416. {
  417. $imageHTML = '<img src="'.$path.'" alt="'.$alt.'" ';
  418. }
  419. if ($size)
  420. {
  421. if (is_array($size))
  422. {
  423. $widthfactor = (isset($size['width'])) ? $imageSize[0] / $size['width'] : 0;
  424. $heightfactor = (isset($size['height'])) ? $imageSize[1] / $size['height'] : 0;
  425. if ($imageSize[0] > $size['width'] && ($widthfactor > $heightfactor || $widthfactor == $heightfactor))
  426. {
  427. $factor = $imageSize[0] / $size['width'];
  428. $imageHTML .= 'width="'.$size['width'].'" ';
  429. }
  430. elseif ($imageSize[1] > $size['height'] && $heightfactor > $widthfactor)
  431. {
  432. $imageHTML .= 'height="'.$size['height'].'" ';
  433. }
  434. }
  435. elseif (intval($size) && $size > 0 && (($imageSize[0] > $size || $imageSize[1] > $size) || $nopic))
  436. {
  437. if (($imageSize[0] > $imageSize[1]) || $imageSize[0] == $imageSize[1])
  438. {
  439. $imageHTML .= 'width="'.$size.'" ';
  440. }
  441. elseif ($imageSize[1] > $imageSize[0])
  442. {
  443. $imageHTML .= 'height="'.$size.'" ';
  444. }
  445. }
  446. }
  447. if ($extras != '')
  448. {
  449. $imageHTML .= $extras.' ';
  450. }
  451. $imageHTML .= '/>';
  452. return $imageHTML;
  453. }
  454. // date formatting for mysql dates
  455. function datefmt($date, $fmt = '', $timezone = '', $seconds = FALSE)
  456. {
  457. $CI =& get_instance();
  458. if ($CI->site->config['timezone'] && $timezone == '')
  459. {
  460. $timezone = $CI->site->config['timezone'];
  461. }
  462. if (!$fmt)
  463. {
  464. if (@$CI->site->config['dateOrder'] == 'MD')
  465. {
  466. $fmt = 'M jS Y';
  467. }
  468. else
  469. {
  470. $fmt = 'jS M Y';
  471. }
  472. }
  473. if ($seconds)
  474. {
  475. $fmt .= ', H:i';
  476. }
  477. if ($date && $date > 0)
  478. {
  479. $timestamp = local_to_gmt(strtotime($date));
  480. if ($timezone)
  481. {
  482. $timestamp = gmt_to_local($timestamp, $timezone, FALSE);
  483. }
  484. return date($fmt, $timestamp);
  485. }
  486. else
  487. {
  488. return false;
  489. }
  490. }
  491. function currency_symbol($html = TRUE, $currency = '')
  492. {
  493. $CI =& get_instance();
  494. $currency = (!$currency) ? $CI->site->config['currency'] : $currency;
  495. if ($currency == 'GBP')
  496. {
  497. return ($html) ? '&pound;' : '£';
  498. }
  499. elseif ($currency == 'JPY')
  500. {
  501. return ($html) ? '&yen;' : '¥';
  502. }
  503. elseif ($currency == 'EUR')
  504. {
  505. return ($html) ? '&euro;' : '€';
  506. }
  507. elseif ($currency == 'DKK' || $currency == 'SEK' || $currency == 'NOK')
  508. {
  509. return 'kr ';
  510. }
  511. elseif ($currency == 'IDR')
  512. {
  513. return 'Rp ';
  514. }
  515. elseif ($currency == 'INR')
  516. {
  517. return 'Rs ';
  518. }
  519. elseif ($currency == 'CHF')
  520. {
  521. return 'CHF ';
  522. }
  523. elseif ($currency == 'PLN')
  524. {
  525. return 'zl ';
  526. }
  527. elseif ($currency == 'RUB')
  528. {
  529. return 'P.';
  530. }
  531. elseif ($currency == 'SGD')
  532. {
  533. return 'S$';
  534. }
  535. elseif ($currency == 'ZAR')
  536. {
  537. return 'R ';
  538. }
  539. elseif ($currency == 'MYR')
  540. {
  541. return 'RM ';
  542. }
  543. elseif ($currency == 'BRL')
  544. {
  545. return 'R$';
  546. }
  547. elseif ($currency == 'LKR')
  548. {
  549. return 'Rs ';
  550. }
  551. elseif ($currency == 'VEF')
  552. {
  553. return 'Bs.F ';
  554. }
  555. elseif ($currency == 'LVL')
  556. {
  557. return 'Ls ';
  558. }
  559. elseif ($currency == 'ILS')
  560. {
  561. return ($html) ? '&#8362;' : '₪';
  562. }
  563. elseif ($currency == 'AED')
  564. {
  565. return 'AED ';
  566. }
  567. elseif ($currency == 'CZK')
  568. {
  569. return ($html) ? 'K&#269; ' : 'Kč ';
  570. }
  571. elseif ($currency == 'KES')
  572. {
  573. return 'KSh ';
  574. }
  575. else
  576. {
  577. return '$';
  578. }
  579. }
  580. function currencies()
  581. {
  582. $values = array(
  583. 'USD' => 'US Dollars (USD)',
  584. 'GBP' => 'UK Pounds (GBP)',
  585. 'EUR' => 'Euro (EUR)',
  586. 'AED' => 'UAE Dirham (AED)',
  587. 'ARS' => 'Argentina Pesos (ARS)',
  588. 'AUD' => 'Australia Dollars (AUD)',
  589. 'BRL' => 'Brazil Real (BRL)',
  590. 'CAD' => 'Canada Dollars (CAD)',
  591. 'CHF' => 'Switzerland Francs (CHF)',
  592. 'CZK' => 'Czech Republic Koruny (CZK)',
  593. 'DKK' => 'Denmark Kroner (DKK)',
  594. 'DOP' => 'Dominican Republic Peso (DOP)',
  595. 'HKD' => 'Hong Kong Dollar (HKD)',
  596. 'IDR' => 'Indonesia Rupiah (IDR)',
  597. 'ILS' => 'Israel New Shekels (ILS)',
  598. 'INR' => 'India Rupees (INR)',
  599. 'JPY' => 'Japan Yen (JPY)',
  600. 'KES' => 'Kenya Shilling (KES)',
  601. 'LKR' => 'Sri Lanka Rupees (LKR)',
  602. 'LVL' => 'Latvia Lat (LVL)',
  603. 'MXN' => 'Mexico Peso (MXN)',
  604. 'MYR' => 'Malaysia Ringgit (MYR)',
  605. 'NOK' => 'Norway Kroner (NOK)',
  606. 'NZD' => 'New Zealand Dollars (NZD)',
  607. 'PLN' => 'Poland Zloty (PLN)',
  608. 'RUB' => 'Russian Federation Ruble (RUB)',
  609. 'SEK' => 'Sweden Kronor (SEK)',
  610. 'SGD' => 'Singapore Dollars (SGD)',
  611. 'ZAR' => 'South Africa Rand (ZAR)',
  612. 'VEF' => 'Venezuela Bolivar Fuerte (VEF)'
  613. );
  614. return $values;
  615. }
  616. function languages()
  617. {
  618. $values = array(
  619. 'english' => 'English',
  620. 'danish' => 'Danish',
  621. 'dutch' => 'Dutch',
  622. 'finnish' => 'Finnish',
  623. 'french' => 'French',
  624. 'german' => 'German',
  625. 'norweigan' => 'Norweigan',
  626. 'portugese' => 'Portugese',
  627. 'russian' => 'Russian',
  628. 'spanish' => 'Spanish'
  629. );
  630. return $values;
  631. }
  632. function fraction($int)
  633. {
  634. $fraction = ($int - floor($int));
  635. if ($fraction == '0.25')
  636. {
  637. return floor($int).' &frac14;';
  638. }
  639. elseif ($fraction == '0.5')
  640. {
  641. return floor($int).' &frac12;';
  642. }
  643. elseif ($fraction == '0.75')
  644. {
  645. return floor($int).' &frac34;';
  646. }
  647. else
  648. {
  649. return $int;
  650. }
  651. }
  652. function order($by, $title, $desc = FALSE, $class = '', $extras = '')
  653. {
  654. $CI =& get_instance();
  655. $segments = $CI->uri->segment_array();
  656. if ($key = @array_search('orderby', $segments))
  657. {
  658. if ($segments[$key + 1] == $by)
  659. {
  660. if ($segments[$key + 2] == 'desc')
  661. {
  662. $segments[$key + 2] = 'asc';
  663. $class = 'orderdesc '.$class;
  664. }
  665. else
  666. {
  667. $segments[$key + 2] = 'desc';
  668. $class = 'orderasc '.$class;
  669. }
  670. }
  671. else
  672. {
  673. $segments[$key + 2] = ($desc) ? 'desc' : 'asc';
  674. }
  675. $segments[$key + 1] = $by;
  676. }
  677. else
  678. {
  679. array_push($segments, 'orderby');
  680. array_push($segments, $by);
  681. array_push($segments, (($desc) ? 'desc' : 'asc'));
  682. }
  683. $href = '/'.implode('/', str_replace('_ajax', '', $segments));
  684. return anchor($href, $title, 'class="'.trim($class).'" '.$extras);
  685. }
  686. function expiry_months_dropdown($name, $selected = '', $html = '')
  687. {
  688. return form_dropdown($name, array(
  689. '01' => 'January',
  690. '02' => 'February',
  691. '03' => 'March',
  692. '04' => 'April',
  693. '05' => 'May',
  694. '06' => 'June',
  695. '07' => 'July',
  696. '08' => 'August',
  697. '09' => 'September',
  698. '10' => 'October',
  699. '11' => 'November',
  700. '12' => 'December',
  701. ), $selected, $html);
  702. }
  703. function expiry_years_dropdown($name, $selected = '', $html = '')
  704. {
  705. $options = array();
  706. for ($i=0; $i < 20; $i++) {
  707. $options[date('Y', time()+(60*60*24*365)*$i+1)] = date('Y', time()+(60*60*24*365)*$i+1);
  708. }
  709. return form_dropdown($name, $options, $selected, $html);
  710. }
  711. function mkdn($text)
  712. {
  713. $CI =& get_instance();
  714. $CI->load->library('mkdn');
  715. return $CI->mkdn->translate($text);
  716. }