Это дополнение позволяет вывод характеристики оформить как ссылку, если товару присущ только один вариант этой характеристики. Например, характеристика "Производитель". Вместо только текста с названием производителя можно сделать ссылочку на его сайт. Или характеристика "Вариант офигенности", где теперь можно поставить ссылку на дополнительную страницу с описанием конкретной офигенности, присущей этому товару.
(comment: технически нет проблем и при нескольких вариантах характеристики у товара ссылки сделать, но мне в голову так и не пришло, как красиво оформить эти ссылки при штатном выпадающем списке выбора варианта характеристики).
1. в файле catalog_extra.php
1.1 перед строкой
if (isset($_GET["save_successful"])) //update was successful
вставляем
$field = array ('Field' => 'option_url', 'Type' => 'varchar(255)', 'Default' => 'NULL');
$data = mysql_query("desc ".PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE);
$row = array();
while ($row[] = mysql_fetch_assoc($data));
$flag = true;
foreach ($row as $cur_row) if ($field['Field'] == $cur_row['Field']) {$flag=false; break;}
if ($flag) mysql_query("ALTER TABLE ".PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE." ADD ".$field['Field']." ".$field['Type']." DEFAULT ".$field['Default']);
1.2 строку
$updateOptions = ScanPostVariableWithId( array( "sort_order",
заменяем на
$updateOptions = ScanPostVariableWithId( array( "sort_order","option_url",
2. в файле catalog_extra.tpl.html
2.1 после строки
<td align="left" class="toph3" width="100%">{$smarty.const.ADMIN_ONE_VALUE}</td>
вставляем
<td align="left" class="toph3" width="100%">URL</td>
2.2 вместо строки
<tr><td height="4" colspan="3"></td></tr>
вставляем
<tr><td height="4" colspan="4"></td></tr>
2.3 после строки
<td align="left"><input name="option_value_{$values[i].variantID}" type=text value="{$values[i].option_value}" class="textp" size="30"></td>
вставляем
<td align="left"><input name="option_url_{$values[i].variantID}" type=text value="{$values[i].option_url}" class="textp" size="50"></td>
3. в файле option_functions.php
3.1 в функции optGetOptionValues($optionID)
строку
$q = db_query("select variantID, optionID, option_value, sort_order from ".
заменяем на
$q = db_query("select variantID, optionID, option_value, sort_order, option_url from ".
3.2 в функции optUpdateOptionValues($updateOptions)
после строки
" set option_value='".xToText($value["option_value"])."', ".
вставляем строку
" option_url='".xToText($value["option_url"])."', ".
4. в файле product_functions.php
4.1 в функции GetExtraParametrs( $productID )
строку
$sql = 'select povvt.option_value, povvt.variantID, post.price_surplus
заменяем на
$sql = 'select povvt.option_value, povvt.variantID, post.price_surplus, povvt.option_url
а после строки
$_Row['values_to_select'][$i]['option_value'] = $_Rowue['option_value'];
вставляем строку
$_Row['values_to_select'][$i]['option_url'] = $_Rowue['option_url'];
5. в файле product_brief.tpl.html
строку
{if $product_info.product_extra[i].values_to_select_count == 1} <b>{$product_info.product_extra[i].values_to_select[0].option_value}</b><br>
заменяем на
{if $product_info.product_extra[i].values_to_select_count == 1} <b>
{if $product_info.product_extra[i].values_to_select[0].option_url}
<a href='{$product_info.product_extra[i].values_to_select[0].option_url}' title='{$product_info.product_extra[i].values_to_select[0].option_url}'>{$product_info.product_extra[i].values_to_select[0].option_value}</a>
{else}
{$product_info.product_extra[i].values_to_select[0].option_value}
{/if}
</b><br>
6. в файле product_detailed.tpl.html
строку
{if $product_extra[i].values_to_select_count == 1} <b>{$product_extra[i].values_to_select[0].option_value}</b><br>
заменяем на
{if $product_extra[i].values_to_select_count == 1} <b>
{if $product_extra[i].values_to_select[0].option_url}
<a href='{$product_extra[i].values_to_select[0].option_url}' title='{$product_extra[i].values_to_select[0].option_url}'>{$product_extra[i].values_to_select[0].option_value}</a>
{else}
{$product_extra[i].values_to_select[0].option_value}
{/if}
</b><br>
Пример можно посмотреть вот тут - http://cpu.badisoft....troystva-Digma/ - дополнение ставилось с нуля строго по описанию.
А админка выглядит примерно так:
OptionUrl.JPG 61.83К 183 Количество загрузок: