Static Blockページに設定を追加しますか?
-
16-10-2019 - |
質問
いくつかのHTMLデータを静的ブロックに保存する新しい拡張機能に取り組んでいます。必要に応じて機能させるには、拡張機能が使用されるために有効化/無効にされた静的ブロックを設定できるようにする静的ブロックページに新しい設定を追加できる必要があります。
私の拡張機能は名前が付けられています Bounce Reducer
それが私が追加したい設定です。
このような画面に設定を追加することは可能ですか?そして、拡張機能コードの他のセクション/ページにアクセスできますか?
解決
enabled
静的ブロックのフラグはDBテーブルに直接対応します is_active
列、タイプの列 smallint
.
独自のモジュールでこの機能を有効にするには、そのテーブルを拡張してテーブルに列を追加する必要があります cms_block
(ここでは、ブール奏者としてTinyintを使用しています):
$installer->getConnection()->addColumn($installer->getTable('cms/block'),
'br_enabled', 'tinyint(1) UNSIGNED DEFAULT 0 AFTER is_active');
また、書き直す必要があります Mage_Cms_Model_Resource_Block::_getLoadSelect
旗を考慮するには:
protected function _getLoadSelect($field, $value, $object)
{
$select = parent::_getLoadSelect($field, $value, $object);
if ($object->getStoreId()) {
$storeIds = array(Mage_Core_Model_App::ADMIN_STORE_ID, (int)$object->getStoreId());
$select->join(
array('cms_page_store' => $this->getTable('cms/page_store')),
$this->getMainTable() . '.page_id = cms_page_store.page_id',
array())
->where('is_active = ?', 1)
->where('br_enabled = ?', 1)
->where('cms_page_store.store_id IN (?)', $storeIds)
->order('cms_page_store.store_id DESC')
->limit(1);
}
return $select;
}
最後に、拡張して適切なフォームドロップダウンを追加します Mage_Adminhtml_Block_Cms_Block_Edit_Form::_prepareForm
以下を追加します。
$fieldset->addField('br_enabled', 'select', array(
'label' => Mage::helper('cms')->__('Bounce Reducer Enabled'),
'title' => Mage::helper('cms')->__('Bounce Reducer Enabled'),
'name' => 'br_enabled',
'required' => true,
'options' => array(
'1' => Mage::helper('cms')->__('Enabled'),
'0' => Mage::helper('cms')->__('Disabled'),
),
));
所属していません magento.stackexchange