Probléme Params et checkBox

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Probléme Params et checkBox

    Bonjour dans mon fichier Config.xml j'ai :

    Code:
    <field
    name="listing"
    type="checkboxes"
    label="COM_NGLIBRARY_FIELD_LISTING_LABEL"
    description="COM_NGLIBRARY_FIELD_LISTING_DESC"
    default="cover ,copies"
    >
    <option value="cover" >COM_NGLIBRARY_FIELD_LISTING_COVER_LABEL</option>
    <option value="copies" >COM_NGLIBRARY_FIELD_LISTING_DISPO_LABEL</option>
    <option value="title" >COM_NGLIBRARY_FIELD_LISTING_TITLE_LABEL</option>
    <option value="comments">COM_NGLIBRARY_FIELD_LISTING_RATE_ LABEL</option>
    <option value="author_p" >COM_NGLIBRARY_FIELD_LISTING_AUTHOR_LABEL</option>
    <option value="year" >COM_NGLIBRARY_FIELD_LISTING_YEAR_LABEL</option>
    <option value="genre" >COM_NGLIBRARY_FIELD_LISTING_GENRE_LABEL</option>
    <option value="created_on">COM_NGLIBRARY_FIELD_LISTING_CRE ATED_ON_LABEL</option>
    <option value="hits" >COM_NGLIBRARY_FIELD_LISTING_HITS_LABEL</option>
    </field>
    J'aimerais lors de la mise a jour du composant pour cette version, renseigner les paramètres pour se field.
    Dans mon script j'ai cela :

    Code PHP:
    $params JComponentHelper::getParams('com_nglibrary');
    if ( 
    version_compare$oldRelease'6.1.2''le' ) ) {
    $params['listing'] = 'cover';
    }
    $this->setParams$params ); 
    Résultat dans ma table sql params:
    "listing":"cover,copies,
    je devrais avoir cela :
    "listing":["cover","copies"],
    Merci pour votre aide
    Dernière édition par Slushgood à 25/01/2019, 10h31

  • #2
    Hello Slushgood

    Essayes en précisant que ta valeur 'cover' est un array... meme si il n'y a qu'une valeur
    Code PHP:
    $params['listing'] = array('cover'); 
    Garstud Workshop - Concepteur, Développeur et Formateur Joomla - http://www.garstud.com
    « Ce n’est pas parce que les choses sont difficiles que nous n’osons pas,
    c’est parce que nous n’osons pas qu’elles sont difficiles. »
    - Sénèque

    Commentaire


    • #3
      Hi Garstud,
      Si je fais cela il me récupère juste l'info Array().
      J'ai trouvé, en fait dans ma fonction :

      Code:
          function setParams( $param_array )
          {
              if ( count($param_array) > 0 )
              {
                  // read the existing component value(s)
                  $db = JFactory::getDbo();
                  $db->setQuery('SELECT params FROM #__extensions WHERE element = "com_nglibrary"');
                  $params = json_decode( $db->loadResult(), true );
                  // add the new variable(s) to the existing one(s)
                  foreach ( $param_array as $name => $value )
                  {
                      $params[ (string) $name ] = (string) $value;
                  }
                  // store the combined new and existing values back as a JSON string
                  $paramsString = json_encode( $params );
                  $db->setQuery('UPDATE #__extensions SET params = ' .
                          $db->quote( $paramsString ) .
                          ' WHERE element = "com_nglibrary"' );
                          $db->query();
              }
          }
      J'ai juste ôté (string)

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X