Récemment Two Installation Blocking Bugs

  • Forgive me if I am telling you something you already know, I am relatively new the PhenixSuite. While attempting to install on a debian test machine I ran into two problems. I surely can't be the first to discover them. The first is caused but the use of an unescaped MySQL reserved word as a table name. The second by an unencoded & in the name of a TAB. I enclose the relevant patches below. Maybe I've been staring at code for too long, but on the other hand maybe it will help someone else!

    diff a/install/classes/xmlLoader.php b/install/classes/xmlLoader.php
    --- a/install/classes/xmlLoader.php	2023-02-13 13:54:58.000000000 +0000
    +++ b/install/classes/xmlLoader.php	2023-07-16 13:30:51.764484508 +0000
    @@ -578,7 +578,7 @@ class InstallXmlLoader
         public function generatePrimary($entity, $primary)
             if (!isset($this->primaries[$entity])) {
    -            $this->primaries[$entity] = (int)Db::getInstance()->getValue('SELECT '.$primary.' FROM '._DB_PREFIX_.$entity.' ORDER BY '.$primary.' DESC');
    +            $this->primaries[$entity] = (int)Db::getInstance()->getValue('SELECT '.$primary.' FROM `'._DB_PREFIX_.$entity.'` ORDER BY '.$primary.' DESC');
             return ++$this->primaries[$entity];
    diff a/install/langs/en/data/tab.xml b/install/langs/en/data/tab.xml
    --- s/install/langs/en/data/tab.xml	2023-03-17 19:07:54.000000000 +0000
    +++ b/install/langs/en/data/tab.xml	2023-07-16 12:02:23.991545234 +0000
    @@ -75,7 +75,7 @@
       <tab id="Maintenance" name="Maintenance"/>
       <tab id="Geolocation" name="Geolocation"/>
       <tab id="Configuration_Information" name="Configuration Information"/>
    -  <tab id="Performance" name="Performance & Security"/>
    +  <tab id="Performance" name="Performance &amp; Security"/>
       <tab id="E-mail" name="E-mail"/>
       <tab id="Multistore" name="Multistore"/>
       <tab id="CSV_Import" name="CSV Import"/>

  • Thank you for your feedback @Bitfarmer ;)
    The 2 fixes have been applied in the next version

  • @eolia I'm delighted to help. I found another one while debugging a different problem, this one is in the runtime rather than the installation directory. It's just another SQL reserved word issue:

    diff a/classes/Product.php b/classes/Product.php
    --- a/classes/Product.php	2023-07-28 20:40:48.000000000 +0000
    +++ b/classes/Product.php	2023-08-02 11:16:45.000000000 +0000
    @@ -5263,7 +5263,7 @@ class ProductCore extends ObjectModel
    					 AND `fl`.`id_lang` = '.(int)$id_lang.')
    				 INNER JOIN '._DB_PREFIX_.'feature_value `fv`
    					 ON(`fv`.`id_feature_value` = `pf`.`id_feature_value`)
    -                LEFT JOIN '._DB_PREFIX_.'separator `s`
    +                LEFT JOIN `'._DB_PREFIX_.'separator` `s`
    					 ON(`s`.`id_separator` = `f`.`id_separator`)
    				 '.($use_bl ? 'LEFT JOIN `'._DB_PREFIX_.'layered_indexable_feature_lang_value` `liflv`
    								 ON(`f`.`id_feature` = `liflv`.`id_feature`

  • @Bitfarmer Thanks !

Se connecter pour répondre