Jump to content

[TIP] Ordinare le caratteristiche di un prodotto


vinoalvino

Recommended Posts

Di certo saprete che se anteponete 01. 02. 03. .... alle categorie potete visualizzarle ordinate; il prefisso non viene visualizzato. Con poche righe di codice sono riuscito ad applicare la stessa funzionalità alle caratteristiche di un prodotto.

Si tratta di modificare il file: classes/Product.php (fatene prima una copia per sicurezza!)

Verso la fine del file c'è il seguente codice:

   /*
   * Select all features for a given language
   *
   * @param $id_lang Language id
   * @return array Array with feature's data
   */
   static public function getFrontFeaturesStatic($id_lang, $id_product)
   {
       return Db::getInstance()->ExecuteS('
       SELECT name, value, pf.id_feature
       FROM '._DB_PREFIX_.'feature_product pf
       LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = pf.id_feature AND fl.id_lang = '.intval($id_lang).')
       LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = pf.id_feature_value AND fvl.id_lang = '.intval($id_lang).')
       WHERE pf.id_product = '.intval($id_product));
   }



modificatelo come segue:

   /*
   * Select all features for a given language
   *
   * @param $id_lang Language id
   * @return array Array with feature's data
   * MODIFICATO il 3/09/2008
   */
   static public function getFrontFeaturesStatic($id_lang, $id_product)
   {

       $result =  Db::getInstance()->ExecuteS('
       SELECT name, value, pf.id_feature
       FROM '._DB_PREFIX_.'feature_product pf
       LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = pf.id_feature AND fl.id_lang = '.intval($id_lang).')
       LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = pf.id_feature_value AND fvl.id_lang = '.intval($id_lang).')
       WHERE pf.id_product = '.intval($id_product).'
       ORDER BY `name`');

       /* Modify SQL result */
       $resultsArray = array();
       foreach ($result AS $row)
       {
           $row['name'] = preg_replace('/^[0-9]+\./', '', $row['name']);
           $resultsArray[] = $row;
       }
       return $resultsArray;

   }



Ora modificate le singole caratteristiche (Features) anteponendo il prefisso di ordinamento.

  • Like 1
Link to comment
Share on other sites

  • 6 months later...
  • 10 months later...
  • 1 month later...

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...