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;
|
||
|
}
|