* @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 .= '

    '.$remark .'

    '; } $this->_lang_attr .= <<
      {$tabLangTitle}
    {$tabLangInput}
    EOF; } else { // 对于含有 " 的字符串进行处理 $value = str_replace('"', '"', $value) ; $str .= << {$remark}

    EOF; } } elseif ($display_type == 'inputDate') { if ($value && !is_numeric($value)) { $value = strtotime($value); } $valueData = $value ? date('Y-m-d', $value) : ''; $str .= << {$remark}

    EOF; } elseif ($display_type == 'inputDateTime') { if ($value && !is_numeric($value)) { $value = strtotime($value); } $valueData = $value ? date('Y-m-d H:i:s', $value) : ''; $str .= << {$remark}

    EOF; } elseif ($display_type == 'inputEmail') { $str .= << {$remark}

    EOF; } elseif ($display_type == 'stringText') { $str .= << {$value} {$remark}

    EOF; } elseif ($display_type == 'inputPassword') { $str .= << {$remark}

    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} {$remark}

    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} {$remark}

    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 .= '
    '.$label.'['.$lang.']:
    '; } $this->_textareas .= <<
      {$tabLangTitle}
    {$tabLangTextarea} {$remark}
    EOF; } else { $this->_textareas .= << {$label}:
    {$remark}
    EOF; } } } return $str; } }