質問

いくつかのHTMLデータを静的ブロックに保存する新しい拡張機能に取り組んでいます。必要に応じて機能させるには、拡張機能が使用されるために有効化/無効にされた静的ブロックを設定できるようにする静的ブロックページに新しい設定を追加できる必要があります。

私の拡張機能は名前が付けられています Bounce Reducer それが私が追加したい設定です。

このような画面に設定を追加することは可能ですか?そして、拡張機能コードの他のセクション/ページにアクセスできますか?

Screenshot

役に立ちましたか?

解決

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'),
        ),
    ));
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top