Magento - Поиск по результату отфильтрованной сетки - PullRequest
1 голос
/ 31 октября 2011

У меня есть стандартная сетка, заполненная коллекцией, которая фильтруется.

Я бы хотел иметь возможность поиска в отфильтрованном наборе результатов этой сетки, чтобы я мог перенаправить форму редактирования на следующий элемент, не возвращаясь в сетку.

Для чего это стоит, код сетки:

class Phpro_Advancedtranslate_Block_Adminhtml_Grid extends Mage_Adminhtml_Block_Widget_Grid {

public function __construct() {
    parent::__construct();
    $this->setId('advancedtranslateGrid');
    $this->_controller = 'advancedtranslate';
    $this->setDefaultSort('advancedtranslate_id');
    $this->setDefaultDir('ASC');
    $this->setSaveParametersInSession(true);
    $this->setUseAjax(true);
}

protected function _prepareCollection() {
    $model = Mage::getModel('advancedtranslate/advancedtranslate');
    $collection = $model->getCollection();
    $this->setCollection($collection);

    return parent::_prepareCollection();
}

protected function _prepareColumns() {

    $this->addColumn('advancedtranslate_id', array(
        'header' => Mage::helper('advancedtranslate')->__('ID'),
        'align' => 'right',
        'width' => '50px',
        'index' => 'advancedtranslate_id',
    ));

    $this->addColumn('string', array(
        'header' => Mage::helper('advancedtranslate')->__('String'),
        'align' => 'left',
        'width' => '150px',
        'index' => 'string',
        'type' => 'text',
        'truncate' => 50,
        'escape' => true,
    ));

    $localesSourceModel = Mage::getModel('advancedtranslate/system_config_source_locales');
    $localesOptions = $localesSourceModel->toArray();

    $this->addColumn('locale', array(
        'header' => Mage::helper('advancedtranslate')->__('Locale'),
        'align' => 'left',
        'index' => 'locale',
        'type' => 'options',
        'escape' => true,
        'options' => $localesOptions
    ));

    $modulesSourceModel = Mage::getModel('advancedtranslate/system_config_source_modules');
    $modulesOptions = $modulesSourceModel->toArray();

    $this->addColumn('module', array(
        'header' => Mage::helper('advancedtranslate')->__('Module'),
        'align' => 'left',
        'index' => 'module',
        'type' => 'options',
        'escape' => true,
        'options' => $modulesOptions
    ));

    $interfaceSourceModel = Mage::getModel('advancedtranslate/system_config_source_interface');
    $interfaceOptions = $interfaceSourceModel->toArray();

    $this->addColumn('interface', array(
        'header' => Mage::helper('advancedtranslate')->__('Interface'),
        'align' => 'left',
        'index' => 'interface',
        'type' => 'options',
        'escape' => true,
        'options' => $interfaceOptions
    ));

    $storeSourceModel = Mage::getModel('advancedtranslate/system_config_source_stores');
    $storeOptions = $storeSourceModel->toArray();
    $this->addColumn('store_id', array(
        'header' => Mage::helper('advancedtranslate')->__('Store view'),
        'align' => 'left',
        'index' => 'store_id',
        'type' => 'options',
        'escape' => false,
        'options' => $storeOptions
    ));

    $this->addColumn('action', array(
        'header' => Mage::helper('advancedtranslate')->__('Action'),
        'width' => '150px',
        'type' => 'action',
        'getter' => 'getAdvancedtranslateId',
        'actions' => array(
            array(
                'caption' => Mage::helper('advancedtranslate')->__('Edit'),
                'url' => array(
                    'base' => '*/*/edit'
                ),
                'field' => 'id'
            ),
            array(
                'caption' => Mage::helper('advancedtranslate')->__('Delete'),
                'url' => array(
                    'base' => '*/*/delete'
                ),
                'field' => 'id'
            )
        ),
        'filter' => false,
        'sortable' => false
    ));
    return parent::_prepareColumns();
}

public function getRowUrl($row) {
    return $this->getUrl('*/*/edit', array(
                'id' => $row->getAdvancedtranslateId(),
            ));
}

public function getGridUrl() {
    return $this->getUrl('*/*/grid', array('_current' => true));
}

}

1 Ответ

1 голос
/ 02 ноября 2011

Скорее всего, если я правильно понимаю ваш вопрос, вы захотите сохранить массив идентификаторов из отфильтрованных результатов в сеансе.

как сохранить массив в сеансе magento?

А затем получите следующий идентификатор из массива, сохраненного в сеансе, чтобы перейти к следующему идентификатору в отфильтрованном наборе результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...