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

[Решено] Убрать поле "Модель"


Slava

Recommended Posts

День добрый.Специфика товара у меня в магазине такова, что поле "модель" там ну совсем не нужно и даже мешает. Как снять с него требование на обязательное заполнение? И в описании заказа оно, если не ошибаюсь, тоже отображается, оттуда его тоже бы хорошо убрать. Как всё это провернуть?Версия 1.4.8Спасибо

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


  • 5 months later...
  • 3 months later...

Пишу для версии 0.2.0

Чтобы совсем удалить поле model

admin/controller/catalog/product.php - найти: (1119-я строка)

if ((strlen(utf8_decode($this->request->post['model'])) < 1) || (strlen(utf8_decode($this->request->post['model'])) > 64)) {
      		$this->error['model'] = $this->language->get('error_model');
    	}
Удалить или закомментировать

Убираем model со страницы редактирования товара в админке

admin/view/template/catalog/product_form.tpl - найти: (61-я строка)

<tr>
            <td><span class="required">*</span> <?php echo $entry_model; ?></td>
            <td><input type="text" name="model" value="<?php echo $model; ?>" />
              <?php if ($error_model) { ?>
              <span class="error"><?php echo $error_model; ?></span>
              <?php } ?></td>
          </tr>
Удалить

Убираем вывод модели со страницы продукта

catalog/view/theme/ВАША ТЕМА/template/product/product.tpl - найти (31-я строка в стандартном шаблоне)

<tr>
                <td><b><?php echo $text_model; ?></b></td>
                <td><?php echo $model; ?></td>
              </tr>
Удалить

Убираем вывод модели со страницы категории

catalog/view/theme/ВАША ТЕМА/template/product/category.tpl - найти (53-я строка в стандартном шаблоне)

<span style="color: #999; font-size: 11px;"><?php echo $products[$j]['model']; ?></span><br />
Удалить

Убираем model со страницы корзины

catalog/view/theme/ВАША ТЕМА/template/checkout/cart.tpl - найти (25-я строка и 47-ая в стандартном шаблоне)

<th align="left"><?php echo $column_model; ?></th>
<td align="left" valign="top"><?php echo $product['model']; ?></td>
Удалить

Убираем model со страницы подтверждения заказа

catalog/view/theme/ВАША ТЕМА/template/checkout/confirm.tpl - найти (44-я строка и 56-ая в стандартном шаблоне)

<th align="left"><?php echo $column_model; ?></th>
<td align="left" valign="top"><?php echo $product['model']; ?></td>
Удалить

Убираем model со страницы в истории заказов пользователя

catalog/view/theme/ВАША ТЕМА/template/account/invoice.tpl - найти (54-я строка и 66-ая в стандартном шаблоне)

<th align="left"><?php echo $text_model; ?></th>
<td align="left" valign="top"><?php echo $product['model']; ?></td>
Удалить

Убираем model с письма, которое приходит пользователю после заказа

catalog/view/theme/ВАША ТЕМА/template/mail/order_confirm.tpl - найти (60-я строка и 72-ая в стандартном шаблоне)

<th align="left" style="width: 15%; padding: 0.3em; color: #FFFFFF;"><?php echo $column_model; ?></th>
<td align="left"><?php echo $product['model']; ?></td>
Удалить

Возможно, еще где-то model придется удалить - я написал те места, о которых вспомнил

Чтобы сделать поле model не обязательным к заполнению

admin/controller/catalog/product.php - найти: (1119-я строка)

if ((strlen(utf8_decode($this->request->post['model'])) < 1) || (strlen(utf8_decode($this->request->post['model'])) > 64)) {
      		$this->error['model'] = $this->language->get('error_model');
    	}
Заменить на
if (strlen(utf8_decode($this->request->post['model']) > 64) {
      		$this->error['model'] = $this->language->get('error_model');
    	}
Но тогда, если model вы не заполните, то и выводится на страницы товара и категории будет пусто значение. Придется или вводить условие на вывод или убирать вывод. Короче, проще удалить поле совсем :)
  • +1 4
Надіслати
Поділитися на інших сайтах


  • 1 month later...

или просто в карточке товара сделать

style="display:none;"
у модели.

Чтоб не сильно заморачиваться ;)

UPD: ну да, и в админовском контроллере убрать в валидации проверку поля. Чтоб совсем не заморачиваться.

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

  • 2 months later...

Ещё тут:

catalog/view/theme/ваша_тема/template/common/success.tpl

Не нашёл в стандартной теме упоминания про модель в этом файле.

Сделал всё, как описано в 4 посте, но всё равно в описании продукта была "модель":

http://dettovary.ru/index.php?route=product/product&product_id=49

Убрал ещё строки 32,33 и 175 в файле ...тема\template\product\product.php

Осталась опция в расширенном поиске "Поиск по модели". Где бы убрать?

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


  • 3 months later...

А как убрать с yml model?

вот yml

<?php
class ControllerExportYml extends Controller {
	public function index() {
		if ($this->config->get('yandex_market_status')) {
			$eof = "n";
			$output  = '<?xml version="1.0" encoding="utf-8" ?>' . $eof;
			$output .= '<!DOCTYPE yml_catalog SYSTEM "shops.dtd">' . $eof;
			$output .= '<yml_catalog date="' . date("Y-m-d H:i") . '">' . $eof;
			$output .= '<shop>' . $eof;
			$output .= '<name>' . $this->textPrepare($this->config->get('config_name')) . '</name>' . $eof;
			$output .= '<company>' . $this->textPrepare($this->config->get('yandex_market_company')) . '</company>' . $eof;
			$output .= '<url>' . HTTP_SERVER . '</url>' . $eof;
			$output .= '<phone>' . $this->textPrepare($this->config->get('config_telephone')) . '</phone>' . $eof;

			// Перечесляем валюты магазина
			// TODO: Добавить возможность настраивать проценты.
			$offers_currency = $this->config->get('yandex_market_currency');

			if (! $this->currency->has($offers_currency)) exit();

			$shop_currency = $this->config->get('config_currency');

			$output .= '<currencies>' . $eof;
			$output .= '<currency id="' . $offers_currency . '" rate="1"/>' . $eof;

			$this->load->model('localisation/currency');
			$supported_currencies = array_flip(array('RUR', 'RUB', 'USD', 'BYR', 'KZT', 'EUR', 'UAH'));
			$currencies = array_intersect_key($this->model_localisation_currency->getCurrencies(), $supported_currencies);
			foreach ($currencies as $currency) {
				if ($currency['code'] != $offers_currency && $currency['status'] == 1) {
					$output .= '<currency id="' . $currency['code'] . '" rate="' . number_format($this->currency->convert($currency['value'], $offers_currency, $shop_currency), 4, '.', '') . '"/>' . $eof;
				}
			}
			$output .= '</currencies>' . $eof;

			// Категории товаров
			$this->load->model('catalog/category');
			$output .= '<categories>' . $eof;
			$output .= $this->getCat();
			$output .= '</categories>' . $eof;

			$this->load->model('tool/seo_url');

			// Товарные позиции
			$this->load->model('catalog/product');
			$this->load->model('tool/image');
			$output .= '<offers>' . $eof;

			$products = $this->model_catalog_product->getProducts();
			foreach ($products as $product) {
				$output .= '<offer id="' . $product['product_id'] . '" available="true">' . $eof;
				$output .= '<url>' . $this->textPrepare($this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'])) . '</url>' . $eof;
				$output .= '<price>' . number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), 2, '.', '') . '</price>' . $eof;
				$output .= '<currencyId>' . $offers_currency . '</currencyId>' . $eof;

				// Определяем категорию для товара
				$categories = $this->model_catalog_product->getCategories($product['product_id']);
				$output .= '<categoryId>' . $categories[0]['category_id'] . '</categoryId>' . $eof;

				// Определеяме изображение
				if ($product['image']) {
					$output .= '<picture>' . $this->model_tool_image->resize($product['image'], 500, 500) . '</picture>' . $eof;
				} else {
					$output .= '<picture>' . $this->model_tool_image->resize('no_image.jpg', 500, 500) . '</picture>' . $eof;
				}

				$output .= '<delivery> true </delivery>' . $eof;
				$output .= '<local_delivery_cost>300</local_delivery_cost>' . $eof;
				$output .= '<name>' . $this->textPrepare($product['name']) . '</name>' . $eof;
//				$output .= '<typePrefix>  </typePrefix>' . $eof;
//				$output .= '<vendorCode>  </vendorCode>' . $eof;
				$output .= '<model>' . $this->textPrepare($product['model']) . '</model>' . $eof;
				$output .= '<description>' . $this->textPrepare($product['description']) . '</description>' . $eof;
				$output .= '<manufacturer_warranty>true</manufacturer_warranty>' . $eof;
				$output .= '<country_of_origin>' . $this->textPrepare($product['sku']) . '</country_of_origin>' . $eof;
				$output .= '</offer>' . $eof;
			}

			$output .= '</offers>' . $eof;
			$output .= '</shop>' . $eof;
			$output .= '</yml_catalog>';
			$this->response->addHeader('Content-Type: application/xml');
			$this->response->setOutput($output);
		}
	}

	// Возвращает массив категорий
	protected function getCat($parent_id = 0) {
		$categories = $this->model_catalog_category->getCategories($parent_id);
		$out = '';

		foreach ($categories as $category) {
			$out .= '<category id="' . $category['category_id'] . '"';
			if($parent_id != 0) $out .= ' parentId="' . $parent_id . '"';
			$out .= '>' . $this->textPrepare($category['name']) . "</category>n";
			if($e =  $this->getCat($category['category_id'])) $out .= $e;
		}
		return $out;
	}

	/**
	 * Подготовка текста в соответствии с требованиями Яндекса
	 * Запрещены любые html-тэги. Стандарт XML не допускает использования в текстовых данных
	 * непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением
	 * символов с кодами 9, 10, 13 - табуляция, перевод строки, возврат каретки). Также этот
	 * стандарт требует обязательной замены некоторых символов на эквивалентные им символьные
	 * примитивы.
	 * @param string $text
	 * @return string
	 */
	protected function textPrepare($text) {
		$text = htmlspecialchars_decode(trim($text));
		$text = strip_tags($text);
		$search = array('"', '&', '>', '<', ''');
		$replace = array('"', '&', '>', '<', ''');
		$text = str_replace($search, $replace, $text);
		$text = preg_replace('![x00-x08x0B-x0Cx0E-x1F]+!is', ' ', $text);
		$text = preg_replace('!s+!', ' ', $text);

		return trim($text);
	}
}
?>
Змінено користувачем AlexFisher
code, spoiler
Надіслати
Поділитися на інших сайтах


  • 1 month later...
  • 7 months later...

"UPD: ну да, и в админовском контроллере убрать в валидации проверку поля. Чтоб совсем не заморачиваться. "

Знающие люди, подскажите, пожалуйста, чайнику, где в админовском контроллере убрать в валидации проверку поля, отвечающего за модель? версия 1.5.3.1.

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


"UPD: ну да, и в админовском контроллере убрать в валидации проверку поля. Чтоб совсем не заморачиваться. "

Знающие люди, подскажите, пожалуйста, чайнику, где в админовском контроллере убрать в валидации проверку поля, отвечающего за модель? версия 1.5.3.1.

если просто это поле сделать необязательным в админке то:

В файле по адресу /admin/controller/catalog/product.php найти строку вида:

private function validateForm() {
		if (!$this->user->hasPermission('modify', 'catalog/product')) {
				$this->error['warning'] = $this->language->get('error_permission');
		}
		foreach ($this->request->post['product_description'] as $language_id => $value) {
				if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) {
						$this->error['name'][$language_id] = $this->language->get('error_name');
				}
		}
			  
		if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
				$this->error['model'] = $this->language->get('error_model');
		}
			  
				if ($this->error && !isset($this->error['warning'])) {
						$this->error['warning'] = $this->language->get('error_warning');
				}

и заменить на:

private function validateForm() {
		if (!$this->user->hasPermission('modify', 'catalog/product')) {
				$this->error['warning'] = $this->language->get('error_permission');
		}
		foreach ($this->request->post['product_description'] as $language_id => $value) {
				if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) {
						$this->error['name'][$language_id] = $this->language->get('error_name');
				}
		}
			  
		/*if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
				$this->error['model'] = $this->language->get('error_model');
		}*/
			  
				if ($this->error && !isset($this->error['warning'])) {
						$this->error['warning'] = $this->language->get('error_warning');
				}
А если убрать вообще чтобы слово модель не отображалось то:

Итак, для Version 1.5.3.1 что б убрать обязательную валидацию в админке, нужно открыть файл по адресу: (спасибо говорим автору этого совета Baco)

admincontrollercatalogproduct.php

найти код:

private function validateForm() {
		if (!$this->user->hasPermission('modify', 'catalog/product')) {
				$this->error['warning'] = $this->language->get('error_permission');
		}
		foreach ($this->request->post['product_description'] as $language_id => $value) {
				if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) {
						$this->error['name'][$language_id] = $this->language->get('error_name');
				}
		}
			  
		if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
				$this->error['model'] = $this->language->get('error_model');
		}
			  
				if ($this->error && !isset($this->error['warning'])) {
						$this->error['warning'] = $this->language->get('error_warning');
				}
									  
		if (!$this->error) {
						return true;
		} else {
				return false;
		}
		}

и заменить на:

private function validateForm() {
		if (!$this->user->hasPermission('modify', 'catalog/product')) {
				$this->error['warning'] = $this->language->get('error_permission');
		}
		foreach ($this->request->post['product_description'] as $language_id => $value) {
				if ((utf8_strlen($value['name']) < 1) || (utf8_strlen($value['name']) > 255)) {
						$this->error['name'][$language_id] = $this->language->get('error_name');
				}
		}
			  
		/*if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
				$this->error['model'] = $this->language->get('error_model');
		}*/
			  
				if ($this->error && !isset($this->error['warning'])) {
						$this->error['warning'] = $this->language->get('error_warning');
				}
									  
		if (!$this->error) {
						return true;
		} else {
				return false;
		}
		}
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
  • 2 weeks later...

Marianna

Во втором случаи тоже самое что ив первом, просто становится не обязательным, но не пропадает из описания товара! Как убрать из описания???

в файле вашатемаtemplateproductproduct.tpl удалить строчки со словом "model"

в этой же папке в других файлах тоже можно грохнуть строки со словом "model"

только в сортировке не могу убрать(

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


Блин, в корзине убрал вывод модели, все сместилось, не могу поправить.

Изображение

добавляю новые колонки, все наперекосяк идет(((

Вечно гемор у меня с таблицами.

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


  • 3 months later...

А я просто поменял "Модель" на "Название". Редактируется там же в файле "\catalog\view\theme\default\template\product\product.tpl".

На 29 строчке вместо

<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />

написал

<span><?php echo 'Название:'; ?></span> <?php echo $model; ?><br />

Так намного проще) Да и лишний раз повторение названия хуже не будет - особенно для продвижения.

Я еще поменял местами производителя и получившееся поле "Название" (в том же файле).

И не забудьте перекодировать в UTF-8 без bom (ну у меня покрайней мере все в уникоде, не знаю как должно быть по стандарту)

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


Помогите! У меня opencart 1.5.4.1 русской сборки, это поле "Модель" уже вес мозг проело, в интернете по этой теме инфы практически не найти, а то что здесь написано, не помогает, выдает ошибку (

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


Помогите! У меня opencart русской сборки, это поле "Модель" уже вес мозг проело, в интернете по этой теме инфы практически не найти, а то что здесь написано, не помогает, выдает ошибку (

Привет. Я у себя 1.5.4.1 скрывал с помощью

style="display:none;"

. Везде где оно отображается пользователю и все.

Блин, в корзине убрал вывод модели, все сместилось, не могу поправить.

55555.jpg

добавляю новые колонки, все наперекосяк идет(((

Вечно гемор у меня с таблицами.

Попробуй добавить стиль <td class="model"></td> в \catalog\view\theme\default\template\checkout\cart.tpl

пример моей корзины


	  <tr>
		<td class="image"></td>
		<td class="name"><?php echo $vouchers['description']; ?></td>
		<td class="model"></td>
		<td class="quantity"><input type="text" name="" value="1" size="1" disabled="disabled" />
		   <a href="<?php echo $vouchers['remove']; ?>"><img src="catalog/view/theme/default/image/remove.png" alt="<?php echo $button_remove; ?>" title="<?php echo $button_remove; ?>" /></a></td>
		<td class="price"><?php echo $vouchers['amount']; ?></td>
		<td class="total"><?php echo $vouchers['amount']; ?></td>
	  </tr>

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

Я абсолютный новичок, у меня тоже версия 1.5.4.1, и тоже надо убрать строку модель, если не трудно напишите подробней как это сделать

Я сделал так:

В файле: admin/controller/catalog/product.php (строка 881 по 883) найди:

if ((strlen(utf8_decode($this->request->post['model'])) < 3) || (strlen(utf8_decode($this->request->post['model'])) > 24)) {
  $this->error['model'] = $this->language->get('error_model');
}

закомментировать

потом, admin/view/template/catalog/product_form.tpl (строка 38 по 42)

   <td><input type="text" name="model" value="<?php echo $model; ?>" />
  <br />
  <?php if ($error_model) { ?>
  <span class="error"><?php echo $error_model; ?></span>
  <?php } ?></td>

заменить на

<td><input type="text" name="model" value="<?php echo $model; ?>" /></td>

после чего, catalog/view/theme/Ваша_тема/template/product/product.tp удалить код (линия 25 по 28)

<tr>
 <td><b><?php echo $text_model; ?></b></td>
 <td><?php echo $model; ?></td>
</tr>

Можно еще поискать и закомментировать следующею строку

<span style="color: #999; font-size: 11px;"><?php echo $products[$j]['model']; ?></span><br />

в файлах

catalog/view/theme/Ваша_тема/template/common/home.tpl

catalog/view/theme/Ваша_тема/template/product/category.tpl

catalog/view/theme/Ваша_тема/template/product/manufacturer.tpl

catalog/view/theme/Ваша_тема/template/product/search.tpl

catalog/view/theme/Ваша_тема/template/product/special.tpl

Но перед изменением или удалением, лучше сделать бэкап всех файлов, на всякий случай.

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


Подскажите новичку: в чем вообще смысл поля модель и за что оно отвечает? тоесть как его можно использовать и в каком случае оно может пригодиться? Это артикул или разновидность товара? В чем отличие от поля "название"?

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


  • 1 month later...
  • 6 months later...

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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