CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 19-08-2013 20:05:00

hwiz
Eclair café
Date d'inscription: 25-06-2013
Messages: 48

Problème avec le plugin Media de Graphikart

Bonjour

j'ai un soucis avec le plugin media de Graphikart:

J'ai plusieurs types d'utilsateurs(admin, rédacteur et membre) et lorsque
je me connecte avec un redacteur,
l'interface Tiny MCE ne s'affiche pas lors de la création d'un article

aucun probleme avec un admin par contre

le problème vient donc juste de l'interface Tiny Mce

Je pensais à un probleme d'authorisation..

Articles controller

Code: php

  1. function admin_add($id = null)
  2.     {
  3.                 $this->request->data['Post']['user_id'] = $this->Auth->user('id');
  4.                 $this->request->data['Post']['slug']= NULL;
  5.                 $this->request->data['Post']['post_type_id'] = '2';
  6.                  
  7.                  
  8.                  
  9.                 //on vérifie le type de requete
  10.             if(($this->request->is('put')) || ($this->request->is('post')))
  11.             {
  12.                  
  13.                 //on sauve le contenu en db, la méthode save fait une vérif auto avec les règles de validation (beforesave)
  14.                 if($this->Post->save($this->request->data))
  15.                 {
  16.                     //pour éviter un bug lors de l'ajout d'une image titre.
  17.                     $this->Post->saveField('media_id', $this->admin_addThumb($this->Post->id));
  18.                     $this->Session->write('new_post_id', ($this->Post->id)+1);
  19.                      
  20.                     $this->Session->setFlash("l\'article a bien été créé", "notify");
  21.                     $this->Thumb->clear();
  22.                     $this->redirect(array('action'=>'index'));  
  23.                 }
  24.                 else
  25.                 {
  26.                     $this->Session->setFlash("Une erreur s'est produite lors de la sauvegarde de cet article, reessayer", "notify");
  27.                     $this->redirect(array('action'=>'index'));
  28.                 }
  29.             }
  30.             elseif ($id) //si aucune donnée n'est postée on reste dans l'action courante
  31.             {
  32.                     $this->Post->id = $id;
  33.                     //$this->Session->delete('post_id');
  34.                     $this->request->data= $this->Post->read();
  35.             }
  36.             else
  37.             {
  38.                      
  39.                     $this->request->data = $this->Post->getDraft(2);
  40.                     $post=$this->request->data;
  41.                      
  42.                     $this->Session->write('draft_id', $post['Post']['id']);
  43.                      
  44.                     //$this->Session->write('draft_media_id',$draft['Post']['media_id']);
  45.                      
  46.                     //$this->Post->deleteDraft($draft['Post']['id']);
  47.                      
  48.                     /*echo $this->Session->read('image_titre');
  49.                     $post_id=$this->request->data['Post']['id'];*/      
  50.             }
  51.              
  52.             //on récupère les catégories et on les envoie à la vue
  53.             // logiquement dvrait se trouver dans controller Categories
  54.             //$this->loadModel('Category');
  55.             $categories_to_list['categories']= $this->Post->Category->find('list',array(
  56.                     'fields' => array('category_name')));
  57.             $this->set($categories_to_list);
  58.              
  59.     }
  60.  
  61.     public function admin_addThumb($id)
  62.     {
  63.         $draft_id=$this->Session->read('draft_id');
  64.         $draft=$this->Post->findById($draft_id);
  65.         $media_id=$draft['Post']['media_id'];
  66.         //$this->Session->delete('draft_id');
  67.         return $media_id;
  68.          
  69.     }

la vue

Code: php

  1. <h3> Créer un article </h3>
  2.      
  3.      
  4.      
  5. <?php
  6.     if (!$this->Session->check('new_post_id'))
  7.     {
  8.         $post_id=$this->Session->read('draft_id');
  9.     }
  10.     else
  11.         $post_id=$this->Session->read('new_post_id');
  12.      
  13.     //else $post_id=$this->Session->read('new_post_id');
  14.  
  15.     //echo $this->Session->read('saved_post_id');
  16.     echo $this->Form->create('Post');
  17.      
  18.     echo $this->Form->input('name', array(
  19.                 'label'=> ' Titre de l\'article '));
  20.      
  21.      
  22.     echo $this->Media->iframe('Post', $post_id);
  23.      
  24.     /*echo $this->Form->input('image_titre', array(
  25.                 'type'=>'file',
  26.                 'label'=>'Image titre')
  27.      *
  28.     );*/
  29.     echo $this->Form->input('intro', array(
  30.                 'label'=> ' Intro '));
  31.     echo $this->Media->tinymce('content',array(
  32.                 'label'=> ' Contenu ',
  33.                 'type'=> 'textarea'));
  34.      
  35.     echo $this->Form->input('category_id', array(
  36.                 'label' => ' Categorie '));
  37.      
  38.     echo $this->Form->input('created', array(
  39.                 'label'=> 'Date de publication',
  40.                 'dateFormat' => 'DMY',
  41.                 'timeFormat' => 24,
  42.                 'id'=>'date'));
  43.     echo $this->Form->input('published', array(
  44.                 'label' =>' Publier ',
  45.                 'type'  => 'checkbox',
  46.                 'value'=>'0'));
  47.     echo $this->Form->input('comments_activated', array(
  48.                 'label' =>' Autoriser les commentaires ',
  49.                 'type'  => 'checkbox',
  50.                 'value'=>'0'));
  51.              
  52.      
  53.      
  54.          
  55.     echo $this->Form->submit('Ajouter',
  56.                 array('class' => 'btn btn-green'));
  57.      
  58.     echo $this->Form->end();

Beforefilter d'articles

Code: php

  1. public function beforeFilter()
  2. {
  3.         parent::beforeFilter();
  4.          
  5.         if($this->Auth->user('group_id') == 1 || $this->Auth->user('group_id') == 2 )
  6.         {
  7.             $this->Auth->allow();
  8.         }

cette solution est un poil foireuse mais pas le temps d'en trouver une meilleure

Merci pour votre aide/idées/suggestions

Hors ligne

 

#2 20-08-2013 09:16:41

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

Re: Problème avec le plugin Media de Graphikart

Et la console JS de ton browser elle dit quoi ?

Hors ligne

 

#3 23-08-2013 22:29:52

Kareylo
Chouquette
Date d'inscription: 23-08-2013
Messages: 1

Re: Problème avec le plugin Media de Graphikart

Dans le controller de tes articles, tu as bien la méthode canUploadMedias ? Tu pourrais faire un truc comme ça :

Code: php

  1. public function canUploadMedias($model, $id){
  2.     if($this->Auth->user('group_id') == 1 || $this->Auth->user('group_id') == 2 )
  3.         {
  4.             return true; // Admins et Rédacteurs peuvent uploader des Médias
  5.         }
  6.     return false; // Les autres ne peuvent pas
  7. }

Il me semble que le plugin a besoin de cette autorisation pour afficher tinymce, ckeditor ou redactor.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr