Как передать параметры фильтрации в grid админке через url в Magento
Для того чтобы передать значения параметра фильтра в админке magento, его необходимо правильно сформировать..
Перейдите на страницу содержащую грид, введите значение в поле фильтра, и нажмите [Search]. Теперь обратите внимание на url, он будет вида:
http://site.com/index.php/back-office/device/index/filter/ZHVlX2RhdGUlNUJsb2NhbGUlNUQ9ZW5fVVMmbGFzdF9kdWVfZGF0ZSU1QnRvJTVEPWFiYyZsYXN0X2R1ZV9kYXRlJTVCbG9jYWxlJTVEPWVuX1VT/form_key/XCvgOe14snFgYPg6/
Обратите внимание на выделенную часть. Тут наши параметры и есть. Для того, чтобы расшифровать их, скопируйте эту часть:
ZHVlX2RhdGUlNUJsb2NhbGUlNUQ9ZW5fVVMmbGFzdF9kdWVfZGF0ZSU1QnRvJTVEPWFiYyZsYXN0X2R1ZV9kYXRlJTVCbG9jYWxlJTVEPWVuX1VT
и обработайте её с помощью функции base64_decode, так же можете сделать это на сайте: https://www.base64decode.org
в результате мы получаем вот такие данные:
due_date%5Blocale%5D=en_US&last_due_date%5Bto%5D=abc&last_due_date%5Blocale%5D=en_US
как видите, уже лучше, осталось применить функцию urldecode, так же это можно сделать на этом сайте: http://www.url-encode-decode.com
в итоге получаем параметры:
due_date[locale]=en_US&last_due_date[to]=abc&last_due_date[locale]=en_US
или для удобства так:
due_date[locale]=en_US &
last_due_date[to]=abc &
last_due_date[locale]=en_US
собственно, теперь уже понятно – чтобы отправить данные в фильтр, нам надо указать само поле и локаль, после чего выполнить обратные операции.
Например, мы можем сформировать ссылку в темплейте, вот так:
1 2 3 4 5 6 7 8 9 10 11 12 |
<a href="<?php echo $this->getUrl('*/device/', array( 'filter' => base64_encode( http_build_query ( array( 'last_due_date[to]' => Mage::app()->getLocale()->date()->toString( Mage::app()->getLocale()->getDateFormat( Mage_Core_Model_Locale::FORMAT_TYPE_SHORT ) ), 'last_due_date[locale]' => Mage::app()->getLocale()->getLocaleCode(), )) ))); ?>"><?php echo $this->__('See Devices');?></a> |
Вот и все на сегодня
Author: | Tags: /
| Rating:
Leave a Reply