Добрый день! Очень хочу добавить поле "цвета серии" в админку/категории, что бы впоследствии эти цвета серии отображались на странице категории. Но, к сожалению, после добавления фотографии в менеджере изображения, ничего не происходит! Фотографии не добавляются. Делал по аналогии со вкладкой изображения у Товара. Подскажите, пожалуйста где ошибка!
1. Создал таблицу в mysql:
CREATE TABLE IF NOT EXISTS `oc_categ_colour` (
`categ_colour_id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL,
`image` varchar(255) DEFAULT NULL,
`sort_order` int(3) NOT NULL DEFAULT '0',
PRIMARY KEY (`categ_image_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
;
2. Добавил запросы в admin\model\catalog\category.php
if (isset($data['categ_colour'])) {
foreach ($data['categ_colour'] as $categ_colour) {
$this->db->query("INSERT INTO " . DB_PREFIX . "categ_colour SET category_id = '" . (int)$category_id . "', image = '" . $this->db->escape(html_entity_decode($categ_colour['image'], ENT_QUOTES, 'UTF-8')) . "', sort_order = '" . (int)$categ_colour['sort_order'] . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX . "categ_colour WHERE category_id = '" . (int)$category_id . "'");
if (isset($data['categ_colour'])) {
foreach ($data['categ_colour'] as $categ_colour) {
$this->db->query("INSERT INTO " . DB_PREFIX . "categ_colour SET category_id = '" . (int)$category_id . "', image = '" . $this->db->escape(html_entity_decode($categ_colour['image'], ENT_QUOTES, 'UTF-8')) . "', sort_order = '" . (int)$categ_colour['sort_order'] . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX . "categ_colour WHERE category_id = '" . (int)$category_id . "'");
public function getCategoryColours($category_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "categ_colour WHERE category_id = '" . (int)$category_id . "'");
return $query->rows;
}
3. Внёс изменения в admin\controller\catalog\category.php
$this->data['entry_image'] = 'Рисунок';
$this->data['text_image_manager'] = 'Менеджер изображений';
$this->data['text_browse'] = 'Обзор';
$this->data['text_clear'] = 'Очистить';
$this->data['button_add_image'] = $this->language->get('button_add_image');
$this->data['button_remove'] = $this->language->get('button_remove');
$this->data['tab_image'] = $this->language->get('tab_image');
$this->data['tab_colours'] = 'Цвета серии';
$this->load->model('tool/image');
if (isset($this->request->post['categ_colour'])) {
$categ_colours = $this->request->post['categ_colour'];
} elseif (isset($this->request->get['category_id'])) {
$categ_colours = $this->model_catalog_category->getCategoryColours($this->request->get['category_id']);
} else {
$categ_colours = array();
} $this->data['categ_colours'] = array();
foreach ($categ_colours as $categ_colour) {
if ($categ_colour['image'] && file_exists(DIR_IMAGE . $categ_colour['image'])) {
$image = $categ_colour['image'];
} else {
$image = 'no_image.jpg';
}
$this->data['categ_colours'][] = array(
'image' => $image,
'thumb' => $this->model_tool_image->resize($image, 100, 100),
'sort_order' => $categ_colour['sort_order']);
}
$this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
4. Добавил таб в admin\view\template\category\category-form.tpl
id="tabs" class="htabs"><a href="#tab-general"><?php echo $tab_general; ?></a><a href="#tab-data"><?php echo $tab_data; ?></a><a href="#tab-design"><?php echo $tab_design; ?></a><a href="#tab-colours"><?php echo $tab_colours; ?></a></div>
<div id="tab-colours">
<table id="images" class="list">
<thead>
<tr>
<td class="left"><?php echo $entry_image; ?></td>
<td class="right"><?php echo $entry_sort_order; ?></td>
<td></td>
</tr>
</thead>
<?php $image_row = 0; ?>
<?php foreach ($categ_colours as $categ_colour) { ?>
<tbody id="image-row<?php echo $image_row; ?>">
<tr>
<td class="left"><div class="image"><img src="<?php echo $categ_colour['thumb']; ?>" alt="" id="thumb<?php echo $image_row; ?>" />
<input type="hidden" name="categ_colour[<?php echo $image_row; ?>][image]" value="<?php echo $categ_colour['image']; ?>" id="image<?php echo $image_row; ?>" />
<br />
<a onclick="image_upload('image<?php echo $image_row; ?>', 'thumb<?php echo $image_row; ?>');"><?php echo $text_browse; ?></a> | <a onclick="$('#thumb<?php echo $image_row; ?>').attr('src', '<?php echo $no_image; ?>'); $('#image<?php echo $image_row; ?>').attr('value', '');"><?php echo $text_clear; ?></a></div></td>
<td class="right"><input type="text" name="categ_colour[<?php echo $image_row; ?>][sort_order]" value="<?php echo $categ_colour['sort_order']; ?>" size="2" /></td>
<td class="left"><a onclick="$('#image-row<?php echo $image_row; ?>').remove();" class="button"><?php echo $button_remove; ?></a></td>
</tr>
</tbody>
<?php $image_row++; ?>
<?php } ?>
<tfoot>
<tr>
<td colspan="2"></td>
<td class="left"><a onclick="addColour();" class="button"><?php echo $button_add_image; ?></a></td>
</tr>
</tfoot>
</table>
</div
<script type="text/javascript"><!--
var image_row = <?php echo $image_row; ?>;
function addColour() {
html = '<tbody id="image-row' + image_row + '">';
html += ' <tr>';
html += ' <td class="left"><div class="image"><img src="<?php echo $no_image; ?>" alt="" id="thumb' + image_row + '" /><input type="hidden" name="categ_colour[' + image_row + '][image]" value="" id="image' + image_row + '" /><br /><a onclick="image_upload(\'image' + image_row + '\', \'thumb' + image_row + '\');"><?php echo $text_browse; ?></a> | <a onclick="$(\'#thumb' + image_row + '\').attr(\'src\', \'<?php echo $no_image; ?>\'); $(\'#image' + image_row + '\').attr(\'value\', \'\');"><?php echo $text_clear; ?></a></div></td>';
html += ' <td class="right"><input type="text" name="categ_colour[' + image_row + '][sort_order]" value="" size="2" /></td>';
html += ' <td class="left"><a onclick="$(\'#image-row' + image_row + '\').remove();" class="button"><?php echo $button_remove; ?></a></td>';
html += ' </tr>';
html += '</tbody>';
$('#images tfoot').before(html);
image_row++;
}
//--></script>