Post by georgi » Wed Mar 19, 2014 12:56 pm

Здравейте
как може да се модне в администрацията за да се направи ограничение на броя на снимките които могат да се добавят.
Искам само две снимки да могат да се качват на продукт. Една главна + втора

Newbie

Posts

Joined
Wed Mar 19, 2014 12:52 pm

Post by mostly » Thu Mar 20, 2014 5:05 pm

С функция която да прави 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."'");
    }
Успех и Поздрави.

User avatar
New member

Posts

Joined
Thu Feb 28, 2013 2:03 am

Post by georgi » Fri Mar 21, 2014 6:58 am

Здравей. Благодаря ти за насоката, Опитвам се да направя нещата , но нещо не ми се получава. Модването в admin/model/catalog/product нали откривам този ред, но.. Иначе да, както казваш точно това ми беше идеята - след като се добавят две снимки и бутона add image да се скрие. Били ми помогнал малко повече, мисля това би било полезно и на други потребители. Благодаря

Newbie

Posts

Joined
Wed Mar 19, 2014 12:52 pm

Post by mostly » Fri Mar 21, 2014 3:41 pm

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>&nbsp;&nbsp;|&nbsp;&nbsp;<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

$('#addImageButton').remove();
така че да се получи това:

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>&nbsp;&nbsp;|&nbsp;&nbsp;<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++;
}
Това е всичко. Поздрави

User avatar
New member

Posts

Joined
Thu Feb 28, 2013 2:03 am

Post by georgi » Fri Mar 21, 2014 6:31 pm

Благодаря за подробното описание в стъпки. Фантастично. Получи се!
Имам само още едно питане. Сега показва една допълнителна снимка и бутона се скрива, как е възможно да бъдат 3 броя снимки? Има ли начин.....
Благодаря още веднъж

Newbie

Posts

Joined
Wed Mar 19, 2014 12:52 pm

Post by mostly » Fri Mar 21, 2014 7:34 pm

Има но вече ще трябва да се направи по друг начин ... Това беше набързо скалъпено.

Поздрави.

User avatar
New member

Posts

Joined
Thu Feb 28, 2013 2:03 am

Post by georgi » Fri Mar 21, 2014 10:55 pm

За "набързо скалъпено" резултата е отличен. Дали при възможност бихте ми дали отново малко насоки - урок в стъпки? Ще съм Ви много Благодарен

Newbie

Posts

Joined
Wed Mar 19, 2014 12:52 pm
Who is online

Users browsing this forum: No registered users and 5 guests