- Автор темы
- #1
Давно искал, не нашел - пришлось делать самому.
При "вкл./выкл." галки чекбокса отображается "только наличие/весь товар". По умолчанию галка выкл. => надо помнить про ссылочные биржи
В течение сессии сохраняется состояние чекбокса, мод работает при простом поиске, сортировке. Включить галку можно на страницах категорий или на странице результата простого поиска.
Итак. Shop-script premium 1.24. Шаблон 12 (другие шаблоны по аналогии). Изменения будут вноситься в 11 файлов. Очень рекомендую сохранить неизмененные версии.
1. файл category.php
ищем
идущий после блок сортировки меняем на условие
2. файл category.tpl.html
а) в самое начало вставляем скрипт
б) Чек-бокс у меня расположен над формой расширенного поиска. Для приведенной надписи надо подкорректировать ширину таблиц - 30 и 70% вместо 25 и 75%. Если форма отключена - измените место самостоятельно.
Ищем код
Перед ним вставляем
в) ищем
идущую после ссылку меняем на
г) ищем
идущую после ссылку меняем на
3. файл category_search_result.php
ищем
идущий после блок сортировки меняем на условие
4. файл category_tree.tpl.html
ищем
идущую после ссылку заменяем на
5. файл functions.php
ищем
после вставляем
6. файл home.tpl.html
а) ищем
ссылку перед меняем на
б) ищем
ссылку после меняем на
7. файл index.php
ищем
после добавляем
8. файл index.tpl.html
ищем
после добавляем
9. файл product_functions.php
а) ищем
меняем на
б) ищем
меняем на
10. файл search_simple.php
ищем
идущий после блок сортировки меняем на условие
11. файл search_simple.tpl.html
а) в начало файла добавить скрипт
б) ищем
после добавляем
Недоделал расширенный поиск - лень
Если что пропустил - не бейте - довольно много переделок.. Отремонтируйте сами
Добавлено через 21 минуту
Напрягся, и доделал расширенный поиск.
файл advanced_search_in_category.tpl.html
ищем в самом конце
после добавляем
При "вкл./выкл." галки чекбокса отображается "только наличие/весь товар". По умолчанию галка выкл. => надо помнить про ссылочные биржи
В течение сессии сохраняется состояние чекбокса, мод работает при простом поиске, сортировке. Включить галку можно на страницах категорий или на странице результата простого поиска.
Итак. Shop-script premium 1.24. Шаблон 12 (другие шаблоны по аналогии). Изменения будут вноситься в 11 файлов. Очень рекомендую сохранить неизмененные версии.
1. файл category.php
ищем
Код:
$sort_string = STRING_PRODUCT_SORT;
Код:
if ($_SESSION['storage']==1) {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );}
else {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC'>".STRING_DESC."</a>", $sort_string );}
2. файл category.tpl.html
а) в самое начало вставляем скрипт
Код:
{literal}
<script language="Javascript">
<!--
function storcheck(fff) {
var curr_loc = new String(window.location.href);
if (fff.checked==true)
{ new_loc = curr_loc+ "&storage=1";
window.location = new_loc;
//alert(new_loc);
} else if (fff.checked==false)
{
re = /&storage=\d{1}/gi
new_loc = curr_loc.replace(re, "");
window.location = new_loc;
//alert(new_loc);
}
}
-->
</script>
{/literal}
б) Чек-бокс у меня расположен над формой расширенного поиска. Для приведенной надписи надо подкорректировать ширину таблиц - 30 и 70% вместо 25 и 75%. Если форма отключена - измените место самостоятельно.
Ищем код
Код:
{include file="advanced_search_in_category.tpl.html"}
Код:
<input type=checkbox {php} if ($_GET["storage"]==1) {echo "checked";} else {echo "unckecked";}{/php} onclick='storcheck(this)'>
<font class="voting">Показать только наличие</font>
в) ищем
Код:
{if $product_category_path[i].categoryID != 1}
Код:
<a class="cat" href="index.php?categoryID={$product_category_path[i].categoryID}{php}if ($_GET['storage']==1) echo "&storage=1";{/php}">{$product_category_path[i].name}</a>
г) ищем
Код:
{section name=i loop=$subcategories_to_be_shown}
Код:
<a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}{php}if ($_GET['storage']==1) echo "&storage=1";{/php}">{$subcategories_to_be_shown[i][1]}</a>
3. файл category_search_result.php
ищем
Код:
$sort_string = STRING_PRODUCT_SORT;
Код:
if ($_SESSION['storage']==1) {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );} else {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC'>".STRING_DESC."</a>", $sort_string );}
4. файл category_tree.tpl.html
ищем
Код:
{* not selected node => make a link to a category *}
Код:
<a href="index.php?categoryID={$categories_tree[i].categoryID}{php} if ($_SESSION['storage']==1) echo "&storage=1";{/php}">{$categories_tree[i].name}</a>
5. файл functions.php
ищем
Код:
ShowNavigator( $count, $offset, $countRowOnPage, $url."&", $out);
Код:
if ($_GET['storage']==1)
{$out2=explode("\">",$out);
for ($i=0;$i<count($out2)-1;$i++)
$out2[$i].='&storage=1';
$out=implode("\">",$out2);
}
6. файл home.tpl.html
а) ищем
Код:
({$root_categories[i][2]})
Код:
<a href="index.php?categoryID={$root_categories[i][0]}{php}if ($_SESSION['storage']==1) echo "&storage=1";{/php}">{$root_categories[i][1]}</a>
Код:
{assign var="tmp" value=1}
Код:
<a href="index.php?categoryID={$root_categories_subs[j][0]}{php}if ($_SESSION['storage']==1) echo "&storage=1";{/php}">{$root_categories_subs[j][1]}</a>
7. файл index.php
ищем
Код:
$smarty_mail = new Smarty; //for e-mails
Код:
if (strstr($_SERVER['REQUEST_URI'],'categoryID') || strstr($_SERVER['REQUEST_URI'],'searchstring') )
$_SESSION["storage"]=$_GET["storage"];
8. файл index.tpl.html
ищем
Код:
<input type="image" src="images/tmpl12_go_1.gif" style="width:13px; height:11px">
Код:
{php}if ($_SESSION['storage']==1) echo "<input type=hidden name='storage' value=1>"{/php}
9. файл product_functions.php
а) ищем
Код:
if ( $where_clause != "" )
{
$where_clause = " where categoryID>1 and enabled=1 and ".$where_clause;
}
else
{
$where_clause = "where categoryID>1 and enabled=1";
}
Код:
if ($_SESSION['storage']==1){
if ( $where_clause != "" ){$where_clause = " where categoryID>1 and enabled=1 and in_stock >0 and ".$where_clause;}
else{$where_clause = "where categoryID>1 and enabled=1";}
}else{
if ( $where_clause != "" ){$where_clause = " where categoryID>1 and enabled=1 and ".$where_clause;}
else{$where_clause = "where categoryID>1 and enabled=1";}
}
б) ищем
Код:
{
$where_clause = _getConditionWithCategoryConjWithSubCategories( $where_clause,
$callBackParam["categoryID"] );
}
Код:
{ if ($_GET['storage']==1)
$where_clause = "( ". _getConditionWithCategoryConjWithSubCategories( $where_clause,
$callBackParam["categoryID"] ) .") and in_stock>0";
else $where_clause = _getConditionWithCategoryConjWithSubCategories( $where_clause,
$callBackParam["categoryID"] ) ;
}
10. файл search_simple.php
ищем
Код:
$sort_string = STRING_PRODUCT_SORT;
Код:
if ($_SESSION['storage']==1) {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC&storage=1'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC&storage=1'>".STRING_DESC."</a>", $sort_string );} else {
$sort_string = str_replace( "{ASC_NAME}", "<a href='".$urlToSort."&sort=name&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_NAME}", "<a href='".$urlToSort."&sort=name&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_PRICE}", "<a href='".$urlToSort."&sort=Price&direction=DESC'>".STRING_DESC."</a>", $sort_string );
$sort_string = str_replace( "{ASC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=ASC'>".STRING_ASC."</a>", $sort_string );
$sort_string = str_replace( "{DESC_RATING}", "<a href='".$urlToSort."&sort=customers_rating&direction=DESC'>".STRING_DESC."</a>", $sort_string );}
11. файл search_simple.tpl.html
а) в начало файла добавить скрипт
Код:
{literal}
<script language="Javascript">
<!--
function storcheck(fff) {
var curr_loc = new String(window.location.href);
if (fff.checked==true)
{ new_loc = curr_loc+ "&storage=1";
window.location = new_loc;
//alert(new_loc);
} else if (fff.checked==false)
{
re = /&storage=\d{1}/gi
new_loc = curr_loc.replace(re, "");
window.location = new_loc;
//alert(new_loc);
}
}
-->
</script>
{/literal}
б) ищем
Код:
{$smarty.const.STRING_PRODUCTS}
Код:
<br><input type=checkbox {php} if ($_GET["storage"]==1) {echo "checked";} else {echo "unckecked";}{/php} onclick='storcheck(this)'> <font class="voting">Показать только наличие</font>
Недоделал расширенный поиск - лень
Если что пропустил - не бейте - довольно много переделок.. Отремонтируйте сами
Добавлено через 21 минуту
Напрягся, и доделал расширенный поиск.
файл advanced_search_in_category.tpl.html
ищем в самом конце
Код:
<input type=submit class="bbcodes" value='{$smarty.const.FIND_BUTTON}' name='advanced_search_in_category'>
Код:
{php}if ($_SESSION['storage']==1) echo "<input type=hidden name='storage' value=1>"{/php}