Bonjour,
Nous utilisons thelia pour la boutique de notre association. Nous voudrions développer un module qui puisse permettre de gérer l'envoi de dons, donc un produit dont le prix serait libre.
Cela nécessiterait pour ce produit de masquer le prix et la quantité et d'afficher un champ pour le prix à la place dans la page produit.
Voilà le morceau de code de la template product.html sur laquelle nous aimerions que le module applique la modif (j'ai masqué les morceau moins intéressants):
<div class="product-price" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
[...]
<div class="price-container">
[...]
<span id="pse-promo">
<span class="special-price"><span class="price-label">{intl l="Special Price:"} </span><span id="pse-price" class="price">{format_money number=$TAXED_PROMO_PRICE symbol={currency attr="symbol"}}</span></span>
<meta itemprop="price" content="{$TAXED_PROMO_PRICE}">
[...]
</span>
</div>
[...]
</div>
{form name="thelia.cart.add" }
<form id="form-product-details" action="{url path="/cart/add" }" method="post" class="form-product">
[...]
<fieldset class="product-cart form-inline">
{form_field field='quantity'}
<div class="form-group group-qty {if $error}has-error{elseif $value != "" && !$error}has-success{/if}">
<label for="{$label_attr.for}">{$label}</label>
<input type="number" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value|default:1}" min="1" required>
{if $error }
<span class="help-block">{$message}</span>
{elseif $value != "" && !$error}
<span class="help-block"><i class="fa fa-check"></i></span>
{/if}
</div>
{/form_field}
<div class="form-group group-btn">
<button id="pse-submit" type="submit" class="btn btn_add_to_cart btn-primary"><i class="fa fa-chevron-right"></i> {intl l="Add to cart"}</button>
</div>
</fieldset>
</form>
Le problème, c'est qu'il n'y a pas l'air d'y avoir de hook pour remplacer cette partie de la page ? Est-il possible d'en ajouter un?
Sinon, on aurait plusieurs pistes pour ça, mais qui semble un peu compliquées par rapport au besoin. On pensait overrider tout le template product.html pour rajouter les hooks dont on a besoin (ou plutôt les ifhook) : y a-t-il une façon plus propre de faire ça que de C/C le répertoire templates/frontOffice/default en templates/frontOffice/myTheme juste pour changer un fichier ?
Est-ce que la façon propre serait d'utiliser du custom routing ?
Merci d'avance pour vos conseils / remarques / réponses