Dotclear


Ignore:
Timestamp:
07/01/11 17:18:14 (14 years ago)
Author:
Franck <carnet.franck.paul@…>
Branch:
default
Message:

Un favori de plugin désactivé ou désinstallé n'est plus actif dans le menu des favoris et sur le dashboard. Il reste cependant enregistré et l'utilisateur devra le supprimer manuellement si nécessaire.

La fonction de contrôle — bien que fonctionnelle — est à revoir (bouillie de tests)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/prepend.php

    r324 r468  
    2121 
    2222define('DC_CONTEXT_ADMIN',true); 
     23 
     24function dc_valid_fav($url) { 
     25     global $core; 
     26      
     27     $parts = parse_url($url); 
     28     if (isset($parts['path'])) { 
     29          if ($parts['path'] == 'plugin.php') { 
     30               if (isset($parts['query'])) { 
     31                    $parts = explode('&', $parts['query']); 
     32                    $param = explode('=', $parts[0]); 
     33                    if (($param[0] == 'p') && (isset($param[1]))) { 
     34                         if (!$core->plugins->moduleExists($param[1])) { 
     35                              return false; 
     36                         } 
     37                    } 
     38               } 
     39          } 
     40     } 
     41     return true; 
     42} 
    2343 
    2444function dc_prepare_url($url) { 
     
    309329          // User favorites only 
    310330          if (!$v['global']) { 
    311                $count++; 
    312331               $fav = unserialize($v['value']); 
    313                $_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'], 
    314                     preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']), 
    315                     (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     332               if (dc_valid_fav($fav['url'])) { 
     333                    $count++; 
     334                    $_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'], 
     335                         preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']), 
     336                         (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     337               } 
    316338          } 
    317339     }     
     
    319341          // Global favorites if any 
    320342          foreach ($ws->dumpPrefs() as $k => $v) { 
    321                $count++; 
    322343               $fav = unserialize($v['value']); 
    323                $_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'], 
    324                     preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']), 
    325                     (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     344               if (dc_valid_fav($fav[url])) { 
     345                    $count++; 
     346                    $_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'], 
     347                         preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']), 
     348                         (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']); 
     349               } 
    326350          } 
    327351     } 
Note: See TracChangeset for help on using the changeset viewer.

Sites map