Bonjour,
J'ai mis à jour un site qui était en 2.2.2 en 2.3.4 et une fonctionnalité déconne depuis.
J'ai un formulaire au sein d'une loop dans le template account.html qui permet de s'abonner ou de se désabonner de la newsletter (le tout en AJAX).
{assign 'email_customer' $EMAIL}
{assign 'firstname_customer' $FIRSTNAME}
{assign 'lastname_customer' $LASTNAME}
{loop type="newsletter" name="newsletter-list" email=$email_customer}
<form class="form-newsletter" action="{url path="/newsletter-unsubscribe"}" method="post">
<input type="hidden" name="id" value="{$ID}">
<input type="hidden" name="email" value="{$EMAIL}">
<div class="form-group group-btn">
<div class="control-btn">
<button type="submit" class="btn btn-newsletter"><i class="fa fa-chevron-right"></i> {intl l="Se désabonner de la newsletter"}</button>
</div>
</div><!--/.form-group-->
</form>
{/loop}
{elseloop rel="newsletter-list"}
{form name="thelia.front.newsletter"}
<form id="form-newsletter" class="form-newsletter" action="{url path="/newsletter"}" method="post">
{form_hidden_fields}
{form_field field="success_url"}
<input type="hidden" name="{$name}" value="{url path="/account"}">
{/form_field}
{form_field field="email"}
<input type="hidden" name="{$name}" value="{$email_customer}">
{/form_field}
{form_field field="firstname"}
<input type="hidden" name="{$name}" value="{$firstname_customer}">
{/form_field}
{form_field field="lastname"}
<input type="hidden" name="{$name}" value="{$lastname_customer}">
{/form_field}
<div class="form-group group-btn">
<div class="control-btn">
<button type="submit" class="btn btn-newsletter"><i class="fa fa-chevron-right"></i> {intl l="S'abonner à la newsletter"}</button>
</div>
</div><!--/.form-group-->
</form>
{/form}
{/elseloop}
(...)
{block name="after-javascript-include"}
<script>
$(document).ready(function(){
$('.form-newsletter').on('submit', function() {
var c = confirm('{intl l="Êtes-vous sur de vouloir réaliser cette action ?" d="fo.lcv"}');
return c; //you can just return c because it will be true or false
});
});
</script>
{hook name="account.after-javascript-include"}
{/block}
Evidemment, la loop de type "newsletter" n'existe pas. J'obtiens cette erreur :
ELEMENTNOTFOUNDEXCEPTION IN THELIALOOP.PHP LINE 391:
LOOP TYPE 'NEWSLETTER' IS NOT DEFINED.
Ce que je ne comprends pas, c'est que ça fonctionnait dans la version précédente, et que ce ne soit plus le cas en 2.3.4.
Au début je pensais que mon prédécesseur avait modifié un fichier du Core pour que ça fonctionne mais j'ai beau fouillé, je n'ai rien trouvé dans les anciens fichiers.
Auriez-vous une idée de ce que je peux faire pour faire fonctionner cette fonctionnalité ? Voire contourner le problème ?
Last edited by HeishPi (11-04-2019 10:28:38)