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

Как убрать у атрибутов несколько языков на ocstore.


Recommended Posts

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

 

Как сделать чтобы значения атрибутов были на всех языках одинаковы (не заполняя одно и тоже для каждого языка) то есть не запрашивали заполнения 
поля дополнительного языка и тянулись от основного языка (убрать мультиязычность атрибутов их значений не удаляя язык).

Сборка ocStore 2.3.0.2.2

Подскажите  как это можно реализовать?

Спасибо.

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


поставить кнопочку  - копирвать в форме

 

При сохранении (добавлении/редактировании) дублировать из определенного языка

 

Для существующих написать небольшой скрипт для заполнения других языковых полей

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

Если я правильно понял данная кнопка позволяет копировать значения атрибутов на другие языки при сохранении. Но как сделать чтобы вообще в атрибутах убрать поле для заполнения на другие языки? Дело в том что в магазине более 45 000 товаров и значений атрибутов у каждого товара более 20 и если в базе хранить одну и туже инфу атрибутов помноженную на языки база будет огромной и сайт будет сильно тормозить.

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


не обращайте на это внимание, это самая малость которая может повлиять на призводительность
Налицие индексаPRIMARY KEY (`product_id`,`attribute_id`,`language_id`) решает  такую проблему

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

По идее атрибуты можно заполнить как и на основной язык модулем Автоматическая обработка прайс-листов но опять возникает проблема актуальности данных, товары постоянно меняются и пополняются и что бы следить за каждым языком это будет целая проблема, вообще в товаре хочу почти у всего отключить мультиязычность кроме описания и метатегов но как это сделать пока что не понял.

 

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


Не делайте этого (отключения)

Проще

после загрузки прайс листов запускать небольшой скрипт языковой "синхронизации"

 

 

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

Не делайте этого (отключения) - думаете может повлиять на работоспособность?

 

На примете есть какой нибудь скрипт который позволит сие исполнить?

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


3 минуты назад, aleksss454 сказал:

думаете может повлиять на работоспособность?

Вы живете в сообществе, а оно не знает что вы там отключили

 

4 минуты назад, aleksss454 сказал:

На примете есть какой нибудь скрипт который позволит сие исполнить?

 

Написать

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

провел эксперимент

UPDATE `newtable` t1
JOIN (SELECT * FROM newtable WHERE `l_id` =1) t2 
ON (t1.`p_id` = t2.`p_id` AND t1.`a_id`=t2.`a_id`)
SET t1.`text` = t2.`text`

 

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

1. Согласен конечно что отключение в коде потом может что нибудь повлечь за собой (например совместимость с каким нибудь модулем). Вот и вопрос как это сделать более правильно что бы потом не было проблем?

Кстати я заметил наименования атрибутов при создании и включении языка сами заполнились или подтягиваются от  языка по умолчанию? и если заполнить значение атрибута то на другом языке появляется.и наименование атрибута и значение. Как такое сделать со значениями атрибута. 

И как проверить наименование атрибута скопировалось в базе или подтягивается от основного языка?

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


10 минут назад, chukcha сказал:

провел эксперимент


UPDATE `newtable` t1
JOIN (SELECT * FROM newtable WHERE `l_id` =1) t2 
ON (t1.`p_id` = t2.`p_id` AND t1.`a_id`=t2.`a_id`)
SET t1.`text` = t2.`text`

 

И как успехи получилось?

Это запрос в базу данных?

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


чем больше база, тем хуже для скорости. думаю, это никто не будет отрицать. а дополнительные ключи могут не только положительно влиять на обработку, особенно если они созданы не правильно.

в Вашем желании, я бы посмотрел на вот такую логику (не пробовал, но предполагаю); снять статус со второго языка, а на обработку Названия, Описания и Мета-тэгов изменил бы запросы, чтоб обрабатывало без учета статуса языков. (как Вы понимаете, изменение забросов будет не один).

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

2 минуты назад, vier сказал:

чем больше база, тем хуже для скорости. думаю, это никто не будет отрицать.

Буду,

На каких запросах

Какие дополнительные ключи, если это ключи - родные

 

Не надо отключать ничего если нужны языковые особенности.

 

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

7 минут назад, vier сказал:

чем больше база, тем хуже для скорости. думаю, это никто не будет отрицать. а дополнительные ключи могут не только положительно влиять на обработку, особенно если они созданы не правильно.

в Вашем желании, я бы посмотрел на вот такую логику (не пробовал, но предполагаю); снять статус со второго языка, а на обработку Названия, Описания и Мета-тэгов изменил бы запросы, чтоб обрабатывало без учета статуса языков. (как Вы понимаете, изменение забросов будет не один).

Как вариант но главное что бы формировало урл сайт.ру/ru/товар   а с таким вариантом как я понял урл будет одинаков для каждого языка.

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


Проверил базу данных и заметил что наименования атрибутов не копируются под новый язык при создании язык  а подтягиваются из основного, в базе данных язык только 1 http://prntscr.com/fp8xoy а на сайте отображаются на 2 языках http://prntscr.com/fp8yfo то есть в названиях атрибута такая логика если поле доп языка не заполнено то оно транслируется от главного языка. 

 

Как думаете такое можно реализовать и в значениях атрибутов?

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


20 минут назад, aleksss454 сказал:

И как успехи получилось?

Это запрос в базу данных?

Это пример запроса

 

3 минуты назад, aleksss454 сказал:

Проверил базу данных и заметил что наименования атрибутов не копируются под новый язык при создании язык  а подтягиваются из основного,

Да? А это что?

 

		// Product Attribute
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_attribute WHERE language_id = '" . (int)$this->config->get('config_language_id') . "'");

		foreach ($query->rows as $product_attribute) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_attribute SET product_id = '" . (int)$product_attribute['product_id'] . "', attribute_id = '" . (int)$product_attribute['attribute_id'] . "', language_id = '" . (int)$language_id . "', text = '" . $this->db->escape($product_attribute['text']) . "'");
		}

 

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

Мне сложно ответить на вопрос так как плоховато знаю рнр  но по факту выводит атрибуты от главного языка если нет откуда им взяться в базе их нет.

По вашему реально реализовать сценарий запроса если не заполнено поле доп языка выводить по умолчанию то есть с основного языка?

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


Поясняю, я вам привел пример, где "выравниваются" все значения атрибутов

 

И показал код, php здесь не причем

как при добавлении нового языуа, копируются  атрибуты из языка по умолчанию

 

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

1. Не весь ответ понял """где "выравниваются" все значения атрибутов""" но не суть.

 

2. как при добавлении нового языка, копируются  атрибуты из языка по умолчанию - если это вопрос - в магазине удалил все языки кроме рус, 
потом добавил и ничего не заполнял для этого языка когда зашел в атрибуты картина http://prntscr.com/fp9jdi название заполнено в для 2 языков, в базе данных все названия атрибутов с языком 1 по умолчанию, поэтому и предположил что запрос выглядит так
При запросе наименования атрибута если оно не заполнено для данного языка значит подставляется значение от языка по умолчанию (возможно я ошибаюсь).
Такой запрос был бы идеальным вариантом для решения моей проблемы  то есть при запросе в базу данных "значения для атрибута, определенного языка" если его нет то подставляется значение данного атрибута языка по умолчанию.
В итоге ничего заполнять не надо следить не надо и база разумных размеров.

По Вашему реально сделать такой запрос.

 

 

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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