2016-03-30 16 views
2

OpenCartバージョン2.1.0.2余分な製品タブ(OpenCart)

hereあるを追加します。 3つの商品タブ(説明、レビュー、カスタムタブ)があります。

管理パネルから各製品の情報を個別に追加する可能性のある別のタブを追加する必要があります。

  1. は私が/catalog/language/*/product/product.phpするに

    <li><a href="#tab-video" data-toggle="tab"><?php echo $tab_video; ?></a></li> 
    
  2. を/catalog/view/theme/default/product/product.tplに追加した

    $_['tab_video'] = 'Video'; 
    
  3. は/catalog/controller/product/product.phpするに

    $data['tab_video'] = $this->language->get('tab_video'); 
    
  4. 私は今、私は管理パネルで製品ページおよびフィールドにそのタブを参照してください

<label class="col-sm-2 control-label" for="input-video<?php echo $language['language_id']; ?>"><?php echo $entry_video; ?></label> 
<div class="col-sm-10"> 
    <textarea name="product_video[<?php echo $language['language_id']; ?>][video]" placeholder="<?php echo $entry_video; ?>" id="input-video<?php echo $language['language_id']; ?>"> 
    <?php echo isset($product_video[$language['language_id']]) ? $product_video[$language['language_id']]['video'] : ''; ?> 
    </textarea> 
</div> 

テンプレート/カタログ/ product_form.tpl /管理/ビューにコードを追加しました。しかし、私はこのエラーがあります:

Notice: Undefined variable: entry_video in /home/morganit/morgan-it.com.ua/italiavogs/admin/view/template/catalog/product_form.tpl on line 66

どのように私はそれをデータベースに接続し、それを正しく動作させることができますか?

+0

を追加また、あなたの新しいフィールドの値を保持するために、製品テーブルにデータベースのカラムを追加また、管理製品のコントローラとモデルを編集する必要があります。 –

答えて

5

あなたは言語だけでなく、そのようなのcontrolerに変数$ entry_videoを定義する必要がまず第一に:

1 - 言語/admin/language/*/catalog/product.php

$_['entry_video'] = 'Video'; 

2 - コントローラ/admin/controller/catalog/product.php

実際にはgetForm()

$data['entry_video'] = $this->language->get('entry_video'); 

PRODUCT_DESCRIPTIONテーブルにビデオ(text型)という名前の1列を追加

3 - モデル/admin/model/catalog/product.phpアクションgetProductDescriptions()

meta_keyword => $result['meta_keyword']アクションの/admin/model/catalog/product.phpで今

'video'  => $result['video'], 

後に以下を追加します。 addProduct() & editProduct()変更

foreach ($data['product_description'] as $language_id => $value) { 
      $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'"); 
     } 

foreach ($data['product_description'] as $language_id => $value) { 
      $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', video = '" . $this->db->escape($value['video']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'"); 
     }  

4 AS -

後に表示

今管理/ビュー/テンプレート/カタログ内/ product_form.tpl(なし87-92近く全般]タブライン)

<div class="form-group"> 
        <label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label> 
        <div class="col-sm-10"> 
         <input type="text" name="product_description[<?php echo $language['language_id']; ?>][tag]" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['tag'] : ''; ?>" placeholder="<?php echo $entry_tag; ?>" id="input-tag<?php echo $language['language_id']; ?>" class="form-control" /> 
        </div> 
        </div> 

以下を追加します。

<div class="form-group"> 
        <label class="col-sm-2 control-label" for="nput-video<?php echo $language['language_id']; ?>"><?php echo $entry_video; ?></label> 
        <div class="col-sm-10"> 
         <textarea name="product_description[<?php echo $language['language_id']; ?>][video]" rows="5" placeholder="<?php echo $entry_video; ?>" id="input-video<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['video'] : ''; ?></textarea> 
        </div> 
        </div> 

は今、単にあなたは(PRODUCT_DESCRIPTIONテーブルからの)列のビデオを呼び出すことにより、フロントエンド用のカスタムテキスト値を取得することができます&はそのため(フロントエンドに)カスタムタブ内にそれをdispalyedだけで、次の手順に従います。

の1- /catalog/language/*/product/product.php/

追加

$_['tab_video'] = 'Video'; 

2- /カタログ/コントローラ/製品/ /catalog/model/catalog/product.php

追加

public function getProductDescriptions($product_id) { 
    $product_description_data = array(); 

    $query = $this->db->query("SELECT video,language_id FROM " . DB_PREFIX . "product_description WHERE product_id = '" . (int)$product_id . "'"); 

    foreach ($query->rows as $result) { 
     $product_description_data[$result['language_id']] = array(
      'video'   => $result['video'], 
     ); 
    } 

    return $product_description_data; 
} 

4 - - product.php

$data['product_video'] = $this->model_catalog_product->getProductDescriptions($this->request->get['product_id']); 
       $this->load->model('localisation/language'); 
       $data['languages'] = $this->model_localisation_language->getLanguages(); 

3の追加/カタログ/ビュー/テーマ/ */default/template/product/product。TPL/

<div class="tab-pane" id="tab-video"> 
       <label class="col-sm-2 control-label" for="input-video<?php echo $language['language_id']; ?>"><?php echo $tab_video; ?></label> 
<div class="col-sm-10"> 
    <textarea name="product_video[<?php echo $language['language_id']; ?>][video]" id="input-video<?php echo $language['language_id']; ?>"> 
    <?php foreach($languages as $language) { ?> 
    <?php echo isset($product_video[$language['language_id']]) ? $product_video[$language['language_id']]['video'] : ''; ?> 
    </textarea> 
</div> 
<?php } ?> 
       </div> 
関連する問題