public function displayMultiple($map, $values) { if (empty($this->values)) { $this->load(); } if (empty($values)) { $values = array(); } else { if (is_string($values)) { $values = explode(',', $values); } } $shopConfig = hikaserial::config(false); hikaserial::loadJslib('otree'); if (substr($map, -2) == '[]') { $map = substr($map, 0, -2); } $id = str_replace(array('[', ']'), array('_', ''), $map); $ret = '<div class="nameboxes" id="' . $id . '" onclick="window.oNameboxes[\'' . $id . '\'].focus(\'' . $id . '_text\');">'; if (!empty($values)) { foreach ($values as $key) { if (isset($this->values[$key])) { $name = $this->values[$key]->text; } else { $name = JText::sprintf('UNKNOWN_PACK_X', $key); } $ret .= '<div class="namebox" id="' . $id . '_' . $key . '">' . '<input type="hidden" name="' . $map . '[]" value="' . $key . '"/>' . $name . ' <a class="closebutton" href="#" onclick="window.oNameboxes[\'' . $id . '\'].unset(this,\'' . $key . '\');window.oNamebox.cancelEvent();return false;"><span>X</span></a>' . '</div>'; } } $ret .= '<div class="namebox" style="display:none;" id="' . $id . 'tpl">' . '<input type="hidden" name="{map}" value="{key}"/>{name}' . ' <a class="closebutton" href="#" onclick="window.oNameboxes[\'' . $id . '\'].unset(this,\'{key}\');window.oNamebox.cancelEvent();return false;"><span>X</span></a>' . '</div>'; $ret .= '<div class="nametext">' . '<input id="' . $id . '_text" type="text" style="width:50px;min-width:60px" onfocus="window.oNameboxes[\'' . $id . '\'].focus(this);" onkeyup="window.oNameboxes[\'' . $id . '\'].search(this);" onchange="window.oNameboxes[\'' . $id . '\'].search(this);"/>' . '<span style="position:absolute;top:0px;left:-2000px;visibility:hidden" id="' . $id . '_span">span</span>' . '</div>'; $data = array(); foreach ($this->values as $key => $value) { if (empty($key)) { continue; } $data[$key] = $value->text; } $namebox_options = array('mode' => 'list', 'img_dir' => HIKASHOP_IMAGES, 'map' => $map, 'min' => $shopConfig->get('namebox_search_min_length', 3), 'multiple' => true); $ret .= '<div style="clear:both;float:none;"></div></div> <div class="namebox-popup"> <div id="' . $id . '_olist" style="display:none;" class="oList namebox-popup-content"></div> </div> <script type="text/javascript"> new window.oNamebox( \'' . $id . '\', ' . json_encode($data) . ', ' . json_encode($namebox_options) . ' );'; if (!empty($values)) { $ret .= ' try{ window.oNameboxes[\'' . $id . '\'].content.block(' . json_encode($values) . '); }catch(e){}'; } $ret .= ' </script>'; return $ret; }
public function display($map, $values, $allBtn = false, $min = false) { hikaserial::loadJslib('otree'); if (empty($this->groups)) { $this->load(); } $map = str_replace('"', '', $map); $id = str_replace(array('[', ']', ' '), array('_', '', '_'), $map); $cpt = count($this->groups) - 1; $ret = '<div id="' . $id . '_otree" class="oTree"></div><input type="hidden" value="' . $values . '" name="' . $map . '" id="' . $id . '"/> <script type="text/javascript"> var data_' . $id . ' = ' . $this->getData($values, $allBtn, $min) . '; ' . $id . ' = new window.oTree("' . $id . '",{rootImg:"' . HIKASHOP_IMAGES . 'otree/", showLoading:false, useSelection:false, checkbox:true},null,data_' . $id . ',true); ' . $id . '.callbackCheck = function(treeObj, id, value) { var node = treeObj.get(id), d = document, e = d.getElementById("' . $id . '"); if(node.state == 5) { if(value === true) { treeObj.chks("*",false); e.value = "all"; } else if(value === false) { treeObj.chks(false,false,true); e.value = "none"; } } else { var v = treeObj.getChk(); node = treeObj.get(0); if(v === false || v.length == 0) { e.value = "none"; treeObj.chk(1,0,false,false); } else if( v.length > ' . $cpt . ') { e.value = "all"; treeObj.chk(1,1,false,false); } else { e.value = v.join(","); treeObj.config.tricheckbox = true; treeObj.chk(1,2,false,false); treeObj.config.tricheckbox = false; } } }; </script>'; return $ret; }