Jump to content

block-order-detail problème d'opacité


Recommended Posts

Bonjour, j'ai un problème sur mon site, quand un client se connecte et qu'il va dans l'historique de ses commande le texte devient trop clair.

Quand j'inspecte la page avec google chrome je m'aperçoit que ça vient de l'opacité et qu'il faudrait mettre la valeur "1" mais je ne trouve pas le fichier à modifier.

Quelqu'un peut m'aider?

Merci

 

<div id="block-order-detail" class="unvisible" style="display: block; opacity: 0.427456;">
Link to comment
Share on other sites

Bonjour,

Ça dépend de votre thème, mais vérifiez typiquement /themes/xxx/history.tpl et /themes/xxx/js/history.js

Sinon, une URL pourrait aider à localiser l'origine de l'opacité.

Merci, je vient de regarder mais ce n'est pas dans /themes/xxx/history.tpl et /themes/xxx/js/history.js

Voici l'url de ma boutique mais il faut le comte d'un client qui a déjà passé une commande pour voir le bug et vous comprendrez que je ne peux fournir cela.

Ce qui est curieux quand même c'est que l'opacité n'est jamais la même pou un même compte; comme si il y avait une réaction à la luminosité pourtant rien à voir avec l'écran...

https://vibrationscristallines.fr/historique-des-commandes

Link to comment
Share on other sites

Il semble sur le site que la réponse AJAX lors de la sélection d'une commande de l'historique contienne un script JS qui inclut jQuery (et redéfinit $), mais sans les extensions initialement chargées, en particulier uniform, footable et easing. Du coup, après avoit visualisé une commande, il y a tout un tas d'erreurs JS (par exemple en retaillant la fenêtre). Quant à l'opacité je dirais qu'elle se bloque sur une valeur intermédiaire (lors du fadeOut) à cause de ces multiples erreurs.

 

Je vous conseillerais d'éviter de charger jQuery plusieurs fois (vérifiez ce qui se passe à la fin de themes/xxx/order-detail.tpl, ou bien dans /controllers/front/OrderDetailController.php ou sa surcharge)

Link to comment
Share on other sites

Il semble sur le site que la réponse AJAX lors de la sélection d'une commande de l'historique contienne un script JS qui inclut jQuery (et redéfinit $), mais sans les extensions initialement chargées, en particulier uniform, footable et easing. Du coup, après avoit visualisé une commande, il y a tout un tas d'erreurs JS (par exemple en retaillant la fenêtre). Quant à l'opacité je dirais qu'elle se bloque sur une valeur intermédiaire (lors du fadeOut) à cause de ces multiples erreurs.

 

Je vous conseillerais d'éviter de charger jQuery plusieurs fois (vérifiez ce qui se passe à la fin de themes/xxx/order-detail.tpl, ou bien dans /controllers/front/OrderDetailController.php ou sa surcharge)

Merci, cela viendrait de la version de java installée sur ma machine alors?

Voici la fin de themes/xxx/order-detail.tpl :

 

{/if}
{if isset($errors) && $errors}
<div class="alert alert-danger">
<p>{if $errors|@count > 1}{l s='There are %d errors' sprintf=$errors|@count}{else}{l s='There is %d error' sprintf=$errors|@count}{/if}</p>
<ol>
{foreach from=$errors key=k item=error}
<li>{$error}</li>
{/foreach}
</ol>
</div>
{/if}
{if isset($message_confirmation) && $message_confirmation}
<p class="alert alert-success">
{l s='Message successfully sent'}
</p>
{/if}
<form action="{$link->getPageLink('order-detail', true)|escape:'html':'UTF-8'}" method="post" class="std" id="sendOrderMessage">
<h3 class="page-heading bottom-indent">{l s='Add a message'}</h3>
<p>{l s='If you would like to add a comment about your order, please write it in the field below.'}</p>
<p class="form-group">
<label for="id_product">{l s='Product'}</label>
<select name="id_product" class="form-control">
<option value="0">{l s='-- Choose --'}</option>
{foreach from=$products item=product name=products}
<option value="{$product.product_id}">{$product.product_name}</option>
{/foreach}
</select>
</p>
<p class="form-group">
<textarea class="form-control" cols="67" rows="3" name="msgText"></textarea>
</p>
<div class="submit">
<input type="hidden" name="id_order" value="{$order->id|intval}" />
<input type="submit" class="unvisible" name="submitMessage" value="{l s='Send'}"/>
<button type="submit" name="submitMessage" class="button btn btn-default button-medium"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button>
</div>
</form>
{else}
<p class="alert alert-info"><i class="icon-info-sign"></i>{l s='You cannot return merchandise with a guest account'}</p>
{/if}
{/if}
Link to comment
Share on other sites

Non, pas de problème de version (et encore moins de Java, on parle de JavaScript). Et le problème n'est pas dans le template ci-dessus, mais sans doute dans le controller.

Il faudrait vérifier la classe OrderDetailController et sa hiérarchie (en n'oubliant pas les surcharges). Sauriez-vous faire?

Link to comment
Share on other sites

J'ai trouvé, c'est un bug connu et corrigé entre PS 1.6.0 et PS.1.6.1: http://forge.prestashop.com/browse/PSCSX-2361

 

Editez le fichier /classes/controller/Controller.php et remplacez la ligne 430:

echo ($defer ? $html.$javascript : str_replace($js_tag, $javascript, $html)).$live_edit_content.((!isset($this->ajax) || ! $this->ajax) ? '</body></html>' : '');

par:

if ($defer && (!isset($this->ajax) || ! $this->ajax)) {
    echo $html.$javascript;
} else {
    echo preg_replace('/(?<!\$)'.$js_tag.'/', $javascript, $html);
}
echo $live_edit_content.((!isset($this->ajax) || ! $this->ajax) ? '</body></html>' : '');

Cela évitera l'inclusion du JS dans les réponses AJAX

 

Link to comment
Share on other sites

 

J'ai trouvé, c'est un bug connu et corrigé entre PS 1.6.0 et PS.1.6.1: http://forge.prestashop.com/browse/PSCSX-2361

 

Editez le fichier /classes/controller/Controller.php et remplacez la ligne 430:

echo ($defer ? $html.$javascript : str_replace($js_tag, $javascript, $html)).$live_edit_content.((!isset($this->ajax) || ! $this->ajax) ? '</body></html>' : '');

par:

if ($defer && (!isset($this->ajax) || ! $this->ajax)) {
    echo $html.$javascript;
} else {
    echo preg_replace('/(?<!\$)'.$js_tag.'/', $javascript, $html);
}
echo $live_edit_content.((!isset($this->ajax) || ! $this->ajax) ? '</body></html>' : '');

Cela évitera l'inclusion du JS dans les réponses AJAX

 

Un GRAND merci ça marche!

Je ne met pas à jour prestashop car j'ai fait pas mal de modifications notamment du module configurateur de theme et j'ai peur de perdre mon travail...

Bonne journée

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