* @since 1.0
*/
class AppadminbaseBlockEdit extends BaseObject
{
public $_param;
public $_primaryKey;
public $_one;
public $_service;
public $_textareas;
public $_lang_attr;
/**
* html input or text etc. , html name like: .
*/
protected $_editFormData;
public function init()
{
if (!($this instanceof AppadminbaseBlockEditInterface)) {
echo json_encode([
'statusCode'=>'300',
'message'=>'Manageredit must implements fecshop\app\appadmin\interfaces\base\AppadminbaseBlockEditInterface',
]);
exit;
}
$this->_editFormData = 'editFormData';
$this->setService();
$this->_param = CRequest::param();
$this->_primaryKey = $this->_service->getPrimaryKey();
$id = $this->_param[$this->_primaryKey];
$this->_one = $this->_service->getByPrimaryKey($id);
}
public function getVal($name, $column)
{
return ($this->_one[$name] || $this->_one[$name] === 0) ? $this->_one[$name] : $column['default'];
}
public function getEditBar($editArr = [])
{
$langs = Yii::$service->fecshoplang->getAllLangCode();
$defaultLangCode = Yii::$service->fecshoplang->defaultLangCode;
// xhEditor编辑器里面上传图片和其他的类型的url以及允许的文件类型
// fecshop只实现了image的上传,其他类型的自己实现。
$upImgUrl = Yii::$service->admin->getXhEditorUploadImgUrl();
$upImgFormat = Yii::$service->admin->getXhEditorUploadImgForamt();
$upFlashUrl = Yii::$service->admin->getXhEditorUploadFlashUrl();
$upFlashFormat = Yii::$service->admin->getXhEditorUploadFlashFormat();
$upLinkUrl = Yii::$service->admin->getXhEditorUploadLinkUrl();
$upLinkFormat = Yii::$service->admin->getXhEditorUploadLinkFormat();
$upMediaUrl = Yii::$service->admin->getXhEditorUploadMediaUrl();
$upMediaFormat = Yii::$service->admin->getXhEditorUploadMediaFormat();
if (empty($editArr)) {
$editArr = $this->getEditArr();
}
$str = '';
$langAndTextarea = '';
if ($this->_param[$this->_primaryKey]) {
$str = <<
EOF;
}
$idsj = md5(time());
$idsji = 0;
foreach ($editArr as $column) {
$name = $column['name'];
$remark = Yii::$service->page->translate->__($column['remark']);
$require = $column['require'] ? 'required' : '';
$label = $column['label'] ? $column['label'] : $this->_one->getAttributeLabel($name);
$display = isset($column['display']) ? $column['display'] : '';
if (empty($display)) {
$display = ['type' => 'inputString'];
}
//var_dump($this->_one['id']);
$value = $this->getVal($name, $column);
$display_type = isset($display['type']) ? $display['type'] : 'inputString';
if ($display_type == 'inputString') {
$isLang = isset($display['lang']) ? $display['lang'] : false;
if ($isLang && is_array($langs) && !empty($langs)) {
$tabLangTitle = '';
$tabLangInput = '';
foreach ($langs as $lang) {
if ($require && $defaultLangCode === $lang) {
$inputStringLangRequire = 'required';
} else {
$inputStringLangRequire = 0;
}
$tabLangTitle .= ''.$lang.'';
$langAttrName = Yii::$service->fecshoplang->getLangAttrName($name, $lang);
$t_val = isset($value[$langAttrName]) ? $value[$langAttrName] : '';
// 对于含有 " 的字符串进行处理
$t_val = str_replace('"', '"', $t_val) ;
$tabLangInput .= '';
}
$this->_lang_attr .= <<
{$tabLangInput}
EOF;
} else {
// 对于含有 " 的字符串进行处理
$value = str_replace('"', '"', $value) ;
$str .= <<
EOF;
}
} elseif ($display_type == 'inputDate') {
if ($value && !is_numeric($value)) {
$value = strtotime($value);
}
$valueData = $value ? date('Y-m-d', $value) : '';
$str .= <<
EOF;
} elseif ($display_type == 'inputDateTime') {
if ($value && !is_numeric($value)) {
$value = strtotime($value);
}
$valueData = $value ? date('Y-m-d H:i:s', $value) : '';
$str .= <<
EOF;
} elseif ($display_type == 'inputEmail') {
$str .= <<
EOF;
} elseif ($display_type == 'stringText') {
$str .= <<
{$value}
EOF;
} elseif ($display_type == 'inputPassword') {
$str .= <<
EOF;
} elseif ($display_type == 'select') {
$data = isset($display['data']) ? $display['data'] : '';
//var_dump($data);
//echo $value;
$select_str = '';
if (is_array($data)) {
$select_str .= <<
EOF;
$select_str .= '';
foreach ($data as $k => $v) {
if ($value == $k) {
//echo $value."#".$k;
$select_str .= '';
} else {
$select_str .= '';
}
}
$select_str .= '';
}
$str .= <<
{$select_str}
EOF;
} elseif ($display_type == 'editSelect') {
$data = isset($display['data']) ? $display['data'] : '';
//var_dump($data);
//echo $value;
$select_str = '';
if (is_array($data)) {
$idsji++;
$selectId = $idsj.$idsji;
$select_str .= <<
EOF;
$select_str .= '';
$editSelectChosen = false;
foreach ($data as $k => $v) {
if ($value == $k) {
//echo $value."#".$k;
$select_str .= '';
$editSelectChosen = true;
} else {
$select_str .= '';
}
}
if (!$editSelectChosen) {
$select_str .= '';
}
$select_str .= '';
}
$str .= <<
{$select_str}
EOF;
} elseif ($display_type == 'textarea') {
$notEditor = isset($display['notEditor']) ? $display['notEditor'] : false;
$edittorClass='editor';
if ($notEditor) {
$edittorClass='';
}
$rows = isset($display['rows']) ? $display['rows'] : 15;
$cols = isset($display['cols']) ? $display['cols'] : 110;
$isLang = isset($display['lang']) ? $display['lang'] : false;
$uploadImgUrl = 'upimgurl="'.Yii::$service->url->getUrl($upImgUrl).'" upimgext="' . $upImgFormat . '"';
$uploadFlashUrl = 'upflashurl="'.Yii::$service->url->getUrl($upFlashUrl).'" upflashext="' . $upFlashFormat . '"';
$uploadLinkUrl = 'uplinkurl="'.Yii::$service->url->getUrl($upLinkUrl).'" uplinkext="' . $upLinkFormat . '"';
$uploadMediaUrl = 'upmediaurl="'.Yii::$service->url->getUrl($upMediaUrl).'" upmediaext:"' . $upMediaFormat . '" ';
if ($isLang && is_array($langs) && !empty($langs)) {
$tabLangTitle = '';
$tabLangTextarea = '';
foreach ($langs as $lang) {
$langAttrName = Yii::$service->fecshoplang->getLangAttrName($name, $lang);
if ($require && $defaultLangCode === $lang) {
$inputStringLangRequire = 'required';
} else {
$inputStringLangRequire = 0;
}
$tabLangTitle .= ''.$lang.'';
$tabLangTextarea .= '
';
}
$this->_textareas .= <<
{$tabLangTextarea}
EOF;
} else {
$this->_textareas .= <<
EOF;
}
}
}
return $str;
}
}