CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 11-01-2016 00:22:56

Jojohnny20
Pitivier
Date d'inscription: 19-05-2015
Messages: 11

Remonter en haut de la liste :O

Bien que le titre explique très très mal ce que je vais dire, je vais le faire;
tout d'abord, je fais un site en ce moment, logique, le panel admin doit me permettre grâce à des boutons On/off d'activer ou de désactiver un module etc. etc., très simplement, j'essaie de récupérer la valeur d'un Int, et l'appuie sur le bouton et la sauvegarde doit le modifier, j'ai déjà fait une partie due travail, voilà :
tout d'abord le contrôler

Code: php

  1.   public function admin_index(){
  2.     if($this->Auth->user('role') > 1){
  3.       $this->set('config', $this->Informations->find('first', ['conditions' => ['Informations.id' => 1]]));
  4.     }
  5.     else{
  6.       throw new NotFoundException();
  7.     }
  8.   }
  9.  
  10.   public function admin_update_informations(){
  11.     if($this->Auth->user('role') > 1){
  12.       if($this->request->is('post')){
  13.         $this->Informations->id = 1;
  14.         if(isset($this->request->data['Informations']['send_tokens_loss_rate'])){
  15.           $send_tokens_loss_rate = $this->request->data['Informations']['send_tokens_loss_rate'];
  16.           if($send_tokens_loss_rate < 0){
  17.             $this->request->data['Informations']['send_tokens_loss_rate'] = 0;
  18.           }
  19.           if($send_tokens_loss_rate > 100){
  20.             $this->request->data['Informations']['send_tokens_loss_rate'] = 100;
  21.           }
  22.         }
  23.         if($this->Informations->save($this->request->data)){
  24.           $this->Session->setFlash('Fait !', 'error', array('type' => 'succes'));
  25.         }
  26.         return $this->redirect(['controller' => 'informations', 'action' => 'index']);
  27.       }
  28.     }
  29.     else{
  30.       throw new NotFoundException();
  31.     }
  32.   }
  33.  
  34.   public function admin_update_options(){
  35.     if($this->Auth->user('role') > 1){
  36.       if($this->request->is('post')){
  37.         $this->Informations->id = 1;
  38.         if(isset($this->request->data['use_slider'])){
  39.           $this->Informations->saveField('use_slider', 1);
  40.         }
  41.         else{
  42.           $this->Informations->saveField('use_slider', 0);
  43.         }
  44.         if(isset($this->request->data['use_project'])){
  45.           $this->Informations->saveField('use_project', 1);
  46.         }
  47.         else{
  48.           $this->Informations->saveField('use_project', 0);
  49.         }
  50.         $this->Session->setFlash('Fait !', 'error', array('type' => 'succes'));
  51.         return $this->redirect(['controller' => 'informations', 'action' => 'index', '?' => ['tab' => 'options']]);
  52.       }
  53.     }
  54.     else{
  55.       throw new NotFoundException();
  56.     }
  57.   }

Ensuite la partie de la vue concernée

Code: php

  1.                        <div id="tab-2" class="options tab-pane">
  2.                             <div class="panel-body">
  3.                                 <?php echo $this->Form->create('Informations', ['action' => 'update_options']); ?>
  4.                                     <?php
  5.                                     $informations = [
  6.                                     'Activer le slider' => 'use_slider',
  7.                                     'Activer les slogan' => 'use_slogan',
  8.                                     'Activer les para' => 'use_quotes',
  9.                                     'Activer la galerie' => 'use_galery',
  10.                                     'Activer l\' envoi de mail' => 'use_mailing',
  11.                                     'Activer le modul de réseaux sociaux' => 'use_social',
  12.                                     'Activer le module de blog' => 'use_blogs'
  13.                                     ];
  14.                                     $nb = 0;
  15.                                     foreach($informations as $k => $v){
  16.                                         $nb++;
  17.                                         ?>
  18.                                         <div class="form-group">
  19.                                             <b><?php echo $k; ?> ?</b>
  20.                                             <div class="sw-red margin-right-15 pull-left">
  21.                                                 <div class="onoffswitch"><input name="<?php echo $v; ?>" type="checkbox" class="checkboxes onoffswitch-checkbox" <?php if(Ici est la quéstion ??? == 1) echo 'checked="checked"'; ?> id="onoffswitch<?php echo $nb; ?>">
  22.                                                     <label for="onoffswitch<?php echo $nb; ?>" class="onoffswitch-label">
  23.                                                         <div class="onoffswitch-inner"></div>
  24.                                                         <div class="onoffswitch-switch"></div>
  25.                                                     </label>
  26.                                                 </div>
  27.                                             </div>
  28.                                         </div>
  29.                                         <?php
  30.                                     }
  31.                                     ?>
  32.                                     <div class="row">
  33.                                         <div class="col-md-12">
  34.                                             <hr>
  35.                                             <button class="btn btn-w-m btn-primary pull-right" type="submit"><i class="fa fa-check"></i> Confirmer les modifications</button>
  36.                                         </div>
  37.                                     </div>
  38.                                 <?php echo $this->Form->end(); ?>
  39.                             </div>
  40.                         </div>

Donc je souhaite à partir de la vue aller chercher l’information (1 ou 0) dans la base de données directement, si vous aviez une idée, un conseil.
Merci beaucoup.

Ps: toutes mes excuses pour les textes, je suis aussi doué en Français qu'en Php ... -_-

Dernière modification par Jojohnny20 (11-01-2016 00:31:16)

Hors ligne

 

#2 11-01-2016 11:22:22

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Remonter en haut de la liste :O

Salut,
j'ai plusieurs idées, tu es en v2 ou v3 ?


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#3 11-01-2016 18:04:18

Jojohnny20
Pitivier
Date d'inscription: 19-05-2015
Messages: 11

Re: Remonter en haut de la liste :O

Bonjour, Tout d'abord merci,
Je suis en v2 smile
(je trouve ça vachement jolie dans l’organisation et le code me parle beaucoup plus lol)

Hors ligne

 

#4 24-01-2016 13:09:40

Jojohnny20
Pitivier
Date d'inscription: 19-05-2015
Messages: 11

Re: Remonter en haut de la liste :O

Up ??

Hors ligne

 

#5 26-01-2016 10:56:17

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Remonter en haut de la liste :O

Salut,
il faut que tu récupère la valeur de ton record information dans ton controlleur, et tu passes cette variable à ta vue :

Code: php

  1. $information = $this->Informations->findbyId(1);
  2. $this->set('information',$information);

ensuite dans ta vue, tu utilises la valeur de la variable $information pour déterminer si c'est coché ou pas, ca donnerait un peu près ça :

Code: php

  1. <div class="onoffswitch"><input name="<?php echo $v; ?>" type="checkbox" class="checkboxes onoffswitch-checkbox" <?php $information[$v]?"checked":"" ?>

voilà l'idée à développer, ce n'est pas une solution toute faite, juste une piste.
bon courage,
++


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr