Jump to content

[SUGGESTION AMELIORATION] fields_form_override AdminController


Recommended Posts

Bonjour,

 

Tout d'abord ceci n'est pas un bug mais une suggestion d'amélioration qui me semble plutôt logique.

 

A la ligne 1590 du fichier classes/AdminController.php

  // For add a fields via an override of $fields_form, use $fields_form_override
  if (is_array($this->fields_form_override) && !empty($this->fields_form_override))
$this->fields_form[0]['form']['input'][] = $this->fields_form_override;

 

Ce qui ne laisse comme possibilité d'ajouter qu'un seul et unique champ en overide...

 

Ne faudrait il pas joué avec un tableau ? on pourrai ajouter un nombre de champs infinis... ce qui m'aurai surement fait gagner plusieurs minutes aujourd'hui (à part si un moyen existe et que je n'en connait pas l'existence)

 

Désolé si ce n'est pas dans la bonne section.

 

Merci.

Link to comment
Share on other sites

Bonjour,

 

L'avez vous déjà essayé ?

 

Il ne peux contenir qu'un seul champ,

le is_array permet uniquement de détecter si le fields_form_override contient bien le name, le type, le size (en option), etc...

 

Mais ne permet pas d'en ajouter plusieurs...

 

J'ai bricoler cette syntaxe (loin d'être propre) en override du AdminController qui fonctionne :

// For add a fields via an override of $fields_form, use $fields_form_override
  if (is_array($this->fields_form_override) && !empty($this->fields_form_override))
  {
foreach($this->fields_form_override as $field)
 if(!is_array($field))
 {
  $this->fields_form[0]['form']['input'][] = $this->fields_form_override;
  break;
 }
 else
  $this->fields_form[0]['form']['input'][] = $field;
  }

Edited by Flo_180 (see edit history)
Link to comment
Share on other sites

Effectivement j'avais pas vu qu'on ne peut pas mettre plusieurs champ, j'en avais pas eu besoin non plus.

 

Je pense que le plus simple est de corriger comme ceci:

 

if (is_array($this->fields_form_override) && !empty($this->fields_form_override))
$this->fields_form[0]['form']['input'] = array_merge($this->fields_form[0]['form']['input'], $this->fields_form_override);

 

ensuite on peut créer nos tableau tranquillement :

 

$this->fields_form_override = array(
  array(
'type' => 'radio',
'label' => $this->l('Exemple:'),
'name' => 'exemple',
'class' => 't',
'is_bool' => true,
'values' => array(
 array(
  'id' => 'exemple_on',
  'value' => 1,
  'label' => $this->l('Yes')
 ),
 array(
  'id' => 'exemple_off',
  'value' => 0,
  'label' => $this->l('No')
 ),
),
'desc' => $this->l('exmple')
  ),
  array(
'type' => 'radio',
'label' => $this->l('Exemple:'),
'name' => 'exemple',
'class' => 't',
'is_bool' => true,
'values' => array(
 array(
  'id' => 'is_virtual_attribute_on',
  'value' => 1,
  'label' => $this->l('Yes')
 ),
 array(
  'id' => 'is_virtual_attribute_off',
  'value' => 0,
  'label' => $this->l('No')
 ),
),
'desc' => $this->l('exmple')
  )
 );

Link to comment
Share on other sites

Oops, je croyais que tu était développeur, en faite tu peut rajouter une condition pour vérifier que c'est bien un tableau multiple

 

// For add a fields via an override of $fields_form, use $fields_form_override
if (is_array($this->fields_form_override) && !empty($this->fields_form_override))
 if(is_array(reset($this->fields_form_override)))
     $this->fields_form[0]['form']['input'] = array_merge($this->fields_form[0]['form']['input'], $this->fields_form_override);
 else
     $this->fields_form[0]['form']['input'][] = $this->fields_form_override;

Link to comment
Share on other sites

Bonjour,

Héhé :D ce n'est pas un bug ? bon ben alors on ne va pas le mettre ici ^_^

 

Ce forum est important pour faciliter le travail des développeurs qui tentent de corriger les bugs, merci donc de lire ses règles : http://www.prestasho...-dans-ce-forum/

 

Je vais suggérer une partie "suggestions" en attendant, je déplace et précise votre titre.

 

voilou,

Merci :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...