CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 18-03-2013 11:55:34

Aoernis
Fraisier
Date d'inscription: 30-05-2012
Messages: 50

[RESOLU] De l'Utilisation d'un Plugin

Bonjour,

J'ai récemment crée un plugin dans le quel j'ai placer une partie du site que je développe. Il y a des Controller, et des View. Et le chargement du plugin ne renvois aucune erreur. Cependant j'ai un souci.

Maintenant que mon plugin est en place, comment j'y accède ? Oo
Par exemple, je veux faire un lien dans une de mes vue ors du Plugin, qui permettra d'atteindre la méthode MonAction de mon contrôleur MonController situer dans mon Plugin.
A quoi va ressembler l'appel à $this->html->link() qui générera ce lient ?

De plus : si je veux dans une vue de mon Plugin fait un lien vers une autre méthode du même même controleur (dans le même plugin donc) comment doit-je m'y prendre pour être sur que ça marche ? Es ce que :

Code: php

  1. $this->html->link("MonLien", array('controller' => 'MonController', 'action' => 'MonAction');

Va suffire ?

Cordialement.

C'est la première fois que je monte un plugin moi même tout ça est encore confus hmm

Dernière modification par Aoernis (25-03-2013 14:19:34)

Hors ligne

 

#2 21-03-2013 21:47:48

cake17
Cooker
Date d'inscription: 29-03-2012
Messages: 383
Site web

Re: [RESOLU] De l'Utilisation d'un Plugin

Pour accéder au controller et l'action de ton plugin TonPlugin, il te suffit de faire comme cela :

Code: php

  1. $this->Html->link("MonLien", array('plugin' => 'ton_plugin','controller' => 'MonController', 'action' => 'MonAction');

Hors ligne

 

#3 25-03-2013 12:29:27

Aoernis
Fraisier
Date d'inscription: 30-05-2012
Messages: 50

Re: [RESOLU] De l'Utilisation d'un Plugin

Je doit mal faire quelque chose alors par ce que ça ne marche pas.
Comment vérifier que mon plugin est bien charger ? hmm

Je fait :

Code: php

  1. CakePlugin::load('mon_plugin');

Dans boostrap.php

Mais ce qu'il y à de plus étrange c'est que j'ai un Element dans mon plugin et que quand je fait :

Code: php

  1. echo $this->element('mon_element', array(), array('plugin' => 'mon_plugin'));

ça marche. Mais

Code: php

  1. $this->Html->link("MonLien", array('plugin' => 'ton_plugin','controller' => 'MonController', 'action' => 'MonAction'));

ça ne marche pas, ça génère un lien vers :
/mon_proj/ton_plugin/MonController/MonAction
Es-ce normale ? J'ai du rater quelque chose hmm

Dernière modification par Aoernis (25-03-2013 13:24:07)

Hors ligne

 

#4 25-03-2013 12:42:12

spout
Cooker
Date d'inscription: 18-12-2010
Messages: 1899

Re: [RESOLU] De l'Utilisation d'un Plugin

"ça ne marche pas" ?

Le lien est correct (si autodiagnostic est le webroot), du moins c'est la route par défaut des plugins.

Hors ligne

 

#5 25-03-2013 13:23:17

Aoernis
Fraisier
Date d'inscription: 30-05-2012
Messages: 50

Re: [RESOLU] De l'Utilisation d'un Plugin

Ha si j'ai réussi smile
Bon par contre je continue d'utiliser mon layout.ctp par defaut (hors du plugin donc) et quand j'affiche une vue de mon plugin dedans, tout les lien qui y sont (dans layout.ctp), redirige vers le plugin hmm exemple :
/my_proj/pages/display deviens
/my_proj/mon_plugin/pages/display
Zut, super zut

Hors ligne

 

#6 25-03-2013 13:29:34

spout
Cooker
Date d'inscription: 18-12-2010
Messages: 1899

Re: [RESOLU] De l'Utilisation d'un Plugin

Ben soit tu met plugin => false dans ces liens. Soit tu surcharge Helper::url pour détecter si parametre 'plugin' pas défini et le mettre à false dans ce cas. (C'est bizarre, il me semble que c'était par défaut ça).

Hors ligne

 

#7 25-03-2013 14:01:05

Aoernis
Fraisier
Date d'inscription: 30-05-2012
Messages: 50

Re: [RESOLU] De l'Utilisation d'un Plugin

Mettre plugin => false fonctionne bien, mais ça me parait assez contre intuitifs de devoir faire ça partout.

(C'est bizarre, il me semble que c'était par défaut ça).

Bah pour avoir été voir le comportement dans la lib jusqu’à la ligne ou est défini le lien finale, je peut te dire que non hmm Moi aussi je trouve ça étrange, mais on peut voir dans le code de Router.php (ligne 844) que si plugin => false n'est pas défini (et il ne l'est pas par défaut) c'est $params['plugin'] qui se met en place.

Dernière modification par Aoernis (25-03-2013 14:03:18)

Hors ligne

 

#8 25-03-2013 14:03:27

spout
Cooker
Date d'inscription: 18-12-2010
Messages: 1899

Re: [RESOLU] De l'Utilisation d'un Plugin

Donc surcharge le helper.
Un exemple ici avec 'admin', à adapter pour 'plugin': -http://goo.gl/8zm1h

Hors ligne

 

#9 25-03-2013 14:19:13

Aoernis
Fraisier
Date d'inscription: 30-05-2012
Messages: 50

Re: [RESOLU] De l'Utilisation d'un Plugin

Ha youpi. Ça marche bien. Merci du coup de pouce, j'avais jamais surcharger quoi que ce soit, je me demandais comment j'allais faire x)

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr