[Tep-j-general] product_infoでの項目の追加(多言語)

Back to archive index

HeaL-uno uno****@heal-*****
2007年 8月 16日 (木) 17:37:02 JST


過去ログをあさっていろいろとやってみたのですが、自己解決できなかったので教えてください。

現在行った作業は以下の通りです。

1.まずは、項目名を決定する

2.Mysqlを開く
 Pleskを開く→MyDomain→"ドメイン名"→データベース→名称→DB WebAdmin
 →左のデータベース名称→右側上の「SQL」→コード入力→実行する

3.Mysql文を実行する

 alter table products_description add products_** ■■;

 **に項目名を
 ■■にテーブル項目型を指定
  int(**)     数字(4バイト整数±2147483647までの数字)
  varchar(**) 全角126文字までの文字列
  text         長い文字列

  int・varcharは必ず最大文字数を指定しないといけません。(最大255)

4.各項目の設定
 右側に追加された項目が出来たら基本値設定を行います。
 追加した項目の右側鉛筆マークをクリックします。
 多言語設定が必要なものは「紹介順序」を「latin1_swedish_ci」にします。
  (latin1一番下)
 データ入力をする際、空白を許可しない場合(入力必須)、空の値(NULL)を「notnull」にします。


5.表示部分の設定(catalog/product_info.phpの修正)
 ■クエリの取得
  $product_info_query = tep_db_query〜を探す(50行目付近)
  pd.products_name,の後ろに各項目を追加
 
  pd.products_scientific,pd.products_location,pd.products_sex,pd.products_size,pd.products_note,
 
 ■表示部分の修正
  80行目付近
  <?php echo stripslashes($product_info['products_description']); ?>
  これを探す。(これは商品説明)多言語の場合、"stripslashes〜"が必要な様子。
  <?php echo $products_price; ?>(これは価格)これは1言語用の表記?

6.アドミニ画面の修正(admin/categories.phpの修正)
 ■descriptionを探してそれと同じ要領で項目を追加していく
 220行目付近「$sql_data_array」 (多言語のみ?)
 260行目付近「$description_query」
 320行目付近「$product_query」(#5のクエリの取得をコピってもOK)
 330行目付近「$products_** =〜」
 520行目付近「$products_** =〜」
 540行目付近「$product_query」(#5のクエリの取得をコピってもOK)
 560行目付近「$pInfo->」(else以下の方もちゃんと修正すること)
 660行目付近「echo tep_draw_hidden_field」 


 ■表示部分の追加(html)
 420行目付近

 ○1言語タイプ例
  <tr>
     <td class="main"><?php echo TEXT_PRODUCTS_●●; ?></td>
     <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', 
'15') . '&nbsp;' .

tep_draw_input_field('products_●●', $pInfo->products_●●); ?></td>
    </tr>
 ○多言語タイプ例
 <!--  Add pluslist START -->
 <?php
   for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
 ?>
  <tr>
  <td class="main"><?php if ($i == 0) echo TEXT_PRODUCTS_●●; ?></td>
  <td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . 
$languages[$i]['directory'] . '/images/'

. $languages[$i]['image'], $languages[$i]['name']) .
    '&nbsp;' .
    tep_draw_input_field('products_●●[' . $languages[$i]['id'] . ']',
    (($products_●●[$languages[$i]['id']]) ? 
stripslashes($products_●●[$languages[$i]['id']])
    : tep_get_products_●●($pInfo->products_id, $languages[$i]['id']))); ?>
    </td>
   </tr>
 <?php
    }
 ?>
 <tr>
  <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', 
'10'); ?></td>
 </tr>
 <!-- Add pluslist END -->


 570行目付近(修正画面?)
 ○1言語タイプ例
 <!-- Add pluslist START -->
 <tr>
  <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
 </tr>
 <tr>
  <td class="main"><?php echo $pInfo->products_author; ?></td>
 </tr>
 <!-- Add pluslist END -->

 ○多言語タイプ例
 <!-- Add pluslist START -->
 <tr>
  <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
 </tr>
 <tr>
  <td class="main"><?php echo tep_image(DIR_WS_CATALOG_IMAGES . 
$products_image_name, $pInfo->products_●●

, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'align="right" hspace="5" 
vspace="5"') . $pInfo-

>products_description; ?></td>
 </tr>
 <!-- Add pluslist END -->

7.表示部分の設定(admin/includes/functions/general.phpの修正)
 最終行(?>の前)
 // Add pluslist START
  function tep_get_products_●●($product_id, $language_id) {
    $product_query = tep_db_query("select products_●● from " . 
TABLE_PRODUCTS_DESCRIPTION . " where

products_id = '" . $product_id . "' and language_id = '" . $language_id . 
"'");
    $product = tep_db_fetch_array($product_query);

    return $product['products_●●'];
  }
// ADD pluslist END

8.各言語の表示項目の追加(admin/includes/languages/○○/categories.php)
 (jp)80行目付近
  (en)20行目付近
 define('TEXT_PRODUCTS_●●', '項目の説明:');


--------------------------------------------

さて、この状態で、以下のエラーが出ます。

カタログより商品詳細ページを開くと

1054 - Unknown column 'pd.products_●●' in 'field list'

select p.products_id, pd.products_●●, pd.products_name, 
pd.products_description, p.products_model, p.products_quantity, 
p.products_image, pd.products_url, p.products_price, 
p.products_tax_class_id, p.products_date_added, p.products_date_available, 
p.manufacturers_id from products p, products_description pd where 
p.products_status = '1' and p.products_id = '15' and pd.products_id = 
p.products_id and pd.language_id = '4'

[TEP STOP]

さらに、アドミニページを開くと、 

1054 - Unknown column 'pd.products_●●' in 'field list'

select p.products_id, pd.products_name, pd.products_●●, 
p.products_quantity, p.products_image, p.products_price, 
p.products_date_added, p.products_last_modified, p.products_date_available, 
p.products_status from products p, products_description pd, 
products_to_categories p2c where p.products_id = pd.products_id and 
pd.language_id = '4' and p.products_id = p2c.products_id and 
p2c.categories_id = '1' order by pd.products_name

このようなエラーが出ます。

何か設定が足りないということでしょうか??宜しくお願いします。

uno





 
 




Tep-j-general メーリングリストの案内
Back to archive index