X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=convert%2Fconvert.php;h=57ce6ea83012420939c0d8734e4f753a5cc94afe;hb=d9c54193518678408093f21101b1bcc1c5796d57;hp=751316503366b944c8498c4dbc532863fa8c400c;hpb=5360f08f4295f2306d815a7659fbdff94fda01a3;p=friendica-addons.git diff --git a/convert/convert.php b/convert/convert.php index 75131650..57ce6ea8 100644 --- a/convert/convert.php +++ b/convert/convert.php @@ -1,228 +1,219 @@ - - */ - -function convert_install() { - register_hook('app_menu', 'addon/convert/convert.php', 'convert_app_menu'); -} - -function convert_uninstall() { - unregister_hook('app_menu', 'addon/convert/convert.php', 'convert_app_menu'); -} - -function convert_app_menu($a,&$b) { - $b['app_menu'][] = '
Units Conversion
'; -} - - -function convert_module() {} - - - - - - - -function convert_content($app) { - -include("UnitConvertor.php"); - - class TP_Converter extends UnitConvertor { - function TP_Converter($lang = "en") - { - if ($lang != 'en' ) { - $dec_point = '.'; $thousand_sep = "'"; - } else { - $dec_point = '.'; $thousand_sep = ","; - } - - $this->UnitConvertor($dec_point , $thousand_sep ); - - } // end func UnitConvertor - - function find_base_unit($from,$to) { - while (list($skey,$sval) = each($this->bases)) { - if ($skey == $from || $to == $skey || in_array($to,$sval) || in_array($from,$sval)) { - return $skey; - } - } - return false; - } - - function getTable($value, $from_unit, $to_unit, $precision) { - - if ($base_unit = $this->find_base_unit($from_unit,$to_unit)) { - - // A baseunit was found now lets convert from -> $base_unit - - $cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision)." ".$base_unit; - $cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? "framedred": ""; - $cells[] = $cell; - // We now have the base unit and value now lets produce the table; - while (list($key,$val) = each($this->bases[$base_unit])) { - $cell ['value'] = $this->convert($value, $from_unit, $val, $precision)." ".$val; - $cell ['class'] = ($val == $from_unit || $val == $to_unit) ? "framedred": ""; - $cells[] = $cell; - } - - $cc = count($cells); - $string = ""; - $string .= ""; - $i=0; - foreach ($cells as $cell) { - if ($i==0) { - $string .= ""; - $i++; - } else { - $string .= ""; - } - } - $string .= "
$value $from_unit".$cell['value']."
".$cell['value']."
"; - return $string; - } - - } -} - - -$conv = new TP_Converter('en'); - - -$conversions = array( - 'Temperature'=>array('base' =>'Celsius', - 'conv'=>array( - 'Fahrenheit'=>array('ratio'=>1.8, 'offset'=>32), - 'Kelvin'=>array('ratio'=>1, 'offset'=>273), - 'Reaumur'=>0.8 - ) - ), - 'Weight' => array('base' =>'kg', - 'conv'=>array( - 'g'=>1000, - 'mg'=>1000000, - 't'=>0.001, - 'grain'=>15432, - 'oz'=>35.274, - 'lb'=>2.2046, - 'cwt(UK)' => 0.019684, - 'cwt(US)' => 0.022046, - 'ton (US)' => 0.0011023, - 'ton (UK)' => 0.0009842 - ) - ), - 'Distance' => array('base' =>'km', - 'conv'=>array( - 'm'=>1000, - 'dm'=>10000, - 'cm'=>100000, - 'mm'=>1000000, - 'mile'=>0.62137, - 'naut.mile'=>0.53996, - 'inch(es)'=>39370, - 'ft'=>3280.8, - 'yd'=>1093.6, - 'furlong'=>4.970969537898672, - 'fathom'=>546.8066491688539 - ) - ), - 'Area' => array('base' =>'km 2', - 'conv'=>array( - 'ha'=>100, - 'acre'=>247.105, - 'm 2'=>pow(1000,2), - 'dm 2'=>pow(10000,2), - 'cm 2'=>pow(100000,2), - 'mm 2'=>pow(1000000,2), - 'mile 2'=>pow(0.62137,2), - 'naut.miles 2'=>pow(0.53996,2), - 'in 2'=>pow(39370,2), - 'ft 2'=>pow(3280.8,2), - 'yd 2'=>pow(1093.6,2), - ) - ), - 'Volume' => array('base' =>'m 3', - 'conv'=>array( - 'in 3'=>61023.6, - 'ft 3'=>35.315, - 'cm 3'=>pow(10,6), - 'dm 3'=>1000, - 'litre'=>1000, - 'hl'=>10, - 'yd 3'=>1.30795, - 'gal(US)'=>264.172, - 'gal(UK)'=>219.969, - 'pint' => 2113.376, - 'quart' => 1056.688, - 'cup' => 4266.753, - 'fl oz' => 33814.02, - 'tablespoon' => 67628.04, - 'teaspoon' => 202884.1, - 'pt (UK)'=>1000/0.56826, - 'barrel petroleum'=>1000/158.99, - 'Register Tons'=>2.832, - 'Ocean Tons'=>1.1327 - ) - ), - 'Speed' =>array('base' =>'kmph', - 'conv'=>array( - 'mps'=>0.0001726031, - 'milesph'=>0.62137, - 'knots'=>0.53996, - 'mach STP'=>0.0008380431, - 'c (warp)'=>9.265669e-10 - ) - ) -); - - -while (list($key,$val) = each($conversions)) { - $conv->addConversion($val['base'], $val['conv']); - $list[$key][] = $val['base']; - while (list($ukey,$uval) = each($val['conv'])) { - $list[$key][] = $ukey; - } -} - - $o .= '

Unit Conversions

'; - - - if (isset($_POST['from_unit']) && isset($_POST['value'])) { - $_POST['value'] = $_POST['value'] + 0; - - - $o .= ($conv->getTable($_POST['value'], $_POST['from_unit'], $_POST['to_unit'], 5))."

"; - } else { - $o .= "

Select:

"; - } - - if(isset($_POST['value'])) - $value = $_POST['value']; - else - $value = ''; - - $o .= '
'; - $o .= ''; - $o .= ''; - - $o .= '
'; - - return $o; -} + + */ + +use Friendica\App; +use Friendica\Core\Hook; + +function convert_install() { + Hook::register('app_menu', 'addon/convert/convert.php', 'convert_app_menu'); +} + +function convert_app_menu(array &$b) +{ + $b['app_menu'][] = '
Units Conversion
'; +} + + +function convert_module() {} + +function convert_content() { + // @TODO UnitConverter uses a deprecated constructor with the class' name + // @TODO Let's one day rewrite this to a modern composer package + include 'UnitConvertor.php'; + + class TP_Converter extends UnitConvertor + { + public function __construct(string $lang = 'en') + { + if ($lang == 'en' ) { + $dec_point = '.'; + $thousand_sep = ','; + } else { + $dec_point = '.'; + $thousand_sep = "'"; + } + + parent::UnitConvertor($dec_point, $thousand_sep ); + } + + private function findBaseUnit($from, $to) + { + while (list($skey, $sval) = each($this->bases)) { + if ($skey == $from || $to == $skey || in_array($to, $sval) || in_array($from, $sval)) { + return $skey; + } + } + + return false; + } + + public function getTable(int $value, $from_unit, $to_unit, $precision): string + { + $string = ''; + + if ($base_unit = $this->findBaseUnit($from_unit, $to_unit)) { + // A baseunit was found now lets convert from -> $base_unit + $cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision) . ' ' . $base_unit; + $cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? 'framedred' : ''; + $cells[] = $cell; + + // We now have the base unit and value now lets produce the table; + while (list($key, $val) = each($this->bases[$base_unit])) { + $cell ['value'] = $this->convert($value, $from_unit, $val, $precision) . ' ' . $val; + $cell ['class'] = ($val == $from_unit || $val == $to_unit) ? 'framedred' : ''; + $cells[] = $cell; + } + + $cc = count($cells); + $string = ""; + $string .= ""; + $i = 0; + foreach ($cells as $cell) { + if ($i == 0) { + $string .= ""; + $i++; + } else { + $string .= ""; + } + } + $string .= "
$value $from_unit" . $cell['value'] . "
" . $cell['value'] . "
"; + } + + return $string; + } + } + + $conv = new TP_Converter('en'); + + $conversions = [ + 'Temperature' => ['base' => 'Celsius', + 'conv' => [ + 'Fahrenheit' => ['ratio' => 1.8, 'offset' => 32], + 'Kelvin' => ['ratio' => 1, 'offset' => 273], + 'Reaumur' => 0.8 + ] + ], + 'Weight' => ['base' => 'kg', + 'conv' => [ + 'g' => 1000, + 'mg' => 1000000, + 't' => 0.001, + 'grain' => 15432, + 'oz' => 35.274, + 'lb' => 2.2046, + 'cwt(UK)' => 0.019684, + 'cwt(US)' => 0.022046, + 'ton (US)' => 0.0011023, + 'ton (UK)' => 0.0009842 + ] + ], + 'Distance' => ['base' => 'km', + 'conv' => [ + 'm' => 1000, + 'dm' => 10000, + 'cm' => 100000, + 'mm' => 1000000, + 'mile' => 0.62137, + 'naut.mile' => 0.53996, + 'inch(es)' => 39370, + 'ft' => 3280.8, + 'yd' => 1093.6, + 'furlong' => 4.970969537898672, + 'fathom' => 546.8066491688539 + ] + ], + 'Area' => ['base' => 'km 2', + 'conv' => [ + 'ha' => 100, + 'acre' => 247.105, + 'm 2' => pow(1000,2), + 'dm 2' => pow(10000,2), + 'cm 2' => pow(100000,2), + 'mm 2' => pow(1000000,2), + 'mile 2' => pow(0.62137,2), + 'naut.miles 2' => pow(0.53996,2), + 'in 2' => pow(39370,2), + 'ft 2' => pow(3280.8,2), + 'yd 2' => pow(1093.6,2), + ] + ], + 'Volume' => ['base' => 'm 3', + 'conv' => [ + 'in 3' => 61023.6, + 'ft 3' => 35.315, + 'cm 3' => pow(10,6), + 'dm 3' => 1000, + 'litre' => 1000, + 'hl' => 10, + 'yd 3' => 1.30795, + 'gal(US)' => 264.172, + 'gal(UK)' => 219.969, + 'pint' => 2113.376, + 'quart' => 1056.688, + 'cup' => 4266.753, + 'fl oz' => 33814.02, + 'tablespoon' => 67628.04, + 'teaspoon' => 202884.1, + 'pt (UK)' => 1000/0.56826, + 'barrel petroleum' => 1000/158.99, + 'Register Tons' => 2.832, + 'Ocean Tons' => 1.1327 + ] + ], + 'Speed' => ['base' => 'kmph', + 'conv' => [ + 'mps' => 0.0001726031, + 'milesph' => 0.62137, + 'knots' => 0.53996, + 'mach STP' => 0.0008380431, + 'c (warp)' => 9.265669e-10 + ] + ] + ]; + + while (list($key, $val) = each($conversions)) { + $conv->addConversion($val['base'], $val['conv']); + $list[$key][] = $val['base']; + while (list($ukey, $uval) = each($val['conv'])) { + $list[$key][] = $ukey; + } + } + + $o .= '

Unit Conversions

'; + + if (isset($_POST['from_unit']) && isset($_POST['value'])) { + $o .= ($conv->getTable(intval($_POST['value']), $_POST['from_unit'], $_POST['to_unit'], 5)) . '

'; + } else { + $o .= '

Select:

'; + } + + if (isset($_POST['value'])) { + $value = $_POST['value']; + } else { + $value = ''; + } + + $o .= '
'; + $o .= ''; + $o .= ''; + $o .= '
'; + + return $o; +}