8

カスタム オプション フィールドに適用する CSS クラスを指定したいと考えています。これにより、製品ビュー ページでより堅牢な JavaScript セレクターを使用できるようになります。

したがって、管理者の製品>カスタムオプションでは、次のようなものが必要です。 カスタム オプションに CSS クラスを追加

CSS クラス属性をフィールドに追加した場所。

これは、adminhtml テンプレート ファイルに簡単に追加できます。

app\design\adminhtml\default\default\template\catalog\product\edit\options\option.phtml

しかし、[保存] をクリックしたときに追加の属性を保存するために、どのファイルをオーバーライド/拡張​​する必要があるのか​​ わかりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

12

オプションタイプ「テキスト」に対してこれを行うと仮定します。この新しいプロパティを入力、編集、保存、および出力する方法を提供する必要があります。

参加するには : すでにわかっているように、バックエンド テンプレート ファイルを編集する必要があります。app\design\adminhtml\default\default\template\catalog\product\edit\options\type\text.phtml:

36行目以降に入る

'<th class="type-last last"><?php echo Mage::helper('catalog')->__('Custom CSS') ?> </th>'+

そして47行目以降

'<td class="type-last last"><input type="text" class="input-text" name="product[options][{{option_id}}][custom_css]" value="{{custom_css}}"></td>'+

これにより、カスタム css クラスを入力するフィールドが追加されます。

編集するには: 新しいフィールドがモデルから値を取得できるように、オプション HTML を出力するブロックを書き直す必要があります。次のように宣言されたモジュール内にブロックを作成します。

class YourPackage_YourModule_Block_Adminhtml_Option extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Option 
{

getOptionValues()クラスから関数をコピーして貼り付けMage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Option、コードを追加します

##.......code omitted for brevity.......##
$value['sku'] = $this->htmlEscape($option->getSku());
$value['max_characters'] = $option->getMaxCharacters();

// your new field output to the adminhtml form
$value['custom_css'] = $option->getCustomCss();

$value['file_extension'] = $option->getFileExtension();
##.......code omitted  for brevity.......##

ストアへ。これは少しトリッキーです。テーブルcatalog_product_optionを拡張する必要があります。新しいプロパティを格納する列が 1 つあります。次の内容でインストール/更新スクリプトを作成します。

$installer = $this;
$installer->startSetup();
$installer->run("
    ALTER TABLE `catalog_product_option` ADD
    `custom_css` text");
$installer->endSetup();

スクリプトの実行後、テーブルに新しい列があることを確認しますcustom_css

出力frontend/yourpackage/yourtheme/template/catalog/product/view/options/type/text.phtmlするには: 最後に、次のような新しいカスタム CSS クラス プロパティを出力するコードを追加して、テンプレート ファイルを更新します。

$_option->getCustomCss();
于 2013-01-28T15:50:11.913 に答える