選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Guillaume 003f069c6e Merge branch 'develop' of https://gitea.laclic.fr/Laclic/SovBundle into develop 3年前
Authenticator user role redirect 3年前
Command Création du bundle 3年前
Controller Refactoring 3年前
DependencyInjection user role redirect 3年前
Doctrine AdminLte intégration action sort 3年前
Event/EntityManager Correctif EntityManager 3年前
EventSubscriber I18N 3年前
Field Gestion config artgris 3年前
Form/Type Traductions form User 3年前
Model User : mon informations personnelles / modifier mon mot de passe 3年前
Repository Refactoring 3年前
Resources Correctif form_theme 3年前
Translation Traductions form User 3年前
Twig I18N 3年前
.gitignore Installation webpack 3年前
LcSovBundle.php Renomage du bundle 3年前
README.md Création du bundle 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\Admin\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/