[RESOLU]Souci Revolut et Hipay



  • Salut les Phénixiens !
    Le site que j'ai passé sur Phénix utilisait Hipay et Revolut, j'ai donc réinstallé les modules mais j'ai ces messages :

    • Pour Revolut :
    Compatibilité PHP 7.4 > : Ce module revolutpayment utilise une variable en tant que propriété qui n'a pas été déclarée. ["revolutpay_tittle","isPs16","isPs17","isPs8","available_currency_list","card_payments_currency_list","support_link","ps_support_link","autoCancelTimeout","captureMode","default_revolut_reward_banner","default_revolut_benifits_banner","default_revolut_informational_icon","REVOLUT_PAY_INFORMATIONAL_ICON_VARIANTS","revolutApi","payWidgetIsEnabled","cardWidgetIsEnabled","paymentRequestIsEnabled","moduleEnable","authorizeOnly","checkoutWidgetDisplayType","customStatus","autoRefunds","isSandBoxMode","payment_widget_types"]
    
    ×
    Erreur de compilation JavaScript
    Uncaught SyntaxError: Unexpected token '&' dans le fichier: https://fichentr.cds-webassistance.fr/admin771m32itb/index.php?controller=AdminModules&token=fd494c817798e8af2c975c150b5ffa63&configure=revolutpayment&tab_module=payments_gateways&module_name=revolutpayment à la ligne 1707
    
    • Pour Hipay :
    Compatibilité PHP 7.4 > : Ce module hipay_professional utilise une variable en tant que propriété qui n'a pas été déclarée. ["display"]
    

    J'ai interrogé les devs mais ils ne sont pas pressés de répondre ... Quelqu'un aurait-il une idée ?
    Merci d'avance



  • pour les compatibilités (ce ne sont que des warnings) ajoutez les propriétés manquantes en début de fichier en tant que "public"

    Exemple :

    class RevolutPayment extends PaymentModule
    {
    public $revolutpay_tittle;
    public $isPs16;
    public $isPs17;
    public $isPs8;
    etc...
    
    public function __construct()
    {
    

    Pour l'erreur js il faudrait voir la ligne concernée (à mon avis ils ont oublié d'échapper une valeur ou celle-ci est vide)



  • tittle avec 2 t, tiens donc^^



  • Merci Eolia,

    J'ai overridé les 2 modules, plus de warning.
    Pour l'erreur js, comment trouver la ligne fautive ? Dans Sources, il m'indique cette ligne :
    <script type="text/javascript">
    var module_dir = '/modules/';
    var id_language = 1;
    var languages = new Array();
    var vat_number = 0;
    // Multilang field setup must happen before document is ready so that calls to displayFlags() to avoid
    // precedence conflicts with other document.ready() blocks
    languages[0] = {
    id_lang: 1,
    iso_code: 'fr',
    name: 'Français (French)',
    is_default: '1'
    };
    Mais j'ai ouvert quasiment tous les fichiers de Revolut sans voir quelque chose d'approchant.



  • je ne vois pas de & dans les lignes, normalement l'erreur apparait en soulignée rouge (début du soulignement)



  • bon il y a eu correction automatique, il faut lire var module_dir = '/modules/&#039
    idem pour iso_code, etc, les ' sont remplacés par &#039



  • c'est pas normal, peut-être que le module fait un html_encode/url_encode des variables js ?



  • peut-être, en effet, mais où ? Je cherche html_encode dans chacun de ses fichiers ? tpl, js ?



  • je pense avoir trouvé :
    Dans le fichier views/admin/prb-settings.tpl :

    <div class="tab-pane fade {if $section=='prb-settings'}active in{/if}" id="prb-settings" role="tabpanel" aria-labelledby="prb-settings-tab">
        <input type="hidden" class="REVOLUT_PRB_SELECTED_LOCATIONS" value='{$REVOLUT_PRB_LOCATIONS|escape:'htmlall':'UTF-8'}'>
        {html_entity_decode($prb_settings_form|escape:'htmlall':'UTF-8')}
    </div>
    

    j'ai remplacé par :

    <div class="tab-pane fade {if $section=='prb-settings'}active in{/if}" id="prb-settings" role="tabpanel" aria-labelledby="prb-settings-tab">
        <input type="hidden" class="REVOLUT_PRB_SELECTED_LOCATIONS" value={$REVOLUT_PRB_LOCATIONS|json_encode}>
        {$prb_settings_form nofilter}
    </div>
    

    Et l'erreur a disparu
    Donc dans l'override déjà créé pour ajouter toutes les déclarations de variables manquantes pour compatibilité PHP 7.4, modification de la function displayRevolutSettingsPage pour appeler l'override de prb-settings.tpl, et au final, création de l'override de prb-settings.tpl, tout ça pour que cela ne soit pas écrasé en cas de maj du module s'il n'est pas corrigé (en espérant que le dev voudra bien prendre en compte ces modifs car plus de réponse depuis que je lui ai dit que c'était pour Phenix ...).
    Vive l'IA qui m'a aidée à démêler tout cet écheveau !



  • Euh... je ne suis pas une IA^^



  • ah non ? Eol IA ? :-)
    Blague à part, je lui ai soumis des extraits de code que je pensais pouvoir interférer et il m'a indiqué comment corriger le fautif. Je ne voulais pas me vanter d'avoir corriger ça toute seule


Se connecter pour répondre