вставьте пользовательскую переменную элемента через xml в детали заказа администратора magento Magento


Привет, я разрабатываю расширение magento, в котором мне нужно показать пользовательский атрибут продукта в деталях заказа magento. Я хочу добавить его через xml без редактирования/перезаписи какого-либо основного файла.. На данный момент я отредактировал следующий файл, чтобы отобразить пользовательское значение атрибута app/design/adminhtml/по умолчанию/по умолчанию/шаблон/продажи/товары/столбец/имя.phtml

Но я знаю, что это неправильный путь. Поэтому, пожалуйста, подскажите мне, как я могу вставить его блоками через xml. Ниже приводится ссылка на снимок экрана http://awesomescreenshot.com/0e42y3ac8d

Author: Rohit Goel, 2014-06-09

2 answers

Проблема решена, но с помощью функции java-скрипта.

Чтобы добавить ваши поля на страницу просмотра заказа, нам нужно сделать:

  1. Добавьте макет в свой конфигурационный файл:
<adminhtml>
  <layout>
      <updates>
          <customattribute>
              <file>customattribute.xml</file>
          </customattribute>
      </updates>
  </layout>
</adminhtml>
  1. Добавить макет дизайна для 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>
  1. Добавьте файл шаблона "приложение/дизайн/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>
  1. Для получения элемента в файле шаблона вам необходимо определить блок"CustomAttribute/Block/Adminhtml/Prototal.php "

Класс NameSpace_ModuleName_Block_Prototal расширяется Шаблон Mage_Core_Block_Template { элемент набора общедоступных функций (Varien_Object $item) { $это->setData ('элемент', $элемент); верните $это; }

  public function getItem() {
      return $this->_getData('item');
  }

}

Пожалуйста, прокомментируйте, кто-нибудь нашел какие-либо проблема или проблема.

 1
Author: Parteek Kamboj, 2014-06-11 05:43:57

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

 1
Author: mbalparda, 2014-06-09 18:20:06