Данная статья описывает основные различия двух систем.
Для начала следует сказать, что код osCommerce и VaM Shop идентичен процентов на 80%, т.к. VaM Shop основан именно на osCommerce.
Соответственно, названия практически всех функций, классов, расположение и название файлов и папок, всё практически идентично osCommerce.
Теперь об отличиях:
1. Все переменные $HTTP_POST_VARS, $HTTP_GET_VARS в VaM Shop следует записывать как $_GET, $_POST и т.д.
2. В VaM Shop все функции начинаются с vam_, а не с tep_
Например: вместо tep_redirect используется vam_redirect.
3. Если в osCommerce функции обычно находятся в /includes/functions, то в VaM Shop все функции находятся в папке /inc
3. В VaM Shop все функции разнесены по отдельным файлам, т.е. 1 файл = 1 функция.
К примеру, если функция tep_redirect в osCommerce определена в файле /includes/functions/general.php
В VaM данную функцию найти очень просто, учитывая, что каждая функция выделена в отдельный файл внутри папки /inc:
Каждый файл имеет вид: имя_функции.inc.php
Соответственно, функция vam_redirect находится в файле /inc/vam_redirect.inc.php.
4. В osCommerce стандартный SQL запрос выглядит следующим образом:
$product_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$product_id . "' and language_id = '" . (int)$language . "'");
В VaM Shop данный SQL запрос нужно записывать следующим образом:
$product_query = vam_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . $product_id . "' and language_id = '" . $_SESSION['languages_id'] . "'");
Просто меняем tep_ на vam_, а также (int)$language на $_SESSION['languages_id'].
5. VaM Shop также отличается принципом построения ссылок на товары и категории.
Если в osCommerce ссылка на товар строится следующим образом:
tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id'], 'NONSSL', false);
В VaM Shop правильно записывать данный код так:
vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products['products_id'], $products['products_name']), 'NONSSL', false);
Просто меняем tep_ на vam_, а также в качестве параметра подставляем функцию vam_product_link.
Вместо 'products_id=' . $products['products_id'] вставляем vam_product_link($products['products_id'], $products['products_name'])
Это необходимо для построения "красивых" URL в стиле VaM Shop, например: http://sborka-xt.loc...1_VaM-Shop.html
В URL вставляется название товара, если товар содержит кириллицу, то она автоматически переводится в транслит.
6. Точно также нужно переделывать ссылки на категории.
Ссылка на категорию в osCommerce:
tep_href_link(FILENAME_DEFAULT, 'cPath=' . $categories['categories_id'], 'NONSSL', false);
В VaM Shop данный код нужно записывать следующим образом:
vam_href_link(FILENAME_DEFAULT, vam_category_link($categories['categories_id'], $categories['categories_name']), 'NONSSL', false);
Точно также как и в случае с ссылками на товары:
Просто меняем tep_ на vam_, а также в качестве параметра подставляем функцию vam_category_link.
Вместо 'cPath=' . $categories['categories_id'] вставляем vam_category_link($categories['categories_id'], $categories['categories_name'])
Это необходимо для построения "красивых" URL в стиле VaM Shop, например: http://sborka-xt.loc...1_VaM-Shop.html
В URL вставляется название категории, если категория содержит кириллицу, то она автоматически переводится в транслит.
7. В Админке VaM Shop, в отличии от osCommerce, не применяются графические кнопки, используются CSS кнопки, нужно учитывать этот момент.
Например, код обычной графической кнопки в osCommerce выглядит следующим образом (в даном примере кнопка создания нового баннера):
<?php echo '<a href="' . tep_href_link(FILENAME_BANNER_MANAGER, 'action=new') . '">' . tep_image_button('button_new_banner.gif', IMAGE_NEW_BANNER) . '</a>'; ?>
В VaM Shop следует записывать данный код:
<?php echo '<a class="button" onClick="this.blur();" href="' . vam_href_link(FILENAME_BANNER_MANAGER, 'action=new') . '">' . BUTTON_NEW_BANNER . '</a>'; ?>
Просто добавляете css класс button, а также вместо кнопки-картинки вставляете текстовую константу BUTTON_NEW_BANNER
Константы для кнопок определяются в файле /lang/russian/admin/buttons.php
8. Кроме обычных кнопок, есть также submit кнопки в админке, здесь тоже есть отличие.
Вот пример submit кнопки при добавлении баннера в админке osCommerce;
<?php echo tep_image_submit('button_insert.gif', IMAGE_INSERT); ?>
В VaM Shop submit кнопки следует записывать следующим образом:
<?php echo '<input type="submit" class="button" onClick="this.blur();" value="' . BUTTON_INSERT . '"/>'; ?>
Смысл тот же самый, что и с обычной кнопкой: функция tep_image_submit не используется.
Соответственно, прописывается submit кнопка обычным html-кодом, добавляя css класс button и добавляя текстовую константу кнопке, в данном примере BUTTON_INSERT.
Константы кнопок определяются в файле /lang/russian/admin/buttons.php
9. Если в osCommerce достаточно подлючать только application_top.php и после этого Вы имеете доступ ко всем функциям, классам магазина, то в VaM Shop этого не всегда может быть достаточно, в случае ошибки "Undefined function: ..." кроме подключения application_top.php:
require('includes/application_top.php');
Необходимо подключать необходимую функцию отдельно.
Такие ошибки могут часто встречаться при переделке модулей из osCommerce в VaM Shop.
К примеру, если выводится ошибка: "Undefined function: vam_parse_input_field_data".
То нужно просто подключить данную функцию. Вспоминаем, что каждая функция в VaM Shop вынесена в отдельный файл внутри папки inc, то просто подключаем нужную нам функцию следующим образом:
require_once (DIR_FS_INC.'vam_parse_input_field_data.inc.php');
Также в VaM Shop, в отличии от osCommerce, нет класса currencies (файл /includes/classes/currencies.php).
Вместо него используется класс vamPrice (файл /includes/classes/vamPrice.php).
Также нужно править код.
К примеру, вот пример кода модуля оплаты из osCommerce:
global $order,$currencies;
В VaM Shop нужно менять данный код на:
global $order,$vamPrice;
Ещё немного примеров.
В osCommerce список валют получаем примерно так:
foreach($currencies->currencies as $code => $v){
echo " <currency id="" . $code . "" rate="" . number_format(1/$v["value"],4) . ""/>n";
}
В VaM Shop данный код следует записывать так:
foreach($vamPrice->currencies as $code => $v){
echo " <currency id="" . $code . "" rate="" . number_format(1/$v["value"],4) . ""/>n";
}
Пример вывода стоимости товара в osCommerce:
$currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']))
В VaM Shop данный код следует записывать так:
$vamPrice->GetPrice($product_info['products_id'], $format = true, 1, $product_info['products_tax_class_id'], $product_info['products_price'], 1);
Вот основные различия VaM Shop и osCommerce. Зная данные отличия, можно очень просто и быстро переделывать модули для VaM Shop из osCommerce, а модулей для osCommerce очень много есть готовых.
Надеюсь, что данный материал поможет Вам в освоении VaM Shop.
Основные отличия VaM Shop от osCommerce
Started by support, июн 21 2011 06:38
No replies to this topic
1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей













