代码拉取完成,页面将自动刷新
同步操作将从 MZ/ModStartBlog 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php
namespace Module\Blog\Admin\Controller;
use Illuminate\Routing\Controller;
use ModStart\Admin\Concern\HasAdminQuickCRUD;
use ModStart\Admin\Layout\AdminCRUDBuilder;
use ModStart\Core\Dao\ModelUtil;
use ModStart\Core\Input\Response;
use ModStart\Field\Tags;
use ModStart\Form\Form;
use ModStart\Grid\GridFilter;
use ModStart\Repository\RepositoryUtil;
use ModStart\Support\Concern\HasFields;
use Module\Blog\Util\BlogCategoryUtil;
use Module\Blog\Util\BlogTagUtil;
use Module\Vendor\Provider\SiteUrl\SiteUrlProvider;
class BlogController extends Controller
{
use HasAdminQuickCRUD;
protected function crud(AdminCRUDBuilder $builder)
{
$updatedCategoryIds = [];
$builder
->init('blog')
->field(function ($builder) {
$builder->id('id', 'ID');
$builder->select('categoryId', '分类')->optionModelTree('blog_category');
$builder->text('title', '标题')->required();
$builder->richHtml('content', '内容')->required();
$builder->textarea('summary', '摘要')->listable(false);
$builder->tags('tag', '标签')
->serializeType(Tags::SERIALIZE_TYPE_COLON_SEPARATED)
->tagModelField('blog', 'tag', Tags::SERIALIZE_TYPE_COLON_SEPARATED);
$builder->images('images', '图片')->listable(false);
$builder->text('seoKeywords', 'SEO关键词')->listable(false);
$builder->textarea('seoDescription', 'SEO描述')->listable(false);
$builder->datetime('postTime', '发布时间')->defaultValue(date('Y-m-d H:i:s'));
$builder->switch('isTop', '置顶')->gridEditable(true);
$builder->switch('isHot', '热门')->gridEditable(true);
$builder->switch('isRecommend', '推荐')->gridEditable(true);
$builder->switch('isPublished', '发布')->optionsYesNo()->defaultValue(true);
$builder->display('created_at', L('Created At'))->listable(false);
$builder->display('updated_at', L('Updated At'))->listable(false);
})
->gridFilter(function (GridFilter $filter) {
$filter->eq('id', L('ID'));
$filter->like('title', '标题');
})
->hookSaving(function (Form $form) use (&$updatedCategoryIds) {
if ($form->itemId()) {
$blog = ModelUtil::get('blog', $form->itemId());
if (!empty($blog['categoryId'])) {
$updatedCategoryIds[] = $blog['categoryId'];
}
}
return Response::generateSuccess();
})
->hookChanged(function (Form $form) use (&$updatedCategoryIds) {
RepositoryUtil::makeItems($form->item())->map(function ($item) use (&$updatedCategoryIds) {
$updatedCategoryIds[] = $item->categoryId;
SiteUrlProvider::update(modstart_web_url('blog/' . $item->id), $item->title, [
'biz' => 'blog',
]);
var_dump($item);
});
if (!empty($updatedCategoryIds)) {
$updatedCategoryIds = array_unique($updatedCategoryIds);
BlogCategoryUtil::updateCount($updatedCategoryIds);
}
BlogTagUtil::clearCache();
})
->title('博客管理');
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。