選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Charly 0b4012f138 New 3年前
Authenticator user role redirect 3年前
Builder Refactoring services 3年前
Command Création du bundle 3年前
Component Refactoring services 3年前
Controller Intégration de l'app product 3年前
Definition SiteSetting : maintenance 3年前
DependencyInjection user role redirect 3年前
Doctrine Intégration de l'app product 3年前
Event/EntityManager Gestion des roles et form user create 3年前
EventSubscriber SiteSetting : maintenance 3年前
Factory Refactoring services 3年前
Field status + toggle + dashboard style 3年前
Form Intégration de l'app product 3年前
Generator Components 3年前
Maker Correctif Maker 3年前
Model Refactoring services 3年前
Repository New 3年前
Resolver Refactoring services 3年前
Resources Intégration de l'app product 3年前
Translation Système Filtres SovBundle 3年前
Twig Intégration app product 3年前
.gitignore Installation webpack 3年前
LcSovBundle.php Renomage du bundle 3年前
README.md correctif use form type 3年前
composer.json Installation webpack 3年前
composer.lock Installation webpack 3年前
package.json Installation webpack 3年前
webpack.config.js Installation webpack 3年前
yarn.lock Installation webpack 3年前

README.md

Laclic SovBundle

Administration basé sur EasyAdmin 3. Développé par la Clic!

Require :

  • Symfony > 5.3
  • EasyAdmin > 5.3
  • FOS/Ckeditor-bundle: “^2.2”,

Instalation en version développement sur un projet :

Si tu démarres un nouveau projet il te suffit de cloner le projet : https://gitea.laclic.fr/Laclic/DefaultProjectSf5

  • À la racine de ton projet créer un dossier Lc/AdminBundle/
  • Dans le dossier Lc/AdminBundle :

    git clone https://gitea.laclic.fr/Laclic/AdminBundle.git .
    
  • Initialisation :

    • Création des entités de base, créer une entité User.php et File.php, ajouter dans la configuration de doctrine les lignes suivantes

      doctrine:
      orm:
      resolve_target_entities:
        Lc\SovBundle\IModel\User\UserInterface: App\Entity\User
        Lc\SovBundle\Doctrine\Extension\FileInterface: App\Entity\File  
      #...
      
  • Instalation ckeditor php bin/console ckeditor:install `php bin/console assets:install public

  • Créer la config fos_ckeditor.yaml ``` fos_ck_editor: input_sync: true default_config: base_config configs:

    base_config:
        filebrowserBrowseRoute: file_manager
        filebrowserBrowseRouteParameters:
                conf: default
                module: ckeditor
        format_tags: 'p;h2;h3'
        toolbar:
            - { name: "styles", items: ['Bold', 'Italic','Underline', 'Strike']}
            - { name: "paragraph", items: ['Format', 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'] }
            - { name: "link", items: [ 'Link', 'Unlink'] }
            - {name: 'insert', items: [ 'Image' ]}
            - {name: 'document', items: [ 'Source' ]}
    simple_config:
        toolbar:
            - { items: ['Bold', 'Italic', 'Underline', 'Colors', 'Source'] }
    

    twig: form_themes:

  • ’@FOSCKEditor/Form/ckeditor_widget.html.twig’

- Créer la config artgris_file_manager.yaml

artgris_file_manager:

conf:
    default:
        dir: "../public/uploads"
        type: 'image'

```

  • Enjoy !

Pour les projet Aquarium, Laclic, Le plat pentu (et peut être d’autres) suit cette préocédure :

  • Compare ton .gitignore avec le gitignore de DefaultProjectSf5 et ajoute les lignes manquantes

  • Modifier composer.json dans “autoload” ajouter :

    "autoload": {
        "psr-4": {
            "App\\": "src/",
            "Lc\\": "Lc/"
        }
    },
    
  • Dans le dossier config de ton projet :

    • Modifier bundles.php et ajouter : Lc\SovBundle\SovBundle::class => ['all' => true],
    • Modifier services.yaml et ajouter : Lc\SovBundle\: resource: '../Lc/AdminBundle/' exclude: - '../Lc/AdminBundle/DependencyInjection/' - '../Lc/AdminBundle/Entity/' - '../Lc/AdminBundle/Kernel.php' - '../Lc/AdminBundle/Tests/' et Lc\SovBundle\Controller\: resource: '../Lc/AdminBundle/Controller/' tags: ['controller.service_arguments']
    • Modifier packages/security.yml guard: authenticators: - Lc\SovBundle\Authenticator\LoginFormAuthenticator
    • Modifier packages/doctrine.yaml resolve_target_entities: Lc\SovBundle\IModel\User\UserInterface: App\Entity\User
    • Modifier routes.yaml login: path: /login controller: Lc\SovBundle\Controller\Admin\SecurityController::login logout: path: /logout controller: Lc\SovBundle\Admin\SecurityController::logout
  • Dans le dossier src/ de ton projet :

    • Supprimer Controller/Admin/SecurityController.php.
    • Supprimer Controller/Admin/AbstractCrudController.php.
    • Modifier l’en tête de Controller/Admin/DashboardController.php. ```` use Lc\SovBundle\Controller\Admin\DashboardController as LcDashboardController;

    class DashboardController extends LcDashboardController { // … le code spécifique }

    
    - Modifier l'en tête des controllers. Exemple  `Controller/Admin/PageCrudController.php`.
    

    use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController;

    class PageCrudController extends AbstractCrudController { // … le code spécifique }

    - Modifier `Entity/User.php`.
    

    <?php

    namespace App\Entity;

    use Doctrine\ORM\Mapping as ORM; use Lc\SovBundle\Model\User\UserInterface; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Lc\SovBundle\Model\User\User as LcUserModel;

    /**

    • @ORM\Entity(repositoryClass=“Lc\SovBundle\Repository\User\UserRepository”)
    • @UniqueEntity(fields={“email”}, message=“There is already an account with this email”) */ class User extends LcUserModel implements UserInterface { /**

      • @ORM\Id
      • @ORM\GeneratedValue
      • @ORM\Column(type=“integer”) */ private $id;

      public function getId(): ?int {

         return $this->id;
      

      }

    }

    - Modifier les entités pour que les Use pointe dans AdminBundle exemple avec `Entity/Page.php`.
    

    use Lc\SovBundle\Doctrine\Extension\ImageInterface; use Lc\SovBundle\Model\Cms\AbstractDocument; use Lc\SovBundle\Model\Cms\ImageTrait;

    /**

    • @ORM\Entity(repositoryClass=PageRepository::class) */ class Page extends AbstractDocument implements ImageInterface { use ImageTrait;

    // … le code spécifique

    }

    
    - Modifier les repository pour qu'il fonctionne avec AdminBundle exemple avec `Repository/PageRepository.php.php`.
    

    <?php

    namespace App\Repository;

    use App\Entity\Page; use Lc\SovBundle\Repository\RepositoryAbstract;

    /**

    • @method Page|null find($id, $lockMode = null, $lockVersion = null)
    • @method Page|null findOneBy(array $criteria, array $orderBy = null)
    • @method Page[] findAll()
    • @method Page[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) */ class PageRepository extends RepositoryAbstract { public function getInterfaceClass() {

       return Page::class;
      

      }

      // … le code spécifique }

    - Supprimer `Repository/UserRepository.php.php`.
    Sauf si il contient des fonctions autres que `__contruct()` et `upgradePassword-()`
    Si c'est le cas le réécrire en faisant un extends de UserRepository dans AdminBundle
        
    - Faire un `composer install`
    - Tester l'application connectes toi à l'admin, édites un doc ou deux
    - Si tout est ok tu peux supprimer les dossiers :
    

    src/IModel/ src/Model/ src/Security/ src/Command/