Посмотреть, как оно выглядит можно по ссылкам http://cpu.badisoft....Book/Pro-seria/ (категория) и http://cpu.badisoft....BYY-Lingvo.html (товар).
Собственно, никто не мешает сделать редирект с категории на товар или наоборот, а также на какую-то дополнительную страницу или вообще использовать внешнюю ссылку .
1. копируем файлы category_redirect.tpl.html и product_redirect.tpl.html в core/tpl/user/[шаблон]
comment: Шаблоны простейшие, просто как пример. Кому надо - кисти и краски в руки.
2. в файле admin.php
2.1 после второго (!) вхождения строки (т.е. вставляем в поиск эту строку и первую найденную пропускаем)
", meta_description='".xToText(trim($_POST["meta_d"]))."', meta_keywords='".xToText(trim($_POST["meta_k"])).
вставляем строку
"', redirect_enable=".(isset($_POST["redirect_enable"]) ? 1 : 0).", redirect_url='".xToText(trim($_POST["redirect_url"])).
2.2 перед строкой
$row = catGetCategoryById($_GET["categoryID"]);
вставляем
$fields =array (
array ('Field' => 'redirect_enable', 'Type' => 'tinyint(1)', 'Default' => '0'),
array ('Field' => 'redirect_url', 'Type' => 'varchar(255)', 'Default' => 'NULL'));
$data = mysql_query("desc ".CATEGORIES_TABLE);
while ($row[] = mysql_fetch_assoc($data));
foreach ($fields as $field)
{
$flag = true;
foreach ($row as $cur_row) if ($field['Field'] == $cur_row['Field']) {$flag=false; break;}
if ($flag) mysql_query("ALTER TABLE ".CATEGORIES_TABLE." ADD ".$field['Field']." ".$field['Type']." DEFAULT ".$field['Default']);
}
2.3 после строк
echo ADMIN_SHOW_PRODUCT_IN_SUBCATEGORY;
?></label></td></tr>
вставляем
<tr>
<td align="left"><input type="checkbox" name='redirect_enable' id="redirect_enable" <?php if ($row["redirect_enable"] == 1){?>checked<?php }?>></td>
<td align="left"> <?php echo "Redirect this category to ";?>
<input type="text" name="redirect_url" value="<?php echo $row["redirect_url"];?>" style="width: 590px;" class="textp" placeholder="/other/category/"></td>
</tr>
2.4 перед вторым (!) вхождением строки (т.е. вставляем в поиск эту строку и первую найденную пропускаем)
$updatedValues = ScanPostVariableWithId(array("option_value", "option_radio_type"));
вставляем
db_query("UPDATE ".PRODUCTS_TABLE." SET redirect_enable=".(isset($_POST["redirect_enable"]) ? 1 : 0).", redirect_url='".xToText(trim($_POST["redirect_url"]))."' WHERE productID=".(int)$productID);
2.5 перед строкой
$product = GetProduct($_GET["productID"]);
вставляем
$fields =array (
array ('Field' => 'redirect_enable', 'Type' => 'tinyint(1)', 'Default' => '0'),
array ('Field' => 'redirect_url', 'Type' => 'varchar(255)', 'Default' => 'NULL'));
$data = mysql_query("desc ".PRODUCTS_TABLE);
while ($row[] = mysql_fetch_assoc($data));
foreach ($fields as $field)
{
$flag = true;
foreach ($row as $cur_row) if ($field['Field'] == $cur_row['Field']) {$flag=false; break;}
if ($flag) mysql_query("ALTER TABLE ".PRODUCTS_TABLE." ADD ".$field['Field']." ".$field['Type']." DEFAULT ".$field['Default']);
}
2.6 перед строками (если брать только первую строку для поиска, то это второе вхождение)
<table class="adn"><tr><td class="separ"><img src="data/admin/pixel.gif" alt="" class="sep"></td></tr><tr><td class="se5"></td></tr></table>
<a href="#" onclick="upd(),document.getElementById('MainForm').submit(); return false" class="inl"><?php
вставляем
<table class="adn"><tr>
<td align="left"><input type="checkbox" name='redirect_enable' id="redirect_enable" <?php if ($product["redirect_enable"] == 1){?>checked<?php }?>></td>
<td align="left"> <?php echo "Redirect this category to ";?>
<input type="text" name="redirect_url" value="<?php echo $product["redirect_url"];?>" style="width: 590px;" class="textp" placeholder="/other/product.html"></td>
</tr></table>
3. в файле category_functions.php
в функции catGetCategoryById
после строки
" products_count_admin, sort_order, viewed_times, allow_products_comparison, allow_products_search, ".
вставляем
"redirect_enable, redirect_url, ".
4. в файле category.php
перед строками (т.е. в самом-самом конце файла)
}
}
?>
вставляем
if($category['redirect_enable'])
{
header("HTTP/1.1 301 Moved Permanently");
$smarty->assign("main_content_template", "category_redirect.tpl.html");
}
5. в файле product_detailed.php
после строки
$smarty->assign("main_content_template", "product_detailed.tpl.html");
вставляем
if($product['redirect_enable'])
{
header("HTTP/1.1 301 Moved Permanently");
$smarty->assign("main_content_template", "product_redirect.tpl.html");
}