Перейти к содержанию
Slava

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

Рекомендуемые сообщения

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня тоже интересует вопрос как удалить поле "модель". По ссылке которую дал Vetroff совсем другой пост.

У меня ocstore v0.1.7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишу для версии 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ещё тут:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё тут:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как убрать с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я поле модель убрал и вместо него сделал сортировку товаров в админке по категориям

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"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;
		}
		}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Marianna

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

научите еще, как убрать модель из фильтра/сортировки в категории?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Marianna

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изображение

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я просто поменял "Модель" на "Название". Редактируется там же в файле "\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, и тоже надо убрать строку модель, если не трудно напишите подробней как это сделать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я абсолютный новичок, у меня тоже версия 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а как сделать чтобы модель товара была равна его id?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а как сделать чтобы модель товара была равна его id?

 

Хорошая идея. Кто подскажет изящное решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.