2014-02-04 2 views
2

У меня есть макет, определенный в некотором XML-файле, найденном в модуле сообщества. Как-то я хочу добавить условие (ifconfig), с помощью которого содержимое блока будет отображаться или полностью удалить этот дескриптор и создать его самостоятельно, чтобы я мог получить доступ к блоку.Удалить макет дескриптора из xml

Чтобы быть более точным, это ручка у меня есть в udprod.xml

<_udprod_catalog_product_edit> 
     <reference name="content"> 
      <block type="core/template" template="udprod/product_edit.phtml" /> 
     </reference> 
    </_udprod_catalog_product_edit> 
    <adminhtml_catalog_product_edit> 
     <update handle="_udprod_catalog_product_edit" /> 
    </adminhtml_catalog_product_edit> 

Как вы можете видеть, блок не имеет имя, которое я могу положиться. Есть ли способ удалить дескриптор < _udprod_catalog_product_edit> из xml-файла?

Спасибо

ответ

0

Я не уверен, что это возможно, но у меня есть работа, вокруг которого я использую, чтобы исправить багги 3rd расширения партии:

Создать новый модуль

очень простой, требуется всего 2 файла.

app/etc/modules/Namespace_Fixer.xml:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Namespace_Fixer> 
      <active>true</active> 
      <codePool>local</codePool> 
      <depends> 
       <Broken_Module/> 
      </depends> 
     </Namespace_Fixer> 
    </modules> 
</config> 

Отметьте зависит, это очень важно, так что он будет загружен после.

app/code/local/Namespace/Fixer/etc/config.xml:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Namespace_Fixer> 
      <version>0.1.0</version> 
     </Namespace_Fixer> 
    </modules> 
    <global> 
    </global> 
    <frontend> 
     <layout> 
      <updates> 
       <broken_module> <!-- update this --> 
        <file>namespace/module_fixed.xml</file> 
       </broken_module> 
      </updates> 
     </layout> 
    </frontend> 
</config> 

Override файл макета, чтобы указать на наш новый.

Дублировать макет XML

Вы хотите, чтобы указать на новый XML, там вы можете сделать правильно и добавить name в блок и назвать его там, где вы хотите.

+0

Извините, что не отвечал раньше, но мне все еще не удалось выяснить метод без необходимости переопределять файл. Я закончил копирование файла под моим модулем и изменил код, чтобы добавить имя к этому блоку. Не самое элегантное решение, но лучшее, что пришло. Спасибо. – adela

+0

@blackseptember рад, что я помог, примите ответ, если вы решите проблему, используя этот метод, пожалуйста. – input

Смежные вопросы