THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Pour notre projet de marketplace, j'ai créé un objet Seller. J'aimerais générer une url public pour chaque instance de cette objet.
J'ai regarder comment c'est fait pour l'objet Product et ai tenté de le faire pour mon objet Seller.
J'ai donc dans thelia\local\modules\ArtabanMarketplace\Loop\SellerLoop.php :

....
class SellerLoop extends BaseI18nLoop implements PropelSearchLoopInterface {
....
public function parseResults(LoopResult $loopResult) {
....
->set("URL", $this->getReturnUrl() ? $seller->getUrl($this->locale) : null)
.....

mais ça n'a pas l'air de marcher...

Une piste ?

Merci d'avance.

Offline


Pour que ça puisse fonctionner, il faut que tu génères l'URL ré-écrite de ton objet Seller et qu'elle soit stockée dans la table des ré-écritures. Tu peux utiliser pour ça le trait UrlRewritingTrait dans ton modèle Seller (inspire toi de ce qui est fait dans model core/lib/Thelia/Model/Brand.php par exemple).

Tu devras en particulier implémenter le méthode getRewrittenUrlViewName(), qui indique le nom de la vue (= du template, sans doute dans ton cas "seller" ?)

Enfin, au moment où tu créeras un nouveau Seller, il faudra appeler la méthode generateRewrittenUrl() pour générer l'URL ré-ecrite de ce nouvel objet.


OpenStudio Toulouse

Offline


Merci de ces explications.