You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3 jaren geleden
3 jaren geleden
3 jaren geleden
3 jaren geleden
3 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. # Laclic SovBundle
  2. Administration basé sur EasyAdmin 3. Développé par <a href="https://www.laclic.fr">la Clic!</a>
  3. Require :
  4. - Symfony > 5.3
  5. - EasyAdmin > 5.3
  6. - FOS/Ckeditor-bundle: "^2.2",
  7. ## Instalation en version développement sur un projet :
  8. Si tu démarres un nouveau projet il te suffit de cloner le projet : https://gitea.laclic.fr/Laclic/DefaultProjectSf5
  9. - À la racine de ton projet créer un dossier Lc/AdminBundle/
  10. - Dans le dossier Lc/AdminBundle :
  11. ```
  12. git clone https://gitea.laclic.fr/Laclic/AdminBundle.git .
  13. ```
  14. - Initialisation :
  15. - 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
  16. ```
  17. doctrine:
  18. orm:
  19. resolve_target_entities:
  20. Lc\SovBundle\IModel\User\UserInterface: App\Entity\User
  21. Lc\SovBundle\Doctrine\Extension\FileInterface: App\Entity\File
  22. #...
  23. ```
  24. - Instalation ckeditor
  25. `php bin/console ckeditor:install`
  26. `php bin/console assets:install public
  27. - Créer la config fos_ckeditor.yaml
  28. ```
  29. fos_ck_editor:
  30. input_sync: true
  31. default_config: base_config
  32. configs:
  33. base_config:
  34. filebrowserBrowseRoute: file_manager
  35. filebrowserBrowseRouteParameters:
  36. conf: default
  37. module: ckeditor
  38. format_tags: 'p;h2;h3'
  39. toolbar:
  40. - { name: "styles", items: ['Bold', 'Italic','Underline', 'Strike']}
  41. - { name: "paragraph", items: ['Format', 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'] }
  42. - { name: "link", items: [ 'Link', 'Unlink'] }
  43. - {name: 'insert', items: [ 'Image' ]}
  44. - {name: 'document', items: [ 'Source' ]}
  45. simple_config:
  46. toolbar:
  47. - { items: ['Bold', 'Italic', 'Underline', 'Colors', 'Source'] }
  48. twig:
  49. form_themes:
  50. - '@FOSCKEditor/Form/ckeditor_widget.html.twig'
  51. ```
  52. - Créer la config artgris_file_manager.yaml
  53. ```
  54. artgris_file_manager:
  55. conf:
  56. default:
  57. dir: "../public/uploads"
  58. type: 'image'
  59. ```
  60. - Enjoy !
  61. ### Pour les projet Aquarium, Laclic, Le plat pentu (et peut être d'autres) suit cette préocédure :
  62. - Compare ton .gitignore avec le gitignore de DefaultProjectSf5 et ajoute les lignes manquantes
  63. - Modifier composer.json dans “autoload” ajouter :
  64. ````
  65. "autoload": {
  66. "psr-4": {
  67. "App\\": "src/",
  68. "Lc\\": "Lc/"
  69. }
  70. },
  71. ````
  72. - Dans le dossier `config` de ton projet :
  73. - Modifier `bundles.php` et ajouter :
  74. ````
  75. Lc\SovBundle\SovBundle::class => ['all' => true],
  76. ````
  77. - Modifier `services.yaml` et ajouter :
  78. ````
  79. Lc\SovBundle\:
  80. resource: '../Lc/AdminBundle/'
  81. exclude:
  82. - '../Lc/AdminBundle/DependencyInjection/'
  83. - '../Lc/AdminBundle/Entity/'
  84. - '../Lc/AdminBundle/Kernel.php'
  85. - '../Lc/AdminBundle/Tests/'
  86. ````
  87. et
  88. ````
  89. Lc\SovBundle\Controller\:
  90. resource: '../Lc/AdminBundle/Controller/'
  91. tags: ['controller.service_arguments']
  92. ````
  93. - Modifier `packages/security.yml`
  94. ````
  95. guard:
  96. authenticators:
  97. - Lc\SovBundle\Authenticator\LoginFormAuthenticator
  98. ````
  99. - Modifier `packages/doctrine.yaml`
  100. ````
  101. resolve_target_entities:
  102. Lc\SovBundle\IModel\User\UserInterface: App\Entity\User
  103. ````
  104. - Modifier `routes.yaml`
  105. ````
  106. login:
  107. path: /login
  108. controller: Lc\SovBundle\Controller\Admin\SecurityController::login
  109. logout:
  110. path: /logout
  111. controller: Lc\SovBundle\Admin\SecurityController::logout
  112. ````
  113. - Dans le dossier `src/` de ton projet :
  114. - Supprimer `Controller/Admin/SecurityController.php`.
  115. - Supprimer `Controller/Admin/AbstractCrudController.php`.
  116. - Modifier l'en tête de `Controller/Admin/DashboardController.php`.
  117. ````
  118. use Lc\SovBundle\Controller\Admin\DashboardController as LcDashboardController;
  119. class DashboardController extends LcDashboardController
  120. {
  121. // ... le code spécifique
  122. }
  123. ````
  124. - Modifier l'en tête des controllers. Exemple `Controller/Admin/PageCrudController.php`.
  125. ````
  126. use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController;
  127. class PageCrudController extends AbstractCrudController
  128. {
  129. // ... le code spécifique
  130. }
  131. ````
  132. - Modifier `Entity/User.php`.
  133. ````
  134. <?php
  135. namespace App\Entity;
  136. use Doctrine\ORM\Mapping as ORM;
  137. use Lc\SovBundle\Model\User\UserInterface;
  138. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  139. use Lc\SovBundle\Model\User\User as LcUserModel;
  140. /**
  141. * @ORM\Entity(repositoryClass="Lc\SovBundle\Repository\User\UserRepository")
  142. * @UniqueEntity(fields={"email"}, message="There is already an account with this email")
  143. */
  144. class User extends LcUserModel implements UserInterface
  145. {
  146. /**
  147. * @ORM\Id
  148. * @ORM\GeneratedValue
  149. * @ORM\Column(type="integer")
  150. */
  151. private $id;
  152. public function getId(): ?int
  153. {
  154. return $this->id;
  155. }
  156. }
  157. ````
  158. - Modifier les entités pour que les Use pointe dans AdminBundle exemple avec `Entity/Page.php`.
  159. ````
  160. use Lc\SovBundle\Doctrine\Extension\ImageInterface;
  161. use Lc\SovBundle\Model\Cms\AbstractDocument;
  162. use Lc\SovBundle\Model\Cms\ImageTrait;
  163. /**
  164. * @ORM\Entity(repositoryClass=PageRepository::class)
  165. */
  166. class Page extends AbstractDocument implements ImageInterface
  167. {
  168. use ImageTrait;
  169. // ... le code spécifique
  170. }
  171. ````
  172. - Modifier les repository pour qu'il fonctionne avec AdminBundle exemple avec `Repository/PageRepository.php.php`.
  173. ````
  174. <?php
  175. namespace App\Repository;
  176. use App\Entity\Page;
  177. use Lc\SovBundle\Repository\RepositoryAbstract;
  178. /**
  179. * @method Page|null find($id, $lockMode = null, $lockVersion = null)
  180. * @method Page|null findOneBy(array $criteria, array $orderBy = null)
  181. * @method Page[] findAll()
  182. * @method Page[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  183. */
  184. class PageRepository extends RepositoryAbstract
  185. {
  186. public function getInterfaceClass()
  187. {
  188. return Page::class;
  189. }
  190. // ... le code spécifique
  191. }
  192. ````
  193. - Supprimer `Repository/UserRepository.php.php`.
  194. Sauf si il contient des fonctions autres que `__contruct()` et `upgradePassword-()`
  195. Si c'est le cas le réécrire en faisant un extends de UserRepository dans AdminBundle
  196. - Faire un `composer install`
  197. - Tester l'application connectes toi à l'admin, édites un doc ou deux
  198. - Si tout est ok tu peux supprimer les dossiers :
  199. ````
  200. src/IModel/
  201. src/Model/
  202. src/Security/
  203. src/Command/