fix rendering content of option form

This commit is contained in:
printempw 2016-12-11 22:26:58 +08:00
parent 2bff6a080f
commit 325ea187e0
3 changed files with 31 additions and 13 deletions

View File

@ -45,7 +45,7 @@ class AdminController extends Controller
$form->group('max_upload_file_size', '最大允许上传大小', function($group) { $form->group('max_upload_file_size', '最大允许上传大小', function($group) {
// main textbox // main textbox
$group->text('max_upload_file_size', option('max_upload_file_size')); $group->text('max_upload_file_size');
$group->addon('KB'); $group->addon('KB');
})->hint('PHP 限制:'.ini_get('post_max_size').',定义在 php.ini 中。'); })->hint('PHP 限制:'.ini_get('post_max_size').',定义在 php.ini 中。');
@ -58,7 +58,7 @@ class AdminController extends Controller
$form->checkbox('auto_del_invalid_texture', '失效材质', '自动删除失效材质')->hint('自动从皮肤库中删除文件不存在的材质记录'); $form->checkbox('auto_del_invalid_texture', '失效材质', '自动删除失效材质')->hint('自动从皮肤库中删除文件不存在的材质记录');
$form->textarea('comment_script', '评论代码', option('comment_script'), function($textarea) { $form->textarea('comment_script', '评论代码', function($textarea) {
$textarea->setRows(6); $textarea->setRows(6);
$textarea->setDescription('评论代码内可使用占位符,<code>{tid}</code> 将会被自动替换为材质的 id<code>{name}</code> 会被替换为材质名称,<code>{url}</code> 会被替换为当前页面地址。'); $textarea->setDescription('评论代码内可使用占位符,<code>{tid}</code> 将会被自动替换为材质的 id<code>{name}</code> 会被替换为材质名称,<code>{url}</code> 会被替换为当前页面地址。');
}); });

View File

@ -51,11 +51,11 @@ class OptionForm
return $select; return $select;
} }
public function textarea($id, $name, $value, $callback) public function textarea($id, $name, $callback)
{ {
$item = $this->addItem('textarea', $id, $name); $item = $this->addItem('textarea', $id, $name);
$textarea = new OptionFormTextarea($id, $value); $textarea = new OptionFormTextarea($id);
call_user_func($callback, $textarea); call_user_func($callback, $textarea);
@ -119,7 +119,7 @@ class OptionForm
} }
} }
$this->success = true; session()->flash($this->id.'.status', 'success');
} }
return $this; return $this;
@ -282,10 +282,14 @@ class OptionFormTextarea
protected $description = ""; protected $description = "";
public function __construct($id, $value) public function __construct($id)
{ {
$this->id = $id; $this->id = $id;
$this->value = $value; }
public function setContent($content)
{
$this->value = $content;
} }
public function setRows($rows) public function setRows($rows)
@ -300,6 +304,10 @@ class OptionFormTextarea
public function render() public function render()
{ {
if (is_null($this->value)) {
$this->value = option($this->id);
}
return view('vendor.option-form.textarea')->with([ return view('vendor.option-form.textarea')->with([
'rows' => $this->rows, 'rows' => $this->rows,
'id' => $this->id, 'id' => $this->id,
@ -320,18 +328,28 @@ class OptionFormGroup
$this->id = $id; $this->id = $id;
} }
public function text($id, $value) public function text($id, $value = null)
{ {
$this->items[] = view('vendor.option-form.text')->withId($id)->withValue($value); $this->items[] = ['type' => 'text', 'id' => $id, 'value' => $value];
} }
public function addon($value) public function addon($value)
{ {
$this->items[] = view('vendor.option-form.addon')->withValue($value); $this->items[] = ['type' => 'addon', 'id' => null, 'value' => $value];
} }
public function render() public function render()
{ {
return view('vendor.option-form.group')->with('items', $this->items); $rendered = [];
foreach ($this->items as $item) {
if ($item['id'] && !$item['value']) {
$item['value'] = option($item['id']);
}
$rendered[] = view('vendor.option-form.'.$item['type'])->withId($item['id'])->withValue($item['value']);
}
return view('vendor.option-form.group')->with('items', $rendered);
} }
} }

View File

@ -5,7 +5,7 @@
<form method="post"> <form method="post">
<input type="hidden" name="option" value="{{ $id }}"> <input type="hidden" name="option" value="{{ $id }}">
<div class="box-body"> <div class="box-body">
@if ($success) @if (session("$id.status") == 'success')
<div class="callout callout-success">设置已保存。</div> <div class="callout callout-success">设置已保存。</div>
@endif @endif