CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 01-05-2016 12:12:33

panterofys
Chouquette
Date d'inscription: 01-05-2016
Messages: 2

header dynamique cell problème

Bonjour à toutes et à tous,

Voici mon problème :
Je suis en train de créer un cms avcec Cakephp 3.

Afin d'avoir un menu dynamique et de récupérer la page courante je fais une requête.
Afin de ne pas avoir à faire cette requête dans tout les controllers et/ou dans toutes les actions d'un controller, j'ai donc créé une cell et une méthode menu.
Je récupère bien mon menu et ma page courante dans un element Header.ctp en faisant :

Code: php

  1. <?php $menu = $this->cell('Inbox::menu'); ?>
  2. <?=$menu;?>

Jusqu'ici tout va bien cependant dans mon header je voudrais aussi récupérer la balise title en base de donnée, et pour cela je fais une autre méthode dans cette cell, mais cette méthode fais exactement les mêmes requêtes je renvois simplement une variable différente, voici le code :

Code: php

  1. <?php
  2.  
  3. namespace App\View\Cell;
  4.  
  5. use Cake\View\Cell;
  6.  
  7. class InboxCell extends Cell
  8. {
  9.  
  10.     public function menu()
  11.     {
  12.          $this->loadModel('Pages');
  13.          $pages = $this->Pages->find('all');
  14.          $slug = $this->request->pass;
  15.          $action = $this->request->action;
  16.          if (empty($slug) && $action == 'contact') {
  17.              $currentPage = 'contact';
  18.          }
  19.  
  20.          else if (empty($slug)) {
  21.                 $currentPage = 'home';
  22.          }
  23.  
  24.          else {
  25.                 $currentPage = $slug[0];            
  26.          }
  27.          $titlePage = $this->Pages->find('all')->where(['slug'=>$currentPage])->first()->title;
  28.  
  29.          $this->set(compact('currentPage','pages'));
  30.     }
  31.  
  32.     public function titlePage()
  33.     {
  34.          $this->loadModel('Pages');
  35.          $pages = $this->Pages->find('all');
  36.          $slug = $this->request->pass;
  37.          $action = $this->request->action;
  38.          if (empty($slug) && $action == 'contact') {
  39.              $currentPage = 'contact';
  40.          }
  41.  
  42.          else if (empty($slug)) {
  43.                 $currentPage = 'home';
  44.          }
  45.  
  46.          else {
  47.                 $currentPage = $slug[0];            
  48.          }
  49.          $titlePage = $this->Pages->find('all')->where(['slug'=>$currentPage])->first()->title;
  50.  
  51.          $this->set(compact('titlePage'));
  52.     }
  53. }

Je me demandais donc s'il n y avait pas un moyen de partager la requête dans mes deux méthodes pour pas avoir à faire deux fois la même dans deux méthodes différentes. Même si tout fonctionne c'est pas top quoi.

Avez vous une idée ? ou peut-être un conseil à me donner ? j'ai peut-être pas la bonne manière de faire dès le début...

Merci d'avance.

Hors ligne

 

#2 03-05-2016 10:39:15

panterofys
Chouquette
Date d'inscription: 01-05-2016
Messages: 2

Re: header dynamique cell problème

Bonjour,
bon j'ai foutu tout mon header et mon menu dans une cell header, et je n'utilise pas le fetch et compagnie.
J'ai mis toutes les meta et title en base de donnée et je set mes variables depuis ma cell, plus de prises de tête.
Merci à bientôt

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr