support 447 Опубликовано 21 июня, 2011 Жалоба Share Опубликовано 21 июня, 2011 Данная статья описывает основные различия двух систем. Для начала следует сказать, что код 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. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения