Jump to content

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


Recommended Posts

support

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

Для начала следует сказать, что код 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.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...