2010-08-11 6 views
1

J'utilise le plugin Tags de cakedc.com, et j'ai un problème pour générer les liens de pagination appropriés en utilisant le PaginatorHelper.cakephp: problème avec PaginatorHelper et les plugins de routage, impossible de retirer le plugin de l'url

Le résultat souhaité est de supprimer le nom du plugin des fichiers hrefs générés, car le plugin sera ajouté au routage. à-dire http://localhost/balises/photos/oregon/page: 4/PerPage: 28

C'est ce que j'ai:

app/config/routes.php (à la carte '/ tags' => '/ tags/tags', à savoir le plugin tags)

Router::connect('/tags/:action/*', array('plugin'=>'tags', 'controller'=>'tags')); 
// map /tags => /tags/tags 
Code

dans le fichier de vue:

<?php 
    $this->Paginator->options['url']=array_merge(
       array('plugin'=>'tags'), 
       $this->Paginator->options['url'] 
    ); 
    echo $this->Paginator->numbers(array('separator'=>null, 'modulus'=>'20')); 


// debug($this->Paginator->options[url] => Array 
//  (
//   [controller] => tags 
//   [action] => photos 
//   [0] => oregon 
//   [perpage] => 28 
//   [page] => 4 
//  ) 
//) 

// sample href="http://localhost/tags/tags/photos/oregon/page:4/perpage:28" 
//  note the '/tags/tags' i.e. /:plugin/:controller 

?> 

BU, je remarque ce qui suit, si je définir des options [ 'url'] comme suit:

<?php 
    $this->Paginator->options['url']=array('plugin'=>'tags'); 
    echo $this->Paginator->numbers(array('separator'=>null, 'modulus'=>'20')); 


// debug($this->Paginator->options[url] => Array 
// (
//  [plugin] => tags 
// ) 
//) 
// sample href="http://localhost/tags/photos/page:4" 

?> 

Répondre

0

Cela pourrait aider: http://bakery.cakephp.org/articles/view/secrets-of-admin-routing

Mais il semble que vous ajoutez l'option de tableau PLUGIN à l'URL. Pourquoi? Si vous utilisez le routage, laissez-le désactivé. Lorsque le lien est cliqué, il saura comment le gérer. En d'autres termes, n'activez pas le routage ET utilisez les options du plug-in sur l'URL en même temps.

+0

Je pense que j'ajoute l'option plugin => array parce que le routage inverse est supposé l'enlever automatiquement quand l'URL finale est générée. Et c'est le cas pour le 2ème exemple, mais pas le premier. – michael

+0

Que diriez-vous de l'écrire comme ceci: '$ paginator-> options (array ('url' => array_merge (array ('plugin' => 'tags'))));' –

Questions connexes