Dotclear

Changeset 2190


Ignore:
Timestamp:
04/15/10 00:32:13 (13 years ago)
Author:
JcDenis
Message:

kUtRL 0.3:

  • Added DC 2.2 compatibility (new settings)
  • Added semi-custom hash on kUtRL service
  • Added status update for Twitter/Identi?.ca on new short link
  • Added services error management (first step)
  • Added options to widgets
  • Upgraded bitly service to v3
  • Changed admin design
Location:
plugins/kUtRL
Files:
10 added
1 deleted
22 edited

Legend:

Unmodified
Added
Removed
  • plugins/kUtRL/_admin.php

    r1973 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1717# Plugin menu 
    1818$_menu['Plugins']->addItem( 
    19      __('kUtRL'), 
     19     __('Links shortener'), 
    2020     'plugin.php?p=kUtRL','index.php?pf=kUtRL/icon.png', 
    2121     preg_match('/plugin.php\?p=kUtRL(&.*)?$/',$_SERVER['REQUEST_URI']), 
     
    2323); 
    2424 
     25$s = kutrlSettings($core); 
     26 
    2527# Admin behaviors 
    26 if ($core->blog->settings->kutrl_active) 
     28if ($s->kutrl_active) 
    2729{ 
     30     $core->addBehavior('adminPostHeaders',array('adminKutrl','adminPostHeaders')); 
    2831     $core->addBehavior('adminPostFormSidebar',array('adminKutrl','adminPostFormSidebar')); 
    2932     $core->addBehavior('adminAfterPostUpdate',array('adminKutrl','adminAfterPostUpdate')); // update existing short url 
     
    3639 
    3740# Import/export 
    38 if ($core->blog->settings->kutrl_extend_importexport) 
     41if ($s->kutrl_extend_importexport) 
    3942{ 
    4043     $core->addBehavior('exportFull',array('backupKutrl','exportFull')); 
     
    4851class adminKutrl 
    4952{ 
     53     public static function adminPostHeaders() 
     54     { 
     55          return dcPage::jsLoad('index.php?pf=kUtRL/js/admin.js'); 
     56     } 
     57 
    5058     public static function adminPostFormSidebar($post) 
    5159     { 
    5260          global $core; 
    53  
    54           $_active = (boolean) $core->blog->settings->kutrl_active; 
    55           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    56           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    57  
    58           if (!$_active || !$_admin) return; 
    59           if (!isset($core->kutrlServices[$_admin])) return; 
    60  
    61           try 
    62           { 
    63                $kut = new $core->kutrlServices[$_admin]($core,$_limit_to_blog); 
    64           } 
    65           catch (Exception $e) 
    66           { 
     61          $s = kutrlSettings($core); 
     62 
     63          if (!$s->kutrl_active || !$s->kutrl_admin_service 
     64           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     65 
     66          try { 
     67               $kut = new $core->kutrlServices[$s->kutrl_admin_service]($core,$s->kutrl_limit_to_blog); 
     68          } 
     69          catch (Exception $e) { 
    6770               return; 
    6871          } 
     
    8083 
    8184          echo  
    82           '<h3 class="clear">'.__('Short link').'</h3>'. 
     85          '<h3 id="kutrl-form-title" class="clear">'.__('Short link').'</h3>'. 
     86          '<div id="kutrl-form-content">'. 
    8387          form::hidden(array('kutrl_old_post_url'),$post_url); 
    8488 
    8589          if (!$rs) 
    8690          { 
    87                if (empty($_POST['kutrl_old_post_url']) && $core->blog->settings->kutrl_admin_entry_default) 
     91               if (empty($_POST['kutrl_old_post_url']) && $s->kutrl_admin_entry_default) 
    8892               { 
    8993                    $chk = true; 
     
    9498               } 
    9599               echo  
    96                '<p><label class="classic">'.form::checkbox('kutrl_create',1,$chk,'',3).' '. 
     100               '<p><label class="classic">'. 
     101               form::checkbox('kutrl_create',1,$chk,'',3).' '. 
    97102               __('Create short link').'</label></p>'; 
    98103                
     
    101106                    echo  
    102107                    '<p class="classic">'. 
    103                     '<label for="custom">'.__('Custom short link:').'</label>'. 
    104                     form::field('kutrl_create_custom',32,32,''). 
    105                     '</p>'; 
    106                } 
     108                    '<label for="custom">'.__('Custom short link:').' '. 
     109                    form::field('kutrl_create_custom',32,32,'',3). 
     110                    '</label></p>'; 
     111               } 
     112               echo 
     113               '<p><label class="classic">'. 
     114               form::checkbox('kutrl_twit_send',1,0,'',3).' '. 
     115               __('Send to Twitter status').'</label></p>'; 
    107116          } 
    108117          else 
     
    124133 
    125134               echo  
    126                '<p><label class="classic">'.form::checkbox('kutrl_delete',1,!empty($_POST['kutrl_delete']),'',3).' '. 
     135               '<p><label class="classic">'. 
     136               form::checkbox('kutrl_delete',1,!empty($_POST['kutrl_delete']),'',3).' '. 
    127137               __('delete short link').'</label></p>'. 
    128138               '<p><a href="'.$href.'" '.'title="'.$title.'">'.$href.'</a></p>'; 
    129139          } 
     140          echo '</div>'; 
    130141     } 
    131142 
     
    133144     { 
    134145          global $core; 
     146          $s = kutrlSettings($core); 
    135147 
    136148          # Create: see adminAfterPostCreate 
    137           if (!empty($_POST['kutrl_create'])) return; 
    138  
    139           $_active = (boolean) $core->blog->settings->kutrl_active; 
    140           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    141           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    142  
    143           if (!$_active || !$_admin) return; 
    144           if (!isset($core->kutrlServices[$_admin])) return; 
    145  
    146           try 
    147           { 
    148                $kut = new $core->kutrlServices[$_admin]($core,$_limit_to_blog); 
    149           } 
    150           catch (Exception $e) 
    151           { 
     149          if (!empty($_POST['kutrl_create']) 
     150           || !$s->kutrl_active || !$s->kutrl_admin_service  
     151           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     152 
     153          try { 
     154               $kut = new $core->kutrlServices[$s->kutrl_admin_service]($core,$s->kutrl_limit_to_blog); 
     155          } 
     156          catch (Exception $e) { 
    152157               return; 
    153158          } 
     
    177182               $kut->remove($old_post_url); 
    178183 
    179                $kut->hash($new_post_url,$custom); // better to update (not yet implemented) 
     184               $rs = $kut->hash($new_post_url,$custom); // better to update (not yet implemented) 
     185 
     186               # Send new url by libDcTwitter 
     187               if (!empty($rs) && !empty($_POST['kutrl_twit_send'])) { 
     188                    $twit = libDcTwitter::getMessage('kUtRL'); 
     189                    $twit = str_replace( 
     190                         array('%L','%B','%U'), 
     191                         array($rs['url'],$core->blog->name,$core->auth->getInfo('user_cn')) 
     192                         ,$twit 
     193                    ); 
     194                    libDcTwitter::sendMessage('kUtRL',$twit); 
     195               } 
    180196          } 
    181197     } 
     
    184200     { 
    185201          global $core; 
    186  
    187           if (empty($_POST['kutrl_create'])) return; 
    188  
    189           $_active = (boolean) $core->blog->settings->kutrl_active; 
    190           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    191           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    192  
    193           if (!$_active || !$_admin) return; 
    194           if (!isset($core->kutrlServices[$_admin])) return; 
    195  
    196           try 
    197           { 
    198                $kut = new $core->kutrlServices[$_admin]($core,$_limit_to_blog); 
    199           } 
    200           catch (Exception $e) 
    201           { 
     202          $s = kutrlSettings($core); 
     203 
     204          if (empty($_POST['kutrl_create'])  
     205           || !$s->kutrl_active || !$s->kutrl_admin_service  
     206           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     207 
     208          try { 
     209               $kut = new $core->kutrlServices[$s->kutrl_admin_service]($core,$s->kutrl_limit_to_blog); 
     210          } 
     211          catch (Exception $e) { 
    202212               return; 
    203213          } 
     
    210220               $_POST['kutrl_create_custom'] : null; 
    211221 
    212           $kut->hash($rs->getURL(),$custom); 
     222          $rs = $kut->hash($rs->getURL(),$custom); 
     223 
     224          # Send new url by libDcTwitter 
     225          if (!empty($rs) && !empty($_POST['kutrl_twit_send'])) { 
     226               $twit = libDcTwitter::getMessage('kUtRL'); 
     227               $twit = str_replace( 
     228                    array('%L','%B','%U'), 
     229                    array($rs['url'],$core->blog->name,$core->auth->getInfo('user_cn')) 
     230                    ,$twit 
     231               ); 
     232               libDcTwitter::sendMessage('kUtRL',$twit); 
     233          } 
    213234     } 
    214235 
     
    216237     { 
    217238          global $core; 
    218  
    219           $_active = (boolean) $core->blog->settings->kutrl_active; 
    220           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    221           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    222  
    223           if (!$_active || !$_admin) return; 
    224           if (!isset($core->kutrlServices[$_admin])) return; 
    225  
    226           try 
    227           { 
    228                $kut = new $core->kutrlServices[$_admin]($core,$_limit_to_blog); 
    229           } 
    230           catch (Exception $e) 
    231           { 
     239          $s = kutrlSettings($core); 
     240 
     241          if (!$s->kutrl_active || !$s->kutrl_admin_service  
     242           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     243 
     244          try { 
     245               $kut = new $core->kutrlServices[$s->kutrl_admin_service]($core,$s->kutrl_limit_to_blog); 
     246          } 
     247          catch (Exception $e) { 
    232248               return; 
    233249          } 
     
    243259     { 
    244260          global $core; 
    245  
    246           $_active = (boolean) $core->blog->settings->kutrl_active; 
    247           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    248           $_auth_check = $core->auth->check('admin',$core->blog->id); 
    249  
    250           if (!$_active || !$_admin || !$_auth_check) return; 
    251           if (!isset($core->kutrlServices[$_admin])) return; 
    252  
    253           $args[0][__('create short link')] = 'kutrl_create'; 
    254           $args[0][__('delete short link')] = 'kutrl_delete'; 
     261          $s = kutrlSettings($core); 
     262 
     263          if (!$s->kutrl_active || !$s->kutrl_admin_service 
     264           || !$core->auth->check('admin',$core->blog->id)  
     265           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     266 
     267          $args[0][__('kUtRL')][__('create short link')] = 'kutrl_create'; 
     268          $args[0][__('kUtRL')][__('delete short link')] = 'kutrl_delete'; 
    255269     } 
    256270 
     
    260274           && $action != 'kutrl_delete') return; 
    261275 
    262  
    263           $_active = (boolean) $core->blog->settings->kutrl_active; 
    264           $_admin = (string) $core->blog->settings->kutrl_admin_service; 
    265           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    266  
    267           if (!$_active || !$_admin) return; 
    268           if (!isset($core->kutrlServices[$_admin])) return; 
    269  
    270           try 
    271           { 
    272                $kut = new $core->kutrlServices[$_admin]($core,$_limit_to_blog); 
    273           } 
    274           catch (Exception $e) 
    275           { 
     276          $s = kutrlSettings($core); 
     277 
     278          if (!$s->kutrl_active || !$s->kutrl_admin_service  
     279           || !isset($core->kutrlServices[$s->kutrl_admin_service])) return; 
     280 
     281          try { 
     282               $kut = new $core->kutrlServices[$s->kutrl_admin_service]($core,$s->kutrl_limit_to_blog); 
     283          } 
     284          catch (Exception $e) { 
    276285               return; 
    277286          } 
  • plugins/kUtRL/_define.php

    r2000 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1717     /* Description*/         "Use, create and serve short url on your blog", 
    1818     /* Author */             "JC Denis", 
    19      /* Version */            '0.2', 
     19     /* Version */            '0.3', 
    2020     /* Permissions */        'admin' 
    2121); 
    22      /* date */          #20091223 
     22     /* date */          #20100414 
    2323?> 
  • plugins/kUtRL/_install.php

    r1973 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    2828          throw new Exception('Plugin called kUtRL requires Dotclear 2.1.6 or higher.'); 
    2929     } 
    30      # Check DC version (new settings) 
    31      if (version_compare(DC_VERSION,'2.2','>=')) 
    32      { 
    33           throw new Exception('Plugin called kUtRL requires Dotclear up to 2.2.'); 
    34      } 
    3530 
    3631     # Table 
    37      $s = null; 
    38      $s = new dbStruct($core->con,$core->prefix); 
    39      $s->kutrl 
     32     $t = new dbStruct($core->con,$core->prefix); 
     33     $t->kutrl 
    4034          ->kut_id('bigint',0,false) 
    4135          ->blog_id('varchar',32,false) 
     
    5448          ->index('idx_kut_type','btree','kut_type'); 
    5549 
    56      $si = new dbStruct($core->con,$core->prefix); 
    57      $changes = $si->synchronize($s); 
     50     $ti = new dbStruct($core->con,$core->prefix); 
     51     $changes = $ti->synchronize($t); 
    5852 
    5953     # Settings 
    60      $s = null; 
    61      $s =& $core->blog->settings; 
    62      $s->setNameSpace('kUtRL'); 
     54     $s = kutrlSettings($core); 
    6355     $s->put('kutrl_active',false,'boolean','Enabled kutrl plugin',false,true); 
    6456     $s->put('kutrl_admin_service','local','string','Service to use to shorten links on admin',false,true); 
    6557     $s->put('kutrl_tpl_service','local','string','Service to use to shorten links on template',false,true); 
    66      $s->put('kutrl_wiki_service','','string','Service to use to shorten links on contents',false,true); 
     58     $s->put('kutrl_wiki_service','local','string','Service to use to shorten links on contents',false,true); 
    6759     $s->put('kutrl_limit_to_blog',false,'boolean','Limited short url to current blog\'s url',false,true); 
    6860     $s->put('kutrl_tpl_passive',true,'boolean','Template return long url if kutrl is unactivate',false,true); 
     
    8173     # Settings for "bilbolinks" service 
    8274     $s->put('kutrl_srv_bilbolinks_base','http://tux-pla.net/','string','URL of bilbolinks service',false,true); 
    83      $s->setNameSpace('system'); 
     75     # Twitter settings 
     76     $s->put('kutrl_twit_msg','%B : %U (from kUtRL)','string','Twit message to post',false,true); 
     77     $s->put('kutrl_twit_onadmin',true,'boolean','Post twit on new link on administration form',false,true); 
     78     $s->put('kutrl_twit_onpublic',false,'boolean','Post twit on new link on public form',false,true); 
     79     $s->put('kutrl_twit_ontpl',false,'boolean','Post twit on new link on templates',false,true); 
     80     $s->put('kutrl_twit_onwiki',false,'boolean','Post twit on new link on wiki synthax',false,true); 
     81      
    8482 
    8583     # Version 
  • plugins/kUtRL/_prepend.php

    r2000 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    4949$core->url->register('kutrl','go','^go(/(.*?)|)$',array('urlKutrl','redirectUrl')); 
    5050 
     51# Generic Dotclear class for Twitter and Identi.ca 
     52if (array_key_exists('libDcTwitter',$__autoload))  { 
     53     $r = new ReflectionClass(dirname(__FILE__).'/inc/lib.dc.twitter.php'); 
     54     if (version_compare(libDcTwitter::VERSION, $r->VERSION,'<')) { 
     55          $__autoload['libDcTwitter'] = dirname(__FILE__).'/inc/lib.dc.twitter.php'; 
     56     } 
     57     unset($r); 
     58} else { 
     59     $__autoload['libDcTwitter'] = dirname(__FILE__).'/inc/lib.dc.twitter.php'; 
     60} 
     61 
     62# DC 2.1.6 vs 2.2 settings 
     63function kutrlSettings($core,$namespace='kUtRL') 
     64{ 
     65     if (!version_compare(DC_VERSION,'2.1.6','<=')) {  
     66          $core->blog->settings->addNamespace($namespace);  
     67          return $core->blog->settings->{$namespace};  
     68     } else {  
     69          $core->blog->settings->setNamespace($namespace);  
     70          return $core->blog->settings;  
     71     } 
     72} 
     73 
    5174# Add kUtRL events on plugin activityReport 
    52 if ($core->blog->settings->kutrl_extend_activityreport && defined('ACTIVITY_REPORT')) 
     75if (kutrlSettings($core)->kutrl_extend_activityreport && defined('ACTIVITY_REPORT')) 
    5376{ 
    5477     require_once dirname(__FILE__).'/inc/lib.kutrl.activityreport.php'; 
  • plugins/kUtRL/_public.php

    r2000 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    4545     { 
    4646          global $core, $_ctx; 
    47  
    48           $_active = (boolean) $core->blog->settings->kutrl_active; 
    49           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    50  
    51           if (!$_active) 
     47          $s = kutrlSettings($core); 
     48 
     49          if (!$s->kutrl_active) 
    5250          { 
    5351               self::p404(); 
     
    6159          } 
    6260 
    63           $args = $m[3]; 
     61          $args = isset($m[3]) ? $m[3] : ''; 
    6462          $_ctx->kutrl_msg = ''; 
    6563          $_ctx->kutrl_hmf = hmfKutrl::create(); 
    6664          $_ctx->kutrl_hmfp = hmfKutrl::protect($_ctx->kutrl_hmf); 
    6765 
    68           $kut = new $core->kutrlServices['local']($core,$_limit_to_blog); 
     66          $kut = new $core->kutrlServices['local']($core,$s->kutrl_limit_to_blog); 
    6967 
    7068          if ($m[1] == '/') 
     
    102100     { 
    103101          global $core, $_ctx; 
    104  
    105           $_active = (boolean) $core->blog->settings->kutrl_active; 
    106           $_public = (boolean) $core->blog->settings->kutrl_srv_local_public; 
    107           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    108  
    109           if (!$_active || !$_public) 
     102          $s = kutrlSettings($core); 
     103 
     104          if (!$s->kutrl_active || !$s->kutrl_srv_local_public) 
    110105          { 
    111106               self::p404(); 
     
    164159               if (!$err) 
    165160               { 
    166                     if ($_limit_to_blog && !$kut->isBlogUrl($url)) 
     161                    if ($s->kutrl_limit_to_blog && !$kut->isBlogUrl($url)) 
    167162                    { 
    168163                         $err = true; 
     
    212207                         ); 
    213208                         $core->blog->triggerBlog(); 
     209                          
     210                         if ($s->kutrl_twit_onpublic) { 
     211                              # Send new url by libDcTwitter 
     212                              $twit = libDcTwitter::getMessage('kUtRL'); 
     213                              $twit = str_replace(array('%L','%B','%U'),array($new_url,$core->blog->name,__('public')),$twit); 
     214                              libDcTwitter::sendMessage('kUtRL',$twit); 
     215                         } 
    214216                    } 
    215217               } 
     
    224226     { 
    225227          global $_ctx; 
    226  
    227           $_active = (boolean) $core->blog->settings->kutrl_active; 
    228           $_tpl_service = (string) $core->blog->settings->kutrl_tpl_service; 
    229           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
    230  
    231           #Passive : all kutrl tag return long url 
    232           $_ctx->kutrl_passive = (boolean) $core->blog->settings->kutrl_tpl_passive; 
    233  
    234           if (!$_active || !$_tpl_service) return; 
    235           if (!isset($core->kutrlServices[$_tpl_service])) return; 
    236  
    237           $_ctx->kutrl = new $core->kutrlServices[$_tpl_service]($core,$_limit_to_blog); 
     228          $s = kutrlSettings($core); 
     229 
     230          # Passive : all kutrl tag return long url 
     231          $_ctx->kutrl_passive = (boolean) $s->kutrl_tpl_passive; 
     232          # Twitter feature when auto create short link on template 
     233          $_ctx->kutrl_twit_ontpl = (boolean) $s->kutrl_twit_ontpl; 
     234 
     235          if (!$s->kutrl_active || !$s->kutrl_tpl_service) return; 
     236          if (!isset($core->kutrlServices[$s->kutrl_tpl_service])) return; 
     237 
     238          $_ctx->kutrl = new $core->kutrlServices[$s->kutrl_tpl_service]($core,$s->kutrl_limit_to_blog); 
    238239     } 
    239240 
    240241     public static function publicHeadContent($core) 
    241242     { 
    242           $s = $core->blog->settings->kutrl_srv_local_css; 
    243           if ($s) 
     243          $s = kutrlSettings($core); 
     244          $css = $s->kutrl_srv_local_css; 
     245          if ($css) 
    244246          { 
    245247               echo  
    246248               "\n<!-- CSS for kUtRL --> \n". 
    247249               "<style type=\"text/css\"> \n". 
    248                html::escapeHTML($s)."\n". 
     250               html::escapeHTML($css)."\n". 
    249251               "</style>\n"; 
    250252          } 
     
    267269          { 
    268270               $sign = (boolean) $attr['is_active'] ? '' : '!'; 
    269                $if[] = $sign.'$core->blog->settings->kutrl_srv_local_public'; 
     271               $if[] = $sign.'$s->kutrl_srv_local_public'; 
     272          } 
     273 
     274          if (empty($if)) 
     275          { 
     276               return $content; 
     277          } 
     278 
     279          return  
     280          "<?php \$s = kutrlSettings(\$core); ". 
     281          "if(".implode(' '.$operator.' ',$if).") : ?>\n". 
     282          $content. 
     283          "<?php endif; unset(\$s);?>\n"; 
     284     } 
     285 
     286     public static function pageMsgIf($attr,$content) 
     287     { 
     288          $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; 
     289 
     290          if (isset($attr['has_message'])) 
     291          { 
     292               $sign = (boolean) $attr['has_message'] ? '!' : '='; 
     293               $if[] = '"" '.$sign.'= $_ctx->kutrl_msg'; 
    270294          } 
    271295 
     
    281305     } 
    282306 
    283      public static function pageMsgIf($attr,$content) 
    284      { 
    285           $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; 
    286  
    287           if (isset($attr['has_message'])) 
    288           { 
    289                $sign = (boolean) $attr['has_message'] ? '!' : '='; 
    290                $if[] = '"" '.$sign.'= $_ctx->kutrl_msg'; 
    291           } 
    292  
    293           if (empty($if)) 
    294           { 
    295                return $content; 
    296           } 
    297  
    298           return  
    299           "<?php if(".implode(' '.$operator.' ',$if).") : ?>\n". 
    300           $content. 
    301           "<?php endif; ?>\n"; 
    302      } 
    303  
    304307     public static function pageMsg($attr) 
    305308     { 
     
    309312     public static function humanField($attr) 
    310313     { 
    311           return "<?php echo sprintf(__('Write \"%s\" in next field to see if you are not a robot:'),\$_ctx->kutrl_hmf); ?>"; 
     314          return "<?php echo sprintf(__('Rewrite \"%s\" in next field to show that you are not a robot:'),\$_ctx->kutrl_hmf); ?>"; 
    312315     } 
    313316 
     
    423426          " if (false !== (\$kutrl_rs = \$_ctx->kutrl->hash(".$str."))) { ". 
    424427          "  echo ".sprintf($f,'$_ctx->kutrl->url_base.$kutrl_rs->hash')."; ". 
     428           
     429          # Send new url by libDcTwitter 
     430          "if (\$_ctx->kutrl_twit_ontpl) { ". 
     431           "\$twit = libDcTwitter::getMessage('kUtRL'); ". 
     432           "\$twit = str_replace(array('%L','%B','%U'),array(\$_ctx->kutrl->url_base.\$kutrl_rs->hash,\$core->blog->name,__('public')),\$twit); ". 
     433           "libDcTwitter::sendMessage('kUtRL',\$twit); "; 
     434           " unset(\$twit); ". 
     435          "} \n". 
     436 
    425437          " } \n". 
    426438          " unset(\$kutrl_rs); \n". 
     
    446458class hmfKutrl 
    447459{ 
    448      public static $chars = 'abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; 
     460     public static $chars = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'; 
    449461 
    450462     public static function create($len=6) 
  • plugins/kUtRL/_uninstall.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
  • plugins/kUtRL/_widgets.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    3333     public static function adminRank($w) 
    3434     { 
    35           $w->create('rankkutrl',__('Top mini links'), 
     35          $w->create('rankkutrl',__('Top of short links'), 
    3636               array('widgetKutrl','publicRank') 
    3737          ); 
    3838          $w->rankkutrl->setting('title', 
    39                __('Title:'),__('Top mini links'),'text' 
     39               __('Title:'),__('Top of short links'),'text' 
    4040          ); 
    4141          $w->rankkutrl->setting('text', 
    42                __('Text:'),'%rank% - %url% - %counttext%','text' 
     42               __('Text: (Use wildcard %rank%, %hash%, %url%, %count%, %counttext%)'),'%rank% - %url% - %counttext%','text' 
    4343          ); 
    4444          $w->rankkutrl->setting('urllen', 
    45                __('Link length (if truncate)'),20 
     45               __('URL length (if truncate)'),20,'text' 
    4646          ); 
    4747          $w->rankkutrl->setting('type', 
    4848               __('Type:'),'all','combo',array( 
    4949                    __('All') => '-', 
    50                     __('Mini URL') => 'normal', 
    51                     __('Custom URL')=>'custom' 
     50                    __('Mini URL') => 'localnormal', 
     51                    __('Custom URL') => 'localcustom', 
     52                    __('Semi-custom') => 'localmix' 
     53               ) 
     54          ); 
     55          $w->rankkutrl->setting('mixprefix', 
     56               __('Semi-custom prefix: (only if you want limit to a particular prefix)'), 
     57               '','text' 
     58          ); 
     59          $w->rankkutrl->setting('sortby', 
     60               __('Sort by:'),'kut_counter','combo',array( 
     61                    __('Date') => 'kut_dt', 
     62                    __('Rank') => 'kut_counter', 
     63                    __('Hash') => 'kut_hash' 
    5264               ) 
    5365          ); 
     
    7284     { 
    7385          global $core; 
     86          $s = kutrlSettings($core); 
    7487 
    75           if ($w->homeonly && $core->url->type != 'default') return; 
    76  
    77           if (!$core->blog->settings->kutrl_active  
    78            || !$core->blog->settings->kutrl_srv_local_public) return; 
     88          if (!$s->kutrl_active  
     89           || !$s->kutrl_srv_local_public  
     90           || !$w->homeonly && $core->url->type != 'default') return; 
    7991 
    8092          $hmf = hmfKutrl::create(); 
     
    91103          '</label></p>'. 
    92104          '<p><label>'. 
    93            sprintf(__('Write "%s" in next field to see if you are not a robot:'),$hmf).'<br />'. 
     105           sprintf(__('Rewrite \"%s\" in next field to show that you are not a robot:'),$hmf).'<br />'. 
    94106           form::field('hmf',20,255,''). 
    95107          '</label></p>'. 
     
    105117     { 
    106118          global $core; 
     119          $s = kutrlSettings($core); 
    107120 
    108           if ($w->homeonly && $core->url->type != 'default') return; 
     121          if (!$s->kutrl_active  
     122           || $w->homeonly && $core->url->type != 'default') return; 
    109123 
    110           if (!$core->blog->settings->kutrl_active) return; 
    111  
    112           if ($w->type == 'normal') 
    113           { 
    114                $type = "AND kut_type ='".$core->con->escape('localnormal')."' "; 
    115           } 
    116           elseif ($w->type == 'custom') 
    117           { 
    118                $type = "AND kut_type ='".$core->con->escape('localcustom')."' "; 
    119           } 
    120           else 
    121           { 
    122                $type = "AND kut_type ".$core->con->in(array('localnormal','localcustom'))." "; 
    123           } 
     124          $type = in_array($w->type,array('localnormal','localmix','localcustom')) ? 
     125               "AND kut_type ='".$w->type."' " : 
     126               "AND kut_type ".$core->con->in(array('localnormal','localmix','localcustom'))." "; 
    124127 
    125128          $hide = (boolean) $w->hideempty ? 'AND kut_counter > 0 ' : ''; 
    126129 
     130          $more = ''; 
     131          if ($w->type == 'localmix' && '' != $w->mixprefix) { 
     132               $more = "AND kut_hash LIKE '".$core->con->escape($w->mixprefix)."%' "; 
     133          } 
     134 
     135          $order = ($w->sortby && in_array($w->sortby,array('kut_dt','kut_counter','kut_hash'))) ?  
     136               $w->sortby.' ' : 'kut_dt '; 
     137 
     138          $order .= $w->sort == 'desc' ? 'DESC' : 'ASC'; 
     139 
     140          $limit = $core->con->limit(abs((integer) $w->limit)); 
     141 
    127142          $rs = $core->con->select( 
    128           'SELECT kut_counter, kut_hash '. 
    129           "FROM ".$core->prefix."kutrl ". 
    130           "WHERE blog_id='".$core->con->escape($core->blog->id)."' ". 
    131           "AND kut_service = 'local' ". 
    132           $type.$hide. 
    133           'ORDER BY kut_counter '.($w->sort == 'asc' ? 'ASC' : 'DESC').',kut_hash ASC '. 
    134           $core->con->limit(abs((integer) $w->limit))); 
     143               'SELECT kut_counter, kut_hash '. 
     144               "FROM ".$core->prefix."kutrl ". 
     145               "WHERE blog_id='".$core->con->escape($core->blog->id)."' ". 
     146               "AND kut_service = 'local' ". 
     147               $type.$hide.$more.'ORDER BY '.$order.$limit 
     148          ); 
    135149 
    136150          if ($rs->isEmpty()) return; 
  • plugins/kUtRL/inc/lib.kutrl.activityreport.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1111# -- END LICENSE BLOCK ------------------------------------ 
    1212 
     13# This file is used with plugin activityReport 
     14 
    1315if (!defined('DC_RC_PATH')){return;} 
    1416 
    15 # This file is used with plugin activityReport 
    1617$core->activityReport->addGroup('kutrl',__('Plugin kUtRL')); 
    1718 
  • plugins/kUtRL/inc/lib.kutrl.log.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1111# -- END LICENSE BLOCK ------------------------------------ 
    1212 
     13# This file contents class to acces local short links records 
     14 
    1315class kutrlLog 
    1416{ 
     
    3840          $this->con->writeLock($this->table); 
    3941 
    40           $cur->kut_id = $this->nextId(); 
    41           $cur->blog_id = $this->blog; 
    42           $cur->kut_url = (string) $url; 
    43           $cur->kut_hash = (string) $hash; 
    44           $cur->kut_type = (string) $type; 
    45           $cur->kut_service = (string) $service; 
    46           $cur->kut_dt = date('Y-m-d H:i:s'); 
    47           $cur->kut_counter = 0; 
    48  
    49           $cur->insert(); 
    50           $this->con->unlock(); 
    51  
    52           return array( 
    53                'url' => $url, 
    54                'hash' => $hash, 
    55                'type' => $type, 
    56                'service' => $service, 
    57                'counter '=> 0 
    58           ); 
     42          try { 
     43               $cur->kut_id = $this->nextId(); 
     44               $cur->blog_id = $this->blog; 
     45               $cur->kut_url = (string) $url; 
     46               $cur->kut_hash = (string) $hash; 
     47               $cur->kut_type = (string) $type; 
     48               $cur->kut_service = (string) $service; 
     49               $cur->kut_dt = date('Y-m-d H:i:s'); 
     50               $cur->kut_counter = 0; 
     51 
     52               $cur->insert(); 
     53               $this->con->unlock(); 
     54 
     55               return array( 
     56                    'id' => $cur->kut_id, 
     57                    'url' => $url, 
     58                    'hash' => $hash, 
     59                    'type' => $type, 
     60                    'service' => $service, 
     61                    'counter '=> 0 
     62               ); 
     63          } 
     64          catch (Exception $e) 
     65          { 
     66               $this->con->unlock(); 
     67               throw $e; 
     68          } 
     69          return false; 
    5970     } 
    6071 
    6172     public function select($url=null,$hash=null,$type=null,$service='kutrl') 
    6273     { 
    63           $this->con->writeLock($this->table); 
     74          //$this->con->writeLock($this->table); 
    6475 
    6576          $req =  
     
    6778          'kut_type as type, kut_service as service, kut_counter as counter '. 
    6879          'FROM '.$this->table.' '. 
    69           "WHERE blog_id='".$this->blog."' ". 
    70           "AND kut_service='".$this->con->escape($service)."' "; 
     80          "WHERE blog_id = '".$this->blog."' ". 
     81          "AND kut_service = '".$this->con->escape($service)."' "; 
    7182 
    7283          if (null !== $url) 
    73                $req .= "AND kut_url='".$this->con->escape($url)."' "; 
     84               $req .= "AND kut_url = '".$this->con->escape($url)."' "; 
    7485 
    7586          if (null !== $hash) 
    76                $req .= "AND kut_hash='".$this->con->escape($hash)."' "; 
    77            
    78           if (null !== $type && is_array($type)) 
    79                $req .= "AND kut_type '".$this->con->in($type)."' "; 
    80  
    81           if (null !== $type && is_string($type)) 
    82                $req .= "AND kut_type='".$this->con->escape($type)."' "; 
     87               $req .= "AND kut_hash = '".$this->con->escape($hash)."' "; 
     88 
     89          if (null !== $type) { 
     90               if (is_array($type)) { 
     91                    $req .= "AND kut_type '".$this->con->in($type)."' "; 
     92               } 
     93               else { 
     94                    $req .= "AND kut_type = '".$this->con->escape($type)."' "; 
     95               } 
     96          } 
    8397 
    8498          $req .= 'ORDER BY kut_dt DESC '.$this->con->limit(1); 
    8599 
    86100          $rs = $this->con->select($req); 
    87           $this->con->unlock(); 
     101          //$this->con->unlock(); 
    88102 
    89103          return $rs->isEmpty() ? false : $rs; 
  • plugins/kUtRL/inc/lib.kutrl.srv.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1111# -- END LICENSE BLOCK ------------------------------------ 
    1212 
     13# This file contents parent class of shorten link services  
     14 
    1315class kutrlServices 
    1416{ 
    1517     public $core; 
     18     public $error; 
    1619     public $s; 
    1720     public $log; 
     
    2932     { 
    3033          $this->core = $core; 
    31           $this->s =& $core->blog->settings; 
     34          $this->s = kutrlSettings($core); 
    3235          $this->log = new kutrlLog($core); 
    3336          $this->limit_to_blog = (boolean) $limit_to_blog; 
     37          $this->error = new dcError(); 
     38          $this->error->setHTMLFormat('%s',"%s\n"); 
    3439     } 
    3540 
     
    100105     } 
    101106 
     107     # Test if an custom short url is know 
     108     public function isKnowHash($hash) 
     109     { 
     110          return $this->log->select(null,$hash,$this->id,'kutrl'); 
     111     } 
     112 
    102113     # Create hash from url 
    103114     public function hash($url,$hash=null) 
     
    121132          } 
    122133          if ($this->limit_to_blog && !$this->isBlogUrl($url)) 
     134          { 
     135               return false; 
     136          } 
     137          if ($hash && false !== ($rs = $this->isKnowHash($hash))) 
    123138          { 
    124139               return false; 
  • plugins/kUtRL/inc/lib.wiki.kutrl.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1010# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    1111# -- END LICENSE BLOCK ------------------------------------ 
     12 
     13# This file contents class to shorten url pass through wiki 
    1214 
    1315if (!defined('DC_RC_PATH')){return;} 
     
    1820     { 
    1921          global $core; 
     22          $s = kutrlSettings($core); 
    2023 
    21           $_active = (boolean) $core->blog->settings->kutrl_active; 
    22           $_wiki_service = (string) $core->blog->settings->kutrl_wiki_service; 
    23           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
     24          # Do nothing on comment preview and post preview 
     25          if (!empty($_POST['preview'])  
     26           || !empty($GLOBALS['c_ctx']) && $GLOBALS['c_ctx']->preview) return; 
    2427 
    25           if (!$_active || !$_wiki_service) return; 
     28          if (!$s->kutrl_active || !$s->kutrl_wiki_service  
     29           || !isset($core->kutrlServices[$s->kutrl_wiki_service])) return; 
    2630 
    27           if (!isset($core->kutrlServices[$_wiki_service])) return; 
    28  
    29           try 
    30           { 
    31                $kut = new $core->kutrlServices[$_wiki_service]($core,$_limit_to_blog); 
     31          try { 
     32               $kut = new $core->kutrlServices[$s->kutrl_wiki_service]($core,$s->kutrl_limit_to_blog); 
    3233          } 
    33           catch (Exception $e) 
    34           { 
     34          catch (Exception $e) { 
    3535               return; 
    3636          } 
     
    4848     { 
    4949          global $core; 
     50          $s = kutrlSettings($core); 
    5051 
    51           $_active = (boolean) $core->blog->settings->kutrl_active; 
    52           $_wiki_service = (string) $core->blog->settings->kutrl_wiki_service; 
    53           $_limit_to_blog = (boolean) $core->blog->settings->kutrl_limit_to_blog; 
     52          if (!$s->kutrl_active || !$s->kutrl_wiki_service  
     53           || !isset($core->kutrlServices[$s->kutrl_wiki_service])) return; 
    5454 
    55           if (!$_active || !$_wiki_service) return; 
    56  
    57           if (!isset($core->kutrlServices[$_wiki_service])) return; 
    58  
    59           try 
    60           { 
    61                $kut = new $core->kutrlServices[$_wiki_service]($core,$_limit_to_blog); 
     55          try { 
     56               $kut = new $core->kutrlServices[$s->kutrl_wiki_service]($core,$s->kutrl_limit_to_blog); 
    6257          } 
    63           catch (Exception $e) 
    64           { 
     58          catch (Exception $e) { 
    6559               return array(); 
    6660          } 
     
    8074               if ($testurl == $content) $res['content'] = $res['url']; 
    8175 
     76               # Send new url by libDcTwitter 
     77               if ($s->kutrl_twit_onwiki) { 
     78                    $user = !defined('DC_CONTEXT_ADMIN') ? __('public') : $core->auth->getInfo('user_cn'); 
     79                    $twit = libDcTwitter::getMessage('kUtRL'); 
     80                    $twit = str_replace(array('%L','%B','%U'),array($res['url'],$core->blog->name,$user),$twit); 
     81                    libDcTwitter::sendMessage('kUtRL',$twit); 
     82               } 
     83 
    8284               return $res; 
    8385          } 
  • plugins/kUtRL/inc/patch.dcminiurl.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
  • plugins/kUtRL/inc/services/class.bilbolinks.service.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    4343          } 
    4444 
    45           $this->s->setNameSpace('kUtRL'); 
    4645          $this->s->put('kutrl_srv_bilbolinks_base',$base); 
    47           $this->s->setNameSpace('system'); 
    4846     } 
    4947 
     
    6260     public function testService() 
    6361     { 
    64           if (empty($this->url_base)) return false; 
     62          if (empty($this->url_base)) 
     63          { 
     64               $this->error->add(__('Service is not well configured.')); 
     65               return false; 
     66          } 
    6567 
    6668          $arg = array('longurl' => urlencode($this->url_test)); 
    6769          if (!self::post($this->url_api,$arg,true,true)) 
    6870          { 
     71               $this->error->add(__('Service is unavailable.')); 
    6972               return false; 
    7073          } 
     
    7881          if (!($response = self::post($this->url_api,$arg,true,true))) 
    7982          { 
     83               $this->error->add(__('Service is unavailable.')); 
    8084               return false; 
    8185          } 
    8286          if ($response == 'You are too speed!') 
    8387          { 
     88               $this->error->add(__('Service rate limit exceeded.')); 
    8489               return false; 
    8590          } 
  • plugins/kUtRL/inc/services/class.bitly.service.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1919     public $home = 'http://bit.ly'; 
    2020 
    21      private $url_api = 'http://api.bit.ly/'; 
     21     private $url_api = 'http://api.bit.ly/v3/'; 
    2222     private $args = array( 
    23           'version' => '2.0.1', 
    2423          'format' => 'xml', 
    2524          'login' => '', 
     
    4241     public function saveSettings() 
    4342     { 
    44           $this->s->setNameSpace('kUtRL'); 
    4543          $this->s->put('kutrl_srv_bitly_login',$_POST['kutrl_srv_bitly_login']); 
    4644          $this->s->put('kutrl_srv_bitly_apikey',$_POST['kutrl_srv_bitly_apikey']); 
    4745          $this->s->put('kutrl_srv_bitly_history',isset($_POST['kutrl_srv_bitly_history'])); 
    48           $this->s->setNameSpace('system'); 
    4946     } 
    5047 
     
    7572     public function testService() 
    7673     { 
    77           if (empty($this->args['login']) || empty($this->args['apiKey'])) return false; 
     74          if (empty($this->args['login']) || empty($this->args['apiKey'])) 
     75          { 
     76               $this->error->add(__('Service is not well configured.')); 
     77               return false; 
     78          } 
    7879 
    7980          $args = $this->args; 
    8081          $args['hash'] = 'WP9vc'; 
    81           if (!($rs = self::post($this->url_api.'info',$args,true))) 
     82          if (!($response = self::post($this->url_api.'expand',$args,true))) 
    8283          { 
     84               $this->error->add(__('Failed to call service.')); 
    8385               return false; 
    8486          } 
    85           $rsp = simplexml_load_string($rs); 
    86           if ($rsp->errorCode == 203) 
    87           { 
     87 
     88          $rsp = simplexml_load_string($response); 
     89 
     90          $err_msg = (string) $rsp->status_txt; 
     91          if ($err_msg != 'OK') { 
     92               $err_no = (integer) $rsp->status_code; 
     93               $this->error->add(sprintf(__('An error occured with code %s and message "%s"'),$err_no,$err_msg)); 
    8894               return false; 
    8995          } 
     
    98104          if (!($response = self::post($this->url_api.'shorten',$args,true))) 
    99105          { 
     106               $this->error->add(__('Failed to call service.')); 
    100107               return false; 
    101108          } 
     109 
    102110          $rsp = simplexml_load_string($response); 
    103111 
    104           if (0 != $rsp->errorCode) 
    105           { 
     112          $err_msg = (string) $rsp->status_txt; 
     113          if ($err_msg != 'OK') { 
     114               $err_no = (integer) $rsp->status_code; 
     115               $this->error->add(sprintf(__('An error occured with code %s and message "%s"'),$err_no,$err_msg)); 
    106116               return false; 
    107117          } 
    108118 
    109119          $rs = new ArrayObject(); 
    110           $rs->hash = (string) $rsp->results->nodeKeyVal->userHash[0]; //!? 
    111           $rs->url = $url; 
     120          $rs->hash = (string) $rsp->data[0]->hash; 
     121          $rs->url = (string) $rsp->data[0]->long_url; 
    112122          $rs->type = $this->id; 
    113123 
  • plugins/kUtRL/inc/services/class.isgd.service.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    3737          if (!self::post($this->url_api,$arg,true,true)) 
    3838          { 
     39               $this->error->add(__('Service is unavailable.')); 
    3940               return false; 
    4041          } 
     
    4849          if (!($response = self::post($this->url_api,$arg,true,true))) 
    4950          { 
     51               $this->error->add(__('Service is unavailable.')); 
    5052               return false; 
    5153          } 
  • plugins/kUtRL/inc/services/class.local.service.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1616{ 
    1717     public $id = 'local'; 
    18      public $name = 'My blog'; 
     18     public $name = 'kUtRL'; 
    1919     public $home = 'http://kutrl.fr'; 
    2020 
     
    2323          parent::__construct($core,$limit_to_blog); 
    2424 
    25           $protocols = (string) $core->blog->settings->kutrl_srv_local_protocols; 
     25          $protocols = (string) $this->s->kutrl_srv_local_protocols; 
    2626          $this->allowed_protocols = empty($protocols) ? array() : explode(',',$protocols); 
    2727          $this->allow_customized_hash = true; 
     
    3333     public function saveSettings() 
    3434     { 
    35           $this->s->setNameSpace('kUtRL'); 
    3635          $this->s->put('kutrl_srv_local_protocols',$_POST['kutrl_srv_local_protocols']); 
    3736          $this->s->put('kutrl_srv_local_public',isset($_POST['kutrl_srv_local_public'])); 
    3837          $this->s->put('kutrl_srv_local_css',$_POST['kutrl_srv_local_css']); 
    39           $this->s->setNameSpace('system'); 
    4038     } 
    4139 
     
    8482     public function testService() 
    8583     { 
    86           return !empty($this->allowed_protocols); 
     84          if (!empty($this->allowed_protocols)) 
     85          { 
     86               return true; 
     87          } 
     88          else { 
     89               $this->error->add(__('Service is not well configured.')); 
     90               return false; 
     91          } 
    8792     } 
    8893 
    8994     public function createHash($url,$hash=null) 
    9095     { 
     96          # Create response object 
    9197          $rs = new ArrayObject(); 
    9298          $rs->type = 'local'; 
    9399          $rs->url = $url; 
    94100 
     101          # Normal link 
    95102          if ($hash === null) 
    96103          { 
    97104               $type = 'localnormal'; 
    98                $rs->hash = $this->next($this->last()); 
    99           } 
    100           else 
    101           { 
     105               $rs->hash = $this->next($this->last('localnormal')); 
     106          } 
     107 
     108          # Mixed custom link 
     109          elseif (preg_match('/^([A-Za-z0-9]{2,})!!$/',$hash,$m)) 
     110          { 
     111               $type = 'localmix'; 
     112               $rs->hash = $m[1].$this->next(-1,$m[1]); 
     113          } 
     114 
     115          # Custom link 
     116          elseif (preg_match('/^[A-Za-z0-9.-_]{2,}$/',$hash)) 
     117          { 
     118               if (false !== $this->log->select(null,$hash,null,'local')) 
     119               { 
     120                    $this->error->add(__('Custom short link is already taken.')); 
     121                    return false; 
     122               } 
    102123               $type = 'localcustom'; 
    103124               $rs->hash = $hash; 
    104125          } 
    105126 
    106           $this->log->insert($rs->url,$rs->hash,$type,$rs->type); 
    107           return $rs; 
    108      } 
    109  
    110      protected function last() 
     127          # Wrong char in custom hash 
     128          else 
     129          { 
     130               $this->error->add(__('Custom short link is not valid.')); 
     131               return false; 
     132          } 
     133 
     134          # Save link 
     135          try { 
     136               $this->log->insert($rs->url,$rs->hash,$type,$rs->type); 
     137               return $rs; 
     138          } 
     139          catch (Exception $e) 
     140          { 
     141               $this->error->add(__('Failed to save link.')); 
     142          } 
     143          return false; 
     144     } 
     145 
     146     protected function last($type) 
    111147     { 
    112148          return  
    113           false === ($rs = $this->log->select(null,null,'localnormal','local')) ? 
     149          false === ($rs = $this->log->select(null,null,$type,'local')) ? 
    114150          -1 : $rs->hash; 
    115151     } 
    116152 
    117      protected function next($last_id) 
     153     protected function next($last_id,$prefix='') 
    118154     { 
    119155          if ($last_id == -1) 
     
    141177 
    142178          return  
    143           false === ($rs = $this->log->select(null,$next_id,'localnormal','local')) ? 
    144           $next_id : $this->next($next_id); 
     179          false === $this->log->select(null,$prefix.$next_id,null,'local') ? 
     180          $next_id : $this->next($next_id,$prefix); 
    145181     } 
    146182 
    147183     protected function append($id) 
    148184     { 
    149           for ($x = 0; $x < strlen($id); $x++) 
     185          $id = str_split($id); 
     186          for ($x = 0; $x < count($id); $x++) 
    150187          { 
    151188               $id[$x] = 0; 
    152189          } 
    153           $id .= 0; 
    154  
    155           return $id; 
     190          return implode($id).'0'; 
    156191     } 
    157192 
    158193     protected function increment($id,$pos) 
    159194     { 
     195          $id = str_split($id); 
    160196          $char = $id[$pos]; 
    161197 
     
    170206          $id[$pos] = $new_char; 
    171207           
    172           if ($pos != (strlen($id) - 1)) 
    173           { 
    174                for ($x = ($pos + 1); $x < strlen($id); $x++) 
     208          if ($pos != (count($id) - 1)) 
     209          { 
     210               for ($x = ($pos + 1); $x < count($id); $x++) 
    175211               { 
    176212                    $id[$x] = 0; 
     
    178214          } 
    179215 
    180           return $id; 
     216          return implode($id); 
    181217     } 
    182218 
  • plugins/kUtRL/inc/services/class.shortto.service.php

    r2000 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    3737          if (!self::post($this->url_api,$arg,true,true)) 
    3838          { 
     39               $this->error->add(__('Service is unavailable.')); 
    3940               return false; 
    4041          } 
     
    4849          if (!($response = self::post($this->url_api,$arg,true,true))) 
    4950          { 
     51               $this->error->add(__('Service is unavailable.')); 
    5052               return false; 
    5153          } 
  • plugins/kUtRL/inc/services/class.trim.service.php

    r1949 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    3838     public function saveSettings() 
    3939     { 
    40           $this->s->setNameSpace('kUtRL'); 
    4140          $this->s->put('kutrl_srv_trim_username',$_POST['kutrl_srv_trim_username']); 
    4241          $this->s->put('kutrl_srv_trim_password',$_POST['kutrl_srv_trim_password']); 
    43           $this->s->setNameSpace('system'); 
    4442     } 
    4543 
     
    6361     public function testService() 
    6462     { 
    65           if (empty($this->args['username']) || empty($this->args['password'])) return false; 
    66           if (time() < $this->api_rate_time + 300) return false; // bloc service within 5min on API rate limit 
     63          if (empty($this->args['username']) || empty($this->args['password'])) 
     64          { 
     65               $this->error->add(__('Service is not well configured.')); 
     66               return false; 
     67          } 
     68          if (time() < $this->api_rate_time + 300) // bloc service within 5min on API rate limit 
     69          { 
     70               $this->error->add(__('Prevent service rate limit.')); 
     71               return false;  
     72          } 
    6773 
    6874          if (!($rsp = self::post($this->url_api.'verify.xml',$this->args,true,true))) 
    6975          { 
     76               $this->error->add(__('Service is unavailable.')); 
    7077               return false; 
    7178          } 
     
    7683               return true; 
    7784          } 
     85          $this->error->add(__('Authentication to service failed.')); 
    7886          return false; 
    7987     } 
     
    8694          if (!($rsp = self::post($this->url_api.'trim_url.xml',$arg,true,true))) 
    8795          { 
     96               $this->error->add(__('Service is unavailable.')); 
    8897               return false; 
    8998          } 
     
    94103          if ($r['code'] == 425) 
    95104          { 
    96                $this->s->setNameSpace('kUtRL'); 
    97105               $this->s->put('kutrl_srv_trim_apiratetime',time()); 
    98                $this->s->setNameSpace('system'); 
     106 
     107               $this->error->add(__('Service rate limit exceeded.')); 
    99108               return false; 
    100109          } 
     
    108117               return $rs; 
    109118          } 
     119          $this->error->add(__('Unreadable service response.')); 
    110120          return false; 
    111121     } 
  • plugins/kUtRL/index.php

    r1973 r2190  
    33# This file is part of kUtRL, a plugin for Dotclear 2. 
    44#  
    5 # Copyright (c) 2009 JC Denis and contributors 
     5# Copyright (c) 2009-2010 JC Denis and contributors 
    66# jcdenis@gdwd.com 
    77#  
     
    1313if (!defined('DC_CONTEXT_ADMIN')){return;} 
    1414 
     15# Check user perms 
     16dcPage::check('admin'); 
     17 
    1518# Settings 
    16 $s =& $core->blog->settings; 
    17 $_active = (boolean) $s->kutrl_active; 
    18 $_admin_service = (string) $s->kutrl_admin_service; 
    19 $_tpl_service = (string) $s->kutrl_tpl_service; 
    20 $_wiki_service = (string) $s->kutrl_wiki_service; 
    21 $_limit_to_blog = (boolean) $s->kutrl_limit_to_blog; 
    22 $_tpl_passive = (boolean) $s->kutrl_tpl_passive; 
    23 $_admin_entry_default = (string) $s->kutrl_admin_entry_default; 
     19$s = kutrlSettings($core); 
    2420 
    25 # Vars 
    26 $img_green = '<img src="images/check-on.png" alt="ok" />'; 
    27 $img_red = '<img src="images/check-off.png" alt="fail" />'; 
    28 $default_tab = !$_active ? 'settings' : 'new'; 
    29 $default_tab = isset($_REQUEST['tab']) ? $_REQUEST['tab'] : $default_tab; 
    30 $msg = ''; 
     21# Default values 
     22$show_filters = false; 
     23$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; 
    3124 
    32 # List filters and controls and params 
    33 require_once dirname(__FILE__).'/inc/lib.kutrl.index.list.php'; 
     25$header =  
     26dcPage::jsLoad('index.php?pf=kUtRL/js/main.js'). 
     27'<script type="text/javascript">'."\n//<![CDATA[\n". 
     28"jcToolsBox.prototype.text_wait = '".html::escapeJS(__('Please wait'))."';\n". 
     29"\n//]]>\n</script>\n". 
     30'<style type="text/css"> 
     31.titleKutrl { margin: -20px; text-align:center; }  
     32.titleKutrl a { border:none; text-decoration: none; }  
     33</style>'; 
    3434 
    35 $show_filters = false; 
    36 $urlsrv = !empty($_GET['urlsrv']) ? $_GET['urlsrv'] : ''; 
    37 $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'kut_dt'; 
    38 $order = !empty($_GET['order']) ? $_GET['order'] : 'desc'; 
     35$footer = '<hr class="clear"/><p class="right"> 
     36<a class="button" href="'.$p_url.'&amp;part=setting" title="'.__('Configure extension').'">'.__('Settings').'</a> -  
     37<a class="button" href="'.$p_url.'&amp;part=service" title="'.__('Configure services').'">'.__('Services').'</a> -  
     38kUtRL - '.$core->plugins->moduleInfo('kUtRL','version').'&nbsp; 
     39<img alt="'.__('kUtRL').'" src="index.php?pf=kUtRL/icon.png" /> 
     40</p> 
     41 <h2 class="titleKutrl"><a title="kUtRL, '.__('Links shortener').' | http://kutrl.fr" href="http://kutrl.fr"> 
     42 <img alt="kUtRL, '.__('Links shortener').' | http://kutrl.fr" src="index.php?pf=kUtRL/inc/img/kutrl_logo.png" /> 
     43 </a></h2> 
     44'; 
    3945 
    40 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
    41 $nb_per_page =  30; 
    42 if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { 
    43      if ($nb_per_page != $_GET['nb']) $show_filters = true; 
    44      $nb_per_page = (integer) $_GET['nb']; 
     46# Messages 
     47$msg = isset($_REQUEST['msg']) ? $_REQUEST['msg'] : ''; 
     48$msg_list = array( 
     49     'savesetting' => __('Configuration successfully saved'), 
     50     'saveservice' => __('Services successfully updated'), 
     51     'createlink' => __('Link successfully shorten'), 
     52     'deletelinks' => __('Links successfully deleted') 
     53); 
     54if (isset($msg_list[$msg])) { 
     55     $msg = sprintf('<p class="message">%s</p>',$msg_list[$msg]); 
    4556} 
    4657 
    47 # Combos 
    48 $combo_action = array( 
    49      __('delete short link') => 'kutrl_list_delete' 
    50 ); 
     58# Pages 
     59$start_part = $s->kutrl_active ? 'links' : 'setting'; 
     60$default_part = isset($_REQUEST['part']) ? $_REQUEST['part'] : $start_part; 
    5161 
    52 $sortby_combo = array( 
    53      __('Date') => 'kut_dt', 
    54      __('Long link') => 'kut_url', 
    55      __('Short link') => 'kut_hash' 
    56 ); 
     62if (!file_exists(dirname(__FILE__).'/inc/index.'.$default_part.'.php')) { 
     63     $default_part = 'setting'; 
     64} 
     65include dirname(__FILE__).'/inc/index.'.$default_part.'.php'; 
    5766 
    58 $order_combo = array( 
    59      __('Descending') => 'desc', 
    60      __('Ascending') => 'asc' 
    61 ); 
    62  
    63 $services_combo = array(); 
    64 foreach($core->kutrlServices as $service_id => $service) 
    65 { 
    66      $o = new $service($core); 
    67      $services_combo[__($o->name)] = $o->id; 
    68 } 
    69 $ext_services_combo = array_merge(array(__('disabled')=>''),$services_combo); 
    70 $lst_services_combo = array_merge(array('-'=>''),$services_combo); 
    71  
    72 # Params for list 
    73 $params = array(); 
    74 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 
    75  
    76 if ($sortby != '' && in_array($sortby,$sortby_combo)) 
    77 { 
    78      if ($urlsrv != '' && in_array($urlsrv,$lst_services_combo)) 
    79           $params['kut_type'] = $urlsrv; 
    80  
    81      if ($order != '' && in_array($order,$order_combo)) 
    82           $params['order'] = $sortby.' '.$order; 
    83  
    84      if ($sortby != 'kut_dt' || $order != 'desc' || $urlsrv != '') 
    85           $show_filters = true; 
    86 } 
    87  
    88 $pager_base_url =  
    89      $p_url. 
    90      '&amp;tab=list'. 
    91      '&amp;urlsrv='.$urlsrv. 
    92      '&amp;sortby='.$sortby. 
    93      '&amp;order='.$order. 
    94      '&amp;nb='.$nb_per_page. 
    95      '&amp;page=%s'; 
    96  
    97 # Delete links from list 
    98 if (isset($_POST['action']) && $_POST['action'] == 'kutrl_list_delete') 
    99 { 
    100      try 
    101      { 
    102           $l = new kutrlLog($core); 
    103           foreach($_POST['entries'] as $k => $id) 
    104           { 
    105                $rs = $l->getLogs(array('kut_id'=>$id)); 
    106                if ($rs->isEmpty()) continue; 
    107  
    108                if(!isset($core->kutrlServices[$rs->kut_type])) continue; 
    109  
    110                $o = new $core->kutrlServices[$rs->kut_type]($core); 
    111                $o->remove($rs->kut_url); 
    112           } 
    113  
    114           $core->blog->triggerBlog(); 
    115           http::redirect($p_url.'&tab=list&urlsrv='.$urlsrv.'&sortby='.$sortby.'&order='.$order.'&nb='.$nb_per_page.'&page='.$page.'&updlist=1'); 
    116      } 
    117      catch (Exception $e) 
    118      { 
    119           $core->error->add($e->getMessage()); 
    120      } 
    121 } 
    122  
    123 # Save settings 
    124 if (!empty($_POST['settings'])) 
    125 { 
    126      try 
    127      { 
    128           $_active = isset($_POST['_active']); 
    129           $_admin_service = $_POST['_admin_service']; 
    130           $_tpl_service = $_POST['_tpl_service']; 
    131           $_wiki_service = $_POST['_wiki_service']; 
    132           $_limit_to_blog = isset($_POST['_limit_to_blog']); 
    133           $_tpl_passive = isset($_POST['_tpl_passive']); 
    134           $_admin_entry_default = isset($_POST['_admin_entry_default']); 
    135  
    136           $s->setNamespace('kUtRL'); 
    137           $s->put('kutrl_active',$_active); 
    138           $s->put('kutrl_admin_service',$_admin_service); 
    139           $s->put('kutrl_tpl_service',$_tpl_service); 
    140           $s->put('kutrl_wiki_service',$_wiki_service); 
    141           $s->put('kutrl_limit_to_blog',$_limit_to_blog); 
    142           $s->put('kutrl_tpl_passive',$_tpl_passive); 
    143           $s->put('kutrl_admin_entry_default',$_admin_entry_default); 
    144           $s->setNamespace('system'); 
    145  
    146           $core->blog->triggerBlog(); 
    147           http::redirect($p_url.'&tab=settings&updsettings=1'); 
    148      } 
    149      catch (Exception $e) 
    150      { 
    151           $core->error->add($e->getMessage()); 
    152      } 
    153 } 
    154  
    155 # Save services settings 
    156 if (!empty($_POST['services'])) 
    157 { 
    158      try 
    159      { 
    160           foreach($core->kutrlServices as $service_id => $service) 
    161           { 
    162                $o = new $service($core); 
    163                $o->saveSettings(); 
    164           } 
    165           $core->blog->triggerBlog(); 
    166           http::redirect($p_url.'&tab=services&updservices=1'); 
    167      } 
    168      catch (Exception $e) 
    169      { 
    170           $core->error->add($e->getMessage()); 
    171      } 
    172 } 
    173  
    174 # Create a new link 
    175 if (isset($_POST['str'])) { 
    176  
    177      try { 
    178           if (!isset($core->kutrlServices[$_admin_service])) 
    179                throw new Exception('Unknow service'); 
    180  
    181           $kut = new $core->kutrlServices[$_admin_service]($core,$_limit_to_blog); 
    182  
    183           $url = trim($core->con->escape($_POST['str'])); 
    184           $hash = empty($_POST['custom']) ? null : $_POST['custom']; 
    185  
    186           if (empty($url)) 
    187                throw new Exception(__('There is nothing to shorten.')); 
    188  
    189           if (!$kut->testService()) 
    190                throw new Exception(__('Service is not well configured.')); 
    191  
    192           if (null !== $hash && !$kut->allow_customized_hash) 
    193                throw new Exception(__('This service does not allowed custom hash.')); 
    194  
    195           if (!$kut->isValidUrl($url)) 
    196                throw new Exception(__('This link is not a valid URL.')); 
    197  
    198           if (!$kut->isLongerUrl($url)) 
    199                throw new Exception(__('This link is too short.')); 
    200  
    201           if (!$kut->isProtocolUrl($url)) 
    202                throw new Exception(__('This type of link is not allowed.')); 
    203  
    204           if ($_limit_to_blog && !$kut->isBlogUrl($url)) 
    205                throw new Exception(__('Short links are limited to this blog URL.')); 
    206  
    207           if ($kut->isServiceUrl($url)) 
    208                throw new Exception(__('This link is already a short link.')); 
    209  
    210           if (false !== ($rs = $kut->isKnowUrl($url))) 
    211           { 
    212                $url = $rs->url; 
    213                $new_url = $kut->url_base.$rs->hash; 
    214                $msg = sprintf(__('Short link for %s is %s'),html::escapeHTML($url),'<a href="'.$new_url.'">'.$new_url.'</a>'); 
    215           } 
    216           else 
    217           { 
    218                if (false === ($rs = $kut->hash($url,$hash))) 
    219                { 
    220                     throw new Exception(__('Failed to create short link.')); 
    221                } 
    222                else 
    223                { 
    224                     $url = $rs->url; 
    225                     $new_url = $kut->url_base.$rs->hash; 
    226                     $msg = sprintf(__('Short link for %s is %s'),html::escapeHTML($url),'<a href="'.$new_url.'">'.$new_url.'</a>'); 
    227                } 
    228           } 
    229      } 
    230      catch (Exception $e) 
    231      { 
    232           $core->error->add($e->getMessage()); 
    233           $tab = 'new'; 
    234      } 
    235 } 
    236  
    237 try 
    238 { 
    239      $log = new kutrlLog($core); 
    240  
    241      $list_all = $log->getLogs($params); 
    242      $list_counter = $log->getLogs($params,true)->f(0); 
    243      $list_current = new kutrlIndexList($core,$list_all,$list_counter,$pager_base_url); 
    244 } 
    245 catch (Exception $e) 
    246 { 
    247      $core->error->add($e->getMessage()); 
    248 } 
    249  
    250 if (!empty($msg)) $msg = '<p class="message">'.$msg.'</p>'; 
    251 $title = 'kUtRL, '.__('Links shortener'); 
    25267?> 
    253 <html> 
    254  <head> 
    255   <title><?php echo __('kUtRL'); ?></title> 
    256   <?php echo  
    257      dcPage::jsToolBar(). 
    258      dcPage::jsLoad('js/_posts_list.js'). 
    259      dcPage::jsPageTabs($default_tab); 
    260   ?> 
    261   <script type="text/javascript"> 
    262     $(function() { 
    263      <?php 
    264      foreach($core->kutrlServices as $service_id => $service) 
    265      { 
    266           echo "\$('#".$service_id."-options-title').toggleWithLegend(\$('#".$service_id."-options-content'),{cookie:'dcx_kutrl_admin_".$service_id."_options'});\n"; 
    267      } 
    268      ?> 
    269     }); 
    270   </script> 
    271   <style type="text/css"> 
    272   .titleKutrl { 
    273      margin: -20px; 
    274      text-align:center; 
    275   } 
    276   .titleKutrl a { 
    277      border:none; 
    278      text-decoration: none; 
    279   } 
    280   </style> 
    281  </head> 
    282  <body> 
    283  <h2><?php echo $title; ?></h2> 
    284   <?php echo $msg; ?> 
    285  
    286   <div class="multi-part" id="new" title="<?php echo __('Shorten link'); ?>"> 
    287    
    288   <?php if (!isset($core->kutrlServices[$_admin_service])) { ?> 
    289    
    290      <p><?php echo __('You must set an admin service.'); ?></p> 
    291       
    292   <?php } else { $kut = new $core->kutrlServices[$_admin_service]($core,$_limit_to_blog); ?> 
    293  
    294    <form action="plugin.php" method="post"> 
    295  
    296     <p class="classic"><label for="str"> 
    297      <?php echo __('Long link:'); ?></label> 
    298      <?php echo form::field('str',100,255,''); ?> 
    299     </p> 
    300  
    301      <?php  if ($kut->allow_customized_hash) { ?> 
    302  
    303     <p class="classic"><label for="custom"> 
    304      <?php echo __('Custom short link:'); ?> *</label> 
    305      <?php echo form::field('custom',50,32,''); ?> 
    306     </p> 
    307     <p class="form-note">*  
    308      <?php echo __('Only if you want a custom short link.'); ?> 
    309     </p> 
    310  
    311      <?php } ?> 
    312  
    313     <p class="classic"> 
    314      <input type="submit" name="submit" id="submit"  
    315       value="<?php echo __('Create short link'); ?>" /> 
    316      <?php echo  
    317       form::hidden(array('p'),'kUtRL'). 
    318       form::hidden(array('t'),'list'). 
    319       $core->formNonce(); 
    320       ?> 
    321     </p> 
    322    </form> 
    323     
    324   <?php } ?> 
    325   </div> 
    326  
    327   <div class="multi-part" id="settings" title="<?php echo __('Settings'); ?>"> 
    328    <form method="post" action="plugin.php"> 
    329  
    330    <?php  
    331    if (isset($_GET['updsettings'])) 
    332      echo '<p class="message">'.__('Configuration successfully updated').'</p>'; 
    333    ?> 
    334  
    335     <p><label class="classic"><?php echo 
    336       form::checkbox(array('_active'),'1',$_active).' '. 
    337      __('Enable plugin'); ?> 
    338      </label></p> 
    339  
    340     <p><label class="classic"><?php echo 
    341       form::checkbox(array('_limit_to_blog'),'1',$_limit_to_blog).' '. 
    342      __('Limit short link to current blog'); ?> 
    343      </label></p> 
    344     <p class="form-note"> 
    345       <?php echo __('Only link started with this blog URL could be shortened.'); ?> 
    346     </p> 
    347  
    348     <p><label class="classic"><?php echo 
    349       form::checkbox(array('_tpl_passive'),'1',$_tpl_passive).' '. 
    350      __('Passive mode'); ?> 
    351      </label></p> 
    352     <p class="form-note"> 
    353       <?php echo __('If this extension is disabled and the passive mode is enabled, "kutrl" tags will display long urls instead of nothing on templates.'); ?> 
    354     </p> 
    355  
    356     <p><label class="classic"><?php echo 
    357       form::checkbox(array('_admin_entry_default'),'1',$_admin_entry_default).' '. 
    358      __('Create short link for new entries'); ?> 
    359      </label></p> 
    360     <p class="form-note"> 
    361       <?php echo __('This can be changed on page of creation/edition of an entry.'); ?> 
    362     </p> 
    363  
    364     <p><label class="classic"> 
    365       <?php  
    366       echo __('Administration:').'<br />'; 
    367      echo form::combo(array('_admin_service'),$services_combo,$_admin_service); ?> 
    368      </label> 
    369      </p> 
    370     <p class="form-note"> 
    371       <?php echo __('Service to use in this admin page.'); ?> 
    372     </p> 
    373  
    374     <p><label class="classic"> 
    375       <?php  
    376       echo __('Templates:').'<br />'; 
    377      echo form::combo(array('_tpl_service'),$ext_services_combo,$_tpl_service); ?> 
    378      </label> 
    379      </p> 
    380     <p class="form-note"> 
    381       <?php echo __('Shorten links automatically when using template value like "EntryKutrl".'); ?> 
    382     </p> 
    383  
    384     <p><label class="classic"> 
    385       <?php  
    386       echo __('Contents:').'<br />'; 
    387      echo form::combo(array('_wiki_service'),$ext_services_combo,$_wiki_service); ?> 
    388      </label> 
    389      </p> 
    390     <p class="form-note"> 
    391       <?php echo __('Shorten links automatically found in contents using wiki synthax.'); ?> 
    392     </p> 
    393  
    394     <p> 
    395      <input type="submit" name="settings" value="<?php echo __('Save'); ?>" /> 
    396      <?php echo  
    397       form::hidden(array('p'),'kUtRL'). 
    398       form::hidden(array('tab'),'settings'). 
    399       $core->formNonce(); 
    400      ?> 
    401      </p> 
    402    </form> 
    403     
    404   </div> 
    405  
    406   <div class="multi-part" id="services" title="<?php echo __('Services'); ?>"> 
    407    <form method="post" action="plugin.php"> 
    408     
    409    <?php  
    410    if (isset($_GET['updservices'])) 
    411      echo '<p class="message">'.__('Configuration successfully updated.').'</p>'; 
    412    ?> 
    413  
    414      <?php 
    415      foreach($core->kutrlServices as $service_id => $service) 
    416      { 
    417           $o = new $service($core); 
    418            
    419           echo '<h2 id="'.$service_id.'-options-title">'.$o->name.'</h2>'; 
    420  
    421           if (isset($_GET['updservices'])) 
    422           { 
    423                echo '<p><em>'.( 
    424                $o->testService() ? 
    425                     $img_green.' '.sprintf(__('%s API is well configured and runing.'),$o->name) : 
    426                     $img_red.' '.sprintf(__('%s API is not well configured or not online.'),$o->name) 
    427                ).'</em></p>'; 
    428           } 
    429           echo '<div id="'.$service_id.'-options-content">'; 
    430  
    431           if (!empty($o->home)) 
    432           {  
    433                echo '<p><a title="'.__('homepage').'" href="'.$o->home.'">'.sprintf(__('Learn more about %s.'),$o->name).'</a></p>'; 
    434           } 
    435  
    436           $o->settingsForm(); 
    437  
    438           echo '</div>'; 
    439      } 
    440      ?> 
    441     
    442     <p> 
    443      <input type="submit" name="services" value="<?php echo __('Save'); ?>" /> 
    444      <?php echo  
    445       form::hidden(array('p'),'kUtRL'). 
    446       form::hidden(array('tab'),'services'). 
    447       $core->formNonce(); 
    448      ?> 
    449      </p> 
    450    </form> 
    451    </div> 
    452  
    453   <div class="multi-part" id="list" title="<?php echo __('Know links'); ?>"> 
    454  
    455    <?php  
    456    if (isset($_GET['updlist'])) 
    457      echo '<p class="message">'.__('List successfully updated.').'</p>'; 
    458    ?> 
    459  
    460 <?php if (!$show_filters) {  
    461    echo dcPage::jsLoad('js/filter-controls.js'); ?> 
    462    <p> 
    463     <a id="filter-control" class="form-control" href="#"> 
    464     <?php echo __('Filters'); ?></a> 
    465    </p> 
    466 <?php } ?> 
    467  
    468    <form action="<?php echo $p_url; ?>&amp;tab=list" method="get" id="filters-form"> 
    469     <fieldset><legend><?php echo __('Filters'); ?></legend> 
    470      <div class="three-cols"> 
    471       <div class="col"> 
    472        <label> 
    473         <?php echo __('Service:').form::combo('urlsrv',$lst_services_combo,$urlsrv); ?> 
    474        </label>  
    475       </div> 
    476       <div class="col"> 
    477        <label> 
    478         <?php echo __('Order by:').form::combo('sortby',$sortby_combo,$sortby); ?> 
    479        </label>  
    480        <label> 
    481         <?php echo __('Sort:').form::combo('order',$order_combo,$order); ?> 
    482        </label> 
    483       </div> 
    484       <div class="col"> 
    485        <p> 
    486         <label class="classic"> 
    487          <?php echo form::field('nb',3,3,$nb_per_page).' '.__('Entries per page'); ?> 
    488         </label>  
    489         <input type="submit" value="<?php echo __('filter'); ?>" /> 
    490         <?php echo 
    491            form::hidden(array('p'),'kUtRL'). 
    492           form::hidden(array('tab'),'list'); 
    493           ?> 
    494         </p> 
    495       </div> 
    496      </div> 
    497      <br class="clear" /> 
    498     </fieldset> 
    499    </form> 
    500    <form action="plugin.php" method="post" id="form-actions"> 
    501     <?php $list_current->display($page,$nb_per_page,$pager_base_url); ?> 
    502  
    503      <div class="two-cols"> 
    504      <p class="col checkboxes-helpers"></p> 
    505      <p class="col right"> 
    506       <?php  
    507        echo __('Selected links action:').' '. 
    508        form::combo(array('action'),$combo_action). 
    509        '<input type="submit" value="'.__('ok').'" />'. 
    510        form::hidden(array('urlsrv'),$urlsrv). 
    511        form::hidden(array('sortby'),$sortby). 
    512        form::hidden(array('order'),$order). 
    513        form::hidden(array('page'),$page). 
    514        form::hidden(array('nb'),$nb_per_page). 
    515        form::hidden(array('p'),'kUtRL'). 
    516        form::hidden(array('tab'),'list'). 
    517        $core->formNonce(); 
    518       ?> 
    519      </p> 
    520     </div> 
    521    </form> 
    522   </div> 
    523    
    524   <?php echo dcPage::helpBlock('kUtRL'); ?> 
    525  
    526   <hr class="clear"/> 
    527   <p class="right"> 
    528    kUtRL - <?php echo $core->plugins->moduleInfo('kUtRL','version'); ?>&nbsp; 
    529    <img alt="kUtRL" src="index.php?pf=kUtRL/icon.png" /> 
    530   </p> 
    531  <h2 class="titleKutrl"><a title="<?php echo $title; ?> | http://kutrl.fr" href="http://kutrl.fr"><img alt="<?php echo $title; ?> | http://kutrl.fr" src="index.php?pf=kUtRL/inc/img/kutrl_logo.png" /></a></h2> 
    532  </body> 
    533 </html> 
     68?> 
  • plugins/kUtRL/locales/fr/main.lang.php

    r1974 r2190  
    11<?php 
    22// Language: français  
    3 // Module: kUtRL - 0.1.2 
    4 // Date: 2009-12-12 12:48:16  
     3// Module: kUtRL - 0.3 
     4// Date: 2010-04-14 22:23:45  
    55// Translated with dcTranslater - 1.3  
    66 
    7 #_admin.php:82 
    8 #index.php:55 
    9 $GLOBALS['__l10n']['Short link'] = 'Lien court'; 
    10  
    11 #_admin.php:97 
    12 #index.php:315 
    13 $GLOBALS['__l10n']['Create short link'] = 'Créer un lien court'; 
    14  
    15 #_admin.php:103 
    16 #index.php:304 
    17 $GLOBALS['__l10n']['Custom short link:'] = 'Lien court personnalisé :'; 
    18  
    19 #_admin.php:113 
    20 #_widgets.php:157 
    21 $GLOBALS['__l10n']['never followed'] = 'jamais suivi'; 
    22  
    23 #_admin.php:117 
    24 #_widgets.php:159 
    25 $GLOBALS['__l10n']['followed one time'] = 'suivi une fois'; 
    26  
    27 #_admin.php:121 
    28 #_widgets.php:161 
    29 $GLOBALS['__l10n']['followed %s times'] = 'suivi %s fois'; 
    30  
    31 #_admin.php:127 
    32 #_admin.php:254 
    33 #index.php:49 
    34 $GLOBALS['__l10n']['delete short link'] = 'Effacer un lien court'; 
    35  
    36 #_admin.php:253 
    37 $GLOBALS['__l10n']['create short link'] = 'créer un lien court'; 
    38  
    39 #_public.php:128 
    40 $GLOBALS['__l10n']['Failed to verify protected field.'] = 'Impossible de vérifier le champs de protection.'; 
    41  
    42 #_public.php:136 
    43 #index.php:190 
    44 $GLOBALS['__l10n']['Service is not well configured.'] = 'Le service n\'est pas correctement configuré.'; 
    45  
    46 #_public.php:144 
    47 $GLOBALS['__l10n']['This string is not a valid URL.'] = 'Cette chaine n\'est pas un lien valide.'; 
    48  
    49 #_public.php:152 
    50 #index.php:199 
    51 $GLOBALS['__l10n']['This link is too short.'] = 'Ce lien est trop court.'; 
    52  
    53 #_public.php:160 
    54 #index.php:202 
    55 $GLOBALS['__l10n']['This type of link is not allowed.'] = 'Ce type de lien n\'est pas autorisé.'; 
    56  
    57 #_public.php:169 
    58 #index.php:205 
    59 $GLOBALS['__l10n']['Short links are limited to this blog URL.'] = 'Les liens court sont limité à l\'URL de ce blog.'; 
    60  
    61 #_public.php:177 
    62 #index.php:208 
    63 $GLOBALS['__l10n']['This link is already a short link.'] = 'Ce lien est dèjà un lien court.'; 
    64  
    65 #_public.php:190 
    66 #_public.php:209 
    67 #index.php:214 
    68 #index.php:226 
    69 $GLOBALS['__l10n']['Short link for %s is %s'] = 'Le lien court pour %s est %s'; 
    70  
    71 #_public.php:201 
    72 #index.php:220 
    73 $GLOBALS['__l10n']['Failed to create short link.'] = 'Impossible de créer le lien court.'; 
    74  
    75 #_public.php:311 
    76 #_widgets.php:93 
    77 $GLOBALS['__l10n']['Write "%s" in next field to see if you are not a robot:'] = 'Ecrire "%s" dans le champs suivant :'; 
    78  
     7#_admin.php:19 
    798#_widgets.php:22 
    809#default-templates/kutrl.html:48 
    81 #index.php:251 
     10#inc/index.link.php:112 
     11#inc/index.links.php:203 
     12#inc/index.service.php:42 
     13#inc/index.setting.php:87 
     14#index.php:41 
     15#index.php:42 
    8216$GLOBALS['__l10n']['Links shortener'] = 'Réducteur de liens'; 
    8317 
     18#_admin.php:85 
     19#inc/index.links.php:118 
     20$GLOBALS['__l10n']['Short link'] = 'Lien court'; 
     21 
     22#_admin.php:102 
     23$GLOBALS['__l10n']['Create short link'] = 'Créer un lien court'; 
     24 
     25#_admin.php:108 
     26#inc/index.link.php:136 
     27$GLOBALS['__l10n']['Custom short link:'] = 'Lien court personnalisé :'; 
     28 
     29#_admin.php:115 
     30$GLOBALS['__l10n']['Send to Twitter status'] = 'Envoyer au status Twitter'; 
     31 
     32#_admin.php:122 
     33#_widgets.php:171 
     34$GLOBALS['__l10n']['never followed'] = 'jamais suivi'; 
     35 
     36#_admin.php:126 
     37#_widgets.php:173 
     38$GLOBALS['__l10n']['followed one time'] = 'suivi une fois'; 
     39 
     40#_admin.php:130 
     41#_widgets.php:175 
     42$GLOBALS['__l10n']['followed %s times'] = 'suivi %s fois'; 
     43 
     44#_admin.php:137 
     45#_admin.php:268 
     46$GLOBALS['__l10n']['delete short link'] = 'effacer un lien court'; 
     47 
     48#_admin.php:267 
     49$GLOBALS['__l10n']['create short link'] = 'créer un lien court'; 
     50 
     51#_public.php:123 
     52$GLOBALS['__l10n']['Failed to verify protected field.'] = 'Impossible de vérifier le champs de protection.'; 
     53 
     54#_public.php:131 
     55#inc/index.link.php:38 
     56#inc/services/class.bilbolinks.service.php:64 
     57#inc/services/class.bitly.service.php:76 
     58#inc/services/class.local.service.php:89 
     59#inc/services/class.trim.service.php:65 
     60$GLOBALS['__l10n']['Service is not well configured.'] = 'Le service n\'est pas correctement configuré.'; 
     61 
     62#_public.php:139 
     63$GLOBALS['__l10n']['This string is not a valid URL.'] = 'Cette chaine n\'est pas un lien valide.'; 
     64 
     65#_public.php:147 
     66#inc/index.link.php:47 
     67$GLOBALS['__l10n']['This link is too short.'] = 'Ce lien est trop court.'; 
     68 
     69#_public.php:155 
     70#inc/index.link.php:50 
     71$GLOBALS['__l10n']['This type of link is not allowed.'] = 'Ce type de lien n\'est pas autorisé.'; 
     72 
     73#_public.php:164 
     74#inc/index.link.php:53 
     75$GLOBALS['__l10n']['Short links are limited to this blog URL.'] = 'Les liens courts sont limités à l\'URL de ce blog.'; 
     76 
     77#_public.php:172 
     78#inc/index.link.php:56 
     79$GLOBALS['__l10n']['This link is already a short link.'] = 'Ce lien est dèjà un lien court.'; 
     80 
     81#_public.php:185 
     82#_public.php:204 
     83#inc/index.link.php:67 
     84#inc/index.link.php:87 
     85$GLOBALS['__l10n']['Short link for %s is %s'] = 'Le lien court pour %s est %s'; 
     86 
     87#_public.php:196 
     88$GLOBALS['__l10n']['Failed to create short link.'] = 'Impossible de créer le lien court.'; 
     89 
     90#_public.php:213 
     91#_public.php:432 
     92#inc/lib.wiki.kutrl.php:78 
     93$GLOBALS['__l10n']['public'] = 'publique'; 
     94 
     95#_public.php:314 
     96#_widgets.php:105 
     97$GLOBALS['__l10n']['Rewrite "%s" in next field to show that you are not a robot:'] = 'Recopier "%s" dans le champs suivant pour montrer que vous n\'êtes pas une machine :'; 
     98 
    8499#_widgets.php:26 
    85 #index.php:286 
    86100$GLOBALS['__l10n']['Shorten link'] = 'Réduire un lien'; 
    87101 
    88102#_widgets.php:35 
    89103#_widgets.php:39 
    90 $GLOBALS['__l10n']['Top mini links'] = 'Top des mini liens'; 
     104$GLOBALS['__l10n']['Top of short links'] = 'Top des liens courts'; 
     105 
     106#_widgets.php:42 
     107$GLOBALS['__l10n']['Text: (Use wildcard %rank%, %hash%, %url%, %count%, %counttext%)'] = 'Texte : (Ustiliser les jokers %rank%, %hash%, %url%, %count%, %counttext%)'; 
    91108 
    92109#_widgets.php:45 
    93 $GLOBALS['__l10n']['Link length (if truncate)'] = 'Longueur du lien (si tronqué)'; 
     110$GLOBALS['__l10n']['URL length (if truncate)'] = 'Longueur de l\'URL (si tronqué)'; 
    94111 
    95112#_widgets.php:49 
     
    100117 
    101118#_widgets.php:51 
    102 $GLOBALS['__l10n']['Custom URL'] = 'URL personalisé'; 
    103  
    104 #_widgets.php:61 
     119$GLOBALS['__l10n']['Custom URL'] = 'URL personnalisé'; 
     120 
     121#_widgets.php:52 
     122$GLOBALS['__l10n']['Semi-custom'] = 'Semi-personnalisé'; 
     123 
     124#_widgets.php:56 
     125$GLOBALS['__l10n']['Semi-custom prefix: (only if you want limit to a particular prefix)'] = 'Préfixe des liens semi-personnalisé : (Seulement si vous voulez limiter à un préfixe particulier)'; 
     126 
     127#_widgets.php:60 
     128$GLOBALS['__l10n']['Sort by:'] = 'Trier par :'; 
     129 
     130#_widgets.php:62 
     131$GLOBALS['__l10n']['Rank'] = 'Rang'; 
     132 
     133#_widgets.php:63 
     134#inc/index.links.php:34 
     135$GLOBALS['__l10n']['Hash'] = 'Hash'; 
     136 
     137#_widgets.php:73 
    105138$GLOBALS['__l10n']['Limit:'] = 'Limite :'; 
    106139 
    107 #_widgets.php:64 
     140#_widgets.php:76 
    108141$GLOBALS['__l10n']['Hide no followed links'] = 'Cacher les liens non suivis'; 
    109142 
    110 #_widgets.php:89 
     143#_widgets.php:101 
    111144#default-templates/kutrl.html:55 
    112 #index.php:297 
     145#inc/index.link.php:129 
    113146$GLOBALS['__l10n']['Long link:'] = 'Lien long :'; 
    114147 
    115 #_widgets.php:96 
     148#_widgets.php:108 
    116149#default-templates/kutrl.html:62 
    117150$GLOBALS['__l10n']['Create'] = 'Créer'; 
    118151 
    119 #inc/lib.kutrl.activityreport.php:16 
     152#inc/index.link.php:35 
     153$GLOBALS['__l10n']['There is nothing to shorten.'] = 'I n\'y a rien à réduire.'; 
     154 
     155#inc/index.link.php:41 
     156$GLOBALS['__l10n']['This service does not allowed custom hash.'] = 'Ce service n\'accepte pas les liens court personnalisés.'; 
     157 
     158#inc/index.link.php:44 
     159$GLOBALS['__l10n']['This link is not a valid URL.'] = 'Ce lien n\'est pas valide.'; 
     160 
     161#inc/index.link.php:59 
     162$GLOBALS['__l10n']['This custom short url is already taken.'] = 'Ce lien court personnalisé est déjà pris.'; 
     163 
     164#inc/index.link.php:79 
     165$GLOBALS['__l10n']['Failed to create short link. This could be caused by a service failure.'] = 'Impossible de créé un lien court. Ceci peut être causé par un problème du service.'; 
     166 
     167#inc/index.link.php:116 
     168#inc/index.links.php:207 
     169#inc/index.service.php:52 
     170#inc/index.setting.php:97 
     171$GLOBALS['__l10n']['New link'] = 'Nouveau lien'; 
     172 
     173#inc/index.link.php:121 
     174$GLOBALS['__l10n']['You must set an admin service.'] = 'Vous devez définir un service admin.'; 
     175 
     176#inc/index.link.php:128 
     177$GLOBALS['__l10n']['Shorten link using service "%s"'] = 'Raccourcir un lien en utilisant le service "%s"'; 
     178 
     179#inc/index.link.php:138 
     180$GLOBALS['__l10n']['Only if you want a custom short link.'] = 'Uniquement si vous souhaitez un lien court personnalisé.'; 
     181 
     182#inc/index.link.php:142 
     183$GLOBALS['__l10n']['You can use "bob!!" if you want a semi-custom link, it starts with "bob" and "!!" will be replaced by an increment value.'] = 'Vous pouvez utiliser "bob!!" si vous souhaitez un lien semi-personnalisé, il commencera par "bob" et "!!" sera remplacé par une valeur incrémentale.'; 
     184 
     185#inc/index.links.php:23 
     186$GLOBALS['__l10n']['No short link'] = 'Pas de lien court'; 
     187 
     188#inc/index.links.php:37 
     189$GLOBALS['__l10n']['Service'] = 'Service'; 
     190 
     191#inc/index.links.php:117 
     192$GLOBALS['__l10n']['Long link'] = 'Lien long'; 
     193 
     194#inc/index.links.php:132 
     195#inc/index.setting.php:82 
     196$GLOBALS['__l10n']['disabled'] = 'Désactivé'; 
     197 
     198#inc/index.links.php:220 
     199$GLOBALS['__l10n']['Service:'] = 'Service :'; 
     200 
     201#inc/index.links.php:250 
     202$GLOBALS['__l10n']['Delete selected short links'] = 'Effacer les liens sélectionnés'; 
     203 
     204#inc/index.service.php:51 
     205#index.php:37 
     206$GLOBALS['__l10n']['Services'] = 'Services'; 
     207 
     208#inc/index.service.php:66 
     209$GLOBALS['__l10n']['%s API is well configured and runing.'] = 'L\'API %s est correctement configurée et est fonctionnelle.'; 
     210 
     211#inc/index.service.php:67 
     212$GLOBALS['__l10n']['Failed to test %s API.'] = 'Impossible de tester l\'API %s.'; 
     213 
     214#inc/index.service.php:76 
     215$GLOBALS['__l10n']['homepage'] = 'page d\'accueil'; 
     216 
     217#inc/index.service.php:76 
     218$GLOBALS['__l10n']['Learn more about %s.'] = 'En savoir plus à propos de %s.'; 
     219 
     220#inc/index.setting.php:96 
     221#index.php:36 
     222$GLOBALS['__l10n']['Settings'] = 'Paramètres'; 
     223 
     224#inc/index.setting.php:101 
     225$GLOBALS['__l10n']['Plugin activation'] = 'Activation de l\'extension'; 
     226 
     227#inc/index.setting.php:104 
     228$GLOBALS['__l10n']['Enable plugin'] = 'Activer l\'extension'; 
     229 
     230#inc/index.setting.php:107 
     231$GLOBALS['__l10n']['General rules'] = 'Réglages'; 
     232 
     233#inc/index.setting.php:110 
     234$GLOBALS['__l10n']['Limit short link to current blog'] = 'Limiter les liens court à ce blog'; 
     235 
     236#inc/index.setting.php:111 
     237$GLOBALS['__l10n']['Only link started with this blog URL could be shortened.'] = 'Uniquement les liens commençant par l\'URL de ce blog pourront être réduits.'; 
     238 
     239#inc/index.setting.php:114 
     240$GLOBALS['__l10n']['Passive mode'] = 'Mode passif'; 
     241 
     242#inc/index.setting.php:115 
     243$GLOBALS['__l10n']['If this extension is disabled and the passive mode is enabled, "kutrl" tags will display long urls instead of nothing on templates.'] = 'Si cette extension est désactivée et que le mode passif est activé, les balises "kutrl" afficheront les longues URL au lieu de rien.'; 
     244 
     245#inc/index.setting.php:118 
     246$GLOBALS['__l10n']['Create short link for new entries'] = 'Créer un lien court pour les nouveaux billets'; 
     247 
     248#inc/index.setting.php:119 
     249$GLOBALS['__l10n']['This can be changed on page of creation/edition of an entry.'] = 'Ceci peut être changé sur la page d\'édition / création d\'un billet.'; 
     250 
     251#inc/index.setting.php:122 
     252$GLOBALS['__l10n']['Default services'] = 'Services par défaut'; 
     253 
     254#inc/index.setting.php:128 
     255$GLOBALS['__l10n']['Administration:'] = 'Administration :'; 
     256 
     257#inc/index.setting.php:131 
     258$GLOBALS['__l10n']['Service to use in this admin page and on edit page of an entry.'] = 'Service à utiliser sur cette page d\'administration ou sur la page d\'édition d\'un billet.'; 
     259 
     260#inc/index.setting.php:137 
     261$GLOBALS['__l10n']['Templates:'] = 'Templates :'; 
     262 
     263#inc/index.setting.php:140 
     264$GLOBALS['__l10n']['Shorten links automatically when using template value like "EntryKutrl".'] = 'Réduit automatiquement les liens des templates utilisant les balises tels que "EntryKutrl".'; 
     265 
     266#inc/index.setting.php:146 
     267$GLOBALS['__l10n']['Contents:'] = 'Contenus :'; 
     268 
     269#inc/index.setting.php:149 
     270$GLOBALS['__l10n']['Shorten links automatically found in contents using wiki synthax.'] = 'Réduit automatiquement les liens des contenus utilisant la syntax wiki.'; 
     271 
     272#inc/index.setting.php:159 
     273$GLOBALS['__l10n']['Use wildcard %L for short URL, %B for blog name, %U for user name.'] = 'Utiliser les jokers %L pour le lien court, %B pour le nom du blog, %U pour l\'utilisateur.'; 
     274 
     275#inc/index.setting.php:161 
     276$GLOBALS['__l10n']['Activation'] = 'Activation'; 
     277 
     278#inc/index.setting.php:162 
     279$GLOBALS['__l10n']['Send message when short url is created on:'] = 'Envoyer un message lorsqu\'un lien court est créé sur :'; 
     280 
     281#inc/index.setting.php:165 
     282$GLOBALS['__l10n']['administration form'] = 'le formulaire de la page d\'administration'; 
     283 
     284#inc/index.setting.php:168 
     285$GLOBALS['__l10n']['public form'] = 'le forumlaire publique'; 
     286 
     287#inc/index.setting.php:171 
     288$GLOBALS['__l10n']['template'] = 'le thème'; 
     289 
     290#inc/index.setting.php:174 
     291$GLOBALS['__l10n']['content'] = 'le contenu'; 
     292 
     293#inc/lib.dc.twitter.php:169 
     294$GLOBALS['__l10n']['Twitter account'] = 'Compte Twitter'; 
     295 
     296#inc/lib.dc.twitter.php:170 
     297#inc/lib.dc.twitter.php:178 
     298#inc/services/class.bitly.service.php:51 
     299#inc/services/class.trim.service.php:47 
     300$GLOBALS['__l10n']['Login:'] = 'Identifiant :'; 
     301 
     302#inc/lib.dc.twitter.php:176 
     303#inc/lib.dc.twitter.php:184 
     304$GLOBALS['__l10n']['Type a password only to change old one.'] = 'Entrer un mot de passe uniquement pour changer l\'ancien.'; 
     305 
     306#inc/lib.dc.twitter.php:177 
     307$GLOBALS['__l10n']['Identi.ca account'] = 'Compte Identi.ca'; 
     308 
     309#inc/lib.dc.twitter.php:185 
     310$GLOBALS['__l10n']['Message'] = 'Message'; 
     311 
     312#inc/lib.dc.twitter.php:301 
     313$GLOBALS['__l10n']['User is not set.'] = 'L\'utilisateur est pas renseigné.'; 
     314 
     315#inc/lib.dc.twitter.php:309 
     316$GLOBALS['__l10n']['Nothing to send.'] = 'Il n\'y a rien à envoyer.'; 
     317 
     318#inc/lib.dc.twitter.php:333 
     319$GLOBALS['__l10n']['Failed to send message (%s)'] = 'Impossible d\'envoyer le message (%s)'; 
     320 
     321#inc/lib.dc.twitter.php:393 
     322$GLOBALS['__l10n']['Failed to get short url (%s)'] = 'Impossible de récupérer le lien court (%s)'; 
     323 
     324#inc/lib.dc.twitter.php:399 
     325$GLOBALS['__l10n']['Failed to get short url'] = 'Impossible de récupérer le lien court'; 
     326 
     327#inc/lib.kutrl.activityreport.php:17 
    120328$GLOBALS['__l10n']['Plugin kUtRL'] = 'Extension kUtRL'; 
    121329 
    122 #inc/lib.kutrl.activityreport.php:22 
     330#inc/lib.kutrl.activityreport.php:23 
    123331$GLOBALS['__l10n']['Short link creation'] = 'Création de lien court'; 
    124332 
    125 #inc/lib.kutrl.activityreport.php:23 
     333#inc/lib.kutrl.activityreport.php:24 
    126334$GLOBALS['__l10n']['New short link of type "%s" and hash "%s" was created.'] = 'Un nouveau lien court de type "%s" et de hash "%s" a été créé.'; 
    127335 
    128 #inc/lib.kutrl.index.list.php:20 
    129 $GLOBALS['__l10n']['No short link'] = 'Pas de lien court'; 
    130  
    131 #inc/lib.kutrl.index.list.php:31 
    132 $GLOBALS['__l10n']['Service'] = 'Service'; 
    133  
    134 #inc/lib.kutrl.index.list.php:32 
    135 $GLOBALS['__l10n']['Hash'] = 'Hash'; 
    136  
    137 #inc/lib.kutrl.srv.php:47 
     336#inc/lib.kutrl.srv.php:52 
    138337$GLOBALS['__l10n']['There is nothing to configure for this service.'] = 'Il n\'y a rien à configurer pour ce service.'; 
    139338 
    140 #inc/lib.wiki.kutrl.php:79 
     339#inc/lib.wiki.kutrl.php:73 
    141340$GLOBALS['__l10n']['%s (Shorten with %s)'] = '% (réduit avec %s)'; 
    142341 
    143 #inc/services/class.bilbolinks.service.php:54 
     342#inc/services/class.bilbolinks.service.php:52 
    144343$GLOBALS['__l10n']['Url of the service:'] = 'URL du service :'; 
    145344 
    146 #inc/services/class.bilbolinks.service.php:58 
     345#inc/services/class.bilbolinks.service.php:56 
    147346$GLOBALS['__l10n']['This is the root URL of the "bilbolinks" service you want to use. Ex: "http://tux-pla.net/".'] = 'Ceci est l\'URL du service bilbolinks que vous souhaitez utiliser. Ex: "http://tux-pla.net/".'; 
    148347 
    149 #inc/services/class.bitly.service.php:54 
    150 #inc/services/class.trim.service.php:49 
    151 $GLOBALS['__l10n']['Login:'] = 'Login :'; 
    152  
    153 #inc/services/class.bitly.service.php:58 
     348#inc/services/class.bilbolinks.service.php:71 
     349#inc/services/class.bilbolinks.service.php:83 
     350#inc/services/class.isgd.service.php:39 
     351#inc/services/class.isgd.service.php:51 
     352#inc/services/class.shortto.service.php:39 
     353#inc/services/class.shortto.service.php:51 
     354#inc/services/class.trim.service.php:76 
     355#inc/services/class.trim.service.php:96 
     356$GLOBALS['__l10n']['Service is unavailable.'] = 'Le service n\'est pas disponible.'; 
     357 
     358#inc/services/class.bilbolinks.service.php:88 
     359#inc/services/class.trim.service.php:107 
     360$GLOBALS['__l10n']['Service rate limit exceeded.'] = 'La limitation d\'envoie au service est atteinte.'; 
     361 
     362#inc/services/class.bitly.service.php:55 
    154363$GLOBALS['__l10n']['This is your login to sign up to bit.ly.'] = 'Ceci est votre login d\'inscription sur bit.ly.'; 
    155364 
    156 #inc/services/class.bitly.service.php:60 
     365#inc/services/class.bitly.service.php:57 
    157366$GLOBALS['__l10n']['API Key:'] = 'Clé API :'; 
    158367 
    159 #inc/services/class.bitly.service.php:64 
     368#inc/services/class.bitly.service.php:61 
    160369$GLOBALS['__l10n']['This is your personnal bit.ly API key. You can find it on your account page.'] = 'Ceci est votre clé personnelle pour l\'API bit.ly. Vous pouvez la trouver sur la page de vore compte.'; 
    161370 
     371#inc/services/class.bitly.service.php:65 
     372$GLOBALS['__l10n']['Publish history'] = 'Publier l\'historique'; 
     373 
    162374#inc/services/class.bitly.service.php:68 
    163 $GLOBALS['__l10n']['Publish history'] = 'Publier l\'historique'; 
    164  
    165 #inc/services/class.bitly.service.php:71 
    166375$GLOBALS['__l10n']['This publish all short links on your bit.ly public page.'] = 'Ceci publie tous vos liens sur votre page public bit.ly'; 
    167376 
    168 #inc/services/class.local.service.php:46 
     377#inc/services/class.bitly.service.php:84 
     378#inc/services/class.bitly.service.php:106 
     379$GLOBALS['__l10n']['Failed to call service.'] = 'Impossible d\'appeler le service.'; 
     380 
     381#inc/services/class.bitly.service.php:93 
     382#inc/services/class.bitly.service.php:115 
     383$GLOBALS['__l10n']['An error occured with code %s and message "%s"'] = 'Une erreur est survenu avec le code "%s" et le message "%s"'; 
     384 
     385#inc/services/class.local.service.php:44 
    169386$GLOBALS['__l10n']['This service use your own Blog to shorten and serve URL.'] = 'Ce service utilise votre propre blog pour réduire et servir des liens.'; 
    170387 
    171 #inc/services/class.local.service.php:47 
     388#inc/services/class.local.service.php:45 
    172389$GLOBALS['__l10n']['This means that with this service short links start with "%s".'] = 'Cela signifie qu\'avec ce service vos liens courts commencent par "%s".'; 
    173390 
    174 #inc/services/class.local.service.php:50 
     391#inc/services/class.local.service.php:48 
    175392$GLOBALS['__l10n']['You can use Dotclear\'s plugin called myUrlHandlers to change short links prefix on your blog.'] = 'Vous pouvez utiliser l\'extension myUrlHandlers pour Dotclear afin de changer le prefix de vos liens courts depuis votre blog.'; 
    176393 
     394#inc/services/class.local.service.php:54 
     395$GLOBALS['__l10n']['We recommand that you use a rewrite engine in order to remove \'index.php\' from your blog\'s URL.'] = 'Nous vous recommandons d\'utiliser la réécriture d\'URL pour supprimer \'index.php de l\'URL de votre blog.'; 
     396 
    177397#inc/services/class.local.service.php:56 
    178 $GLOBALS['__l10n']['We recommand that you use a rewrite engine in order to remove \'index.php\' from your blog\'s URL.'] = 'Nous vous recommandons d\'utiliser la réécriture d\'URL pour supprimer \'index.php de l\'URL de votre blog.'; 
    179  
    180 #inc/services/class.local.service.php:58 
    181398$GLOBALS['__l10n']['You can find more about this on the Dotclear\'s documentation.'] = 'Vous trouverez plus d\'information à ce sujet dans la documentation Dotclear.'; 
    182399 
    183 #inc/services/class.local.service.php:65 
     400#inc/services/class.local.service.php:63 
    184401$GLOBALS['__l10n']['Allowed protocols:'] = 'Protocoles autorisés :'; 
    185402 
    186 #inc/services/class.local.service.php:70 
     403#inc/services/class.local.service.php:68 
    187404$GLOBALS['__l10n']['Use comma seperated list like: "http:,https:,ftp:"'] = 'Utiliser une virgule pour séparer la liste des protocoles. Ex: "http:,https:,ftp:"'; 
    188405 
    189 #inc/services/class.local.service.php:75 
     406#inc/services/class.local.service.php:73 
    190407$GLOBALS['__l10n']['Enable public page for visitors to shorten links'] = 'Activer la page publique pour que les visiteurs puissent réduire des liens'; 
    191408 
    192 #inc/services/class.local.service.php:78 
     409#inc/services/class.local.service.php:76 
    193410$GLOBALS['__l10n']['CSS:'] = 'CSS :'; 
    194411 
    195 #inc/services/class.local.service.php:81 
     412#inc/services/class.local.service.php:79 
    196413$GLOBALS['__l10n']['You can add here special cascading style sheet. Body of page has class "dc-kutrl" and widgets have class "shortenkutrlwidget" and "rankkutrlwidget".'] = 'Vous pouvez ajouter des styles ici. La balise "body" a la class "dc-kutrl" et les widgets ont les class "shortenkutrlwidget" et "rankkutrlwidget".'; 
    197414 
    198 #inc/services/class.trim.service.php:53 
     415#inc/services/class.local.service.php:120 
     416$GLOBALS['__l10n']['Custom short link is already taken.'] = 'Le lien court personnalisé est déjà pris.'; 
     417 
     418#inc/services/class.local.service.php:130 
     419$GLOBALS['__l10n']['Custom short link is not valid.'] = 'Le lien court personnalisé n\'est pas valide.'; 
     420 
     421#inc/services/class.local.service.php:141 
     422$GLOBALS['__l10n']['Failed to save link.'] = 'Impossible d\'enregistrer le lien.'; 
     423 
     424#inc/services/class.trim.service.php:51 
    199425$GLOBALS['__l10n']['This is your login to sign up to tr.im.'] = 'Ceci est votre login d\'inscription sur tr.im.'; 
    200426 
    201 #inc/services/class.trim.service.php:59 
     427#inc/services/class.trim.service.php:57 
    202428$GLOBALS['__l10n']['This is your password to sign up to tr.im.'] = 'Ceci est votre mot de passe d\'inscription sur tr.im.'; 
    203429 
    204 #index.php:54 
    205 $GLOBALS['__l10n']['Long link'] = 'Lien long'; 
    206  
    207 #index.php:69 
    208 $GLOBALS['__l10n']['disabled'] = 'Désactivé'; 
    209  
    210 #index.php:187 
    211 $GLOBALS['__l10n']['There is nothing to shorten.'] = 'I n\'y a rien à réduire.'; 
    212  
    213 #index.php:193 
    214 $GLOBALS['__l10n']['This service does not allowed custom hash.'] = 'Ce service n\'accepte pas les liens court personnalisés.'; 
    215  
    216 #index.php:196 
    217 $GLOBALS['__l10n']['This link is not a valid URL.'] = 'Ce lien n\'est pas valide.'; 
    218  
    219 #index.php:290 
    220 $GLOBALS['__l10n']['You must set an admin service.'] = 'Vous devez définir un service admin.'; 
    221  
    222 #index.php:308 
    223 $GLOBALS['__l10n']['Only if you want a custom short link.'] = 'Uniquement si vous souhaitez un lien court personnalisé.'; 
    224  
    225 #index.php:327 
    226 $GLOBALS['__l10n']['Settings'] = 'Paramètres'; 
    227  
    228 #index.php:337 
    229 $GLOBALS['__l10n']['Enable plugin'] = 'Activer l\'extension'; 
    230  
    231 #index.php:342 
    232 $GLOBALS['__l10n']['Limit short link to current blog'] = 'Limiter les liens court à ce blog'; 
    233  
    234 #index.php:345 
    235 $GLOBALS['__l10n']['Only link started with this blog URL could be shortened.'] = 'Uniquement les liens commençant par l\'URL de ce blog pourront être réduits.'; 
    236  
    237 #index.php:350 
    238 $GLOBALS['__l10n']['Passive mode'] = 'Mode passif'; 
    239  
    240 #index.php:353 
    241 $GLOBALS['__l10n']['If this extension is disabled and the passive mode is enabled, "kutrl" tags will display long urls instead of nothing on templates.'] = 'Si cette extension est désactivée et que le mode passif est activé, les balises "kutrl" affichreront les longues URL au lieu de rien.'; 
    242  
    243 #index.php:358 
    244 $GLOBALS['__l10n']['Create short link for new entries'] = 'Créer un lien court pour les nouveaux billets'; 
    245  
    246 #index.php:361 
    247 $GLOBALS['__l10n']['This can be changed on page of creation/edition of an entry.'] = 'Ceci peut être changé sur la page d\'édition / création d\'un billet.'; 
    248  
    249 #index.php:366 
    250 $GLOBALS['__l10n']['Administration:'] = 'Administration :'; 
    251  
    252 #index.php:371 
    253 $GLOBALS['__l10n']['Service to use in this admin page.'] = 'Service a utiliser pour réduire des liens depuis cette page.'; 
    254  
    255 #index.php:376 
    256 $GLOBALS['__l10n']['Templates:'] = 'Templates :'; 
    257  
    258 #index.php:381 
    259 $GLOBALS['__l10n']['Shorten links automatically when using template value like "EntryKutrl".'] = 'Réduit automatiquement les liens des templates utilisant les balises tels que "EntryKutrl".'; 
    260  
    261 #index.php:386 
    262 $GLOBALS['__l10n']['Contents:'] = 'Contenus :'; 
    263  
    264 #index.php:391 
    265 $GLOBALS['__l10n']['Shorten links automatically found in contents using wiki synthax.'] = 'Réduit automatiquement les liens des contenus utilisant la syntax wiki.'; 
    266  
    267 #index.php:406 
    268 $GLOBALS['__l10n']['Services'] = 'Services'; 
    269  
    270 #index.php:411 
    271 $GLOBALS['__l10n']['Configuration successfully updated.'] = 'La configuration a été correctement enregistrée.'; 
    272  
    273 #index.php:425 
    274 $GLOBALS['__l10n']['%s API is well configured and runing.'] = 'L\'API %s est correctement configurée et est fonctionnelle.'; 
    275  
    276 #index.php:426 
    277 $GLOBALS['__l10n']['%s API is not well configured or not online.'] = 'L\'API n\'est pas correctement configurée ou est hors ligne.'; 
    278  
    279 #index.php:433 
    280 $GLOBALS['__l10n']['homepage'] = 'page d\'accueil'; 
    281  
    282 #index.php:433 
    283 $GLOBALS['__l10n']['Learn more about %s.'] = 'En savoir plus à propos de %s.'; 
    284  
    285 #index.php:453 
    286 $GLOBALS['__l10n']['Know links'] = 'Liens connus'; 
    287  
    288 #index.php:457 
    289 $GLOBALS['__l10n']['List successfully updated.'] = 'Liste mise à jour avec succès.'; 
    290  
    291 #index.php:473 
    292 $GLOBALS['__l10n']['Service:'] = 'Service :'; 
    293  
    294 #index.php:507 
    295 $GLOBALS['__l10n']['Selected links action:'] = 'Action sur les liens selectionnés :'; 
     430#inc/services/class.trim.service.php:70 
     431$GLOBALS['__l10n']['Prevent service rate limit.'] = 'Prévention de la limitation d\'envoie du service.'; 
     432 
     433#inc/services/class.trim.service.php:85 
     434$GLOBALS['__l10n']['Authentication to service failed.'] = 'Authentification au service échoué.'; 
     435 
     436#inc/services/class.trim.service.php:119 
     437$GLOBALS['__l10n']['Unreadable service response.'] = 'La réponse du service n\'est pas lisible.'; 
     438 
     439#index.php:28 
     440$GLOBALS['__l10n']['Please wait'] = 'Veuillez patienter'; 
     441 
     442#index.php:36 
     443$GLOBALS['__l10n']['Configure extension'] = 'Configurer l\'extension'; 
     444 
     445#index.php:37 
     446$GLOBALS['__l10n']['Configure services'] = 'Configurer les services'; 
     447 
     448#index.php:49 
     449$GLOBALS['__l10n']['Configuration successfully saved'] = 'Configuration sauvegardée avec succès'; 
     450 
     451#index.php:50 
     452$GLOBALS['__l10n']['Services successfully updated'] = 'Services mises à jour avec succès'; 
     453 
     454#index.php:51 
     455$GLOBALS['__l10n']['Link successfully shorten'] = 'Lien raccourcie avec succès'; 
     456 
     457#index.php:52 
     458$GLOBALS['__l10n']['Links successfully deleted'] = 'Liens supprimés avec succès'; 
    296459 
    297460?> 
  • plugins/kUtRL/locales/fr/main.po

    r1974 r2190  
    11# Language: français 
    2 # Module: kUtRL - 0.1.2 
    3 # Date: 2009-12-12 12:48:16 
     2# Module: kUtRL - 0.3 
     3# Date: 2010-04-14 22:23:46 
    44# Translated with translater 1.3 
    55 
     
    77msgstr "" 
    88"Content-Type: text/plain; charset=UTF-8\n" 
    9 "Project-Id-Version: kUtRL 0.1.2\n" 
     9"Project-Id-Version: kUtRL 0.3\n" 
    1010"POT-Creation-Date: \n" 
    11 "PO-Revision-Date: 2009-12-12T12:48:16+00:00\n" 
     11"PO-Revision-Date: 2010-04-14T22:23:46+00:00\n" 
    1212"Last-Translator: JC Denis\n" 
    1313"Language-Team: \n" 
     
    1515"Content-Transfer-Encoding: 8bit\n" 
    1616 
    17 #: _admin.php:82 
    18 #: index.php:55 
     17#: _admin.php:19 
     18#: _widgets.php:22 
     19#: default-templates/kutrl.html:48 
     20#: inc/index.link.php:112 
     21#: inc/index.links.php:203 
     22#: inc/index.service.php:42 
     23#: inc/index.setting.php:87 
     24#: index.php:41 
     25#: index.php:42 
     26msgid "Links shortener" 
     27msgstr "Réducteur de liens" 
     28 
     29#: _admin.php:85 
     30#: inc/index.links.php:118 
    1931msgid "Short link" 
    2032msgstr "Lien court" 
    2133 
    22 #: _admin.php:97 
    23 #: index.php:315 
     34#: _admin.php:102 
    2435msgid "Create short link" 
    2536msgstr "Créer un lien court" 
    2637 
    27 #: _admin.php:103 
    28 #: index.php:304 
     38#: _admin.php:108 
     39#: inc/index.link.php:136 
    2940msgid "Custom short link:" 
    3041msgstr "Lien court personnalisé :" 
    3142 
    32 #: _admin.php:113 
    33 #: _widgets.php:157 
     43#: _admin.php:115 
     44msgid "Send to Twitter status" 
     45msgstr "Envoyer au status Twitter" 
     46 
     47#: _admin.php:122 
     48#: _widgets.php:171 
    3449msgid "never followed" 
    3550msgstr "jamais suivi" 
    3651 
    37 #: _admin.php:117 
    38 #: _widgets.php:159 
     52#: _admin.php:126 
     53#: _widgets.php:173 
    3954msgid "followed one time" 
    4055msgstr "suivi une fois" 
    4156 
    42 #: _admin.php:121 
    43 #: _widgets.php:161 
     57#: _admin.php:130 
     58#: _widgets.php:175 
    4459msgid "followed %s times" 
    4560msgstr "suivi %s fois" 
    4661 
    47 #: _admin.php:127 
    48 #: _admin.php:254 
    49 #: index.php:49 
     62#: _admin.php:137 
     63#: _admin.php:268 
    5064msgid "delete short link" 
    51 msgstr "Effacer un lien court" 
    52  
    53 #: _admin.php:253 
     65msgstr "effacer un lien court" 
     66 
     67#: _admin.php:267 
    5468msgid "create short link" 
    5569msgstr "créer un lien court" 
    5670 
    57 #: _public.php:128 
     71#: _public.php:123 
    5872msgid "Failed to verify protected field." 
    5973msgstr "Impossible de vérifier le champs de protection." 
    6074 
    61 #: _public.php:136 
    62 #: index.php:190 
     75#: _public.php:131 
     76#: inc/index.link.php:38 
     77#: inc/services/class.bilbolinks.service.php:64 
     78#: inc/services/class.bitly.service.php:76 
     79#: inc/services/class.local.service.php:89 
     80#: inc/services/class.trim.service.php:65 
    6381msgid "Service is not well configured." 
    6482msgstr "Le service n'est pas correctement configuré." 
    6583 
    66 #: _public.php:144 
     84#: _public.php:139 
    6785msgid "This string is not a valid URL." 
    6886msgstr "Cette chaine n'est pas un lien valide." 
    6987 
    70 #: _public.php:152 
    71 #: index.php:199 
     88#: _public.php:147 
     89#: inc/index.link.php:47 
    7290msgid "This link is too short." 
    7391msgstr "Ce lien est trop court." 
    7492 
    75 #: _public.php:160 
    76 #: index.php:202 
     93#: _public.php:155 
     94#: inc/index.link.php:50 
    7795msgid "This type of link is not allowed." 
    7896msgstr "Ce type de lien n'est pas autorisé." 
    7997 
    80 #: _public.php:169 
    81 #: index.php:205 
     98#: _public.php:164 
     99#: inc/index.link.php:53 
    82100msgid "Short links are limited to this blog URL." 
    83 msgstr "Les liens court sont limité à l'URL de ce blog." 
    84  
    85 #: _public.php:177 
    86 #: index.php:208 
     101msgstr "Les liens courts sont limités à l'URL de ce blog." 
     102 
     103#: _public.php:172 
     104#: inc/index.link.php:56 
    87105msgid "This link is already a short link." 
    88106msgstr "Ce lien est dèjà un lien court." 
    89107 
    90 #: _public.php:190 
    91 #: _public.php:209 
    92 #: index.php:214 
    93 #: index.php:226 
     108#: _public.php:185 
     109#: _public.php:204 
     110#: inc/index.link.php:67 
     111#: inc/index.link.php:87 
    94112msgid "Short link for %s is %s" 
    95113msgstr "Le lien court pour %s est %s" 
    96114 
    97 #: _public.php:201 
    98 #: index.php:220 
     115#: _public.php:196 
    99116msgid "Failed to create short link." 
    100117msgstr "Impossible de créer le lien court." 
    101118 
    102 #: _public.php:311 
    103 #: _widgets.php:93 
    104 msgid "Write \"%s\" in next field to see if you are not a robot:" 
    105 msgstr "Ecrire \"%s\" dans le champs suivant :" 
    106  
    107 #: _widgets.php:22 
    108 #: default-templates/kutrl.html:48 
    109 #: index.php:251 
    110 msgid "Links shortener" 
    111 msgstr "Réducteur de liens" 
     119#: _public.php:213 
     120#: _public.php:432 
     121#: inc/lib.wiki.kutrl.php:78 
     122msgid "public" 
     123msgstr "publique" 
     124 
     125#: _public.php:314 
     126#: _widgets.php:105 
     127msgid "Rewrite \"%s\" in next field to show that you are not a robot:" 
     128msgstr "Recopier \"%s\" dans le champs suivant pour montrer que vous n'êtes pas une machine :" 
    112129 
    113130#: _widgets.php:26 
    114 #: index.php:286 
    115131msgid "Shorten link" 
    116132msgstr "Réduire un lien" 
     
    118134#: _widgets.php:35 
    119135#: _widgets.php:39 
    120 msgid "Top mini links" 
    121 msgstr "Top des mini liens" 
     136msgid "Top of short links" 
     137msgstr "Top des liens courts" 
     138 
     139#: _widgets.php:42 
     140msgid "Text: (Use wildcard %rank%, %hash%, %url%, %count%, %counttext%)" 
     141msgstr "Texte : (Ustiliser les jokers %rank%, %hash%, %url%, %count%, %counttext%)" 
    122142 
    123143#: _widgets.php:45 
    124 msgid "Link length (if truncate)" 
    125 msgstr "Longueur du lien (si tronqué)" 
     144msgid "URL length (if truncate)" 
     145msgstr "Longueur de l'URL (si tronqué)" 
    126146 
    127147#: _widgets.php:49 
     
    135155#: _widgets.php:51 
    136156msgid "Custom URL" 
    137 msgstr "URL personalisé" 
    138  
    139 #: _widgets.php:61 
     157msgstr "URL personnalisé" 
     158 
     159#: _widgets.php:52 
     160msgid "Semi-custom" 
     161msgstr "Semi-personnalisé" 
     162 
     163#: _widgets.php:56 
     164msgid "Semi-custom prefix: (only if you want limit to a particular prefix)" 
     165msgstr "Préfixe des liens semi-personnalisé : (Seulement si vous voulez limiter à un préfixe particulier)" 
     166 
     167#: _widgets.php:60 
     168msgid "Sort by:" 
     169msgstr "Trier par :" 
     170 
     171#: _widgets.php:62 
     172msgid "Rank" 
     173msgstr "Rang" 
     174 
     175#: _widgets.php:63 
     176#: inc/index.links.php:34 
     177msgid "Hash" 
     178msgstr "Hash" 
     179 
     180#: _widgets.php:73 
    140181msgid "Limit:" 
    141182msgstr "Limite :" 
    142183 
    143 #: _widgets.php:64 
     184#: _widgets.php:76 
    144185msgid "Hide no followed links" 
    145186msgstr "Cacher les liens non suivis" 
    146187 
    147 #: _widgets.php:89 
     188#: _widgets.php:101 
    148189#: default-templates/kutrl.html:55 
    149 #: index.php:297 
     190#: inc/index.link.php:129 
    150191msgid "Long link:" 
    151192msgstr "Lien long :" 
    152193 
    153 #: _widgets.php:96 
     194#: _widgets.php:108 
    154195#: default-templates/kutrl.html:62 
    155196msgid "Create" 
    156197msgstr "Créer" 
    157198 
    158 #: inc/lib.kutrl.activityreport.php:16 
     199#: inc/index.link.php:35 
     200msgid "There is nothing to shorten." 
     201msgstr "I n'y a rien à réduire." 
     202 
     203#: inc/index.link.php:41 
     204msgid "This service does not allowed custom hash." 
     205msgstr "Ce service n'accepte pas les liens court personnalisés." 
     206 
     207#: inc/index.link.php:44 
     208msgid "This link is not a valid URL." 
     209msgstr "Ce lien n'est pas valide." 
     210 
     211#: inc/index.link.php:59 
     212msgid "This custom short url is already taken." 
     213msgstr "Ce lien court personnalisé est déjà pris." 
     214 
     215#: inc/index.link.php:79 
     216msgid "Failed to create short link. This could be caused by a service failure." 
     217msgstr "Impossible de créé un lien court. Ceci peut être causé par un problème du service." 
     218 
     219#: inc/index.link.php:116 
     220#: inc/index.links.php:207 
     221#: inc/index.service.php:52 
     222#: inc/index.setting.php:97 
     223msgid "New link" 
     224msgstr "Nouveau lien" 
     225 
     226#: inc/index.link.php:121 
     227msgid "You must set an admin service." 
     228msgstr "Vous devez définir un service admin." 
     229 
     230#: inc/index.link.php:128 
     231msgid "Shorten link using service \"%s\"" 
     232msgstr "Raccourcir un lien en utilisant le service \"%s\"" 
     233 
     234#: inc/index.link.php:138 
     235msgid "Only if you want a custom short link." 
     236msgstr "Uniquement si vous souhaitez un lien court personnalisé." 
     237 
     238#: inc/index.link.php:142 
     239msgid "You can use \"bob!!\" if you want a semi-custom link, it starts with \"bob\" and \"!!\" will be replaced by an increment value." 
     240msgstr "Vous pouvez utiliser \"bob!!\" si vous souhaitez un lien semi-personnalisé, il commencera par \"bob\" et \"!!\" sera remplacé par une valeur incrémentale." 
     241 
     242#: inc/index.links.php:23 
     243msgid "No short link" 
     244msgstr "Pas de lien court" 
     245 
     246#: inc/index.links.php:37 
     247msgid "Service" 
     248msgstr "Service" 
     249 
     250#: inc/index.links.php:117 
     251msgid "Long link" 
     252msgstr "Lien long" 
     253 
     254#: inc/index.links.php:132 
     255#: inc/index.setting.php:82 
     256msgid "disabled" 
     257msgstr "Désactivé" 
     258 
     259#: inc/index.links.php:220 
     260msgid "Service:" 
     261msgstr "Service :" 
     262 
     263#: inc/index.links.php:250 
     264msgid "Delete selected short links" 
     265msgstr "Effacer les liens sélectionnés" 
     266 
     267#: inc/index.service.php:51 
     268#: index.php:37 
     269msgid "Services" 
     270msgstr "Services" 
     271 
     272#: inc/index.service.php:66 
     273msgid "%s API is well configured and runing." 
     274msgstr "L'API %s est correctement configurée et est fonctionnelle." 
     275 
     276#: inc/index.service.php:67 
     277msgid "Failed to test %s API." 
     278msgstr "Impossible de tester l'API %s." 
     279 
     280#: inc/index.service.php:76 
     281msgid "homepage" 
     282msgstr "page d'accueil" 
     283 
     284#: inc/index.service.php:76 
     285msgid "Learn more about %s." 
     286msgstr "En savoir plus à propos de %s." 
     287 
     288#: inc/index.setting.php:96 
     289#: index.php:36 
     290msgid "Settings" 
     291msgstr "Paramètres" 
     292 
     293#: inc/index.setting.php:101 
     294msgid "Plugin activation" 
     295msgstr "Activation de l'extension" 
     296 
     297#: inc/index.setting.php:104 
     298msgid "Enable plugin" 
     299msgstr "Activer l'extension" 
     300 
     301#: inc/index.setting.php:107 
     302msgid "General rules" 
     303msgstr "Réglages" 
     304 
     305#: inc/index.setting.php:110 
     306msgid "Limit short link to current blog" 
     307msgstr "Limiter les liens court à ce blog" 
     308 
     309#: inc/index.setting.php:111 
     310msgid "Only link started with this blog URL could be shortened." 
     311msgstr "Uniquement les liens commençant par l'URL de ce blog pourront être réduits." 
     312 
     313#: inc/index.setting.php:114 
     314msgid "Passive mode" 
     315msgstr "Mode passif" 
     316 
     317#: inc/index.setting.php:115 
     318msgid "If this extension is disabled and the passive mode is enabled, \"kutrl\" tags will display long urls instead of nothing on templates." 
     319msgstr "Si cette extension est désactivée et que le mode passif est activé, les balises \"kutrl\" afficheront les longues URL au lieu de rien." 
     320 
     321#: inc/index.setting.php:118 
     322msgid "Create short link for new entries" 
     323msgstr "Créer un lien court pour les nouveaux billets" 
     324 
     325#: inc/index.setting.php:119 
     326msgid "This can be changed on page of creation/edition of an entry." 
     327msgstr "Ceci peut être changé sur la page d'édition / création d'un billet." 
     328 
     329#: inc/index.setting.php:122 
     330msgid "Default services" 
     331msgstr "Services par défaut" 
     332 
     333#: inc/index.setting.php:128 
     334msgid "Administration:" 
     335msgstr "Administration :" 
     336 
     337#: inc/index.setting.php:131 
     338msgid "Service to use in this admin page and on edit page of an entry." 
     339msgstr "Service à utiliser sur cette page d'administration ou sur la page d'édition d'un billet." 
     340 
     341#: inc/index.setting.php:137 
     342msgid "Templates:" 
     343msgstr "Templates :" 
     344 
     345#: inc/index.setting.php:140 
     346msgid "Shorten links automatically when using template value like \"EntryKutrl\"." 
     347msgstr "Réduit automatiquement les liens des templates utilisant les balises tels que \"EntryKutrl\"." 
     348 
     349#: inc/index.setting.php:146 
     350msgid "Contents:" 
     351msgstr "Contenus :" 
     352 
     353#: inc/index.setting.php:149 
     354msgid "Shorten links automatically found in contents using wiki synthax." 
     355msgstr "Réduit automatiquement les liens des contenus utilisant la syntax wiki." 
     356 
     357#: inc/index.setting.php:159 
     358msgid "Use wildcard %L for short URL, %B for blog name, %U for user name." 
     359msgstr "Utiliser les jokers %L pour le lien court, %B pour le nom du blog, %U pour l'utilisateur." 
     360 
     361#: inc/index.setting.php:161 
     362msgid "Activation" 
     363msgstr "Activation" 
     364 
     365#: inc/index.setting.php:162 
     366msgid "Send message when short url is created on:" 
     367msgstr "Envoyer un message lorsqu'un lien court est créé sur :" 
     368 
     369#: inc/index.setting.php:165 
     370msgid "administration form" 
     371msgstr "le formulaire de la page d'administration" 
     372 
     373#: inc/index.setting.php:168 
     374msgid "public form" 
     375msgstr "le forumlaire publique" 
     376 
     377#: inc/index.setting.php:171 
     378msgid "template" 
     379msgstr "le thème" 
     380 
     381#: inc/index.setting.php:174 
     382msgid "content" 
     383msgstr "le contenu" 
     384 
     385#: inc/lib.dc.twitter.php:169 
     386msgid "Twitter account" 
     387msgstr "Compte Twitter" 
     388 
     389#: inc/lib.dc.twitter.php:170 
     390#: inc/lib.dc.twitter.php:178 
     391#: inc/services/class.bitly.service.php:51 
     392#: inc/services/class.trim.service.php:47 
     393msgid "Login:" 
     394msgstr "Identifiant :" 
     395 
     396#: inc/lib.dc.twitter.php:176 
     397#: inc/lib.dc.twitter.php:184 
     398msgid "Type a password only to change old one." 
     399msgstr "Entrer un mot de passe uniquement pour changer l'ancien." 
     400 
     401#: inc/lib.dc.twitter.php:177 
     402msgid "Identi.ca account" 
     403msgstr "Compte Identi.ca" 
     404 
     405#: inc/lib.dc.twitter.php:185 
     406msgid "Message" 
     407msgstr "Message" 
     408 
     409#: inc/lib.dc.twitter.php:301 
     410msgid "User is not set." 
     411msgstr "L'utilisateur est pas renseigné." 
     412 
     413#: inc/lib.dc.twitter.php:309 
     414msgid "Nothing to send." 
     415msgstr "Il n'y a rien à envoyer." 
     416 
     417#: inc/lib.dc.twitter.php:333 
     418msgid "Failed to send message (%s)" 
     419msgstr "Impossible d'envoyer le message (%s)" 
     420 
     421#: inc/lib.dc.twitter.php:393 
     422msgid "Failed to get short url (%s)" 
     423msgstr "Impossible de récupérer le lien court (%s)" 
     424 
     425#: inc/lib.dc.twitter.php:399 
     426msgid "Failed to get short url" 
     427msgstr "Impossible de récupérer le lien court" 
     428 
     429#: inc/lib.kutrl.activityreport.php:17 
    159430msgid "Plugin kUtRL" 
    160431msgstr "Extension kUtRL" 
    161432 
    162 #: inc/lib.kutrl.activityreport.php:22 
     433#: inc/lib.kutrl.activityreport.php:23 
    163434msgid "Short link creation" 
    164435msgstr "Création de lien court" 
    165436 
    166 #: inc/lib.kutrl.activityreport.php:23 
     437#: inc/lib.kutrl.activityreport.php:24 
    167438msgid "New short link of type \"%s\" and hash \"%s\" was created." 
    168439msgstr "Un nouveau lien court de type \"%s\" et de hash \"%s\" a été créé." 
    169440 
    170 #: inc/lib.kutrl.index.list.php:20 
    171 msgid "No short link" 
    172 msgstr "Pas de lien court" 
    173  
    174 #: inc/lib.kutrl.index.list.php:31 
    175 msgid "Service" 
    176 msgstr "Service" 
    177  
    178 #: inc/lib.kutrl.index.list.php:32 
    179 msgid "Hash" 
    180 msgstr "Hash" 
    181  
    182 #: inc/lib.kutrl.srv.php:47 
     441#: inc/lib.kutrl.srv.php:52 
    183442msgid "There is nothing to configure for this service." 
    184443msgstr "Il n'y a rien à configurer pour ce service." 
    185444 
    186 #: inc/lib.wiki.kutrl.php:79 
     445#: inc/lib.wiki.kutrl.php:73 
    187446msgid "%s (Shorten with %s)" 
    188447msgstr "% (réduit avec %s)" 
    189448 
    190 #: inc/services/class.bilbolinks.service.php:54 
     449#: inc/services/class.bilbolinks.service.php:52 
    191450msgid "Url of the service:" 
    192451msgstr "URL du service :" 
    193452 
    194 #: inc/services/class.bilbolinks.service.php:58 
     453#: inc/services/class.bilbolinks.service.php:56 
    195454msgid "This is the root URL of the \"bilbolinks\" service you want to use. Ex: \"http://tux-pla.net/\"." 
    196455msgstr "Ceci est l'URL du service bilbolinks que vous souhaitez utiliser. Ex: \"http://tux-pla.net/\"." 
    197456 
    198 #: inc/services/class.bitly.service.php:54 
    199 #: inc/services/class.trim.service.php:49 
    200 msgid "Login:" 
    201 msgstr "Login :" 
    202  
    203 #: inc/services/class.bitly.service.php:58 
     457#: inc/services/class.bilbolinks.service.php:71 
     458#: inc/services/class.bilbolinks.service.php:83 
     459#: inc/services/class.isgd.service.php:39 
     460#: inc/services/class.isgd.service.php:51 
     461#: inc/services/class.shortto.service.php:39 
     462#: inc/services/class.shortto.service.php:51 
     463#: inc/services/class.trim.service.php:76 
     464#: inc/services/class.trim.service.php:96 
     465msgid "Service is unavailable." 
     466msgstr "Le service n'est pas disponible." 
     467 
     468#: inc/services/class.bilbolinks.service.php:88 
     469#: inc/services/class.trim.service.php:107 
     470msgid "Service rate limit exceeded." 
     471msgstr "La limitation d'envoie au service est atteinte." 
     472 
     473#: inc/services/class.bitly.service.php:55 
    204474msgid "This is your login to sign up to bit.ly." 
    205475msgstr "Ceci est votre login d'inscription sur bit.ly." 
    206476 
    207 #: inc/services/class.bitly.service.php:60 
     477#: inc/services/class.bitly.service.php:57 
    208478msgid "API Key:" 
    209479msgstr "Clé API :" 
    210480 
    211 #: inc/services/class.bitly.service.php:64 
     481#: inc/services/class.bitly.service.php:61 
    212482msgid "This is your personnal bit.ly API key. You can find it on your account page." 
    213483msgstr "Ceci est votre clé personnelle pour l'API bit.ly. Vous pouvez la trouver sur la page de vore compte." 
    214484 
    215 #: inc/services/class.bitly.service.php:68 
     485#: inc/services/class.bitly.service.php:65 
    216486msgid "Publish history" 
    217487msgstr "Publier l'historique" 
    218488 
    219 #: inc/services/class.bitly.service.php:71 
     489#: inc/services/class.bitly.service.php:68 
    220490msgid "This publish all short links on your bit.ly public page." 
    221491msgstr "Ceci publie tous vos liens sur votre page public bit.ly" 
    222492 
    223 #: inc/services/class.local.service.php:46 
     493#: inc/services/class.bitly.service.php:84 
     494#: inc/services/class.bitly.service.php:106 
     495msgid "Failed to call service." 
     496msgstr "Impossible d'appeler le service." 
     497 
     498#: inc/services/class.bitly.service.php:93 
     499#: inc/services/class.bitly.service.php:115 
     500msgid "An error occured with code %s and message \"%s\"" 
     501msgstr "Une erreur est survenu avec le code \"%s\" et le message \"%s\"" 
     502 
     503#: inc/services/class.local.service.php:44 
    224504msgid "This service use your own Blog to shorten and serve URL." 
    225505msgstr "Ce service utilise votre propre blog pour réduire et servir des liens." 
    226506 
    227 #: inc/services/class.local.service.php:47 
     507#: inc/services/class.local.service.php:45 
    228508msgid "This means that with this service short links start with \"%s\"." 
    229509msgstr "Cela signifie qu'avec ce service vos liens courts commencent par \"%s\"." 
    230510 
    231 #: inc/services/class.local.service.php:50 
     511#: inc/services/class.local.service.php:48 
    232512msgid "You can use Dotclear's plugin called myUrlHandlers to change short links prefix on your blog." 
    233513msgstr "Vous pouvez utiliser l'extension myUrlHandlers pour Dotclear afin de changer le prefix de vos liens courts depuis votre blog." 
    234514 
    235 #: inc/services/class.local.service.php:56 
     515#: inc/services/class.local.service.php:54 
    236516msgid "We recommand that you use a rewrite engine in order to remove 'index.php' from your blog's URL." 
    237517msgstr "Nous vous recommandons d'utiliser la réécriture d'URL pour supprimer 'index.php de l'URL de votre blog." 
    238518 
    239 #: inc/services/class.local.service.php:58 
     519#: inc/services/class.local.service.php:56 
    240520msgid "You can find more about this on the Dotclear's documentation." 
    241521msgstr "Vous trouverez plus d'information à ce sujet dans la documentation Dotclear." 
    242522 
    243 #: inc/services/class.local.service.php:65 
     523#: inc/services/class.local.service.php:63 
    244524msgid "Allowed protocols:" 
    245525msgstr "Protocoles autorisés :" 
    246526 
    247 #: inc/services/class.local.service.php:70 
     527#: inc/services/class.local.service.php:68 
    248528msgid "Use comma seperated list like: \"http:,https:,ftp:\"" 
    249529msgstr "Utiliser une virgule pour séparer la liste des protocoles. Ex: \"http:,https:,ftp:\"" 
    250530 
    251 #: inc/services/class.local.service.php:75 
     531#: inc/services/class.local.service.php:73 
    252532msgid "Enable public page for visitors to shorten links" 
    253533msgstr "Activer la page publique pour que les visiteurs puissent réduire des liens" 
    254534 
    255 #: inc/services/class.local.service.php:78 
     535#: inc/services/class.local.service.php:76 
    256536msgid "CSS:" 
    257537msgstr "CSS :" 
    258538 
    259 #: inc/services/class.local.service.php:81 
     539#: inc/services/class.local.service.php:79 
    260540msgid "You can add here special cascading style sheet. Body of page has class \"dc-kutrl\" and widgets have class \"shortenkutrlwidget\" and \"rankkutrlwidget\"." 
    261541msgstr "Vous pouvez ajouter des styles ici. La balise \"body\" a la class \"dc-kutrl\" et les widgets ont les class \"shortenkutrlwidget\" et \"rankkutrlwidget\"." 
    262542 
    263 #: inc/services/class.trim.service.php:53 
     543#: inc/services/class.local.service.php:120 
     544msgid "Custom short link is already taken." 
     545msgstr "Le lien court personnalisé est déjà pris." 
     546 
     547#: inc/services/class.local.service.php:130 
     548msgid "Custom short link is not valid." 
     549msgstr "Le lien court personnalisé n'est pas valide." 
     550 
     551#: inc/services/class.local.service.php:141 
     552msgid "Failed to save link." 
     553msgstr "Impossible d'enregistrer le lien." 
     554 
     555#: inc/services/class.trim.service.php:51 
    264556msgid "This is your login to sign up to tr.im." 
    265557msgstr "Ceci est votre login d'inscription sur tr.im." 
    266558 
    267 #: inc/services/class.trim.service.php:59 
     559#: inc/services/class.trim.service.php:57 
    268560msgid "This is your password to sign up to tr.im." 
    269561msgstr "Ceci est votre mot de passe d'inscription sur tr.im." 
    270562 
    271 #: index.php:54 
    272 msgid "Long link" 
    273 msgstr "Lien long" 
    274  
    275 #: index.php:69 
    276 msgid "disabled" 
    277 msgstr "Désactivé" 
    278  
    279 #: index.php:187 
    280 msgid "There is nothing to shorten." 
    281 msgstr "I n'y a rien à réduire." 
    282  
    283 #: index.php:193 
    284 msgid "This service does not allowed custom hash." 
    285 msgstr "Ce service n'accepte pas les liens court personnalisés." 
    286  
    287 #: index.php:196 
    288 msgid "This link is not a valid URL." 
    289 msgstr "Ce lien n'est pas valide." 
    290  
    291 #: index.php:290 
    292 msgid "You must set an admin service." 
    293 msgstr "Vous devez définir un service admin." 
    294  
    295 #: index.php:308 
    296 msgid "Only if you want a custom short link." 
    297 msgstr "Uniquement si vous souhaitez un lien court personnalisé." 
    298  
    299 #: index.php:327 
    300 msgid "Settings" 
    301 msgstr "Paramètres" 
    302  
    303 #: index.php:337 
    304 msgid "Enable plugin" 
    305 msgstr "Activer l'extension" 
    306  
    307 #: index.php:342 
    308 msgid "Limit short link to current blog" 
    309 msgstr "Limiter les liens court à ce blog" 
    310  
    311 #: index.php:345 
    312 msgid "Only link started with this blog URL could be shortened." 
    313 msgstr "Uniquement les liens commençant par l'URL de ce blog pourront être réduits." 
    314  
    315 #: index.php:350 
    316 msgid "Passive mode" 
    317 msgstr "Mode passif" 
    318  
    319 #: index.php:353 
    320 msgid "If this extension is disabled and the passive mode is enabled, \"kutrl\" tags will display long urls instead of nothing on templates." 
    321 msgstr "Si cette extension est désactivée et que le mode passif est activé, les balises \"kutrl\" affichreront les longues URL au lieu de rien." 
    322  
    323 #: index.php:358 
    324 msgid "Create short link for new entries" 
    325 msgstr "Créer un lien court pour les nouveaux billets" 
    326  
    327 #: index.php:361 
    328 msgid "This can be changed on page of creation/edition of an entry." 
    329 msgstr "Ceci peut être changé sur la page d'édition / création d'un billet." 
    330  
    331 #: index.php:366 
    332 msgid "Administration:" 
    333 msgstr "Administration :" 
    334  
    335 #: index.php:371 
    336 msgid "Service to use in this admin page." 
    337 msgstr "Service a utiliser pour réduire des liens depuis cette page." 
    338  
    339 #: index.php:376 
    340 msgid "Templates:" 
    341 msgstr "Templates :" 
    342  
    343 #: index.php:381 
    344 msgid "Shorten links automatically when using template value like \"EntryKutrl\"." 
    345 msgstr "Réduit automatiquement les liens des templates utilisant les balises tels que \"EntryKutrl\"." 
    346  
    347 #: index.php:386 
    348 msgid "Contents:" 
    349 msgstr "Contenus :" 
    350  
    351 #: index.php:391 
    352 msgid "Shorten links automatically found in contents using wiki synthax." 
    353 msgstr "Réduit automatiquement les liens des contenus utilisant la syntax wiki." 
    354  
    355 #: index.php:406 
    356 msgid "Services" 
    357 msgstr "Services" 
    358  
    359 #: index.php:411 
    360 msgid "Configuration successfully updated." 
    361 msgstr "La configuration a été correctement enregistrée." 
    362  
    363 #: index.php:425 
    364 msgid "%s API is well configured and runing." 
    365 msgstr "L'API %s est correctement configurée et est fonctionnelle." 
    366  
    367 #: index.php:426 
    368 msgid "%s API is not well configured or not online." 
    369 msgstr "L'API n'est pas correctement configurée ou est hors ligne." 
    370  
    371 #: index.php:433 
    372 msgid "homepage" 
    373 msgstr "page d'accueil" 
    374  
    375 #: index.php:433 
    376 msgid "Learn more about %s." 
    377 msgstr "En savoir plus à propos de %s." 
    378  
    379 #: index.php:453 
    380 msgid "Know links" 
    381 msgstr "Liens connus" 
    382  
    383 #: index.php:457 
    384 msgid "List successfully updated." 
    385 msgstr "Liste mise à jour avec succès." 
    386  
    387 #: index.php:473 
    388 msgid "Service:" 
    389 msgstr "Service :" 
    390  
    391 #: index.php:507 
    392 msgid "Selected links action:" 
    393 msgstr "Action sur les liens selectionnés :" 
    394  
     563#: inc/services/class.trim.service.php:70 
     564msgid "Prevent service rate limit." 
     565msgstr "Prévention de la limitation d'envoie du service." 
     566 
     567#: inc/services/class.trim.service.php:85 
     568msgid "Authentication to service failed." 
     569msgstr "Authentification au service échoué." 
     570 
     571#: inc/services/class.trim.service.php:119 
     572msgid "Unreadable service response." 
     573msgstr "La réponse du service n'est pas lisible." 
     574 
     575#: index.php:28 
     576msgid "Please wait" 
     577msgstr "Veuillez patienter" 
     578 
     579#: index.php:36 
     580msgid "Configure extension" 
     581msgstr "Configurer l'extension" 
     582 
     583#: index.php:37 
     584msgid "Configure services" 
     585msgstr "Configurer les services" 
     586 
     587#: index.php:49 
     588msgid "Configuration successfully saved" 
     589msgstr "Configuration sauvegardée avec succès" 
     590 
     591#: index.php:50 
     592msgid "Services successfully updated" 
     593msgstr "Services mises à jour avec succès" 
     594 
     595#: index.php:51 
     596msgid "Link successfully shorten" 
     597msgstr "Lien raccourcie avec succès" 
     598 
     599#: index.php:52 
     600msgid "Links successfully deleted" 
     601msgstr "Liens supprimés avec succès" 
     602 
  • plugins/kUtRL/release.txt

    r2000 r2190  
    11x.x xxxxxxxx 
    2  - Added public page of the list of know urls 
     2 - Added public page of the list of know urls and in/visible status 
     3 - Added passworded links 
     4 
     50.3 20100414 
     6 * Added DC 2.2 compatibility (new settings) 
     7 * Added semi-custom hash on kUtRL service 
     8 * Added status update for Twitter/Identi.ca on new short link 
     9 * Added services error management (first step) 
     10 * Added options to widgets 
     11 * Upgraded bitly service to v3 
     12 * Changed admin design 
    313 
    4140.2 20091223 
Note: See TracChangeset for help on using the changeset viewer.

Sites map