diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 506c79929..20e827cd1 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -5384,6 +5384,14 @@ class e_form case 'video': case 'image': //TODO - thumb, image list shortcode, js tooltip... $label = varset($parms['label'], 'LAN_EDIT'); + + if(!empty($parms['optArray'])) + { + + return $this->imageradio($key,$value,$parms); + } + + unset($parms['label']); if($attributes['type'] === 'video') @@ -5392,6 +5400,7 @@ class e_form $parms['w'] = 280; } + $ret = $this->imagepicker($key, $value, defset($label, $label), $parms); break; @@ -5733,6 +5742,46 @@ class e_form return $ret; } + + private function imageradio($name,$value,$parms) + { + + if(!empty($parms['path'])) + { + $parms['legacy'] = $parms['path']; + } + + + $text = '
'; + + + + foreach($parms['optArray'] as $key=>$val) + { + $thumbnail = e107::getParser()->toImage($val,$parms); + + // $thumbnail = "".$val.""; + + + $selected = ($val == $value) ? " checked" : ""; + + $text .= " +
+ +
"; + + } + + $text .= "
"; + + return $text; + + } + + + /** * Generic List Form, used internally by admin UI * Expected options array format: diff --git a/e107_themes/bootstrap3/admin_style.css b/e107_themes/bootstrap3/admin_style.css index 5d7dbb120..e301afbce 100644 --- a/e107_themes/bootstrap3/admin_style.css +++ b/e107_themes/bootstrap3/admin_style.css @@ -95,6 +95,16 @@ cursor: help; } + .e-image-radio { padding-left:0;} + + .e-image-radio label > input { visibility: hidden; position: absolute; } + .e-image-radio label > input + div{ cursor:pointer; border:2px solid transparent; border-radius:4px;height: 60px; padding: 5px; vertical-align: middle; } + .e-image-radio label > input:checked + div { border:2px solid #337ab7; } + .e-image-radio label > input + div span { visibility: hidden; float:right; margin-right:10px; color:#337ab7 } + .e-image-radio label > input:checked + div span { visibility: initial; } + + + /* TODO - use col-xx-x markup where core-mainpanel-block occurs. ? */ @media (max-width: 1700px){ .core-mainpanel-block { width:25%; }