Кнопка импорта + поле просмотра файлов в сетке продуктов администратора в magento - PullRequest
0 голосов
/ 02 ноября 2010

Я хочу добавить кнопку «Импорт» и кнопку просмотра файла рядом с кнопкой «Добавить продукт» на странице сетки продуктов в администраторе magento.

Когда пользователь выбирает файл и нажимает кнопку «Импорт» Я загружу файл в var / import, открою новую вкладку и запусту профиль импорта.

Как добавить форму (кнопка импорта + поле просмотра файлов) в верхнюю часть сетки?

Спасибо

Ответы [ 3 ]

1 голос
/ 04 ноября 2010

Используйте XML-макеты, чтобы установить свой пользовательский шаблон для блока контейнера сетки продуктов и добавить туда свой пользовательский блок форм.Для этого вам нужно расширить adminhtml_catalog_product_index дескриптор макета:

<adminhtml_catalog_product_index>
     <reference name="product_list">
         <!-- Set your custom template -->
         <action method="setTemplate"><template>path/to/your_template.phtml</template></action>
         <!-- Add your custom block -->
         <block name="import_form" as="import_form" type="your_module/form_block_name"></block>
     </reference>
</adminhtml_catalog_product_index>

Затем вам нужно определить свой блок и шаблон.Ваш пользовательский блок должен быть расширен с Mage_Adminhtml_Block_Widget_Form, а шаблон должен быть копией adminhtml/default/default/template/catalog/product.phtml, но с изменениями для отображения вашего пользовательского блока, как в следующем примере:

<div class="content-header">
<table cellspacing="0">
    <tr>
        <td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('catalog')->__('Manage Products') ?></h3></td>
        <td class="a-right">
            <?php echo $this->getButtonsHtml() ?>
        </td>
    </tr>
</table>
</div>
<!-- Start of Displaying of your custom import form -->
<?php echo $this->getChildHtml('import_form');?> 
<!-- End of Displaying of your custom import form -->
<?php if( !$this->isSingleStoreMode() ): ?>
<?php echo $this->getChildHtml('store_switcher');?>
<?php endif;?>
<div>
    <?php echo $this->getGridHtml() ?>
</div>
0 голосов
/ 11 апреля 2011

Привет Правильно использовать метод Mage_Adminhtml_Block_Widget_Container::addButton(), а вот синтаксис

$data = array(
                'label' =>  'Import Zipcode Data',
                'onclick'   => "setLocation('".$this->getUrl('*/*/import')."')"
                );

    $this->addButton ('import_zip_code', $data, 0, 100,  'header', 'header');  

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

0 голосов
/ 02 ноября 2010

вы можете использовать Mage_Adminhtml_Block_Widget_Container::addButton(), чтобы сделать это.Найдите в коде magento вызовы этой функции, чтобы увидеть, как ее следует использовать, создайте свой собственный блок контейнера, замените блок контейнера magento для продукта с помощью файла макета, и все готово.

...