Page 1 of 1
Ограничение на снимките
Posted: Wed Mar 19, 2014 12:56 pm
by georgi
Здравейте
как може да се модне в администрацията за да се направи ограничение на броя на снимките които могат да се добавят.
Искам само две снимки да могат да се качват на продукт. Една главна + втора
Re: Ограничение на снимките
Posted: Thu Mar 20, 2014 5:05 pm
by mostly
С функция която да прави count във product_image (там се записват допълнителните снимки към даден продукт).
Ако отговора на този count е повече от едно скриваш бутона add image във администрацията.
Code: Select all
public function getCountAditionalImages($product_id) {
return $this->db->query("SELECT count(*) as images FROM `" . DB_PREFIX . "product_image` WHERE product_id ='".(int)$product_id."'");
}
Успех и Поздрави.
Re: Ограничение на снимките
Posted: Fri Mar 21, 2014 6:58 am
by georgi
Здравей. Благодаря ти за насоката, Опитвам се да направя нещата , но нещо не ми се получава. Модването в admin/model/catalog/product нали откривам този ред, но.. Иначе да, както казваш точно това ми беше идеята - след като се добавят две снимки и бутона add image да се скрие. Били ми помогнал малко повече, мисля това би било полезно и на други потребители. Благодаря
Re: Ограничение на снимките
Posted: Fri Mar 21, 2014 3:41 pm
by mostly
1) /admin/model/catalog/product.php -> Добавяш функцията най-долу във класа.
Code: Select all
public function countProductAditionalImages($product_id) {
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'");
return $query->row['total'];
}
2) /admin/controller/catalog/product.php -> Намираш функцията getForm() и пред този код във функцията:
Code: Select all
$this->template = 'catalog/product_form.tpl';
$this->children = array(
'common/header',
'common/footer'
);
добавяш:
Code: Select all
$this->data['additional_images'] = $this->model_catalog_product->countProductAditionalImages(isset($this->request->get['product_id'])?$this->request->get['product_id']:'');
така че да се изглежда това:
Code: Select all
$this->data['additional_images'] = $this->model_catalog_product->countProductAditionalImages(isset($this->request->get['product_id'])?$this->request->get['product_id']:'');
$this->template = 'catalog/product_form.tpl';
$this->children = array(
'common/header',
'common/footer'
);
3) /admin/view/template/catalog/product_form.tpl -> Намираш:
Code: Select all
<a onclick="addImage();" class="button"><?php echo $button_add_image; ?></a>
и го заменяш с това:
Code: Select all
<a id="addImageButton" onclick="addImage();" class="button"><?php echo $button_add_image; ?></a>
4) /admin/view/template/catalog/product_form.tpl -> (същия файл) Намираш javascript функцията function addImage():
Code: Select all
function addImage() {
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="product_image[' + 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="product_image[' + 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++;
}
и добавяш пред "image_row++;":
така че да се получи това:
Code: Select all
function addImage() {
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="product_image[' + 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="product_image[' + 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);
$('#addImageButton').remove();
image_row++;
}
Това е всичко. Поздрави
Re: Ограничение на снимките
Posted: Fri Mar 21, 2014 6:31 pm
by georgi
Благодаря за подробното описание в стъпки. Фантастично. Получи се!
Имам само още едно питане. Сега показва една допълнителна снимка и бутона се скрива, как е възможно да бъдат 3 броя снимки? Има ли начин.....
Благодаря още веднъж
Re: Ограничение на снимките
Posted: Fri Mar 21, 2014 7:34 pm
by mostly
Има но вече ще трябва да се направи по друг начин ... Това беше набързо скалъпено.
Поздрави.
Re: Ограничение на снимките
Posted: Fri Mar 21, 2014 10:55 pm
by georgi
За "набързо скалъпено" резултата е отличен. Дали при възможност бихте ми дали отново малко насоки - урок в стъпки? Ще съм Ви много Благодарен