2012-05-08 5 views
8

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

+0

Для ответа см. Эту статью: http://www.webmasterbulletin.net/2011/04/magento-programmatically-add-custom-options/1417, а также следующий вопрос об обновлении пользовательских параметров: http: // stackoverflow.com/questions/10798158/how-to-update-custom-options-programatically-in-magento – feeela

+1

Да, это создает новые настраиваемые параметры для продуктов, а не новые настраиваемые параметры типа, например, есть настраиваемые параметры, и теперь я хочу создать новые пользовательские параметры type image – Mufaddal

+1

Извините - я неправильно понял вопрос первым ... – feeela

ответ

2

Я забыл этот вопрос, но мне нужно снова создать новый настраиваемый тип параметра в моем другом проекте. Я создал новый тип настраиваемых параметров, используя эту ссылку.

Решение является довольно продолжительным, и его невозможно поместить весь код здесь, поэтому я просто передал эту ссылку, пройдя по этой ссылке, я создал новые пользовательские параметры, легко, объяснение в этой статье хорошо.

У меня есть некоторые изменения для моей потребности.

Надеюсь, это поможет кому-то.

Как Дастин Грэм сказал, что это невероятно сложно.

+0

можете поделиться своим кодом модуля? –

4

Как сказал Дастин Грэм, это очень сложно. Первые шаги:

  1. Добавить новый узел под global/catalog/product/options/custom/groups. См. Примеры в /app/code/core/Mage/Catalog/etc/config.xml.

  2. Создайте новый блок, чтобы сделать свой собственный вариант.

  3. Rewrite Mage_Catalog_Model_Product_Option и осуществлять сохранение пользовательских параметров типа (saveOptions() метод) и загрузка пользовательских параметров типа (getProductOptionCollection метод).

Если ваш пользовательский тип не очень обычен :) - этого должно быть достаточно.

0

@Mufaddal благодарит за использование этой ссылки. Я бы хотел предложить альтернативу этому, поскольку для этого требуется довольно много знаний.

Если вы только пытаетесь изменить путь конкретного выпадающий (например) отображается также можно переписать /template/catalog/product/view/options/type/select.phtml следующим образом:

` getOption()>

<dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label> </dt> 
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>> 
<div class="input-box"> 
    <?php echo $this->getValuesHtml(); ?> 

    <?php if($_option->option_id == 2) : ?> 
       <script type="text/javascript"> 
        jQuery('#select_2').css('display', 'none'); 
       </script> 

       <?php foreach ($_option->getValues() as $_value) { ?> 
        <?php echo $_value->getTitle(); // the title of the option ?> 
        <?php echo $_value->getOptionTypeId(); // the id ?> 
       <?php } ?> 
       <!-- add custom code that triggers select in the background --> 

      <?php endif ?> 

    <?php if ($_option->getIsRequire()): ?> 
     <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?> 
      <span id="options-<?php echo $_option->getId() ?>-container"></span> 
     <?php endif; ?> 
    <?php endif;?> 
</div> 
?

`

Затем вы можете скрыть выбор и взаимодействовать с выбором через jQuery.

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