nekkby Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 Здравствуйте. Необходимо добавить каноникал на страницы с фильтрами, но чтобы не затрагивать пагинацию. Есть такой код: {if !$smarty.get.sort && !$smarty.get.557 && !$smarty.get.558 && !$smarty.get.566 && !$smarty.get.567 && !$smarty.get.568 && !$smarty.get.568 && !$smarty.get.586 && !$smarty.get.587 && !$smarty.get.573 && !$smarty.get.572 && !$smarty.get.576 && !$smarty.get.583 && !$smarty.get.605 && !$smarty.get.607 && !$smarty.get.611 && !$smarty.get.615 && !$smarty.get.590 && !$smarty.get.591 && !$smarty.get.593 && !$smarty.get.594 && !$smarty.get.604 && !$smarty.get.622 && !$smarty.get.621 && !$smarty.get.623 && !$smarty.get.630 && !$smarty.get.651 && !$smarty.get.654 && !$smarty.get.647 && !$smarty.get.653 && !$smarty.get.645 && !$smarty.get.663 && !$smarty.get.665 && !$smarty.get.666 && !$smarty.get.670 && !$smarty.get.703 && !$smarty.get.708 && !$smarty.get.755 && !$smarty.get.749 && !$smarty.get.751 && !$smarty.get.752 && !$smarty.get.769 && !$smarty.get.761 && !$smarty.get.762 && !$smarty.get.768 && !$smarty.get.681} {else} {if $category && $brand} <link rel="canonical" href="{$config->root_url}/{$category->url}/{$brand->url}"/> {elseif $category} <link rel="canonical" href="{$config->root_url}/{$category->url}"/> {elseif $brand} <link rel="canonical" href="{$config->root_url}/{$brand->url}"/> {elseif $products} <link rel="canonical" href="{$config->root_url}"/> {/if} {/if} Принцип я думаю понятен и все работает. Но есть один момент. Не могу добавить !$smarty.get.682. Страница перестает отображаться. Тоесть получается есть ограничение на количество добавляемых !$smarty.get. Есть какие то соображения по этому поводу? Буду признателен если поможете. PS прошу прощение за может быть невнятное изложение своей мысли) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 (изменено) Если надо определять страницу фильтра, то лучше добавьте в фильтре скрытый параметр, и пишите условие через него. А писать такие длиннющие строки - очень плохой стиль. А если потом в фильтре добавится параметр - опять менять эту строку? Изменено 15 мая, 2015 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 (изменено) может лучше обратится к циклу по фильтру {$igf = ''} {foreach $features as $key=>$f} {if $smarty.get.$key}{$igf = 1}{break}{/if} {/foreach} {if !$igf && $category && $brand} {$canonical="/catalog/{$category->url}/{$brand->url}" scope=parent} {elseif !$igf && $category} {$canonical="/catalog/{$category->url}" scope=parent} {elseif !$igf && $brand} {$canonical="/brands/{$brand->url}" scope=parent} {elseif !$igf && $keyword} {$canonical="/products?keyword={$keyword|escape}" scope=parent} {elseif !$igf} {$canonical="/products" scope=parent} {/if} Изменено 15 мая, 2015 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 15 мая, 2015 Автор Жалоба Поделиться Опубликовано 15 мая, 2015 Если надо определять страницу фильтра, то лучше добавьте в фильтре скрытый параметр, и пишите условие через него.А писать такие длиннющие строки - очень плохой стиль. А если потом в фильтре добавится параметр - опять менять эту строку? Спасибо что быстро среагировали. Не очень понял что Вы имеет ввиду, объясните пожалуйста. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 (изменено) 1. В форме фильтра добавить <INPUT TYPE="hidden" NAME="from_filter" value="1"> 2. При проверке использовать {if $smarty.get.from_filter} Тут для фильтра {else} Тут для остальных {/if} Изменено 15 мая, 2015 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 1. В форме фильтра добавить<INPUT TYPE="hidden" NAME="from_filter" value="1"> 2. При проверке использовать{if $smarty.get.from_filter}Тут для фильтра{else}Тут для остальных{/if} а если это стандартный фильтр? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 В стандартном так действительно не пойдет. Если ТС задается таким серьезным вопросом, то с большой вероятностью у него именно нестандартный. А если все же стандартный, то спросит, и подскажем, как добавить доп параметр. Все-таки крутить в шаблоне цикл по всем свойствам - некрасиво как-то... Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 тогда так view/ProductsView.php находим $features = array(); foreach($this->features->get_features(array('category_id'=>$category->id, 'in_filter'=>1)) as $feature) { $features[$feature->id] = $feature; if(($val = strval($this->request->get($feature->id)))!='') $filter['features'][$feature->id] = $val; } добавляем $this->design->assign('filter_features', $filter['features']); в шаблоне {if !$filter_features && $category && $brand} {$canonical="/catalog/{$category->url}/{$brand->url}" scope=parent} {elseif !$filter_features && $category} {$canonical="/catalog/{$category->url}" scope=parent} {elseif !$filter_features && $brand} {$canonical="/brands/{$brand->url}" scope=parent} {elseif !$filter_features && $keyword} {$canonical="/products?keyword={$keyword|escape}" scope=parent} {elseif !$filter_features} {$canonical="/products" scope=parent} {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 мая, 2015 Жалоба Поделиться Опубликовано 15 мая, 2015 Так намного лучше. Если еще убрать многочисленные повторения if !$filter_features в одну позицию, совсем хорошо будет... Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 16 мая, 2015 Автор Жалоба Поделиться Опубликовано 16 мая, 2015 (изменено) В стандартном так действительно не пойдет.Если ТС задается таким серьезным вопросом, то с большой вероятностью у него именно нестандартный.А если все же стандартный, то спросит, и подскажем, как добавить доп параметр. Все-таки крутить в шаблоне цикл по всем свойствам - некрасиво как-то...Спасибо что помогаете. Могли бы Вы мне объяснить, что Вы имеете в виду под "стандартный" или "нестандартный" фильтр? Изменено 16 мая, 2015 пользователем nekkby Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 16 мая, 2015 Жалоба Поделиться Опубликовано 16 мая, 2015 Нестандартный - измененный или вообще сделанный заново. Многие устанавливают свои фильтры вместо поставляемого в официальном дистрибутиве. Вы бы вместо вопросов таких дали бы ссылку на сайт... Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 16 мая, 2015 Автор Жалоба Поделиться Опубликовано 16 мая, 2015 (изменено) Нестандартный - измененный или вообще сделанный заново. Многие устанавливают свои фильтры вместо поставляемого в официальном дистрибутиве. Вы бы вместо вопросов таких дали бы ссылку на сайт...http://optoweek.com.ua/svarochnye-invertory вот ссылка. Получается у меня стандартный, который шел в комплекте. Ну я его только не много переделал. Изменено 16 мая, 2015 пользователем nekkby Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 16 мая, 2015 Жалоба Поделиться Опубликовано 16 мая, 2015 Получается, что очень нестандартный. И с ним бы Вам полезно сначала разобраться. Например, у Вас там вложенные <form> встречаются... Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 16 мая, 2015 Автор Жалоба Поделиться Опубликовано 16 мая, 2015 Получается, что очень нестандартный. И с ним бы Вам полезно сначала разобраться. Например, у Вас там вложенные <form> встречаются...А что не так с <form> ? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 16 мая, 2015 Жалоба Поделиться Опубликовано 16 мая, 2015 То, что у Вас вложенность есть: <form method="post" id="change_filter_form"> ...... <form method="post"> ...... </form> ...... </form> Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 17 мая, 2015 Автор Жалоба Поделиться Опубликовано 17 мая, 2015 То, что у Вас вложенность есть: <form method="post" id="change_filter_form">......<form method="post">......</form>......</form>Прошу прощение. Не могли бы Вы мне объяснить почему это плохо? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 мая, 2015 Жалоба Поделиться Опубликовано 17 мая, 2015 http://yandex.ru/search/?text=html%20%D0%B2%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%84%D0%BE%D1%80%D0%BC%D1%8B Цитата Ссылка на сообщение Поделиться на другие сайты
nekkby Опубликовано 17 мая, 2015 Автор Жалоба Поделиться Опубликовано 17 мая, 2015 (изменено) Я Вас понял, но данная проблема относиться к фильтру "по цене" и "бренду". А мне необходимо решение "по свойствам". Но все равно спасибо за замечание. Буду исправлять. А вот как быть с решением для "свойств"?http://yandex.ru/search/?text=html%20%D0%B2%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%84%D0%BE%D1%80%D0%BC%D1%8B Изменено 17 мая, 2015 пользователем nekkby Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.