PrestaShop

Статус
В этой теме нельзя размещать новые ответы.

dr-ef

Создатель
Регистрация
2 Июл 2011
Сообщения
35
Реакции
12
Да, все в курсе я думаю.
Просто не у всех есть >50 постов :ah:
п.с. зачем и почему так, не понимаю. :nezn:
п.с.2 набор продолжается ;)
Я написал в личку и мне обьяснили почему там стоит 50 постов...но суть в том что еще полгода буду собирать 50 постов...а модуль надо сейчас.
 

stenley2

Постоялец
Регистрация
16 Янв 2011
Сообщения
84
Реакции
16
Хочу поделиться маленькой полезностью для престы!
Убрать номер ID в адресе ЧПУ url как выяснилось не подходило, но кое-что получилось другое.
Модифицировал чуть url производителей. А конкретней дописал между ID и названием производителя свое нужное слово.
Теперь урл при выборе товаров от производителя «Италия» выглядит не так:
site.com/1_italiya
а вот так
site.com/1_mebel-italiya
нужно ковырнуть 2 файла: \classes\Link.php и .htaccess
в Link.php ~130 строка
дописать нужное слово(а) после знака '_' в примере: '_mebel-'
Код:
if (is_object($id_manufacturer))
			return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_manufacturer->id).'[B]_mebel-[/B]'.$id_manufacturer->link_rewrite) :
			(_PS_BASE_URL_.__PS_BASE_URI__.'manufacturer.php?id_manufacturer='.(int)($id_manufacturer->id));
		if ($alias)
			return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_manufacturer).'[B]_mebel-[/B]'.$alias) :
			(_PS_BASE_URL_.__PS_BASE_URI__.'manufacturer.php?id_manufacturer='.(int)($id_manufacturer));
		return _PS_BASE_URL_.__PS_BASE_URI__.'manufacturer.php?id_manufacturer='.(int)($id_manufacturer);
	}
В .htaccess найти строки
Код:
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
И дописать
Код:
RewriteRule ^([0-9]+)_[B]mebel-[/B]([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
Достаточно просто :tut:
На счет убирания номер ID есть вариант: (не проверял)
Для просмотра ссылки Войди или Зарегистрируйся
 

fly21

Создатель
Регистрация
11 Авг 2009
Сообщения
19
Реакции
2
Также хочу поделиться своими доработками.
Многие наверняка пользовали "фильтр многоуровневой навигации". При задействовании любого из фильтров или переход на следующую страницу в категории при включенном модуле навигации пропадали чекбоксы для выбора товаров для сравнения.
А дело все в том, что в шаблонах product-list.tpl эти чекбоксы выводятся при условии
Код:
{if isset($comparator_max_item) && $comparator_max_item}
.
Соответственно есть два решения этого вопроса:
1) убрать в шаблоне это условие, т.е. найти
Код:
{if isset($comparator_max_item) && $comparator_max_item}
					<p class="compare"><input type="checkbox" onclick="checkForComparison({$comparator_max_item})" class="comparator" id="comparator_item_{$product.id_product}" value="{$product.id_product}" /> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>
				{/if}
и заменить на
Код:
<p class="compare"><input type="checkbox" onclick="checkForComparison({$comparator_max_item})" class="comparator" id="comparator_item_{$product.id_product}" value="{$product.id_product}" /> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>
и 2 решение - это объявить непосредственно в классе данную переменную.
Открываем свою папку с модулями и находим там blocklayered/blocklayered.php
За вывод данных после действий пользователя отвечает метод ajaxCall()
Соответственно для объявления переменной $comparator_max_item необходимо найти в данном методе место, где объявляются переменные для вывода в шаблон.
Я добавил строку
Код:
$smarty->assign('comparator_max_item', (int)(Configuration::get('PS_COMPARATOR_MAX_ITEM')));
после
Код:
$smarty->assign('products', $products);
В моем коде это находится где-то на 910 строке.
Теперь все должно работать.

Добавлено через 40 минут
Еще, возможно, кому-то будет полезно.
При выводе в фильтре многоуровневой навигации (blocklayered.php) значения характеристик и атрибутов внутри соответствующей группы фильтров никак не сортируются.
Для удобочитаемого вида блока необходимо добавить в запросы сортировку по наименованию характеристик и атрибутов.
Соответственно для сортировки характеристик необходимо:
Код:
					$filterBlocks[(int)$filter['position']]['SQLvalues'] = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
					SELECT fvl.id_feature_value, fvl.value
					FROM '._DB_PREFIX_.'feature_value fv
					LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fv.id_feature_value)
					WHERE (fv.custom IS NULL OR fv.custom = 0) AND fv.id_feature = '.(int)$filterBlocks[(int)$filter['position']]['id_key'].' AND fvl.id_lang = '.(int)$id_lang);
заменить на:
Код:
					$filterBlocks[(int)$filter['position']]['SQLvalues'] = Db::getInstance()->ExecuteS('
					SELECT fvl.id_feature_value, fvl.value
					FROM '._DB_PREFIX_.'feature_value fv
					LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fv.id_feature_value)
					WHERE (fv.custom IS NULL OR fv.custom = 0) AND fv.id_feature = '.(int)$filterBlocks[(int)$filter['position']]['id_key'].' AND fvl.id_lang = '.(int)$id_lang.' 
					ORDER BY `fvl`.`value` ASC');

для сортировки атрибутов:
Код:
					$filterBlocks[(int)$filter['position']]['SQLvalues'] = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
					SELECT al.id_attribute, al.name, a.color
					FROM '._DB_PREFIX_.'attribute a
					LEFT JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = a.id_attribute)
					WHERE a.id_attribute_group = '.(int)$filterBlocks[(int)$filter['position']]['id_key'].' AND al.id_lang = '.(int)$id_lang);
заменить на:
Код:
					$filterBlocks[(int)$filter['position']]['SQLvalues'] = Db::getInstance()->ExecuteS('
					SELECT al.id_attribute, al.name, a.color
					FROM '._DB_PREFIX_.'attribute a
					LEFT JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = a.id_attribute)
					WHERE a.id_attribute_group = '.(int)$filterBlocks[(int)$filter['position']]['id_key'].' AND al.id_lang = '.(int)$id_lang.' 
					ORDER BY `al`.`name` ASC');

Это все хозяйство находится в методе generateFiltersBlock
В моем варианте данного модуля данные запросы расположены между строками 584 и 601
 

fandorinua

Создатель
Регистрация
13 Янв 2011
Сообщения
26
Реакции
1
приветствую всех...
для магазина загружаемых товаров надобно сделать покупку без регистрации. такая возможность, к счастью, есть в 1.4, но при этом используются все поля как и при регистрации. поэтому, подскажите пожалуйста, как убрать ненужные поля? адрес, телефон.. точнее убрать "обязательность". редактирование authentification.tpl конечно же скрывает поле, но не убирает то что оно обязательно. спасибо заранее!

p.s. /classes/Address.php и Customer.php тоже редактировал, убирал то что не надо с $fieldsRequired, но не помогло. все равно требуется.
 

greens

Создатель
Регистрация
18 Мар 2010
Сообщения
25
Реакции
2
Люди помогите в престе пропала правая колонка.
В настройках отключались модули колонок, после чего включались, но после включения колонки не появились.
Подскажите где искать или в чем может быть проблема в шаблоне или в самом коде престы.
 

GorikL

Создатель
Регистрация
21 Окт 2010
Сообщения
15
Реакции
5
Детский шаблон

детских шаблонов нет ни у кого на 1.4?
Для просмотра ссылки Войди или Зарегистрируйся
Увы, версия только Prestashop 1.3.6
Скрытое содержимое доступно для зарегистрированных пользователей!


Народ, поделитесь инфой, плиз.
Кто чем грабит/парсит ?
 

fandorinua

Создатель
Регистрация
13 Янв 2011
Сообщения
26
Реакции
1
приветствую всех...
для магазина загружаемых товаров надобно сделать покупку без регистрации. такая возможность, к счастью, есть в 1.4, но при этом используются все поля как и при регистрации. поэтому, подскажите пожалуйста, как убрать ненужные поля? адрес, телефон.. точнее убрать "обязательность". редактирование authentification.tpl конечно же скрывает поле, но не убирает то что оно обязательно. спасибо заранее!
p.s. /classes/Address.php и Customer.php тоже редактировал, убирал то что не надо с $fieldsRequired, но не помогло. все равно требуется.

запостил на трех форумах вопрос, везде молчание... печаль.
maybe anyone, fellas?
 

fandorinua

Создатель
Регистрация
13 Янв 2011
Сообщения
26
Реакции
1
посмотри \classes\Store.php и \classes\Address.php

удалил в store.php:

было
protected $fieldsRequired = array('id_country', 'name', 'address1', 'city', 'active');

стало
protected $fieldsRequired = array('name');

все равно просит индекс и телефон...
 

Nusinam

Постоялец
Регистрация
23 Окт 2007
Сообщения
128
Реакции
23
На оф форуме советуют смотреть файл authentication.tpl, он лежит в папке темы

Я так думаю смотреть надо после строки:
<h3>{l s='Instant Checkout'}</h3>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху