VaM

Основные отличия VaM Shop от osCommerce

1 сообщение в этой теме

Данная статья описывает основные различия двух систем.

Для начала следует сказать, что код 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/product_info.php?info=p1_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/index.php?cat=c1_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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах