THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je suis en train d'essayer de récupérer tous les couples ATTRIBUTE_ID/ATTRIBUTE_AVAILABILITY_ID dans une loop attribute_combination à l'intérieur d'une loop product_sale_elements. J'arrive à récupérer correctement les outputs ATTRIBUTE_TITLE et ATTRIBUTE_AVAILABILITY_TITLE mais pas moins d'avoir les IDs correspondant ... Une idée ?

{loop name="stock" type="product_sale_elements" product="$ID" order="min_price"}
    {$REF}
    ({loop name="combi" type="attribute_combination" product_sale_elements="$ID" force_return="on"}
        {if $LOOP_COUNT > 1}-{/if}
        {$ATTRIBUTE_ID}. {$ATTRIBUTE_TITLE} = {$ATTRIBUTE_AVAILABILITY_ID}. {$ATTRIBUTE_AVAILABILITY_TITLE}
    {/loop})
{/loop}

Merci d'avance pour vos lumières wink
Simon

PS : Ceci entre dans le cadre d'un petit hack pour pouvoir afficher les déclinaisons de façon unitaire, comme évoqué avec Franck dans un précédent post.

Offline

Offline


Bonjour,

Suite à quelques recherche dans le core de Thelia, je me suis aperçu qu'il y a un oubli dans la loop "AttributeCombination". La doc annonce que les variables $ATTRIBUTE_ID et $ATTRIBUTE_AVAILABILITY_ID sont disponibles alors que ce n'est pas le cas.
Voilà la correction du fichier /core/lib/Thelia/Core/Template/Loop/AttributeCombination.php (ligne 105 - méthode parseResults) :

$loopResultRow
            	->set("ID", $attributeCombination->getAttributeId())
                ->set("LOCALE",$this->locale)
            	->set("ATTRIBUTE_ID", $attributeCombination->getAttributeId())
                ->set("ATTRIBUTE_TITLE", $attributeCombination->getVirtualColumn(AttributeTableMap::TABLE_NAME . '_i18n_TITLE'))
                ->set("ATTRIBUTE_CHAPO", $attributeCombination->getVirtualColumn(AttributeTableMap::TABLE_NAME . '_i18n_CHAPO'))
                ->set("ATTRIBUTE_DESCRIPTION", $attributeCombination->getVirtualColumn(AttributeTableMap::TABLE_NAME . '_i18n_DESCRIPTION'))
                ->set("ATTRIBUTE_POSTSCRIPTUM", $attributeCombination->getVirtualColumn(AttributeTableMap::TABLE_NAME . '_i18n_POSTSCRIPTUM'))
            	->set("ATTRIBUTE_AVAILABILITY_ID", $attributeCombination->getAttributeAvId())
                ->set("ATTRIBUTE_AVAILABILITY_TITLE", $attributeCombination->getVirtualColumn(AttributeAvTableMap::TABLE_NAME . '_i18n_TITLE'))
                ->set("ATTRIBUTE_AVAILABILITY_CHAPO", $attributeCombination->getVirtualColumn(AttributeAvTableMap::TABLE_NAME . '_i18n_CHAPO'))
                ->set("ATTRIBUTE_AVAILABILITY_DESCRIPTION", $attributeCombination->getVirtualColumn(AttributeAvTableMap::TABLE_NAME . '_i18n_DESCRIPTION'))
                ->set("ATTRIBUTE_AVAILABILITY_POSTSCRIPTUM", $attributeCombination->getVirtualColumn(AttributeAvTableMap::TABLE_NAME . '_i18n_POSTSCRIPTUM'));

En espérant que ça puisse aider quelqu'un à l'avenir wink

Offline


Bravo ! De quelle version de Thelia s'agit-il ?

Pour la 2.1, ça a été corrigé: https://github.com/thelia/thelia/commit … 6254829456


OpenStudio Toulouse