';
return $html;
}
return '
' . $param['name'] . '
';
}
/**
* cue
*
* @return string
*/
public static function _cue($param)
{
$param['cue'] = isset($param['cue']) ? $param['cue'] : '';
if (strpos($param['name'], '-') !== false) {
$temp = explode('-', $param['name']);
$param['name'] = $temp[0];
$param['cue'] = $temp[1];
} elseif (strpos($param['name'], '(') !== false) {
$temp = explode('(', $param['name']);
$param['name'] = $temp[0];
$param['cue'] = str_replace(')', '', $temp[1]);
} elseif (strpos($param['name'], '(') !== false) {
$temp = explode('(', $param['name']);
$param['name'] = $temp[0];
$param['cue'] = str_replace(')', '', $temp[1]);
}
return $param;
}
/**
* pageLeft
*
* @return string
*/
public static function _pageLeft($param)
{
$param = self::cue($param);
if ($param['cue']) {
$param['cue'] = '
[' . $param['cue'] . ']';
}
$class = '';
$style = '';
if (layadmin()) {
//$class = 'layui-form-label';
if (isset($param['update']) && is_array($param['update'])) {
$style = ' style="margin:10px;"';
}
}
$html = '
';
return $html;
}
/**
* textarea
*
* @return string
*/
public static function _textarea($param)
{
return '
';
return '
';
}
private static function uploadHandle($param)
{
$html = $style = '';
$div = array('', '');
$type = 'button';
$yun = false;
if (isset($param['upload']) && ($param['upload'] == 'yun' || $param['upload'] == 'qiniu')) {
$upload = Dever::project('upload');
if ($upload && !strstr($upload['path'], 'http')) {
$upload = Dever::load('upload/yun.token?return=1&key=' . $param['key']);
} else {
$upload = Dever::load('upload/yun.token?key=' . $param['key']);
}
if (isset($upload['domain'])) {
$bucket = $upload['bucket'];
$domain = $upload['domain'];
$token = $upload['uptoken'];
$host = $upload['host'];
$cover = 1;
$yun = true;
if (isset($param['cover']) && $param['cover']) {
$cover = $param['cover'];
} elseif (isset($upload['cover']) && $upload['cover']) {
$cover = $upload['cover'];
}
$date = explode('-', date("Y-m-d"));
$path = $param['key'] . '/' . $date[0] . '/' . $date[1] . '/' . $date[2] . '/';
$html = ' m="'.$upload['type'].'" cover="'.$cover.'" domain="'.$domain.'" bucket="'.$bucket.'" path="'.$path.'" host="'.$host.'" token="'.$token.'" ';
}
}
if (isset($param['large']) && $param['large'] && isset($upload['domain'])) {
$html .= ' l="1" ';
$type = 'file';
$div = array('
', '本地上传
');
$style = 'position: absolute;
font-size: 21px;
right: 0;
top: 0;
opacity: 0;';
}
return array($html, $type, $div, $style, $yun);
}
private static function uploadParam($param)
{
if (isset($param['upload_key'])) {
$param['key'] = $param['upload_key'];
}
if (isset($param['upload_place'])) {
$param['place'] = $param['upload_place'];
}
if (!isset($param['upload_search'])) {
$param['upload_search_value'] = $param['project'] . '-' . $param['table'] . '.' . $param['col'];
$param['upload_search'] = $param['upload_search_value'];
} else {
if (!isset($param['upload_search_value'])) {
$param['upload_search_value'] = $param['upload_search'];
}
}
$param['upload_search_show'] = $param['upload_search'];
if (strstr($param['upload_search'], '#')) {
$temp = explode('#', $param['upload_search']);
$param['upload_search_show'] = $temp[0];
if ($temp[1] > 0) {
$param['upload_search_show'] .= '_';
}
}
if (isset($param['place']) && $param['place']) {
//$pic = 'src="http://placehold.it/' . $param['place'] . '"';
//$param['placeimg'] = '

';
$place = $param['place'];
$default = '';
if (strstr($param['place'], '?')) {
$temp = explode('?', $param['place']);
$param['place'] = $temp[0];
$default .= '&';
} else {
$default .= '?';
}
if (strstr($place, '*')) {
$place = str_replace('*', 'x', $place);
} elseif (strstr($place, 'X')) {
$place = str_replace('X', 'x', $place);
} else {
$place = $param['place'] . 'x' . $param['place'];
}
$text = '';
//$text = "" . $place . "px \n 大小不能超过2M";
//$text = "图片尺寸".$place."px \n 也可以上传等比尺寸 \n 上传大小不能超过2M \n 支持JPG、PNG、 GIF格式";
//$default .= 'auto=yes&theme=social&text=' . $text;
$default .= 'auto=yes&text=' . $text;
$place .= $default;
$param['placeimg'] = '

';
} else {
$param['place'] = '';
$param['placeimg'] = '';
}
if (isset($param['upload_call'])) {
$param['call'] = $param['upload_call'];
}
if (!isset($param['call'])) {
$param['call'] = '';
}
return $param;
}
/**
* image
*
* @return string
*/
public static function _image($param)
{
$param = self::uploadParam($param);
if (isset($param['value']) && $param['value']) {
$pic = 'src="' . $param['value'] . '"';
if (strstr($param['value'], '.cr')) {
$temp = explode('.cr', $param['value']);
$pic .= ' data-src="' . $temp[0] . '"';
}
} else {
$pic = 'src="" style=display:none;';
}
$class = 'width:100px;display:inline;';
if (layadmin()) {
$class .= 'padding-left:0px;';
}
$upload = self::uploadHandle($param);
$button = $upload[2][0] . '
' . $upload[2][1];
return $button .'
标识:'.$param['upload_search_show'].'
'.$param['placeimg'].'
![]()
';
}
/**
* images
*
* @return string
*/
public static function _images($param)
{
$param = self::uploadParam($param);
$pic = $param['placeimg'];
if (isset($param['value']) && $param['value']) {
$temp = explode(',', $param['value']);
foreach ($temp as $k => $v) {
$data_src = '';
if (strstr($v, '.cr')) {
$temp = explode('.cr', $v);
$data_src = $temp[0];
}
$pic .= '

';
}
}
$class = 'width:100px;display:inline;';
if (layadmin()) {
$class .= 'padding-left:0px;';
}
$upload = self::uploadHandle($param);
$button = $upload[2][0] . '
' . $upload[2][1];
return $button . '
标识:'.$param['upload_search_show'].'
' . $pic . '
';
}
/**
* upload
*
* @return string
*/
public static function _upload($param)
{
$param = self::uploadParam($param);
$class = 'width:100px;display:inline;';
if (layadmin()) {
$class .= 'padding-left:0px;';
}
$upload = self::uploadHandle($param);
$button = $upload[2][0] . '
' . $upload[2][1];
return $button .'
标识:'.$param['upload_search_show'].'
';
//return '
';
}
/**
* upload
*
* @return string
*/
public static function _uploads($param)
{
$param = self::uploadParam($param);
$file = '';
if (isset($param['value']) && $param['value']) {
$temp = explode(',', $param['value']);
foreach ($temp as $k => $v) {
$upload = Dever::load('upload/file-check', array('option_key' => md5($v)));
$file .= '
' . $upload['source_name'] . ' [删除]';
}
}
$class = 'width:100px;display:inline;';
if (layadmin()) {
$class .= 'padding-left:0px;';
}
$upload = self::uploadHandle($param);
$button = $upload[2][0] . '
' . $upload[2][1];
return $button .'
标识:'.$param['upload_search_show'].'
';
//return '
';
}
/**
* video
*
* @return string
*/
public static function _video($param)
{
$param = self::uploadParam($param);
$class = 'width:100px;display:inline;';
if (layadmin()) {
$class .= 'padding-left:0px;';
}
$upload = self::uploadHandle($param);
$value = (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : ''));
$button = $upload[2][0] . '
' . $upload[2][1];
$button .= '
';
if (isset($upload[4]) && $upload[4]) {
$cover = isset($param['cover']) ? $param['cover'] : 'pic';
$button .= '
';
}
$button .= '
标识:'.$param['upload_search_show'].'
';
return $button;
}
/**
* editor
*
* @return string
*/
public static function _editor($param)
{
$param = self::uploadParam($param);
$width = '100%';
$html = '';
if (isset($param['editor'])) {
$width = '70%';
if (layadmin()) {
$left = '740px';
} else {
$left = '766px';
}
$html .= '
';
}
$upload = self::uploadHandle($param);
return $html . '
';
}
/**
* markdown
*
* @return string
*/
public static function _markdown($param)
{
return '
';
}
/**
* selector
*
* @return string
*/
public static function _selector($param, $type = '')
{
$html = '';
if (isset($param['key']) && strpos($param['key'], '.css') !== false) {
$param['key'] = '
';
}
if (isset($param['option'])) {
foreach ($param['option'] as $k => $v) {
$check = '';
if ((isset($param['value']) && $param['value'] == $k) || (empty($param['value']) && isset($param['default']) && $param['default'] == $k)) {
$check = 'checked';
}
if (is_array($v)) {
$value = $v['name'];
} else {
$value = $v;
}
$html .= '
' . $value . ' ';
}
$html .= self::hidden($param);
}
return '
' . $html . '
';
}
/**
* radio
*
* @return string
*/
public static function _radio($param, $type = '')
{
$html = '';
if (isset($param['option'])) {
if (isset($param['option']['state']) && $param['option']['state'] >= 1) {
# 处理比较复杂的多维数组
$state = $param['option']['state'];
unset($param['option']['state']);
if (isset($param['value']) && $param['value']) {
if ($state == 2) {
$param['value'] = Dever::json_decode($param['value']);
} else {
$param['value'] = explode(',', $param['value']);
}
} else {
$param['value'] = array();
}
$j = -1;
$name = $param['name'];
foreach ($param['option'] as $k => $v) {
$check = '';
if (isset($param['update_parent'])) {
$input_type = $param['update_parent'];
} else {
$input_type = $param['update'];
}
if ($state == 2) {
$parent_check = '';
if (isset($param['value']) && isset($param['value'][$v['id']])) {
$vt = implode(',', $param['value'][$v['id']]);
if ($vt != -1) {
$parent_check = 'checked';
}
}
$name = $name . '['.$v['id'].']';
$html .= '
';
} else {
$html .= '
';
}
$span = array('', '');
if (isset($v['child']) && $v['child']) {
//$i = 1;
$html .= '
';
}
$html .= '
';
}
} else {
$js = '';
if (isset($param['control']) && is_string($param['control'])) {
//print_r($param);die;
$js = ' show_id="' . $param['control'] . '" onclick="inputShow($(this), \'' . $param['control'] . '\', \'input\')"';
} elseif (isset($param['load'])) {
$js = ' onchange="loadChange($(this), \'' . $param['load'] . '\')" ';
$js .= ' onload="loadChange($(this), \'' . $param['load'] . '\')" ';
} elseif (isset($param['bind'])) {
$param['bind'][2] = isset($param['bind'][2]) ? str_replace('"', '\'', json_encode($param['bind'][2], true)) : false;
$js = $param['bind'][0] . '="' . $param['bind'][1] . '(\'' . $param['name'] . '\', $(this), ' . $param['bind'][2] . ')" ';
$js .= ' onload="' . $param['bind'][1] . '(\'' . $param['name'] . '\', $(this), ' . $param['bind'][2] . ')" ';
}
$param['parent'] = isset($param['parent']) ? $param['parent'] : '0';
$param['parent'] .= '_' . $param['name'];
if ($param['update'] == 'checkbox' && empty($param['checkall'])) {
$html .= '
';
}
$i = 0;
foreach ($param['option'] as $k => $v) {
$check = '';
if (is_array($v)) {
$value = $v['name'];
isset($v['id']) && $k = $v['id'];
} else {
$value = $v;
}
if (isset($param['bit'][$k])) {
if (isset($param['value']) && ($param['value'] & $k) > 0) {
$check = 'checked';
}
} elseif (isset($param['value'])) {
if (is_string($param['value']) && strpos(',' . $param['value'] . ',', ',' . $k . ',') !== false) {
$check = 'checked';
} elseif (is_array($param['value']) && in_array($k, $param['value'])) {
$check = 'checked';
}
} elseif (isset($param['default']) && $param['default']) {
if (is_string($param['default']) && strpos(',' . $param['default'], ',' . $k) !== false) {
$check = 'checked';
} elseif (is_array($param['default']) && in_array($k, $param['default'])) {
$check = 'checked';
}
} elseif ($param['update'] == 'radio' && $i == 0) {
$check = 'checked';
}
$cjs = $js;
if (isset($param['control']) && is_string($param['control']) && $param['control'] != $param['name']) {
$cjs = str_replace('update_', '', str_replace($param['control'], $param['name'], $js));
}
$disabled = '';
if (isset($param['disabled'])) {
$disabled = 'disabled="true"';
}
$html .= '
';
if (isset($param['bind'])) {
//$html .= '';
}
$i++;
}
}
}
return '
' . $html . '
';
}
/**
* group
*
* @return string
*/
public static function _group($param, $class = '', $hidden = '', $change = '')
{
$html = $class ? '
' : '';
$html .= $hidden . '';
$html .= $class ? '
' : '';
return $html;
}
/**
* linkage select 多级联动
*
* @return string
*/
public static function _linkage($param, $class = '', $hidden = '', $change = '')
{
$div = 'div';
$w = 'width:20%;';
if ($class == 'span') {
$div = 'span';
$w = '';
}
if (layadmin()) {
$w = 'margin-top:0px;width:20%;margin-left:-3px;';
}
if (!isset($param['search_state'])) {
$param['search_state'] = false;
}
# 当前级别
$level = 1;
# 传入的参数
$level_param = '';
if (isset($param['linkage'])) {
$level_param = $param['linkage'];
}
$id = 'dever-linkage-' . $param['name'];
$html = '<' . $div . ' class="' . $class . '" id="' . $id . '" >';
# 默认值
if (isset($param['value']) && is_array($param['value'])) {
$param['value'] = implode(',', $param['value']);
}
$col = $api = $type = $script = '';
$title = '';
$open = '';
if (is_array($param['option'])) {
$option = $param['option'];
$param['option'] = $option[0];
$col = $option[1];
$api = $option[2];
$type = 'checkbox';
if (isset($option[3])) {
$title = $option[3];
}
if (isset($option[4])) {
$open = str_replace('{where_id}', Dever::input('where_id'), $option[4]);
}
if (isset($param['value']) && $param['value']) {
$script = 'select_api = JSON.parse(\''.$param['value'].'\');';
$param['value'] = '';
}
}
$load = '';
if (isset($param['load'])) {
$load = $param['load'];
}
$html .= '';
$html .= '' . $div . '>
';
return $html;
}
/**
* select
*
* @return string
*/
public static function _selects($param, $class = '', $hidden = '', $change = '')
{
return self::_select($param, $class, $hidden, $change);
}
/**
* select
*
* @return string
*/
public static function _select($param, $class = '', $hidden = '', $change = '')
{
$html = $class ? '
' : '';
$child_class = '';
$style = '';
if (isset($param['child'])) {
$child_param['name'] = 'update_' . $param['child_name'];
isset($param['value']) && $param['value'] = $param['value'];
isset($param['child_value']) && $child_param['value'] = $param['child_value'];
$change = 'style="width:45%" id="' . $param['name'] . '" data-child="' . $child_param['name'] . '_child" ';
$child_class = ' change';
//$param['name'] .= '_parent';
}
if (isset($param['control']) && is_string($param['control'])) {
//print_r($param);die;
$change = ' show_id="' . $param['control'] . '" onchange="inputShow($(this), \'' . $param['control'] . '\')"';
} elseif (isset($param['option_add'])) {
$change = ' onchange="addChange($(this))" ';
$style = 'width:25%';
$child_class .= ' change';
} elseif (isset($param['load'])) {
$change = ' onchange="loadChange($(this), \'' . $param['load'] . '\')" ';
$child_class .= ' change';
} elseif (isset($param['bind'])) {
$param['bind'][2] = isset($param['bind'][2]) ? str_replace('"', '\'', json_encode($param['bind'][2], true)) : false;
$change = $param['bind'][0] . '="' . $param['bind'][1] . '($(this), ' . $param['bind'][2] . ')" ';
$child_class .= ' change';
}
$xm = '';
if ($change) {
$xm = '';
} else {
}
if (!$change && isset($param['update'])) {
$xm = 'xm-select="' . $param['name'] . '" xm-select-skin="normal" xm-select-search="" xm-select-search-type="dl"';
if ($param['update'] != 'selects') {
$xm .= ' xm-select-radio=""';
}
$search_value = '';
if (isset($param['value'])) {
$search_value = $param['value'];
} elseif (isset($param['default'])) {
$search_value = $param['default'];
}
if (isset($param['update_search'])) {
$xm = str_replace('xm-select-search=""', 'xm-select-search="'.Dever::url($param['update_search'] . '&yes='.$search_value.'&json=1').'"', $xm);
}
if (isset($param['update_create'])) {
$xm .= ' xm-select-create=""';
}
if ($param['match'] != 'option') {
$xm .= ' lay-verify="' . $param['name'] . '"';
}
if ($param['update'] == 'selects' && isset($param['lang']) && $param['lang']) {
$xm .= ' xm-select-placeholder="'.$param['lang'].'"';
unset($param['lang']);
}
} else {
$xm .= ' xm-select-radio=""';
}
if (isset($param['option']) && isset($param['update']) && $param['update'] == 'select') {
$total = count($param['option']);
if ($total <= 5) {
$xm = '';
}
}
$html .= $hidden . '';
if (isset($param['child'])) {
$child = $child_param['name'];
$hidden = self::hidden(array('name' => $child, 'class' => $child . '_child_value'));
foreach ($param['child'] as $k => $v) {
$child_param['name'] = 'child-' . $k;
$child_param['option'] = $v;
$html .= self::select($child_param, $child . '_child ' . $child . '_child_' . $k . '" parent="' . $k . '" style="display:none;margin-top: -38px;margin-left: 47%;"', $hidden);
}
}
$html .= $class ? '
' : '';
return $html;
}
/**
* radio
*
* @return string
*/
public static function _checkbox($param)
{
return self::radio($param);
}
/**
* text
*
* @return string
*/
public static function _text($param, $class = '')
{
if ($class) {
return '
' . self::text($param, false) . '
';
} else {
$auto = $input = '';
if (isset($param['const'])) {
$value = $param['const'];
} else {
$value = (isset($param['value']) ? $param['value'] : (isset($param['default']) ? $param['default'] : ''));
}
if (isset($param['autocomplete']) && $param['update'] == 'text') {
if (empty($param['autocomplete'][1])) {
$param['autocomplete'][1] = 'value';
}
if ($param['autocomplete'][1] == 'id') {
$input = self::hidden(array('name' => $param['name'], 'value' => $value));
$input = '';
if (isset($param['autocomplete'][2]) && $value) {
# 重新定义value
$value = Dever::load($param['autocomplete'][2], $value);
if (is_array($value)) {
$html = '
';
$input .= $html;
$value = '';
}
}
$param['name'] = $param['name'] . '_temp';
}
$auto = 'complete="' . Dever::url($param['autocomplete'][0]) . '" complete_callback="' . $param['autocomplete'][1] . '" ';
if (isset($param['autocomplete'][3])) {
$auto .= ' complete_cate="' . $param['autocomplete'][3] . '" ';
}
} elseif (isset($param['searchbox'])) {
if (empty($param['searchbox'][1])) {
$param['searchbox'][1] = 'value';
}
if ($param['searchbox'][1] == 'id') {
$input = self::hidden(array('name' => $param['name'], 'value' => $value));
$input = '';
if (isset($param['searchbox'][2]) && $value) {
# 重新定义value
$value = Dever::load($param['searchbox'][2], $value);
if (is_array($value)) {
$html = '
';
$input .= $html;
$value = '';
}
}
$param['name'] = $param['name'] . '_temp';
}
$auto = 'searchbox="' . Dever::url($param['searchbox'][0]) . '" searchbox_callback="' . $param['searchbox'][1] . '" ';
if (isset($param['searchbox'][3])) {
$auto .= ' searchbox_cate="' . $param['searchbox'][3] . '" ';
}
$search = '';
if (isset($param['searchbox'][4])) {
$temp = explode(',', $param['searchbox'][3]);
$link = explode(',', $param['searchbox'][4]);
$p = array();
$p['option'] = array();
foreach ($temp as $k => $v) {
$p['name'] = $v;
$p['option'] = Dever::load($link[$k]);
$search .= self::_select($p, '', '', ' style="width: 15%;display: inline;margin-left:5px;"');
}
}
$auto .= ' style="display: inline;"';
$input = $search . '
' . $input;
}
if (isset($param['bind'])) {
$param['bind'][2] = isset($param['bind'][2]) ? str_replace('"', '\'', json_encode($param['bind'][2], true)) : false;
$auto .= $param['bind'][0] . '="' . $param['bind'][1] . '($(this), ' . $param['bind'][2] . ')" ';
$auto .= ' onload="' . $param['bind'][1] . '($(this), ' . $param['bind'][2] . ')" ';
}
return '
' . $input;
}
}
/**
* color
*
* @return string
*/
public static function _color($param)
{
$param['class'] = 'dever-color form-control';
$param['update'] = 'text';
$param['default'] = isset($param['default']) ? $param['default'] : '#000000';
return self::_text($param, '');
}
/**
* password
*
* @return string
*/
public static function _password($param)
{
$param['value'] = '';
return self::_text($param);
}
/**
* hidden
*
* @return string
*/
public static function _hidden($param)
{
$param['type'] = 'hidden';
$param['update'] = 'hidden';
return self::_text($param, '');
}
/**
* 选择详细的时间
*
* @return string
*/
public static function _date($param, $type = true, $key = 'date', $parse = 'Y-m-d H:i:s')
{
$time = $value = '';
if ((isset($param['value']) && $param['value'] > 0)) {
$time = $param['value'];
} elseif ((isset($param['default']) && $param['default'] > 0)) {
$time = $param['default'];
} elseif($type) {
$time = time();
}
if ($time) {
if (strlen($time) >= 10) {
$value = date($parse, $time);
} else {
$value = $time;
}
}
return '
';
}
/**
* time已废弃,用day替换,兼容不删除
*
* @return string
*/
public static function _time($param, $type = false)
{
return self::_day($param, $type);
}
/**
* day 选择天
*
* @return string
*/
public static function _day($param, $type = false)
{
return self::_date($param, $type, 'day', 'Y-m-d');
}
/**
* 选择年
*
* @return string
*/
public static function _year($param, $type = false)
{
return self::_date($param, $type, 'year', 'Y');
}
/**
* 选择月
*
* @return string
*/
public static function _month($param, $type = false)
{
return self::_date($param, $type, 'month', 'Y-m');
}
/**
* 选择几天内
*
* @return string
*/
public static function _sday($param, $type = false)
{
$date = self::_date($param, $type, 'sday', 'Y-m-d');
return $date;
}
/**
* 选择几天内
*
* @return string
*/
public static function _sdate($param, $type = false)
{
$date = self::_date($param, $type, 'sdate');
return $date;
}
/**
* div
*
* @return string
*/
public static function _node($param, $type = 'div')
{
$result = array('', '');
foreach ($param as $k => $v) {
$result[0] .= '<' . $type . ' ' . $v . '>';
$result[1] .= '' . $type . '>';
}
return $result;
}
/**
* _load
*
* @return string
*/
public static function _load($param)
{
$cate = '';
$load = $param['update_load'];
if (is_array($load)) {
$cate = $load[1];
$load = $load[0];
}
$html = '
';
return $html;
}
/**
* 规格设置
*
* @return string
*/
public static function _sku($param)
{
$col = Dever::json_encode($param['sku']['col']);
$param['sku']['api']['spec'] = Dever::url($param['sku']['api']['spec'] . '?json=1&id=' . $param['where_id']);
$param['sku']['api']['sku'] = Dever::url($param['sku']['api']['sku'] . '?json=1&id=' . $param['where_id']);
$param['sku']['api']['upload'] = Dever::url($param['sku']['api']['upload']);
if (isset($param['data']) && isset($param['data']['spec_type']) && $param['data']['spec_type']) {
$type = $param['data']['spec_type'];
} else {
$type = 1;
}
$html = '
'.$col.'
';
return $html;
}
}