вставьте пользовательскую переменную элемента через xml в детали заказа администратора magento Magento
Привет, я разрабатываю расширение magento, в котором мне нужно показать пользовательский атрибут продукта в деталях заказа magento. Я хочу добавить его через xml без редактирования/перезаписи какого-либо основного файла.. На данный момент я отредактировал следующий файл, чтобы отобразить пользовательское значение атрибута app/design/adminhtml/по умолчанию/по умолчанию/шаблон/продажи/товары/столбец/имя.phtml
Но я знаю, что это неправильный путь. Поэтому, пожалуйста, подскажите мне, как я могу вставить его блоками через xml. Ниже приводится ссылка на снимок экрана http://awesomescreenshot.com/0e42y3ac8d
2 answers
Проблема решена, но с помощью функции java-скрипта.
Чтобы добавить ваши поля на страницу просмотра заказа, нам нужно сделать:
- Добавьте макет в свой конфигурационный файл:
<adminhtml> <layout> <updates> <customattribute> <file>customattribute.xml</file> </customattribute> </updates> </layout> </adminhtml>
- Добавить макет дизайна для adminhtml"app/design/adminhtml/default/default/layout/customattribute.xml "
<layout version="0.1.0"> <adminhtml_sales_order_view> <reference name="order_items"> <block type="customattribute/prototal" name="order_item_extra_info" template="customattribute/productdesign.phtml"/> </reference> </adminhtml_sales_order_view> </layout>
- Добавьте файл шаблона "приложение/дизайн/adminhtml/по умолчанию/по умолчанию/шаблон/пользовательский атрибут/productdesign.phtml". Пожалуйста, сделайте формат файла, размещающего некоторый пример кода.
<?php $_item = $this->getItem(); $sku = $_item->getSku(); echo '<div style="display:none;" id="id_order_item_'.$_item->getID().'"> <strong>'.$this->helper('sales')->__('Artwork ID').':</strong>'.$_item->getArtworkID().'</div>'; ?> <script> function codeAddress<?php echo $_item->getID(); ?>() { var html = document.getElementById('id_order_item_<?php echo $_item->getID(); ?>').innerHTML; var elem = document.getElementById('order_item_<?php echo $_item->getID(); ?>').children[0].innerHTML; document.getElementById('order_item_<?php echo $_item->getID(); ?>').children[0].innerHTML = elem+html; } codeAddress<?php echo $_item->getID(); ?>(); </script>
- Для получения элемента в файле шаблона вам необходимо определить блок"CustomAttribute/Block/Adminhtml/Prototal.php "
Класс NameSpace_ModuleName_Block_Prototal расширяется Шаблон Mage_Core_Block_Template { элемент набора общедоступных функций (Varien_Object $item) { $это->setData ('элемент', $элемент); верните $это; }
public function getItem() { return $this->_getData('item'); } }
Пожалуйста, прокомментируйте, кто-нибудь нашел какие-либо проблема или проблема.