// system.xml
<export translate="label">
<label>Export</label>
<frontend_model>module/adminhtml_system_config_form_field_export</frontend_model>
<sort_order>50</sort_order>
<show_in_default>0</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</export>
// config.xml
<admin>
<routers>
<adminhtml>
<args>
<modules>
<Company_Module before="Mage_Adminhtml">Company_Module</Company_Module>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<?php
class Company_Module_Block_Adminhtml_System_Config_Form_Field_Export extends Mage_Adminhtml_Block_System_Config_Form_Field
{
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
$this->setElement($element);
$buttonBlock = $this->getLayout()->createBlock('adminhtml/widget_button');
$params = array(
'website' => $buttonBlock->getRequest()->getParam('website')
);
$data = array(
'label' => Mage::helper('adminhtml')->__('Export CSV'),
'onclick' => 'setLocation(\''.Mage::helper('adminhtml')->getUrl("*/*/export", $params) . '\' )',
'class' => '',
);
$html = $buttonBlock->setData($data)->toHtml();
return $html;
}
}
?>
<?php
class Company_Module_System_ConfigController extends Mage_Adminhtml_Controller_Action
{
public function exportAction()
{
$fileName = 'products.csv';
$gridBlock = $this->getLayout()->createBlock('catalog/product_grid');
$content = $gridBlock->getCsvFile();
$this->_prepareDownloadResponse($fileName, $content);
}
}
?>