73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\v\model;
 | |
| 
 | |
| /**
 | |
|  * Interface IPlugin: un composant qui apporte une fonctionnalité à une page,
 | |
|  * mais qui n'a aucun affichage. la fonctionnalité passe par le chargement de
 | |
|  * feuilles CSS ou de scripts
 | |
|  */
 | |
| interface IPlugin {
 | |
|   /**
 | |
|    * @return ?string|array url d'une feuille de style à charger pour ce plugin
 | |
|    */
 | |
|   function getCss();
 | |
| 
 | |
|   /**
 | |
|    * indiquer que la feuille de style est générée dynamiquement: il faut la
 | |
|    * charger même si elle est déjà mentionnée par d'autres plugins
 | |
|    */
 | |
|   function isDynamicCss(): bool;
 | |
| 
 | |
|   /** afficher les tags pour charger les feuilles de style */
 | |
|   function printCss(): void;
 | |
| 
 | |
|   /**
 | |
|    * @return ?string|array url d'un script à charger pour ce plugin
 | |
|    */
 | |
|   function getJs();
 | |
| 
 | |
|   /**
 | |
|    * indiquer que le script est généré dynamiquement: il faut le charger même
 | |
|    * s'il est déjà mentionné par d'autres plugins
 | |
|    */
 | |
|   function isDynamicJs(): bool;
 | |
| 
 | |
|   /** afficher les tags pour charger les scripts */
 | |
|   function printJs(): void;
 | |
| 
 | |
|   /** la méthode {@link printScript()} affiche-t-elle quelque chose? */
 | |
|   function haveScript(): bool;
 | |
| 
 | |
|   /**
 | |
|    * afficher le script générique
 | |
|    *
 | |
|    * pour simplifier l'intégration, si la première ligne affichée est exactement
 | |
|    *     <script type="text/javascript">
 | |
|    * et la dernière ligne
 | |
|    *     </script>
 | |
|    * alors ces lignes sont supprimées de la sortie, et le script est intégré
 | |
|    * dans une balise globale. Sinon, si la première ligne contient une balise
 | |
|    * <script> quelconque, alors l'affichage est fait tel quel
 | |
|    */
 | |
|   function printScript(): void;
 | |
| 
 | |
|   /** la méthode {@link printJquery()} affiche-t-elle quelque chose? */
 | |
|   function haveJquery(): bool;
 | |
| 
 | |
|   /**
 | |
|    * afficher le script JQuery
 | |
|    *
 | |
|    * pour simplifier l'intégration, si les deux premières lignes affichées sont
 | |
|    * exactement
 | |
|    *     <script type="text/javascript">
 | |
|    *     jQuery.noConflict()(function($) {
 | |
|    * et les deux dernières lignes
 | |
|    *     });
 | |
|    *     </script>
 | |
|    * alors ces lignes sont supprimées de la sortie, et le script est intégré
 | |
|    * dans une section partagée globale. Sinon, si la première ligne contient
 | |
|    * une balise <script> quelconque, alors l'affichage est fait tel quel
 | |
|    */
 | |
|   function printJquery(): void;
 | |
| }
 |