2014-06-24 4 views
0

Prestashop 1.6에서 실행되는 사이트가 있습니다. 우리는 기본 상점뿐만 아니라 몇 명의 multishops를 설치하고 설치할 수있었습니다. 우리가 가지고있는 문제는 우리 지역에 대한 다중 경로를 계속 만들고이 상점에 제품을 추가 할 때 이러한 제품이 기본 "마스터"상점에 표시되기를 바랍니다. 이 일을 처리 할 수있는 방법이 있습니까?prestashop의 제품 목록

답변

0

이 종류의 사용자 지정을 코드에서 수행해야하지만 매우 어렵지는 않습니다. 제품을 쿼리하고 표시 후크 (예 : displayLeftColumnProduct 또는 displayHome)에 제품을 표시하는 모듈을 만들 수 있습니다.

두 번째 방법은 재정의를 사용하는 것입니다. Product 클래스 또는 ProductController을 재정의 할 수도 있지만 여기에서는 재정의로이를 수행하는 방법을 보여줍니다.

getProducts 방법에서는 Product 클래스를 보면 (https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/Product.php#L1069)는이 가게 가입 만드는 Shop::addSqlAssociation('product', 'p')에 대한 호출이있다. 합격을 위해 Shop::addSqlAssociation 메소드 (https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/shop/Shop.php#L954)를 재정의하고 현재 상점이 "마스터"인지 확인해야합니다 (예 :

class Shop extends ShopCore { 

    public static function addSqlAssociation($table, $alias, $inner_join = true, $on = null, $force_not_default = false) 
    { 
     // It better to check using URL 
     if (self::$context_id_shop == 1) return ''; 
     return parent::addSqlAssociation($table, $alias, $inner_join, $on, $force_not_default); 
    } 
} 
).