From 39ef6aecabcbacc0b3d84a0dbe7046234e794b9f Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 3 Oct 2017 13:28:09 -0700 Subject: [PATCH] 'progressbar' field type added to custom fields handler. progressbar() now accepts values like '8/10' --- e107_handlers/e_customfields_class.php | 8 +++++++- e107_handlers/form_handler.php | 24 +++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/e107_handlers/e_customfields_class.php b/e107_handlers/e_customfields_class.php index af1a50557..ee06cfe12 100644 --- a/e107_handlers/e_customfields_class.php +++ b/e107_handlers/e_customfields_class.php @@ -14,7 +14,7 @@ private $_fieldTypes = array( 'number', 'email', 'url', 'password', 'text', 'tags', 'textarea', 'bbarea', 'image', 'file', 'icon', 'datestamp', 'checkboxes', 'dropdown', 'radio', - 'userclass', 'user', 'boolean', 'checkbox', 'hidden', 'lanlist', 'language', 'country', 'video' + 'userclass', 'user', 'boolean', 'checkbox', 'hidden', 'lanlist', 'language', 'country', 'video', 'progressbar' ); @@ -150,6 +150,8 @@ return ($raw) ? 'https://www.youtube.com/watch?v='.str_replace(".youtube", '', $value) : $tp->toVideo($value); break; + + case "image": return ($raw) ? $tp->thumbUrl($value) : $tp->toImage($value); break; @@ -192,6 +194,10 @@ return ($raw) ? $value : e107::getUserClass()->getName($value); break; + case "progressbar": + return ($raw) ? $value.'%' : e107::getForm()->progressBar($key,$value,$this->_config[$key]); + break; + case "textarea": case "bbarea": return $tp->toHtml($value, true); diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 8e0160fd7..0d8b92cb3 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -1869,7 +1869,7 @@ class e_form /** * Render a bootStrap ProgressBar. * @param string $name - * @param number $value + * @param number|string $value * @param array $options * @example Use */ @@ -1891,11 +1891,28 @@ class e_form $striped = (vartrue($options['btn-label'])) ? ' progress-striped active' : ''; - $percVal = number_format($value,0).'%'; + if(strpos($value,'/')!==false) + { + $label = $value; + list($score,$denom) = explode('/',$value); + + $multiplier = 100 / (int) $denom; + + $value = (int) $score * (int) $multiplier; + $percVal = number_format($value,0).'%'; + } + else + { + $percVal = number_format($value,0).'%'; + $label = $percVal; + } + + + $text = "
"; - $text .= $percVal; + $text .= $label; $text .= "
"; @@ -5323,6 +5340,7 @@ class e_form break; case 'text': + case 'progressbar': $maxlength = vartrue($parms['maxlength'], 255); unset($parms['maxlength']);