2017-03-03 16 views
1

나는 몇 년 전에 개발 된 Prestashop 모듈을 가지고 있습니다. 모듈은 선택된 카테고리를 기반으로 새로운 제품을 표시합니다. 최근에 상점 (예 : en, fr)에 대한 언어 설정이 두 개 이상 있고 영어와 프랑스어로 카테고리 이름을 편집하는 경우 발견되었습니다. 모듈은 활성화 된 상점 언어를 기반으로 한 이름을 표시하는 대신 두 이름을 프론트 엔드에 모두 표시합니다.Prestashop SQL 활성 언어의 카테고리 이름을 표시하는 쿼리

public function hookdisplayHome($params) 
{ 
    $list_id_category= Tools::jsonDecode(Configuration::get('PS_NB_NEW_PRODUCT_CATEGORY')); 
    $resuilt_category=array(); 
    if($list_id_category) 
    { 
     $sql="select distinct id_category,name from "._DB_PREFIX_."category_lang where id_category in (".implode(',',$list_id_category).")"; 
     $categories=Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); 
    } 
    if (!$this->isCached('blocknewproducts_home.tpl', $this->getCacheId('blocknewproducts-home'))) 
     BlockNewProducts1::$cache_new_products = $this->getNewProducts(); 
    { 
     $this->smarty->assign(array(
      'new_products' => BlockNewProducts1::$cache_new_products, 
      'categories' =>$categories, 
      'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 
      'homeSize' => Image::getSize(ImageType::getFormatedName('home')) 
     )); 
    } 

    if (BlockNewProducts1::$cache_new_products === false) 
     return false; 
    $this->pagination(count($this->getAllNewProducts($this->context->language->id))); // by ats_edited 

    return $this->display(__FILE__, 'blocknewproducts_home.tpl', $this->getCacheId('blocknewproducts-home')); 
} 

누군가가 활성 언어의 범주 이름을 얻기 위해 편집해야이 코드의 어떤 라인을 제안 할 수 있습니다 :

나는 편집 내부에 아래의 코드가 카테고리 목록을 가져 blocknewproduct.php 생각 표시됩니다.

blocknewproducts_home.tpl 파일에서 아래의 코드는 목록을 표시하는 데 사용됩니다.

<ul class="list-category-new-product plists"> 
        <li class="plist {if !isset($id_category_select) || !$id_category_select}active{/if}"><a href="#" data-id="0" title="{l s='All' mod='blocknewproducts1'}">{l s='All' mod='blocknewproducts1'}</a></li> 
        {foreach from=$categories item='category'} 
         <li class="plist {if $category.id_category==$id_category_select}active{/if}"><a href="#" data-id="{$category.id_category}" title="{$category.name}">{$category.name}</a></li> 
        {/foreach} 
       </ul> 

죄송합니다. 저는 프로그래머가 아니며 웹 디자이너이기 때문에 명확한 도움이 필요합니다.

답변

0

변화는 $ SQL에 : 나는 그것을 원하는

$sql="select distinct id_category,name from "._DB_PREFIX_."category_lang where id_category in (".implode(',',$list_id_category).") and id_lang = ".(int) $this->context->language->id; 
+0

이 완벽했다. 감사! – atsngr