Автор Тема: 1.6.0.13 пустая почему таблица layered_indexable_attribute_lang_value  (Прочитано 142 раз)

02 Октября 2015, 14:49:13
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите,
prestashop 1.6.0.13 пустая почему таблица layered_indexable_attribute_lang_value
модуль blocklayered сбрасывал, всё индексировал, настраивал по новой, безрезультатно...
02 Октября 2015, 14:50:35
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Показ ошибок включали? Есть какие-нибуть ошибки при индексировании?
02 Октября 2015, 14:53:30
Ответ #2
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Показ ошибок включали? Есть какие-нибуть ошибки при индексировании?

Включил, ошибок нет...
02 Октября 2015, 14:55:18
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
02 Октября 2015, 15:00:28
Ответ #4
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
02 Октября 2015, 15:09:15
Ответ #5
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Единственное место где обновляется эта таблица, здесь:
/modules/blocklayered
public function hookAfterSaveAttribute($params)
{
if (!$params['id_attribute'])
return;

Db::getInstance()->execute(
'DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value
WHERE `id_attribute` = '.(int)$params['id_attribute']
);

foreach (Language::getLanguages(false) as $language)
{
$seo_url = Tools::getValue('url_name_'.(int)$language['id_lang']);

if(empty($seo_url))
$seo_url = Tools::getValue('name_'.(int)$language['id_lang']);

Db::getInstance()->execute(
'INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang_value
(`id_attribute`, `id_lang`, `url_name`, `meta_title`)
VALUES (
'.(int)$params['id_attribute'].', '.(int)$language['id_lang'].',
\''.pSQL(Tools::link_rewrite($seo_url)).'\',
\''.pSQL(Tools::getValue('meta_title_'.(int)$language['id_lang']), true).'\'
)'
);
}
}

Когда срабатывает этот хук hookAfterSaveAttribute???
Не могу заставить сработать прерывание..
02 Октября 2015, 15:12:06
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 2174
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
02 Октября 2015, 15:13:55
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
Когда срабатывает этот хук hookAfterSaveAttribute???
После сохранения атрибута.
02 Октября 2015, 15:16:15
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Если у вас несколько языков, вы добавляете атрибут - значение, то в эту таблицу добавятся значения - id_attribute, id_lang, url_name, meta_title.
02 Октября 2015, 15:21:53
Ответ #9
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если у вас несколько языков, вы добавляете атрибут - значение, то в эту таблицу добавятся значения - id_attribute, id_lang, url_name, meta_title.

Большое спасибо!
02 Октября 2015, 15:24:22
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 20838
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Даже если один язык, то при добавлении атрибута или редактирование существующего в таблицу layered_indexable_attribute_lang_value должны добавляться значения.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
02 Октября 2015, 15:26:48
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Даже если один язык, то при добавлении атрибута или редактирование существующего в таблицу layered_indexable_attribute_lang_value должны добавляться значения.
Точно так, неправильно выразился. Цикл
foreach (Language::getLanguages(false) as $language)сохранит данные для каждого языка.
02 Октября 2015, 15:30:44
Ответ #12
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда вопрос в силе:
Когда срабатывает этот хук hookAfterSaveAttribute???
Не могу заставить сработать прерывание..
02 Октября 2015, 15:41:39
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
Когда срабатывает этот хук hookAfterSaveAttribute???
После сохранения атрибута.
Атрибут добавьте или пересохраните, вот и сработает.
02 Октября 2015, 16:27:31
Ответ #14
  • Старожил
  • ****
  • Сообщений: 254
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чертовщина какая-то
Изменения касаются таблиц
ps_layered_indexable_attribute_group
ps_layered_indexable_attribute_group_lang_value

а вот
layered_indexable_attribute_lang_value
ни в какую...