Я пытаюсь кодировать новый флажок, который будет добавлен к столбцам в галерее изображений, около "Отключают". Его поведение совпало бы с, "Отключают/Исключают" = Да/Нет с записью в базе данных.
Идея состоит в том, чтобы добавить флажок "Use as page" для каждого изображения в галерее изображений. Причем цель состоит в том, чтобы сделать кольцевую галерею JS со всеми изображениями проверенной как "Использование в качестве страницы".
У меня есть несколько сделанных вещей, но я не могу:
->, Таким образом, мой вопрос: как обновить данные в базе данных и получить его во флажке (0 или 1 в зависимости от значения поля)?
Спасибо все для Вашей очень драгоценной справки.
Вот то, что я сделал (1.4.1.0):
1-обновляют таблицу catalog_product_entity_media_gallery_value
Добавленный новое поле (какое имя является "страницей"):
2-Делал следующие изменения в класс Mage_Catalog_Model_Product_Attribute_Backend_Media
Строка 49:
от
$localAttributes = array('label', 'position', 'disabled');
кому:
$localAttributes = array('label', 'position', 'disabled', 'page');
Строка 223:
от
$data['disabled'] = (int) $image['disabled'];
кому:
$data['disabled'] = (int) $image['disabled'];
$data['page'] = (int) $image['page'];
Строка 301
от
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude
);
кому:
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude,
'page' => (int) $exclude,
);
Строка 328
от
$fieldsMap = array(
'label' => 'label',
'position' => 'position',
'disabled' => 'disabled',
'exclude' => 'disabled',
);
кому:
$fieldsMap = array(
'label' => 'label',
'position' => 'position',
'disabled' => 'disabled',
'exclude' => 'disabled',
'page' => 'disabled',
);
3-Внес следующие изменения для шаблонной обработки adminhtml/default/default/template/catalog/product/helper/gallery.phtml
Строка 64
от
<th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
кому:
<th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
<th><?php echo Mage::helper('catalog')->__('Is Page') ?></th>
Строка 77
от
<td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
кому:
<td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
<td class="cell-page a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
Строка 105
от
кому:
<td class="cell-disable"><input type="hidden" /> </td>
<td class="cell-page last"><input type="hidden" /> </td>
Я недавно работал над чем-то подобным и обнаружил, что этот кусок кода был частью решения:
$fieldset->addField('entire_range', 'checkbox', array(
'checked' => $this->getEntireRange()==1 ? 'true' : 'false',
'onclick' => 'this.value = this.checked ? 1 : 0;'
)));
Я тоже не смог заставить его сохранить значение в базе данных. Это что-то с классом Varien_Data_Form_Element_Checkbox.
Надеюсь, это поможет, пожалуйста, опубликуйте ваше решение, если вы его нашли!
Будьте здоровы, JD