Frage

Ich arbeite an neuen Erweiterungen, in denen einige HTML -Daten in statischen Blöcken gespeichert sind. Damit es nach Bedarf funktioniert, muss ich der statischen Blockseite eine neue Einstellung hinzufügen können, mit der ich einen statischen Block als aktiviert/deaktiviert habe, damit meine Erweiterung ihn verwendet.

Meine Erweiterung heißt Bounce Reducer Das ist also die Einstellung, die ich hinzufügen möchte.

Ist dies möglich, um diesem Bildschirm so eine Einstellung hinzuzufügen? Und dann in anderen Abschnitten/Seiten meines Erweiterungscodes darauf zugreifen können?

Screenshot

War es hilfreich?

Lösung

Das enabled Die Flaggen auf statischen Blöcken entsprechen direkt der DB -Tabelle is_active Spalte, die vom Typ ist smallint.

Um diese Funktionalität in Ihrem eigenen Modul zu aktivieren, müssen Sie diese Tabelle erweitern und eine Spalte auf die Tabelle hinzufügen cms_block (Ich benutze Tinyint hier als Booleschen):

$installer->getConnection()->addColumn($installer->getTable('cms/block'),
    'br_enabled', 'tinyint(1) UNSIGNED DEFAULT 0 AFTER is_active');

Sie müssen auch neu schreiben Mage_Cms_Model_Resource_Block::_getLoadSelect Um auch Ihre Flagge zu berücksichtigen:

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;
}

Fügen Sie schließlich den Dropdown -Bereich für entsprechende Formular hinzu, indem Sie sich erweitern Mage_Adminhtml_Block_Cms_Block_Edit_Form::_prepareForm und fügen Sie Folgendes hinzu:

    $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'),
        ),
    ));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top