Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

состояние на складе и дополнительные поля


Гість

Recommended Posts

На осторе нашел прекрасное дополнение, вывод состояние на складе в список товаров. Тоесть покупатель видел есть ли товар в наличии или нет в списке товаров в категории. Выкладываю тут XML для осторе 0.2.2, к сожеления на осторе 1.0.1 он не работает, хотел бы попросить кто знает исправить неверные переменные.

<modification>
	<id>Состояние на складе в категории</id>
	<version>1</version>
	<vqmver>1</vqmver>
	<author>Shoma</author>	
	<file name="catalog/controller/product/category.php">
    	
    	<operation>
        	<search position="after"><![CDATA[
				$this->language->load('product/category');
        	]]></search>
        	<add><![CDATA[
				$this->language->load('product/product');
			]]></add>
    	</operation>
		<operation>
        	<search position="before"><![CDATA[
					$this->data['products'][] = array(
        	]]></search>
        	<add><![CDATA[
					/* stockStatus display - start */
					$stockStatus = "";
					if ($result['quantity'] <= 0) {
						$stockStatus = $result['stock'];
					} else {
						if ($this->config->get('config_stock_display')) {
							$stockStatus = $result['quantity'];
						} else {
							$stockStatus = $this->language->get('text_instock');
						}
					}
					/* stockStatus display - end */
			]]></add>
    	</operation>
    	<operation>
        	<search position="after"><![CDATA[
					'description' => utf8_truncate(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 400, ' …', true),
        	]]></search>
        	<add><![CDATA[
			'stock_status'   => $stockStatus,
			]]></add>
    	</operation>	
	</file>	
</modification>
2. Нужно вывести аналогичное поле описания в карточке продукта. Тоесть второе описание с поддержкой html. Также нашел модуль который выводить произвольную информацию в спискок товаров в категории, попытался передалть на вывод доп информации в карточку продукта, но выдает ошибку, думаю не правильно задал. с админки все работает, проблема именно на стороне вывода информации.

<modification>
	<id>Свой текст</id>
	<version>1</version>
	<vqmver>1</vqmver>
	<author>Shoma</author>

	<file name="admin/controller/catalog/product.php">
    	<operation>
        	<search position="after"><![CDATA[
        	$this->data['entry_layout'] = $this->language->get('entry_layout');
        	]]></search>
        	<add><![CDATA[
			$this->data['entry_addtext'] = $this->language->get('entry_addtext');
			$this->data['tab_addtext'] = $this->language->get('tab_addtext');
        	]]></add>
    	</operation>
    	<operation>
        	<search position="before"><![CDATA[
        	if (isset($this->request->post['product_tag'])) {
        	]]></search>
        	<add><![CDATA[
			if (isset($this->request->post['addtext'])) {
			$this->data['addtext'] = $this->request->post['addtext'];
		} elseif (!empty($product_info)) {
			$this->data['addtext'] = $product_info['addtext'];
		} else {
			$this->data['addtext'] = '';
		}
        	]]></add>
    	</operation>	
	</file>	
	

	<file name="admin/model/catalog/product.php">
    	<operation>
        	<search position="replace"><![CDATA[
        	$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");
        	]]></search>
        	<add><![CDATA[
			$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', addtext = '" . $this->db->escape($data['addtext']) . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");
        	]]></add>
    	</operation>	
    	<operation>
        	<search position="replace"><![CDATA[
        	$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
        	]]></search>
        	<add><![CDATA[
			$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', addtext = '" . $this->db->escape($data['addtext']) . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
        	]]></add>
    	</operation>		
	</file>
	
	<file name="admin/view/template/catalog/product_form.tpl">
		<operation>
        	<search position="replace"><![CDATA[
  	<div 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-links"><?php echo $tab_links; ?></a><a href="#tab-attribute"><?php echo $tab_attribute; ?></a><a href="#tab-option"><?php echo $tab_option; ?></a><a href="#tab-discount"><?php echo $tab_discount; ?></a><a href="#tab-special"><?php echo $tab_special; ?></a><a href="#tab-image"><?php echo $tab_image; ?></a><a href="#tab-reward"><?php echo $tab_reward; ?></a><a href="#tab-design"><?php echo $tab_design; ?></a></div>
        	]]></search>
        	<add><![CDATA[
			<div 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-links"><?php echo $tab_links; ?></a><a href="#tab-attribute"><?php echo $tab_attribute; ?></a><a href="#tab-option"><?php echo $tab_option; ?></a><a href="#tab-discount"><?php echo $tab_discount; ?></a><a href="#tab-special"><?php echo $tab_special; ?></a><a href="#tab-image"><?php echo $tab_image; ?></a><a href="#tab-reward"><?php echo $tab_reward; ?></a><a href="#tab-design"><?php echo $tab_design; ?></a><a href="#tab-addtext"><?php echo $tab_addtext; ?></a></div>
        	]]></add>
    	</operation>	
		<operation>
        	<search position="before"><![CDATA[
        	</form>
        	]]></search>
        	<add><![CDATA[
			<div id="tab-addtext">
        	<table class="form">
		  	<tr>
		  		<td><?php echo $entry_addtext; ?></td>
		  		<td>
		  			<textarea name="addtext" id="addtext"><?php echo $addtext; ?></textarea>
		  		</td>
		  	</tr>
		     </table>
		     </div>
        	]]></add>
    	</operation>
    	<operation>
        	<search position="after" offset="9"><![CDATA[
        	CKEDITOR.replace('description<?php echo $language['language_id']; ?>', {
        	]]></search>
        	<add><![CDATA[
			<script type="text/javascript"><!--
<?php foreach ($languages as $language) { ?>
CKEDITOR.replace('addtext', {
	filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
	filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
	filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
	filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
	filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',
	filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'
});
<?php } ?>
//--></script> 
        	]]></add>
    	</operation>	
	</file>	
	
	<file name="catalog/controller/product/product.php">
    	<operation>
        	<search position="after"><![CDATA[
        	$this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
        	]]></search>
        	<add><![CDATA[
			$this->data['addtext'] 	=> html_entity_decode($product_info['addtext'], ENT_QUOTES, 'UTF-8');
        	]]></add>
    	</operation>	
	</file>	
			
	
	<file name="catalog/view/theme/*/template/product/product.tpl">
    	<operation>
        	<search position="replace"><![CDATA[
        	<li><div><span><?php echo $text_stock; ?></span></div> <?php echo $stock; ?></li>
        	]]></search>
        	<add><![CDATA[
			<li><div><span><?php echo $product['addtext']; ?></span></div></li>
        	]]></add>
    	</operation>
	</file>	
	

</modification>
Надіслати
Поділитися на інших сайтах

Сделал первую вашу задачу, файл vqmod остатка товара в категории для осторе 1.0.х, не забудьте в файле

catalog/view/theme/default/template/product/category.tpl

добавить в нужном месте

<? echo $product['stock_status']; ?>
ostatok.xml
Надіслати
Поділитися на інших сайтах


Всё это можно сделать стандартными средствами, без использования vqmod.

Интересно увидеть:) Как без вмешательства в контроллер категории и без ухода от модели MVC сделать запрос на вывод остатка))) И чтобы он при обновлениях движка не перестал работать:)
Надіслати
Поділитися на інших сайтах


Сделал первую вашу задачу, файл vqmod остатка товара в категории для осторе 1.0.х, не забудьте в файле

catalog/view/theme/default/template/product/category.tpl

добавить в нужном месте

<? echo $product['stock_status']; ?>
ostatok.xml

на осторе 1.0.x не находит след

<search position="after"><![CDATA[$cut_descr_symbols =]]></search>
попробовал сделать так

<search position="before"><![CDATA[$this->data['products'][] = array(]]></search>
выходит на странице коробозяки, поле не выводится

----------------------------------------------------------------------

tim21701 мне так удобнее отслеживать изменения а также держать в чистоте исходный код

Надіслати
Поділитися на інших сайтах

...tim21701 мне так удобнее отслеживать изменения а также держать в чистоте исходный код...

+ 1. Я тоже привык когда всё прозрачно и без лишних вмешательств в код скрипта "со стороны"... И, наверное, именно поэтому, я не приверженец vQmod и прочих сладостей. К примеру, зачем устанавливать так всеми популярный и любимый мод "EMS Почта России" (а затем, разбираться, почему цифры не правильные или почему лезут ошибки) когда всё это, можно сделать стандартными средствами...

Интересно увидеть. Как без вмешательства в контроллер категории и без ухода от модели MVC сделать запрос на вывод остатка)))...

Если Вы сейчас это серьёзно, а не ради стёба, то, я могу "напрячься" :D и показать Вам - как это сделать (стандартно), без использования vQmod.

Только, чуть позже... Я сейчас кое что доделываю на jQuery. ;)
Надіслати
Поділитися на інших сайтах

на осторе 1.0.x не находит след

выходит на странице коробозяки, поле не выводится

Прикрепите свой catalog/controller/product/category.php к ответу я по Вашему контроллеру сделаю ostatok.xml
Надіслати
Поділитися на інших сайтах


+ 1. Я тоже привык когда всё прозрачно и без лишних вмешательств в код скрипта "со стороны"... И, наверное, именно поэтому, я не приверженец vQmod и прочих сладостей. К примеру, зачем устанавливать так всеми популярный и любимый мод "EMS Почта России" (а затем, разбираться, почему цифры не правильные или почему лезут ошибки) когда всё это, можно сделать стандартными средствами...

Если Вы сейчас это серьёзно, а не ради стёба, то, я могу "напрячься" :D и показать Вам - как это сделать (стандартно), без использования vQmod.

Только, чуть позже... Я сейчас кое что доделываю на jQuery. ;)

вероятно ты не понял. как раз за счет vQmod в код нечего не вносится, и в случае обновления движка можно все поправить в 1 файле не трогая основных изначальных файлов движка. я сейчас перехожу с 0,2,2 на 1,0,1 так очень желею что vQmod раньше не было. так как даже не помню какие изменения вносил :(

Необходимые мне изменения стандартными методами не сделаешь к сожалению. Тоже об этом думал.

dinox вот файл. вроде он исходный с последней сборки из SVN хотя может уже что то и правил :)

category.php

Надіслати
Поділитися на інших сайтах

  • 1 month later...

Итересная тема. Попробовал файл остатки применить у себя. На Денвере пошел. На хостинге работает, но выдает следующее:

Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192Notice: Undefined index: stock in /home/virtwww/w_tools-vr-shop_5aba4414/http/vqmod/vqcache/vq2-catalog_controller_product_category.php on line 192

Если есть решение - буду признателен.

Надіслати
Поділитися на інших сайтах


  • 7 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.