Dotclear

Changeset 2697


Ignore:
Timestamp:
10/02/10 06:18:16 (12 years ago)
Author:
franck
Message:

dc 2.2 compliance

Location:
plugins/stacker
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • plugins/stacker/_admin.php

    r1544 r2697  
    11<?php 
    22# -- BEGIN LICENSE BLOCK ---------------------------------- 
    3 # This file is part of stacker, a plugin for Dotclear. 
     3# This file is part of stacker, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 Jean-Christophe Dubacq 
    6 # jcdubacq1@free.fr 
     5# Copyright (c) 2010 Franck Paul and contributors 
     6# carnet.franck.paul@gmail.com 
    77#  
    88# Licensed under the GPL version 2.0 license. 
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
    1213if (!defined('DC_CONTEXT_ADMIN')) { exit; } 
    1314 
  • plugins/stacker/_define.php

    r1544 r2697  
    11<?php 
    22# -- BEGIN LICENSE BLOCK ---------------------------------- 
    3 # This file is part of stacker, a plugin for Dotclear. 
     3# This file is part of stacker, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 Jean-Christophe Dubacq 
    6 # jcdubacq1@free.fr 
     5# Copyright (c) 2010 Franck Paul and contributors 
     6# carnet.franck.paul@gmail.com 
    77#  
    88# Licensed under the GPL version 2.0 license. 
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
    1213if (!defined('DC_RC_PATH')) {return;} 
    1314 
     
    1516                      /* Name */        'Stacker', 
    1617                      /* Description*/  'Manages a bunch of transforming functions that can modify the entries text before display', 
    17                       /* Author */      'Jean-Christophe Dubacq', 
    18                       /* Version */     '0.4.3', 
     18                      /* Author */      'Jean-Christophe Dubacq, Franck Paul', 
     19                      /* Version */     '0.5', 
    1920                      /* Permissions */ 'usage,contentadmin', 
    2021                      /* Priority */    100001 
  • plugins/stacker/_prepend.php

    r1544 r2697  
    1 <?php  
     1<?php 
    22# -- BEGIN LICENSE BLOCK ---------------------------------- 
    3 # This file is part of stacker, a plugin for Dotclear. 
     3# This file is part of stacker, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 Jean-Christophe Dubacq 
    6 # jcdubacq1@free.fr 
     5# Copyright (c) 2010 Franck Paul and contributors 
     6# carnet.franck.paul@gmail.com 
    77#  
    88# Licensed under the GPL version 2.0 license. 
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
    1213if (!defined('DC_RC_PATH')) {return;} 
    1314 
     
    1617// load main class 
    1718require_once(dirname(__FILE__).'/class.stacker.php'); 
    18 $core->stacker=new dcStacker($GLOBALS['core']); 
     19$core->stacker = new dcStacker($GLOBALS['core']); 
    1920$core->callBehavior('initStacker',$core); 
    20 if ($core->blog->settings->stacker_disabled) { 
    21     $disabled=explode(',',$core->blog->settings->stacker_disabled); 
    22     foreach ($disabled as $entry) { 
    23         $core->stacker->disable($entry); 
    24     } 
    25  } 
     21$core->blog->settings->addNameSpace('stacker'); 
     22if ($core->blog->settings->stacker->stacker_disabled) { 
     23     $disabled = explode(',',$core->blog->settings->stacker->stacker_disabled); 
     24     foreach ($disabled as $entry) { 
     25          $core->stacker->disable($entry); 
     26     } 
     27} 
    2628uasort($core->stacker->stack,array("dcStacker", "sort")); 
    27 $core->stacker->sorted=true; 
     29$core->stacker->sorted = true; 
    2830 
    2931class tplStacker 
    3032{ 
    31     static $frenchtypo=array( 
     33     static $frenchtypo=array( 
    3234                             '/ :/', 
    3335                             '/ ;/', 
     
    3739                             '/ »/', 
    3840                             '/\'/', 
    39                              ); 
    40     static $frenchtypox=array( 
     41     ); 
     42     static $frenchtypox=array( 
    4143                              '&nbsp;:', 
    4244                              '&thinsp;;', 
     
    4648                              '&nbsp;»', 
    4749                              '&rsquo;', 
    48                               ); 
    49     public static function initStacker($core) { 
    50         $core->stacker->addFilter('TestStackerFilter', 
     50     ); 
     51     public static function initStacker($core) { 
     52          $core->stacker->addFilter('TestStackerFilter', 
    5153                                  'tplStacker',  // Class 
    5254                                  'SwedishA',    // Function 
     
    5658                                  __('Test replacing Dotclear with Dotcleår'), 
    5759                                  '/Dotclear/'   // Trigger 
    58                                   ); 
    59         $core->stacker->addFilter('FrenchTypography', 
     60          ); 
     61          $core->stacker->addFilter('FrenchTypography', 
    6062                                  'tplStacker',         // Class 
    6163                                  'FrenchTypography',   // Function 
     
    6567                                  __('Changes spacing for French punctuation'), 
    6668                                  '/[:«»!?;\']/'); 
    67     } 
    68     public static function SwedishA($rs,$text,$stack,$elements) { 
    69         return (preg_replace('/Dotclear/', 'Dotcleår',$text)); 
    70     } 
    71     public static function FrenchTypography($rs,$text,$stack,$elements) { 
    72         if ((isset($elements['pre']) && $elements['pre']>0) || 
    73             (isset($elements['code']) && $elements['code']>0)) { 
    74             return $text; 
    75         } 
    76         $_ctx =& $GLOBALS['_ctx']; 
    77         $core=$rs->core; 
    78         if ($core->plugins->moduleExists('dctranslations') && $_ctx->posts) { 
    79             $lang=$_ctx->posts->getLang(); 
    80         } elseif ($_ctx->posts && $_ctx->posts->post_lang) { 
    81             $lang=$_ctx->posts->post_lang; 
    82         } else { 
    83             // unknown context 
    84             $lang=$core->blog->settings->lang; 
    85         } 
    86         if ($lang != 'fr') { 
    87             return $text; 
    88         } 
    89         $newcontent=preg_replace(tplStacker::$frenchtypo,tplStacker::$frenchtypox,$text); 
    90         return $newcontent; 
    91     } 
     69     } 
     70 
     71     public static function SwedishA($rs,$text,$stack,$elements) { 
     72          return (preg_replace('/Dotclear/', 'Dotcleår',$text)); 
     73     } 
     74 
     75     public static function FrenchTypography($rs,$text,$stack,$elements) { 
     76 
     77          if ((isset($elements['pre']) && $elements['pre']>0) || (isset($elements['code']) && $elements['code']>0)) { 
     78               return $text; 
     79          } 
     80 
     81          $_ctx =& $GLOBALS['_ctx']; 
     82          $core = $rs->core; 
     83          if ($core->plugins->moduleExists('dctranslations') && $_ctx->posts) { 
     84               $lang = $_ctx->posts->getLang(); 
     85          } elseif ($_ctx->posts && $_ctx->posts->post_lang) { 
     86               $lang = $_ctx->posts->post_lang; 
     87          } else { 
     88               // unknown context 
     89               $lang = $core->blog->settings->system->lang; 
     90          } 
     91          if ($lang != 'fr') { 
     92               return $text; 
     93          } 
     94          $newcontent = preg_replace(tplStacker::$frenchtypo,tplStacker::$frenchtypox,$text); 
     95          return $newcontent; 
     96     } 
    9297} 
    9398 
    94  
    9599?> 
  • plugins/stacker/_public.php

    r1544 r2697  
    11<?php 
    22# -- BEGIN LICENSE BLOCK ---------------------------------- 
    3 # This file is part of stacker, a plugin for Dotclear. 
     3# This file is part of stacker, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 Jean-Christophe Dubacq 
    6 # jcdubacq1@free.fr 
     5# Copyright (c) 2010 Franck Paul and contributors 
     6# carnet.franck.paul@gmail.com 
    77#  
    88# Licensed under the GPL version 2.0 license. 
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
    1213if (!defined('DC_RC_PATH')) {return;} 
    1314 
    14 $core->addBehavior('coreBlogGetPosts', 
    15                    array('stackerBehaviors','coreBlogGetPosts')); 
     15$core->addBehavior('coreBlogGetPosts',array('stackerBehaviors','coreBlogGetPosts')); 
    1616?> 
  • plugins/stacker/class.stacker.php

    r1807 r2697  
    1 <?php  
     1<?php 
    22# -- BEGIN LICENSE BLOCK ---------------------------------- 
    3 # This file is part of stacker, a plugin for Dotclear. 
     3# This file is part of stacker, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 Jean-Christophe Dubacq 
    6 # jcdubacq1@free.fr 
     5# Copyright (c) 2010 Franck Paul and contributors 
     6# carnet.franck.paul@gmail.com 
    77#  
    88# Licensed under the GPL version 2.0 license. 
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
    1213if (!defined('DC_RC_PATH')) {return;} 
    1314 
    1415class stackerBehaviors 
    1516{ 
    16     public static function coreBlogGetPosts($rs) 
    17     { 
    18         $rs->extend('rsExtPostStacker'); 
    19     } 
    20     public static function displayPluginsPanel($core) 
    21     { 
    22         $stacker=$core->stacker; 
    23         if (!$stacker->sorted) { 
    24             uasort($stacker->stack,array("dcStacker", "sort")); 
    25             $stacker->sorted=true; 
    26         } 
    27         echo '<div class="multi-part" id="stacker" title="Stacker">'; 
    28         if (!empty($_POST['change_stacker'])) { 
    29             if (isset($_POST['stack'])) { 
    30                 $newdis=implode(',',array_keys($_POST['stack'])); 
    31             } else { 
    32                 $newdis=''; 
    33             } 
    34             echo '<p>'.__('Disabled filters:').' '.$newdis.'</p>'; 
    35             $core->blog->settings->setNameSpace('stacker'); 
    36             $core->blog->settings->put('stacker_disabled',$newdis); 
    37             $disabled=explode(',',$newdis); 
    38             foreach ($stacker->stack as $key => $value) { 
    39                 $stacker->disable($key,true); 
    40             } 
    41             foreach ($stacker->stack as $key => $value) { 
    42             } 
    43             foreach ($disabled as $entry) { 
    44                 if ($entry) 
    45                     $stacker->disable($entry); 
    46             } 
    47             echo 
     17 
     18     public static function coreBlogGetPosts($rs) 
     19     { 
     20          $rs->extend('rsExtPostStacker'); 
     21     } 
     22 
     23     public static function displayPluginsPanel($core) 
     24     { 
     25 
     26          $stacker=$core->stacker; 
     27          if (!$stacker->sorted) { 
     28               uasort($stacker->stack,array("dcStacker", "sort")); 
     29               $stacker->sorted = true; 
     30          } 
     31 
     32          echo '<div class="multi-part" id="stacker" title="Stacker">'; 
     33          if (!empty($_POST['change_stacker'])) { 
     34               if (isset($_POST['stack'])) { 
     35                    $newdis = implode(',',array_keys($_POST['stack'])); 
     36               } else { 
     37                    $newdis = ''; 
     38               } 
     39               echo '<p>'.__('Disabled filters:').' '.$newdis.'</p>'; 
     40               $core->blog->settings->addNameSpace('stacker'); 
     41               $core->blog->settings->stacker->put('stacker_disabled',$newdis); 
     42               $disabled = explode(',',$newdis); 
     43               foreach ($stacker->stack as $key => $value) { 
     44                    $stacker->disable($key,true); 
     45               } 
     46               foreach ($disabled as $entry) { 
     47                    if ($entry) 
     48                    $stacker->disable($entry); 
     49               } 
     50               echo 
    4851                '<p class="message">'. 
    49                 __('Settings have been successfully updated.'). 
     52               __('Settings have been successfully updated.'). 
    5053                '</p>'; 
    51         } 
    52         echo '<form action="plugins.php" method="post">'; 
    53         echo '<table class="clear"><tr>'. 
     54          } 
     55          echo '<form action="plugins.php" method="post">'; 
     56          echo '<table class="clear"><tr>'. 
    5457            '<th colspan="2">'.__('Name').'</th>'. 
    5558            '<th class="nowrap">'.__('Origin').'</th>'. 
     
    5962            '<th>'.__('Function').'</th>'. 
    6063            '</tr>'; 
    61         foreach ($stacker->stack as $key => $value) { 
    62             $function=$value[0].'::'.$value[1]; 
    63             $context=join(',',array_keys($value[2])); 
    64             $priority=$value[3]; 
    65             $origin=$value[4]; 
    66             $desc=$value[5]; 
    67             echo '<tr'.((!$value[7])? 
     64 
     65          foreach ($stacker->stack as $key => $value) { 
     66 
     67               $function = $value[0].'::'.$value[1]; 
     68               $context = join(',',array_keys($value[2])); 
     69               $priority = $value[3]; 
     70               $origin = $value[4]; 
     71               $desc = $value[5]; 
     72 
     73               echo '<tr'.((!$value[7])? 
    6874                        ' style="background: #C0C0C0; font-style: italic;"': 
    6975                        '').'><td>'. 
    70                 form::checkbox(array('stack['.html::escapeHTML($key).']'),1, 
    71                                !$value[7]). 
     76                    form::checkbox(array('stack['.html::escapeHTML($key).']'),1,!$value[7]). 
    7277                '</td><td>'.$key.'</td><td>'. 
    73                 $origin.'</td><td>'. 
    74                 $priority.'</td><td>'. 
    75                 $context.'</td><td>'. 
    76                 $desc.'</td><td>'. 
    77                 $function.'</td></tr>'; 
    78         } 
    79         echo '</table>'; 
    80         if (!isset($core->blog->settings->stacker_disabled)) { 
    81             $setting=''; 
    82         } else { 
    83             $setting=$core->blog->settings->stacker_disabled; 
    84         } 
    85         echo '<p>'.__('Warning: disable with care only, it could disturb the normal functions of plugins using stacker.').'</p>'; 
    86         echo '<p>'.$core->formNonce().'</p>'. 
    87             form::hidden(array('tab'),'stacker'). 
     78               $origin.'</td><td>'. 
     79               $priority.'</td><td>'. 
     80               $context.'</td><td>'. 
     81               $desc.'</td><td>'. 
     82               $function.'</td></tr>'; 
     83          } 
     84          echo '</table>'; 
     85          $core->blog->settings->addNameSpace('stacker'); 
     86          if (!isset($core->blog->settings->stacker->stacker_disabled)) { 
     87               $setting = ''; 
     88          } else { 
     89               $setting = $core->blog->settings->stacker->stacker_disabled; 
     90          } 
     91          echo '<p>'.__('Warning: disable with care only, it could disturb the normal functions of plugins using stacker.').'</p>'; 
     92          echo '<p>'.$core->formNonce().'</p>'. 
     93               form::hidden(array('tab'),'stacker'). 
    8894            '<input type="submit" name="change_stacker" value="'.__('change'). 
    8995            '" />'. 
    9096            '</form>'; 
    91         echo '</div>'; 
    92     }  
     97          echo '</div>'; 
     98     } 
    9399} 
    94100 
    95101class rsExtPostStacker 
    96102{ 
    97     public static function getExcerpt($rs,$absolute_urls=false) 
    98     { 
    99         $rep = rsExtPost::getExcerpt($rs,$absolute_urls); 
    100         $newrep = dcStacker::treatChunks($rs,$rep,$absolute_urls,'excerpt'); 
    101         return $newrep; 
    102     } 
    103  
    104     public static function getContent($rs,$absolute_urls=false) 
    105     { 
    106         $rep = rsExtPost::getContent($rs,$absolute_urls); 
    107         $newrep = dcStacker::treatChunks($rs,$rep,$absolute_urls,'content'); 
    108         return $newrep; 
    109     } 
     103     public static function getExcerpt($rs,$absolute_urls=false) 
     104     { 
     105          $rep = rsExtPost::getExcerpt($rs,$absolute_urls); 
     106          $newrep = dcStacker::treatChunks($rs,$rep,$absolute_urls,'excerpt'); 
     107          return $newrep; 
     108     } 
     109 
     110     public static function getContent($rs,$absolute_urls=false) 
     111     { 
     112          $rep = rsExtPost::getContent($rs,$absolute_urls); 
     113          $newrep = dcStacker::treatChunks($rs,$rep,$absolute_urls,'content'); 
     114          return $newrep; 
     115     } 
    110116} 
    111117 
    112118class dcStacker 
    113119{ 
    114     public $stack; 
    115     public $sorted; 
    116    
    117     public function __construct($core) 
    118     { 
    119         $this->core =& $core; 
    120         $this->con =& $this->core->con; 
    121         $this->stack = array(); 
    122         $this->sorted = false; 
    123     } 
    124  
    125     public function addFilter($n,$class,$fun,$context,$prio,$orig,$desc, 
    126                               $trigg=null) 
    127     { 
    128         $carray=array(); 
    129         $carray[$context]=true; 
    130         $this->stack[$n]=array($class,$fun,$carray,$prio, 
    131                                $orig,$desc,$trigg,true); 
    132     } 
    133  
    134     public function disable($disabled,$value=false) 
    135     { 
    136         if (is_array($this->stack[$disabled])) { 
    137             $this->stack[$disabled][7] = $value; 
    138         } 
    139     } 
    140  
    141     public static function sort($a,$b) { 
    142         if ($a[3] == $b[3]) { 
    143             return 0; 
    144         } 
    145         return ($a[3] < $b[3]) ? -1 : 1; 
    146     } 
    147  
    148     public static function treatChunks($rs,$rep,$absolute_urls,$contextname) 
    149     { 
    150         $stack=array(); 
    151         $elements=array(); 
    152         $stacker=$rs->core->stacker; 
    153         if (!$stacker->sorted) { 
    154             uasort($stacker->stack,array("dcStacker", "sort")); 
    155             $stacker->sorted=true; 
    156         } 
    157         foreach ($stacker->stack as $value) { 
    158             $enabled=$value[7]; 
    159             if (!$enabled) { 
    160                 continue; 
    161             } 
    162             $context=$value[2]; 
    163             $class=$value[0]; 
    164             $function=$value[1]; 
    165             $func=array($class,$function); 
    166             if (isset($context['any'])||isset($context[$contextname])) { 
    167                 $rep=call_user_func_array($func, 
    168                                           array($rs,$rep,$absolute_urls)); 
    169             } 
    170             if (isset($context['textonly'])) { 
    171                 if (!preg_match($value[6],$rep,$matches)) { 
    172                     continue; 
    173                 } 
    174                 $newrep=""; 
    175                 while($rep) { 
    176                     if (preg_match('/^(<.*?>)(.*)$/s',$rep,$matches)) { 
    177                         $markup=$matches[1]; 
    178                         $newrep.=$markup; 
    179                         $rep=$matches[2]; 
    180                         // Stack management 
    181                         // We either close a tag, open a tag, put a 
    182                         // self-closed tag. 
    183                         // Case 1: close, Case 2: open (case 3: do nothing) 
    184                         if (substr($markup,1,1)=='/') { 
    185                             // implicitely close preceding tag, we are not a 
    186                             // browser and need not to be strict 
    187                             $exmarkup=array_pop($stack); 
    188                             $elements[$exmarkup]--; 
    189                         } elseif (substr($matches[1],-2)!='/>') { 
    190                             preg_match('/^<([^ ]*)(.*)>$/s',$markup,$matches); 
    191                             $stack[]=$matches[1]; 
    192                             if (isset($elements[$matches[1]])) { 
    193                                 $elements[$matches[1]]++; 
    194                             } else { 
    195                                 $elements[$matches[1]]=1; 
    196                             } 
    197                         } 
    198                     } elseif (preg_match('/^(.*?)(<.*)$/s',$rep,$matches)) { 
    199                         $newrep.=call_user_func_array($func,array($rs, 
    200                                                                   $matches[1], 
    201                                                                   $stack, 
    202                                                                   $elements)); 
    203                         $rep=$matches[2]; 
    204                     } else { 
    205                         $newrep.=call_user_func_array($func,array($rs, 
    206                                                                   $rep, 
    207                                                                   $stack, 
    208                                                                   $elements)); 
    209                         $rep=''; 
    210                     } 
    211                 } 
    212                 $rep=$newrep; 
    213             } 
    214         } 
    215         return $rep; 
    216     } 
     120     public $stack; 
     121     public $sorted; 
     122 
     123     public function __construct($core) 
     124     { 
     125          $this->core =& $core; 
     126          $this->con =& $this->core->con; 
     127          $this->stack = array(); 
     128          $this->sorted = false; 
     129     } 
     130 
     131     public function addFilter($n,$class,$fun,$context,$prio,$orig,$desc,$trigg=null) 
     132     { 
     133          $carray=array(); 
     134          $carray[$context] = true; 
     135          $this->stack[$n] = array($class,$fun,$carray,$prio,$orig,$desc,$trigg,true); 
     136     } 
     137 
     138     public function disable($disabled,$value=false) 
     139     { 
     140          if (is_array($this->stack[$disabled])) { 
     141               $this->stack[$disabled][7] = $value; 
     142          } 
     143     } 
     144 
     145     public static function sort($a,$b) { 
     146          if ($a[3] == $b[3]) { 
     147               return 0; 
     148          } 
     149          return ($a[3] < $b[3]) ? -1 : 1; 
     150     } 
     151 
     152     public static function treatChunks($rs,$rep,$absolute_urls,$contextname) 
     153     { 
     154          $stack = array(); 
     155          $elements = array(); 
     156          $stacker = $rs->core->stacker; 
     157          if (!$stacker->sorted) { 
     158               uasort($stacker->stack,array("dcStacker", "sort")); 
     159               $stacker->sorted = true; 
     160          } 
     161 
     162          foreach ($stacker->stack as $value) { 
     163               $enabled = $value[7]; 
     164               if (!$enabled) { 
     165                    continue; 
     166               } 
     167               $class = $value[0]; 
     168               $function = $value[1]; 
     169               $context = $value[2]; 
     170               $func = array($class,$function); 
     171               if (isset($context['any']) || isset($context[$contextname])) { 
     172                    $rep = call_user_func_array($func,array($rs,$rep,$absolute_urls)); 
     173               } 
     174               if (isset($context['textonly'])) { 
     175                    if (!preg_match($value[6],$rep,$matches)) { 
     176                         continue; 
     177                    } 
     178                    $newrep = ""; 
     179                    while ($rep) { 
     180                         if (preg_match('/^(<.*?>)(.*)$/s',$rep,$matches)) { 
     181                              $markup = $matches[1]; 
     182                              $newrep .= $markup; 
     183                              $rep = $matches[2]; 
     184                              // Stack management 
     185                              // We either close a tag, open a tag, put a 
     186                              // self-closed tag. 
     187                              // Case 1: close, Case 2: open (case 3: do nothing) 
     188                              if (substr($markup,1,1) == '/') { 
     189                                   // implicitely close preceding tag, we are not a 
     190                                   // browser and need not to be strict 
     191                                   $exmarkup = array_pop($stack); 
     192                                   $elements[$exmarkup]--; 
     193                              } elseif (substr($matches[1],-2) != '/>') { 
     194                                   preg_match('/^<([^ ]*)(.*)>$/s',$markup,$matches); 
     195                                   $stack[] = $matches[1]; 
     196                                   if (isset($elements[$matches[1]])) { 
     197                                        $elements[$matches[1]]++; 
     198                                   } else { 
     199                                        $elements[$matches[1]] = 1; 
     200                                   } 
     201                              } 
     202                         } elseif (preg_match('/^(.*?)(<.*)$/s',$rep,$matches)) { 
     203                              $newrep .= call_user_func_array($func,array($rs,$matches[1],$stack,$elements)); 
     204                              $rep=$matches[2]; 
     205                         } else { 
     206                              $newrep .= call_user_func_array($func,array($rs,$rep,$stack,$elements)); 
     207                              $rep = ''; 
     208                         } 
     209                    } 
     210                    $rep = $newrep; 
     211               } 
     212          } 
     213          return $rep; 
     214     } 
    217215} 
    218216?> 
  • plugins/stacker/doc/LISEZMOI.html

    r1807 r2697  
    5555votre transformateur. Pour cela, créez un 
    5656fichier <code>_prepend.php</code> qui contient:</p> 
    57 <pre class="code">$core->addBehavior('initStacker',array('tplStacker','initStacker'));<br />class tplStacker {<br />    public static function initStacker($core) {<br />        $core->stacker->addFilter('TestStackerFilter',<br />                                  'tplStacker',  // Class<br />                                  'SwedishA',    // Function<br />                                  'textonly',    // Context<br />                                  100,           // Priority<br />                                  'stacker',     // Origin<br />                                  __('Test replacing Dotclear with Dotcleår'),<br />                                  '/Dotclear/'   // Trigger<br />                                  );<br />    }<br />}</pre> 
     57<pre class="code">$core-&gt;addBehavior('initStacker',array('tplStacker','initStacker'));<br /> 
     58class tplStacker {<br /> 
     59    public static function initStacker($core) {<br /> 
     60            $core-&gt;stacker-&gt;addFilter('TestStackerFilter',<br /> 
     61                                              'tplStacker',  // Class<br /> 
     62                                              'SwedishA',    // Function<br /> 
     63                                              'textonly',    // Context<br />                                   
     64                                              100,           // Priority<br />                                   
     65                                              'stacker',     // Origin<br />                                   
     66                                              __('Test replacing Dotclear with Dotcleår'),<br />                                   
     67                                              '/Dotclear/'   // Trigger<br />                                   
     68                                              );<br /> 
     69    }<br /> 
     70}</pre> 
    5871<p>(si vous avez plusieurs transformateurs, répétez 
    5972le <code>addFilter</code>).</p> 
  • plugins/stacker/doc/README.html

    r1544 r2697  
    5050(declare) your text transformer. For this, create a 
    5151file <code>_prepend.php</code> containing:</p> 
    52 <pre class="code">$core->addBehavior('initStacker',array('tplStacker','initStacker'));<br />class tplStacker {<br />    public static function initStacker($core) {<br />        $core->stacker->addFilter('TestStackerFilter',<br />                                  'tplStacker',  // Class<br />                                  'SwedishA',    // Function<br />                                  'textonly',    // Context<br />                                  100,           // Priority<br />                                  'stacker',     // Origin<br />                                  __('Test replacing Dotclear with Dotcleår'),<br />                                  '/Dotclear/'   // Trigger<br />                                  );<br />    }<br />}</pre> 
     52<pre class="code">$core-&gt;addBehavior('initStacker',array('tplStacker','initStacker'));<br />class tplStacker {<br />    public static function initStacker($core) {<br />        $core-&gt;stacker-&gt;addFilter('TestStackerFilter',<br />                                  'tplStacker',  // Class<br />                                  'SwedishA',    // Function<br />                                  'textonly',    // Context<br />                                  100,           // Priority<br />                                  'stacker',     // Origin<br />                                  __('Test replacing Dotclear with Dotcleår'),<br />                                  '/Dotclear/'   // Trigger<br />                                  );<br />    }<br />}</pre> 
    5353<p>(if you have several transformers, repeat the <code>addFilter</code>).</p> 
    5454<p>The first argument is the name of the transformer, the second and the 
Note: See TracChangeset for help on using the changeset viewer.

Sites map