選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Fabien Normand b92411d290 Correctif setLastLogin 2年前
Authenticator Correctif setLastLogin 2年前
Builder Correctif setLastLogin 2年前
Command Commande : setting:site:init 3年前
Component [Backend] Upload image : essais upload simplifié 3年前
Container Divers 3年前
Controller Switch symfony 5.4 2年前
Definition AbstractFieldDefinition : ajout field 2年前
DependencyInjection cookie in sov 3年前
Doctrine ImageTrait 2年前
Event Finalisation app ticket 3年前
EventListener userFieldDef + ExceptionListener 3年前
EventSubscriber Commande : setting:site:init 3年前
Factory Interface Sov 3年前
Field filter 3年前
Form [Backend] Upload image : essais upload simplifié 3年前
Generator PdfGenerator : correctif render() 3年前
Maker Correctif Maker 3年前
Model Interface Sov 3年前
Notification MailMailjetNotification 3年前
Repository GroupUserRepositoryQuery > joinUsers : leftJoin 2年前
Resolver Amélioration UrlResolver 3年前
Resources Switch symfony 5.4 2年前
Session/Flash Gestion des flash message / trad 3年前
Solver Finalisation tableau de bord + ticket 3年前
Translation Correctif 3年前
Twig TwigExtension : fonction asset_url 2年前
.gitignore Installation webpack 3年前
LcSovBundle.php cookie in sov 3年前
README.md correctif use form type 3年前
composer.json Installation webpack 3年前
composer.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/