Changeset 98543 in spip-zone


Ignore:
Timestamp:
Jun 23, 2016, 9:46:32 PM (4 years ago)
Author:
real3t@…
Message:

Et on passe JS et CSS en fichiers externes ce qui permet de les surcharger facilement dans le squelette (le inline, c'est pas conseillé)

Location:
_plugins_/exergue
Files:
2 added
3 edited
2 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/exergue/css/exergue.css

    r98541 r98543  
    1 <?php
    2 
    3 function exergue_pre_propre($letexte) {
    4 
    5         // trouver des balises exergue
    6         if (preg_match_all(",<(exergue)>(.*)<\/(exergue)>,Uims",
    7         $letexte, $regs, PREG_SET_ORDER)) {
    8                 foreach ($regs as $reg) {                                                       
    9                         // ne pas mettre le <div...> s'il n'y a qu'une ligne
    10                         if (is_int(strpos($reg[0],"\n"))) {
    11                                 $letexte = str_replace($reg[0], "<div class=\"spip_exergue\">"."\n\n" . $reg[2] . "</div>", $letexte);
    12                         } else {
    13                                 $letexte = str_replace($reg[0], "<span class=\"spip_exergue\">" . $reg[2] . "</span>", $letexte);               
    14                         }
    15                 }
    16         }
    17         return $letexte;
    18        
    19 }
    20 
    21 function exergue_post_propre($letexte) {
    22         /* nettoyer les ancres  <p><a name="exergue"></a></p> */
    23         $letexte = str_replace('<p><a name="exergue"></a></p>','<a name="exergue"></a>',$letexte);
    24         $letexte = str_replace('<p><a id="exergue"></a></p>','<a id="exergue"></a>',$letexte);
    25 
    26         return $letexte;
    27 }
    28 
    29 
    30 function exergue_insert_head($flux) {
    31 
    32                         $flux .= <<<EOF
    33 <script type="text/javascript">
    34 <!--
    35 (function($){
    36         $(document).ready(function(){
    37                 /* a t'on des ancres de exergues [exergue<-] dans le texte ? */
    38                 var exergue_tab = new Array(); 
    39                 var nb_ancres = 0 ;
    40 
    41                 $("a[name^='exergue'], a[id^='exergue'], .spip_exergue").each(function(i){
    42                         /* si c'est une ancre on sait que le prochain exergue a cette ancre */
    43                         if(!$(this).hasClass('spip_exergue')){
    44                                 // a[name^='exergue']
    45                                 if ($(this).attr('name')) {
    46                                         var ancre_numerotee = $(this).attr('name').match(/[0-9]+/g);
    47                                 }
    48                                 if ($(this).attr('id')) {
    49                                         var ancre_numerotee = $(this).attr('id').match(/[0-9]+/g);
    50                                 }
    51  // var res = str.match(/ain/g);
    52                                 if(ancre_numerotee){
    53                                         exergue_tab['exergue' + ancre_numerotee] = $(this);                     
    54                                 }else{ 
    55                                         var index_exergue = i + 1 - nb_ancres;
    56                                         exergue_tab['exergue' + index_exergue] = $(this);
    57                                 }
    58                                 nb_ancres ++ ;
    59                         }
    60                 });
    61                
    62                 $('.spip_exergue').each(function(i){
    63                         var content = $(this).html();
    64                         /* Soit il y a une ancre [exergue<-] dans le texte et on place l'exergue suivant à cet endroit, soit il n'y en a pas et on place l'exergue avant la balise */
    65                         i ++ ;
    66                         if(exergue_tab['exergue' + i]){
    67                                 exergue_tab['exergue' + i].before('<span class="exergue">«&nbsp;'+ guillemets_check(capitaliseFirstLetter(content)) +'&nbsp;»</span>');
    68                                 exergue_tab['exergue' + i].remove();
    69                                 console.log(exergue_tab);
    70 
    71                         }else{
    72                                 $(this).before('<span class="exergue">«&nbsp;'+ guillemets_check(capitaliseFirstLetter(content)) +'&nbsp;»</span>');
    73                         }
    74                 });
    75 
    76         });
    77 })(jQuery);
    78 
    79 function capitaliseFirstLetter(string)
    80 {
    81     return string.charAt(0).toUpperCase() + string.slice(1);
    82 }
    83 
    84 function guillemets_check(string)
    85 {
    86     return string.replace('«','&ldquo;').replace('»','&rdquo;');
    87 }
    88 
    89 -->
    90 </script>
    91 EOF;
    92 
    93 
    94         $flux .= <<<EOF
    95 <style type="text/css">
    96 <!--
    971.exergue{
    982float:left;
     
    1026display:block;
    1037}
    104 -->
    105 </style>
    106 EOF;
    107 
    108 
    109 
    110                 return $flux;
    111 }
    112 
    113 
    114 ?>
  • _plugins_/exergue/exergue_pipelines.php

    r98541 r98543  
    2929
    3030function exergue_insert_head($flux) {
     31        $flux .= '<script src="'.find_in_path("js/exergue.js").'" type="text/javascript"></script>';
    3132
    32                         $flux .= <<<EOF
    33 <script type="text/javascript">
    34 <!--
    35 (function($){
    36         $(document).ready(function(){
    37                 /* a t'on des ancres de exergues [exergue<-] dans le texte ? */
    38                 var exergue_tab = new Array(); 
    39                 var nb_ancres = 0 ;
    40 
    41                 $("a[name^='exergue'], a[id^='exergue'], .spip_exergue").each(function(i){
    42                         /* si c'est une ancre on sait que le prochain exergue a cette ancre */
    43                         if(!$(this).hasClass('spip_exergue')){
    44                                 // a[name^='exergue']
    45                                 if ($(this).attr('name')) {
    46                                         var ancre_numerotee = $(this).attr('name').match(/[0-9]+/g);
    47                                 }
    48                                 if ($(this).attr('id')) {
    49                                         var ancre_numerotee = $(this).attr('id').match(/[0-9]+/g);
    50                                 }
    51  // var res = str.match(/ain/g);
    52                                 if(ancre_numerotee){
    53                                         exergue_tab['exergue' + ancre_numerotee] = $(this);                     
    54                                 }else{ 
    55                                         var index_exergue = i + 1 - nb_ancres;
    56                                         exergue_tab['exergue' + index_exergue] = $(this);
    57                                 }
    58                                 nb_ancres ++ ;
    59                         }
    60                 });
    61                
    62                 $('.spip_exergue').each(function(i){
    63                         var content = $(this).html();
    64                         /* Soit il y a une ancre [exergue<-] dans le texte et on place l'exergue suivant à cet endroit, soit il n'y en a pas et on place l'exergue avant la balise */
    65                         i ++ ;
    66                         if(exergue_tab['exergue' + i]){
    67                                 exergue_tab['exergue' + i].before('<span class="exergue">«&nbsp;'+ guillemets_check(capitaliseFirstLetter(content)) +'&nbsp;»</span>');
    68                                 exergue_tab['exergue' + i].remove();
    69                                 console.log(exergue_tab);
    70 
    71                         }else{
    72                                 $(this).before('<span class="exergue">«&nbsp;'+ guillemets_check(capitaliseFirstLetter(content)) +'&nbsp;»</span>');
    73                         }
    74                 });
    75 
    76         });
    77 })(jQuery);
    78 
    79 function capitaliseFirstLetter(string)
    80 {
    81     return string.charAt(0).toUpperCase() + string.slice(1);
     33        return $flux;
    8234}
    8335
    84 function guillemets_check(string)
    85 {
    86     return string.replace('«','&ldquo;').replace('»','&rdquo;');
     36function exergue_insert_head_css($flux) {
     37        return $flux . "<link rel='stylesheet' href='".find_in_path("css/exergue.css")."' type='text/css' />";
    8738}
    88 
    89 -->
    90 </script>
    91 EOF;
    92 
    93 
    94         $flux .= <<<EOF
    95 <style type="text/css">
    96 <!--
    97 .exergue{
    98 float:left;
    99 width:200px;
    100 font-weight:bold;
    101 margin:20px 20px 20px 0;
    102 display:block;
    103 }
    104 -->
    105 </style>
    106 EOF;
    107 
    108 
    109 
    110                 return $flux;
    111 }
    112 
    113 
    114 ?>
  • _plugins_/exergue/js/exergue.js

    r98541 r98543  
    1 <?php
    2 
    3 function exergue_pre_propre($letexte) {
    4 
    5         // trouver des balises exergue
    6         if (preg_match_all(",<(exergue)>(.*)<\/(exergue)>,Uims",
    7         $letexte, $regs, PREG_SET_ORDER)) {
    8                 foreach ($regs as $reg) {                                                       
    9                         // ne pas mettre le <div...> s'il n'y a qu'une ligne
    10                         if (is_int(strpos($reg[0],"\n"))) {
    11                                 $letexte = str_replace($reg[0], "<div class=\"spip_exergue\">"."\n\n" . $reg[2] . "</div>", $letexte);
    12                         } else {
    13                                 $letexte = str_replace($reg[0], "<span class=\"spip_exergue\">" . $reg[2] . "</span>", $letexte);               
    14                         }
    15                 }
    16         }
    17         return $letexte;
    18        
    19 }
    20 
    21 function exergue_post_propre($letexte) {
    22         /* nettoyer les ancres  <p><a name="exergue"></a></p> */
    23         $letexte = str_replace('<p><a name="exergue"></a></p>','<a name="exergue"></a>',$letexte);
    24         $letexte = str_replace('<p><a id="exergue"></a></p>','<a id="exergue"></a>',$letexte);
    25 
    26         return $letexte;
    27 }
    28 
    29 
    30 function exergue_insert_head($flux) {
    31 
    32                         $flux .= <<<EOF
    33 <script type="text/javascript">
    34 <!--
    351(function($){
    362        $(document).ready(function(){
     
    8652    return string.replace('«','&ldquo;').replace('»','&rdquo;');
    8753}
    88 
    89 -->
    90 </script>
    91 EOF;
    92 
    93 
    94         $flux .= <<<EOF
    95 <style type="text/css">
    96 <!--
    97 .exergue{
    98 float:left;
    99 width:200px;
    100 font-weight:bold;
    101 margin:20px 20px 20px 0;
    102 display:block;
    103 }
    104 -->
    105 </style>
    106 EOF;
    107 
    108 
    109 
    110                 return $flux;
    111 }
    112 
    113 
    114 ?>
  • _plugins_/exergue/paquet.xml

    r98542 r98543  
    22    prefix="exergue"
    33    categorie="outil"
    4     version="0.1.2"
     4    version="0.1.3"
    55    etat="test"
    66    compatibilite="[2.1.0;3.1.*]"
  • _plugins_/exergue/plugin.xml

    r98542 r98543  
    44        <icon></icon>
    55        <licence>GNU/GPL</licence>
    6         <version>0.1.2</version>
     6        <version>0.1.3</version>
    77        <etat>test</etat>
    88        <description>Gérer des exergues avec l'ancre éventuelle [exergue&lt;-] et le raccourci &lt;exergue&gt; ... &lt;/exergue&gt; dans un texte</description>
Note: See TracChangeset for help on using the changeset viewer.