15.04.2005
Модуль предназначен для xt:Commerce v3.0.3 ,хотя будет работать и
с 2.0 RC1 и 1.0 beta 2. Он позволяет создавать таблицу технических (и не только) параметров для товаров через систему администрирования XT-Commerce.
Возможности:
К сожалению поддержка многоязычности пока отсутствует
![]() |
2. Изменяем admin/categories_view.php. Сделайте резервную копию файла!!!
находим кусок (приблизительно 120-я строка):
<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo "TPT"; ?></td> <!-- TPT 2.0--> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_PRICE; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo '% max'; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?></td>- здесь и далее жёлтым цветом обозначен добавляемый код.
<td class="dataTableContent" align="center">--</td> <td class="dataTableContent" align="center">--</td> <td class="dataTableContent" align="center"> </td> <!-- // TPT 2.0--> <td class="dataTableContent" align="right"><?php if ( (is_object($cInfo)) && ($categories['categories_id'] == $cInfo->categories_id) ) { echo xtc_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . xtc_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&cID=' . $categories['categories_id']) . '">' . xtc_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td> </tr>Добавили пустое поле для категорий
<td class="dataTableContent" align="center"><a href=<?php echo xtc_href_link(FILENAME_PRODUCTS_PARAMETER . '?category_path=' . $cPath . '&products_id=' . $products['products_id']); ?>>TPT</a></td> <!-- // TPT 2.0--> <td class="dataTableContent" align="center"> <?php // Show price echo $currencies->format($products['products_price']); //End Show priceТеперь мы добавили поле с ссылкой, при нажатии на которую откроется редактор параметров.
3. Изменяем admin/includes/application_top.php . Сделайте резервную копию файла!!!
находим кусок (приблизительно 130-я строка):
define('FILENAME_SHIPPING_STATUS', 'shipping_status.php');
define('FILENAME_SALES_REPORT','stats_sales_report.php');
define('FILENAME_MODULE_EXPORT','module_export.php');
// TPT 2.0
define('FILENAME_PRODUCTS_PARAMETER', 'parameters.php');
define('FILENAME_PRODUCTS_PARAMETER_COPIER', 'products_parameter_copier.php');
// TPT 2.0 End
находим кусок (приблизительно 184-я строка):
define('TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS', 'products_options_values_to_products_options');
define('TABLE_PRODUCTS_TO_CATEGORIES', 'products_to_categories');
//TPT 2.0
define('TABLE_PRODUCT_PARAMETERS', 'products_parameters');
define('TABLE_PRODUCT_PARAMETERS_GROUPS', 'products_parameters_gpoups');
define('TABLE_PRODUCT_PARAMETERS_NAMES', 'products_parameters_names');
//TPT 2.0 END
4. Изменяем admin/includes/column_left.php (приблизительно 27-я строка):
echo ('<div class="menuBoxHeading"><b>'.BOX_HEADING_PRODUCTS.'</b></div>');
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['categories']
== '1')) echo '<a href="' . xtc_href_link(FILENAME_CATEGORIES, '', 'NONSSL') .
'" class="menuBoxContentLink"> -' . BOX_CATEGORIES . '</a><br>';
//TPT Copier 2.0
if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['categories']
== '1')) echo '<a href="' . xtc_href_link(FILENAME_PRODUCTS_PARAMETER_COPIER,
'', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_PARAMETER_COPIER .
'</a><br>';
//TPT Copier 2.0 END
- добавили линк для копировщика параметров в группу "Catalog".
5. Изменяем lang/YOU_LANGUAGE/admin/YOU_LANGUAGE.php :
находим кусок (приблизительно
150-я строка):
define('BOX_TOOLS_BLACKLIST','CC-Blacklist');
//TPT Copier 1.0 for TPT 2.0
define('BOX_PARAMETER_COPIER', 'Parameter Copier');
//TPT Copier 1.0 END
6. Изменяем admin/includes/functions/html_output.php :
добавьте в конце,перед ?>
if (!function_exists("xtc_output_string")){
include_once(DIR_FS_INC
. 'xtc_parse_input_field_data.inc.php');
function xtc_output_string($string, $translate = false, $protected = false) {
if ($protected == true) {
return htmlspecialchars($string);
} else {
if ($translate == false) {
return
xtc_parse_input_field_data($string, array('"' => '"'));
} else {
return
xtc_parse_input_field_data($string, $translate);
}
}
}
}
////
// Output a form pull down multiselect menu
if (!function_exists("xtc_draw_pull_multiselect_menu")){
function xtc_draw_pull_multiselect_menu($name, $values,
$defaults, $parameters = '') {
$field = '<select multiple name="'
. xtc_output_string($name) . '"';
if (xtc_not_null($parameters))
$field .= ' ' . $parameters;
$field .= '>' . "\n";
if (empty($default) && isset($GLOBALS[$name]))
$default = stripslashes($GLOBALS[$name]);
for ($i = 0, $n = sizeof($values);
$i < $n; $i++) {
$field
.= '<option value="' . xtc_output_string($values[$i]['id']) . '"';
if (in_array($values[$i]['id'],
$defaults)) {
$field
.= ' SELECTED';
}
$field .= '>'
. xtc_output_string($values[$i]['text'], array('"' => '"', '\'' =>
''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';
return $field;
}
}
7. Изменяем admin/includes/functions/general.php :
изменения в функции xtc_remove_product() (приблизительно
1145-я строка):
if (USE_CACHE == 'true') {
xtc_reset_cache_block('categories');
xtc_reset_cache_block('also_purchased');
}
//TPT 2.0
$get_parameter_names_id = xtc_db_query("SELECT DISTINCT parameter_name_id FROM "
. TABLE_PRODUCT_PARAMETERS . " WHERE products_id = '" . xtc_db_input($product_id)
. "'");
xtc_db_query("delete from " . TABLE_PRODUCT_PARAMETERS . " where products_id =
'" . xtc_db_input($product_id) . "'");
while($parameter_names_id = xtc_db_fetch_array($get_parameter_names_id)){
$dup_par_n_query = xtc_db_query("select count(*) as total from " .
TABLE_PRODUCT_PARAMETERS . " where parameter_name_id = '" .
xtc_db_input($parameter_names_id['parameter_name_id']) . "'");
$dup_par_n = xtc_db_fetch_array($dup_par_n_query);
if(!$dup_par_n['total']){
xtc_db_query("delete from " . TABLE_PRODUCT_PARAMETERS_NAMES . " where id = '" .
xtc_db_input($parameter_names_id['parameter_name_id']) . "'");
}
}
//TPT 2.0 END
}
Изменение catalog
8. Загрузите новые файлы из catalog/ в соответствующие папки на вашем сервере.
Внимание! Подразумевается, что ваш шаблон находится в каталоге /templates/xtc2
9. Нужно произвести изменения в includes/modules/product_info.php. Сделайте резервную копию файла!!!
Дело в том что нам необходимо прикрепить куда-то таблицу =)) В данном случае наиболее подходящим местом выбрано окончание текстового описания.
Ищем (приблизительно строка 183):
include(DIR_WS_MODULES . FILENAME_PRODUCTS_MEDIA); //TPT 2.010. Нужно произвести изменения в templates/xtc2/module/product_info/product_info_v1.html
include(DIR_WS_MODULES . 'tpt.php');
//TPT 2.0 end
<table
width="100%" border="0">
<tr>
<td><div align="center">{$MODULE_tpt}</div></td>
</tr>
</table>
{if $MODULE_also_purchased != ''}
<table width="100%" border="0">
<tr>
<td align="center">{$MODULE_also_purchased}<br
/></td>
</tr>
</table>{/if}
{$FORM_END}
11. Нужно произвести изменения в
includes/database_tables.php
Сделайте резервную копию файла!!!
добавьте в конце,перед ?>
//TPT 2.0
define('TABLE_PRODUCT_PARAMETERS', 'products_parameters');
define('TABLE_PRODUCT_PARAMETERS_GROUPS', 'products_parameters_gpoups');
define('TABLE_PRODUCT_PARAMETERS_NAMES', 'products_parameters_names');
//TPT 2.0 end
12. Выполните из файла tpt.sql SQL запрос в базу данных.
Вот собственно и все, должно работать. Если что-то не так, приходите на форум "osCommerce по-русски".