hesabixSite/src/Controller/Admin/PostCrudController.php

63 lines
2.3 KiB
PHP
Raw Normal View History

2025-01-10 21:33:20 +03:30
<?php
namespace App\Controller\Admin;
2025-01-11 11:20:19 +03:30
use App\Entity\Cat;
2025-01-10 21:33:20 +03:30
use App\Entity\Post;
2025-01-11 01:29:38 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
2025-04-06 17:50:29 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Config\Filters;
2025-01-10 21:33:20 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
2025-01-11 11:20:19 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
use EasyCorp\Bundle\EasyAdminBundle\Field\ImageField;
2025-01-11 01:29:38 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField;
2025-01-10 21:33:20 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Field\TextEditorField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
2025-04-06 17:50:29 +03:30
use EasyCorp\Bundle\EasyAdminBundle\Filter\EntityFilter;
2025-01-10 21:33:20 +03:30
class PostCrudController extends AbstractCrudController
{
public static function getEntityFqcn(): string
{
return Post::class;
}
public function configureFields(string $pageName): iterable
{
return [
2025-01-11 11:20:19 +03:30
AssociationField::new('cat', 'نوع محتوا'),
AssociationField::new('tree', 'دسته‌بندی')->hideOnIndex(),
TextField::new('url', 'آدرس صفحه'),
TextField::new('version', 'شماره نسخه'),
2025-01-11 01:29:38 +03:30
TextField::new('title', 'عنوان'),
2025-01-11 11:20:19 +03:30
TextareaField::new('intro', 'خلاصه مطلب')->hideOnIndex(),
TextEditorField::new('body', 'متن')->hideOnIndex(),
TextField::new('keywords', 'کلیدواژه‌ها'),
2025-04-06 17:50:29 +03:30
ImageField::new('mainPic', 'تصویر شاخص')
->setUploadDir('/public/uploaded/')
->setBasePath('/uploaded/'),
2025-01-10 21:33:20 +03:30
];
}
2025-01-11 01:29:38 +03:30
public function configureCrud(Crud $crud): Crud
{
return $crud
->setEntityLabelInSingular('محتوا')
->setEntityLabelInPlural('محتواها')
2025-04-06 17:50:29 +03:30
->setDefaultSort(['dateSubmit' => 'DESC']); // مرتب‌سازی پیش‌فرض بر اساس تاریخ ارسال (جدیدترین)
}
public function configureFilters(Filters $filters): Filters
{
return $filters
->add(EntityFilter::new('cat', 'نوع محتوا')); // فیلتر برای نوع محتوا
2025-01-11 01:29:38 +03:30
}
2025-01-11 20:25:17 +03:30
public function createEntity(string $entityFqcn)
{
$item = new Post();
$item->setSubmitter($this->getUser());
$item->setDateSubmit(time());
$item->setViews(0);
return $item;
}
2025-04-06 17:50:29 +03:30
}