AntonLV 9 лет назад
Родитель
Сommit
2a7cd4b924

+ 20 - 15
modules/boonex/russian/data/langs/bx_snipcart/ru.xml

@@ -31,9 +31,11 @@
 	<string name="_bx_snipcart_form_entry_input_text_err"><![CDATA[Поле для Текста не может быть пустым]]></string>
 	<string name="_bx_snipcart_form_entry_input_text_err"><![CDATA[Поле для Текста не может быть пустым]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_price"><![CDATA[Цена]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_price"><![CDATA[Цена]]></string>
     <string name="_bx_snipcart_form_entry_input_price"><![CDATA[Цена]]></string>
     <string name="_bx_snipcart_form_entry_input_price"><![CDATA[Цена]]></string>
+    <string name="_bx_snipcart_form_entry_input_price_inf"><![CDATA[Цена указывается в %s.]]></string>
     <string name="_bx_snipcart_form_entry_input_price_err"><![CDATA[Поле Цена не может быть пустым]]></string>
     <string name="_bx_snipcart_form_entry_input_price_err"><![CDATA[Поле Цена не может быть пустым]]></string>
     <string name="_bx_snipcart_form_entry_input_sys_weight"><![CDATA[Вес]]></string>
     <string name="_bx_snipcart_form_entry_input_sys_weight"><![CDATA[Вес]]></string>
     <string name="_bx_snipcart_form_entry_input_weight"><![CDATA[Вес]]></string>
     <string name="_bx_snipcart_form_entry_input_weight"><![CDATA[Вес]]></string>
+    <string name="_bx_snipcart_form_entry_input_weight_inf"><![CDATA[Значение указывается в Кг.]]></string>
     <string name="_bx_snipcart_form_entry_input_weight_err"><![CDATA[Поле Вес не может быть пустым]]></string>
     <string name="_bx_snipcart_form_entry_input_weight_err"><![CDATA[Поле Вес не может быть пустым]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_delete_confirm"><![CDATA[Удалить подтверждение]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_delete_confirm"><![CDATA[Удалить подтверждение]]></string>
 	<string name="_bx_snipcart_form_entry_input_delete_confirm"><![CDATA[Я уверен(а), что хочу удалить этот товар]]></string>
 	<string name="_bx_snipcart_form_entry_input_delete_confirm"><![CDATA[Я уверен(а), что хочу удалить этот товар]]></string>
@@ -53,11 +55,15 @@
     <string name="_bx_snipcart_form_settings_display_edit"><![CDATA[Редактировать настройки]]></string>
     <string name="_bx_snipcart_form_settings_display_edit"><![CDATA[Редактировать настройки]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_mode"><![CDATA[Режим]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_mode"><![CDATA[Режим]]></string>
     <string name="_bx_snipcart_form_settings_input_mode"><![CDATA[Режим]]></string>
     <string name="_bx_snipcart_form_settings_input_mode"><![CDATA[Режим]]></string>
-    <string name="_bx_snipcart_form_settings_input_mode_err"><![CDATA[Режим обязателен. Пожалуйста, заполните это поле]]></string>
+    <string name="_bx_snipcart_form_settings_input_mode_err"><![CDATA[Режим - обязателеное поле. Пожалуйста, заполните это поле.]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_test"><![CDATA[API Ключ (тестовый)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_test"><![CDATA[API Ключ (тестовый)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_test"><![CDATA[API Ключ (тестовый)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_test"><![CDATA[API Ключ (тестовый)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_live"><![CDATA[API Ключ (рабочий)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_live"><![CDATA[API Ключ (рабочий)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_live"><![CDATA[API Ключ (рабочий)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_live"><![CDATA[API Ключ (рабочий)]]></string>
+    <string name="_bx_snipcart_form_settings_input_sys_currency"><![CDATA[Валюта]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency"><![CDATA[Валюта]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency_inf"><![CDATA[Выберите валюту, которая используется в вашем Snipcart аккаунте по умолчанию.]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency_err"><![CDATA[Валюта - обязателеное поле. Пожалуйста, заполните это поле.]]></string>    
     <string name="_bx_snipcart_form_settings_input_sys_do_submit"><![CDATA[Выполнить]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_do_submit"><![CDATA[Выполнить]]></string>
     <string name="_bx_snipcart_form_settings_input_do_submit"><![CDATA[Выполнить]]></string>
     <string name="_bx_snipcart_form_settings_input_do_submit"><![CDATA[Выполнить]]></string>
 
 
@@ -175,7 +181,7 @@
 	<string name="_bx_snipcart_menu_item_title_admt_entries"><![CDATA[Товары - {addon} спрятано]]></string>
 	<string name="_bx_snipcart_menu_item_title_admt_entries"><![CDATA[Товары - {addon} спрятано]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_my"><![CDATA[Мои Товары]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_my"><![CDATA[Мои Товары]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_all"><![CDATA[Все Товары]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_all"><![CDATA[Все Товары]]></string>
-	<string name="_bx_snipcart_menu_item_title_buy"><![CDATA[Купить]]></string>
+	<string name="_bx_snipcart_menu_item_title_buy_for"><![CDATA[Купить за {1}{0}]]></string>
 
 
 	<string name="_bx_snipcart_grid_filter_item_title_adm_select_one_filter1"><![CDATA[Все статусы]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_select_one_filter1"><![CDATA[Все статусы]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_active"><![CDATA[Активные]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_active"><![CDATA[Активные]]></string>
@@ -191,24 +197,23 @@
     <string name="_bx_snipcart_grid_txt_account_manager"><![CDATA[Перенаправить в Управление аккаунтом.]]></string>
     <string name="_bx_snipcart_grid_txt_account_manager"><![CDATA[Перенаправить в Управление аккаунтом.]]></string>
 
 
     <string name="_bx_snipcart_pre_lists_cats"><![CDATA[Категории товаров]]></string>
     <string name="_bx_snipcart_pre_lists_cats"><![CDATA[Категории товаров]]></string>
-    <string name="_bx_snipcart_cat_adult"><![CDATA[Для взрослых]]></string>
-    <string name="_bx_snipcart_cat_communication"><![CDATA[Коммуникация]]></string>
-    <string name="_bx_snipcart_cat_conversion"><![CDATA[Преобразование]]></string>
-    <string name="_bx_snipcart_cat_documentation"><![CDATA[Документация]]></string>
-    <string name="_bx_snipcart_cat_games"><![CDATA[Игры]]></string>
-    <string name="_bx_snipcart_cat_mobile"><![CDATA[Мобильные устройства]]></string>
-    <string name="_bx_snipcart_cat_multimedia"><![CDATA[Мультимедиа]]></string>
-    <string name="_bx_snipcart_cat_music"><![CDATA[Музыка]]></string>
-    <string name="_bx_snipcart_cat_navigation"><![CDATA[Навигация]]></string>
-    <string name="_bx_snipcart_cat_other"><![CDATA[Другое]]></string>
-    <string name="_bx_snipcart_cat_photography"><![CDATA[Фотография]]></string>
-    <string name="_bx_snipcart_cat_security"><![CDATA[Безопасность]]></string>
-    <string name="_bx_snipcart_cat_tools"><![CDATA[Инструменты]]></string>
+    <string name="_bx_snipcart_cat_automotive_and_industrial"><![CDATA[Автомобили и Техника]]></string>
+    <string name="_bx_snipcart_cat_beauty_health_food"><![CDATA[Красота, Здоровье и Еда]]></string>
+    <string name="_bx_snipcart_cat_books"><![CDATA[Книги]]></string>
+    <string name="_bx_snipcart_cat_clothing_shoes_jewelry"><![CDATA[Одежда, Обувь и Украшения]]></string>
+    <string name="_bx_snipcart_cat_electronics_and_computers"><![CDATA[Электроника и Компьютеры]]></string>
+    <string name="_bx_snipcart_cat_handmade"><![CDATA[Ручная Работа]]></string>
+    <string name="_bx_snipcart_cat_home_garden_tools"><![CDATA[Дом, Сад и Инструменты]]></string>
+    <string name="_bx_snipcart_cat_movies_music_games"><![CDATA[Фильмы, Музыка и Игры]]></string>
+    <string name="_bx_snipcart_cat_sports_and_outdoors"><![CDATA[Спорт и Активный Отдых]]></string>
+    <string name="_bx_snipcart_cat_toys_kids_baby"><![CDATA[Игрушки, Дети и Младенцы]]></string>
 
 
     <string name="_bx_snipcart_pre_lists_modes"><![CDATA[Режимы]]></string>
     <string name="_bx_snipcart_pre_lists_modes"><![CDATA[Режимы]]></string>
     <string name="_bx_snipcart_mode_test"><![CDATA[тестовый]]></string>
     <string name="_bx_snipcart_mode_test"><![CDATA[тестовый]]></string>
     <string name="_bx_snipcart_mode_live"><![CDATA[рабочий]]></string>
     <string name="_bx_snipcart_mode_live"><![CDATA[рабочий]]></string>
 
 
+    <string name="_bx_snipcart_pre_lists_currencies"><![CDATA[Валюта]]></string>
+
     <string name="_bx_snipcart_err_not_configured"><![CDATA[Сначала вам необходимо настроить магазин. <a href="{0}">Нажмите здесь</a>.]]></string>
     <string name="_bx_snipcart_err_not_configured"><![CDATA[Сначала вам необходимо настроить магазин. <a href="{0}">Нажмите здесь</a>.]]></string>
 
 
     <string name="_bx_snipcart_txt_all_entries_by"><![CDATA[<a href="{0}">Все товары от {1} ({2})</a>]]></string>
     <string name="_bx_snipcart_txt_all_entries_by"><![CDATA[<a href="{0}">Все товары от {1} ({2})</a>]]></string>

+ 19 - 0
modules/boonex/snipcart/classes/BxSnipcartConfig.php

@@ -89,6 +89,7 @@ class BxSnipcartConfig extends BxBaseModTextConfig
             'OBJECT_FORM_ENTRY_DISPLAY_DELETE' => 'bx_snipcart_entry_delete',
             'OBJECT_FORM_ENTRY_DISPLAY_DELETE' => 'bx_snipcart_entry_delete',
         	'OBJECT_FORM_SETTINGS' => 'bx_snipcart_settings',
         	'OBJECT_FORM_SETTINGS' => 'bx_snipcart_settings',
         	'OBJECT_FORM_SETTINGS_DISPLAY_EDIT' => 'bx_snipcart_settings_edit',
         	'OBJECT_FORM_SETTINGS_DISPLAY_EDIT' => 'bx_snipcart_settings_edit',
+            'OBJECT_FORM_PRELISTS_CURRENCIES' => 'bx_snipcart_currencies',
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_snipcart_view', // actions menu on view entry page
             'OBJECT_MENU_ACTIONS_VIEW_ENTRY' => 'bx_snipcart_view', // actions menu on view entry page
             'OBJECT_MENU_ACTIONS_MY_ENTRIES' => 'bx_snipcart_my', // actions menu on my entries page
             'OBJECT_MENU_ACTIONS_MY_ENTRIES' => 'bx_snipcart_my', // actions menu on my entries page
             'OBJECT_MENU_SUBMENU' => 'bx_snipcart_submenu', // main module submenu
             'OBJECT_MENU_SUBMENU' => 'bx_snipcart_submenu', // main module submenu
@@ -141,6 +142,11 @@ class BxSnipcartConfig extends BxBaseModTextConfig
         );
         );
     }
     }
 
 
+    public function getViewUrl($iContentId)
+    {
+        return BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $this->CNF['URI_VIEW_ENTRY'] . '&id=' . $iContentId);
+    }
+
     public function getApiKey($aSettings)
     public function getApiKey($aSettings)
     {
     {
         if(empty($aSettings['mode']) || !in_array($aSettings['mode'], array(BX_SNIPCART_MODE_TEST, BX_SNIPCART_MODE_LIVE)))
         if(empty($aSettings['mode']) || !in_array($aSettings['mode'], array(BX_SNIPCART_MODE_TEST, BX_SNIPCART_MODE_LIVE)))
@@ -148,6 +154,19 @@ class BxSnipcartConfig extends BxBaseModTextConfig
 
 
         return $aSettings['api_key_' . $aSettings['mode']]; 
         return $aSettings['api_key_' . $aSettings['mode']]; 
     }
     }
+
+    public function getCurrency($aSettings)
+    {
+        $sCurrency = !empty($aSettings['currency']) ? $aSettings['currency'] : 'USD';
+
+        $aCurrencies = BxDolForm::getDataItems($this->CNF['OBJECT_FORM_PRELISTS_CURRENCIES']);
+        $sCurrencyCode = $aCurrencies[$sCurrency];
+
+        $aCurrencies = BxDolForm::getDataItems($this->CNF['OBJECT_FORM_PRELISTS_CURRENCIES'], false, BX_DATA_VALUES_ADDITIONAL);
+        $sCurrencySign = $aCurrencies[$sCurrency];
+
+        return array('code' => $sCurrencyCode, 'sign' => $sCurrencySign);
+    }
 }
 }
 
 
 /** @} */
 /** @} */

+ 8 - 0
modules/boonex/snipcart/classes/BxSnipcartFormEntry.php

@@ -18,6 +18,14 @@ class BxSnipcartFormEntry extends BxBaseModTextFormEntry
     {
     {
         $this->MODULE = 'bx_snipcart';
         $this->MODULE = 'bx_snipcart';
         parent::__construct($aInfo, $oTemplate);
         parent::__construct($aInfo, $oTemplate);
+
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        if (isset($this->aInputs[$CNF['FIELD_PRICE']])) {
+            $aSettings = $this->_oModule->getSettings();
+            $aCurency = $this->_oModule->_oConfig->getCurrency($aSettings);
+            $this->aInputs[$CNF['FIELD_PRICE']]['info'] = sprintf($this->aInputs[$CNF['FIELD_PRICE']]['info'], $aCurency['code']);
+        }
     }
     }
 }
 }
 
 

+ 21 - 6
modules/boonex/snipcart/classes/BxSnipcartModule.php

@@ -22,17 +22,25 @@ class BxSnipcartModule extends BxBaseModTextModule
         parent::__construct($aModule);
         parent::__construct($aModule);
     }
     }
 
 
-    public function serviceIncludeCssJs($iProfileId = 0)
+    public function getSettings($iProfileId = 0)
     {
     {
-        $iProfileId = !empty($iProfileId) ? $iProfileId : $this->_iProfileId;
         if(empty($iProfileId))
         if(empty($iProfileId))
-            return '';
+            $iProfileId = bx_get_logged_profile_id();
 
 
         $aSettings = $this->_oDb->getSettings(array('type' => 'author', 'author' => $iProfileId));
         $aSettings = $this->_oDb->getSettings(array('type' => 'author', 'author' => $iProfileId));
         if(empty($aSettings) || !is_array($aSettings))
         if(empty($aSettings) || !is_array($aSettings))
+            return array();
+
+        return $aSettings;
+    }
+
+    public function serviceIncludeCssJs($iProfileId = 0)
+    {
+        $iProfileId = !empty($iProfileId) ? $iProfileId : $this->_iProfileId;
+        if(empty($iProfileId))
             return '';
             return '';
 
 
-        return $this->_oTemplate->getSctInclude($aSettings);
+        return $this->_oTemplate->getSctInclude($iProfileId);
     }
     }
 
 
     public function serviceEntityCreate ()
     public function serviceEntityCreate ()
@@ -43,8 +51,7 @@ class BxSnipcartModule extends BxBaseModTextModule
         if(empty($aSettings) || !is_array($aSettings))
         if(empty($aSettings) || !is_array($aSettings))
     		return MsgBox(_t('_bx_snipcart_err_not_configured', BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink($CNF['URL_SETTINGS'])));
     		return MsgBox(_t('_bx_snipcart_err_not_configured', BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink($CNF['URL_SETTINGS'])));
 
 
-    	$this->_oTemplate->addJs(array('entry.js'));
-    	return $this->_oTemplate->getJsCode('entry') . parent::serviceEntityCreate();
+    	return parent::serviceEntityCreate();
     }
     }
 
 
     public function serviceSettings()
     public function serviceSettings()
@@ -88,6 +95,14 @@ class BxSnipcartModule extends BxBaseModTextModule
         	'content' => $oForm->getCode()
         	'content' => $oForm->getCode()
         );
         );
     }
     }
+
+    protected function _getContentForTimelinePost($aEvent, $aContentInfo)
+    {
+        $aResult = parent::_getContentForTimelinePost($aEvent, $aContentInfo);
+        $aResult['raw'] = $this->_oTemplate->getBuyButton($aContentInfo);
+
+        return $aResult;
+    }
 }
 }
 
 
 /** @} */
 /** @} */

+ 1 - 1
modules/boonex/snipcart/classes/BxSnipcartSearchResult.php

@@ -21,7 +21,7 @@ class BxSnipcartSearchResult extends BxBaseModTextSearchResult
             'object_metatags' => 'bx_snipcart',
             'object_metatags' => 'bx_snipcart',
             'title' => _t('_bx_snipcart_page_title_browse'),
             'title' => _t('_bx_snipcart_page_title_browse'),
             'table' => 'bx_snipcart_entries',
             'table' => 'bx_snipcart_entries',
-            'ownFields' => array('id', 'title', 'text', 'thumb', 'author', 'added'),
+            'ownFields' => array('id', 'title', 'text', 'price', 'thumb', 'author', 'added'),
             'searchFields' => array(),
             'searchFields' => array(),
             'restriction' => array(
             'restriction' => array(
                 'author' => array('value' => '', 'field' => 'author', 'operator' => '='),
                 'author' => array('value' => '', 'field' => 'author', 'operator' => '='),

+ 57 - 5
modules/boonex/snipcart/classes/BxSnipcartTemplate.php

@@ -23,8 +23,12 @@ class BxSnipcartTemplate extends BxBaseModTextTemplate
         parent::__construct($oConfig, $oDb);
         parent::__construct($oConfig, $oDb);
     }
     }
 
 
-    public function getSctInclude($aSettings)
+    public function getSctInclude($iProfileId)
     {
     {
+        $aSettings = $this->getModule()->getSettings($iProfileId);
+        if(empty($aSettings))
+            return '';
+
         $sKey = $this->_oConfig->getApiKey($aSettings);
         $sKey = $this->_oConfig->getApiKey($aSettings);
         if(empty($sKey))
         if(empty($sKey))
             return '';
             return '';
@@ -38,19 +42,67 @@ class BxSnipcartTemplate extends BxBaseModTextTemplate
     {
     {
         $CNF = &$this->_oConfig->CNF;
         $CNF = &$this->_oConfig->CNF;
 
 
-        $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aContentInfo[$CNF['FIELD_ID']]);
+        $aSettings = $this->getModule()->getSettings($aContentInfo[$CNF['FIELD_AUTHOR']]);
+        if(empty($aSettings))
+            return '';
 
 
+        $aCurrency = $this->_oConfig->getCurrency($aSettings);
         return $this->parseHtmlByName('sct_button.html', array(
         return $this->parseHtmlByName('sct_button.html', array(
-            'bx_repeat:items' => array(
+            'bx_repeat:attributes' => array(
                 array('key' => 'id', 'value' => $aContentInfo[$CNF['FIELD_ID']]),
                 array('key' => 'id', 'value' => $aContentInfo[$CNF['FIELD_ID']]),
                 array('key' => 'name', 'value' => bx_html_attribute($aContentInfo[$CNF['FIELD_TITLE']])),
                 array('key' => 'name', 'value' => bx_html_attribute($aContentInfo[$CNF['FIELD_TITLE']])),
                 array('key' => 'price', 'value' => sprintf('%01.2f', $aContentInfo[$CNF['FIELD_PRICE']])),
                 array('key' => 'price', 'value' => sprintf('%01.2f', $aContentInfo[$CNF['FIELD_PRICE']])),
                 array('key' => 'weight', 'value' => $aContentInfo[$CNF['FIELD_WEIGHT']]),
                 array('key' => 'weight', 'value' => $aContentInfo[$CNF['FIELD_WEIGHT']]),
-                array('key' => 'url', 'value' => $sUrl),
+                array('key' => 'url', 'value' => $this->_oConfig->getViewUrl($aContentInfo[$CNF['FIELD_ID']])),
                 array('key' => 'description', 'value' => bx_html_attribute(strip_tags($aContentInfo[$CNF['FIELD_TEXT']]))),
                 array('key' => 'description', 'value' => bx_html_attribute(strip_tags($aContentInfo[$CNF['FIELD_TEXT']]))),
-            )
+            ),
+            'content' => _t('_bx_snipcart_menu_item_title_buy_for', $aContentInfo[$CNF['FIELD_PRICE']], $aCurrency['sign'], $aCurrency['code'])
+        ));
+    }
+
+    public function getBuyButton($aContentInfo)
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $aSettings = $this->getModule()->getSettings($aContentInfo[$CNF['FIELD_AUTHOR']]);
+        if(empty($aSettings))
+            return '';
+
+        $aCurrency = $this->_oConfig->getCurrency($aSettings);
+        $sContent = _t('_bx_snipcart_menu_item_title_buy_for', $aContentInfo[$CNF['FIELD_PRICE']], $aCurrency['sign'], $aCurrency['code']);
+
+        $this->addCss(array('timeline.css'));
+        return $this->parseHtmlByName('buy_link.html', array(
+            'href' => $this->_oConfig->getViewUrl($aContentInfo[$CNF['FIELD_ID']]),
+            'title' => bx_html_attribute($sContent),
+            'content' => $sContent
         ));
         ));
     }
     }
+
+    protected function getUnit($aData, $aParams = array())
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        $aSettings = $this->getModule()->getSettings($aData[$CNF['FIELD_AUTHOR']]);
+        $bSettings = !empty($aSettings);
+
+        $sBuyTitle = '';
+        if($bSettings) {
+            $aCurrency = $this->_oConfig->getCurrency($aSettings);
+            $sBuyTitle = _t('_bx_snipcart_menu_item_title_buy_for', $aData[$CNF['FIELD_PRICE']], $aCurrency['sign'], $aCurrency['code']);
+        }
+
+        $aTmplVars = parent::getUnit($aData, $aParams);
+        $aTmplVars['bx_if:show_buy'] = array(
+            'condition' => $bSettings,
+            'content' => array(
+                'buy_url' => $aTmplVars['content_url'],
+                'buy_title' => $sBuyTitle
+            ) 
+        );
+
+        return $aTmplVars;
+    }
 }
 }
 
 
 /** @} */
 /** @} */

+ 20 - 15
modules/boonex/snipcart/install/langs/en.xml

@@ -31,9 +31,11 @@
 	<string name="_bx_snipcart_form_entry_input_text_err"><![CDATA[Text field can't be empty]]></string>
 	<string name="_bx_snipcart_form_entry_input_text_err"><![CDATA[Text field can't be empty]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_price"><![CDATA[Price]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_price"><![CDATA[Price]]></string>
     <string name="_bx_snipcart_form_entry_input_price"><![CDATA[Price]]></string>
     <string name="_bx_snipcart_form_entry_input_price"><![CDATA[Price]]></string>
+    <string name="_bx_snipcart_form_entry_input_price_inf"><![CDATA[The value is indicated in %s.]]></string>
     <string name="_bx_snipcart_form_entry_input_price_err"><![CDATA[Price field can't be empty]]></string>
     <string name="_bx_snipcart_form_entry_input_price_err"><![CDATA[Price field can't be empty]]></string>
     <string name="_bx_snipcart_form_entry_input_sys_weight"><![CDATA[Weight]]></string>
     <string name="_bx_snipcart_form_entry_input_sys_weight"><![CDATA[Weight]]></string>
     <string name="_bx_snipcart_form_entry_input_weight"><![CDATA[Weight]]></string>
     <string name="_bx_snipcart_form_entry_input_weight"><![CDATA[Weight]]></string>
+    <string name="_bx_snipcart_form_entry_input_weight_inf"><![CDATA[The value is indicated in Kg.]]></string>
     <string name="_bx_snipcart_form_entry_input_weight_err"><![CDATA[Weight field can't be empty]]></string>
     <string name="_bx_snipcart_form_entry_input_weight_err"><![CDATA[Weight field can't be empty]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
 	<string name="_bx_snipcart_form_entry_input_sys_delete_confirm"><![CDATA[Delete confirmation]]></string>
 	<string name="_bx_snipcart_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this product]]></string>
 	<string name="_bx_snipcart_form_entry_input_delete_confirm"><![CDATA[I am sure I want to delete this product]]></string>
@@ -53,11 +55,15 @@
     <string name="_bx_snipcart_form_settings_display_edit"><![CDATA[Edit Settings]]></string>
     <string name="_bx_snipcart_form_settings_display_edit"><![CDATA[Edit Settings]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_mode"><![CDATA[Mode]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_mode"><![CDATA[Mode]]></string>
     <string name="_bx_snipcart_form_settings_input_mode"><![CDATA[Mode]]></string>
     <string name="_bx_snipcart_form_settings_input_mode"><![CDATA[Mode]]></string>
-    <string name="_bx_snipcart_form_settings_input_mode_err"><![CDATA[Mode is essential. Please, fill in this field]]></string>
+    <string name="_bx_snipcart_form_settings_input_mode_err"><![CDATA[Mode is essential. Please, fill in this field.]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_test"><![CDATA[API Key (test)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_test"><![CDATA[API Key (test)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_test"><![CDATA[API Key (test)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_test"><![CDATA[API Key (test)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_live"><![CDATA[API Key (live)]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_api_key_live"><![CDATA[API Key (live)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_live"><![CDATA[API Key (live)]]></string>
     <string name="_bx_snipcart_form_settings_input_api_key_live"><![CDATA[API Key (live)]]></string>
+    <string name="_bx_snipcart_form_settings_input_sys_currency"><![CDATA[Currency]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency"><![CDATA[Currency]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency_inf"><![CDATA[Select the default Currency from your Snipcart account.]]></string>
+    <string name="_bx_snipcart_form_settings_input_currency_err"><![CDATA[Currency is essential. Please, fill in this field.]]></string>    
     <string name="_bx_snipcart_form_settings_input_sys_do_submit"><![CDATA[Submit]]></string>
     <string name="_bx_snipcart_form_settings_input_sys_do_submit"><![CDATA[Submit]]></string>
     <string name="_bx_snipcart_form_settings_input_do_submit"><![CDATA[Submit]]></string>
     <string name="_bx_snipcart_form_settings_input_do_submit"><![CDATA[Submit]]></string>
 
 
@@ -175,7 +181,7 @@
 	<string name="_bx_snipcart_menu_item_title_admt_entries"><![CDATA[Goods - {addon} hidden]]></string>
 	<string name="_bx_snipcart_menu_item_title_admt_entries"><![CDATA[Goods - {addon} hidden]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_my"><![CDATA[My Goods]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_my"><![CDATA[My Goods]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_all"><![CDATA[All Goods]]></string>
 	<string name="_bx_snipcart_menu_item_title_manage_all"><![CDATA[All Goods]]></string>
-	<string name="_bx_snipcart_menu_item_title_buy"><![CDATA[Buy]]></string>
+	<string name="_bx_snipcart_menu_item_title_buy_for"><![CDATA[Buy for {1}{0}]]></string>
 
 
 	<string name="_bx_snipcart_grid_filter_item_title_adm_select_one_filter1"><![CDATA[All Statuses]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_select_one_filter1"><![CDATA[All Statuses]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_active"><![CDATA[Active]]></string>
 	<string name="_bx_snipcart_grid_filter_item_title_adm_active"><![CDATA[Active]]></string>
@@ -191,24 +197,23 @@
     <string name="_bx_snipcart_grid_txt_account_manager"><![CDATA[Redirect to manage account.]]></string>
     <string name="_bx_snipcart_grid_txt_account_manager"><![CDATA[Redirect to manage account.]]></string>
 
 
     <string name="_bx_snipcart_pre_lists_cats"><![CDATA[Goods categories]]></string>
     <string name="_bx_snipcart_pre_lists_cats"><![CDATA[Goods categories]]></string>
-    <string name="_bx_snipcart_cat_adult"><![CDATA[Adult]]></string>
-    <string name="_bx_snipcart_cat_communication"><![CDATA[Communication]]></string>
-    <string name="_bx_snipcart_cat_conversion"><![CDATA[Conversion]]></string>
-    <string name="_bx_snipcart_cat_documentation"><![CDATA[Documentation]]></string>
-    <string name="_bx_snipcart_cat_games"><![CDATA[Games]]></string>
-    <string name="_bx_snipcart_cat_mobile"><![CDATA[Mobile]]></string>
-    <string name="_bx_snipcart_cat_multimedia"><![CDATA[Multimedia]]></string>
-    <string name="_bx_snipcart_cat_music"><![CDATA[Music]]></string>
-    <string name="_bx_snipcart_cat_navigation"><![CDATA[Navigation]]></string>
-    <string name="_bx_snipcart_cat_other"><![CDATA[Other]]></string>
-    <string name="_bx_snipcart_cat_photography"><![CDATA[Photography]]></string>
-    <string name="_bx_snipcart_cat_security"><![CDATA[Security]]></string>
-    <string name="_bx_snipcart_cat_tools"><![CDATA[Tools]]></string>
+    <string name="_bx_snipcart_cat_automotive_and_industrial"><![CDATA[Automotive & Industrial]]></string>
+    <string name="_bx_snipcart_cat_beauty_health_food"><![CDATA[Beauty, Health & Food]]></string>
+    <string name="_bx_snipcart_cat_books"><![CDATA[Books]]></string>
+    <string name="_bx_snipcart_cat_clothing_shoes_jewelry"><![CDATA[Clothing, Shoes & Jewelry]]></string>
+    <string name="_bx_snipcart_cat_electronics_and_computers"><![CDATA[Electronics & Computers]]></string>
+    <string name="_bx_snipcart_cat_handmade"><![CDATA[Handmade]]></string>
+    <string name="_bx_snipcart_cat_home_garden_tools"><![CDATA[Home, Garden & Tools]]></string>
+    <string name="_bx_snipcart_cat_movies_music_games"><![CDATA[Movies, Music & Games]]></string>
+    <string name="_bx_snipcart_cat_sports_and_outdoors"><![CDATA[Sports & Outdoors]]></string>
+    <string name="_bx_snipcart_cat_toys_kids_baby"><![CDATA[Toys, Kids & Baby]]></string>
 
 
     <string name="_bx_snipcart_pre_lists_modes"><![CDATA[Modes]]></string>
     <string name="_bx_snipcart_pre_lists_modes"><![CDATA[Modes]]></string>
     <string name="_bx_snipcart_mode_test"><![CDATA[test]]></string>
     <string name="_bx_snipcart_mode_test"><![CDATA[test]]></string>
     <string name="_bx_snipcart_mode_live"><![CDATA[live]]></string>
     <string name="_bx_snipcart_mode_live"><![CDATA[live]]></string>
 
 
+    <string name="_bx_snipcart_pre_lists_currencies"><![CDATA[Currencies]]></string>
+
     <string name="_bx_snipcart_err_not_configured"><![CDATA[You need to configure shop settings first. <a href="{0}">Click here</a>.]]></string>
     <string name="_bx_snipcart_err_not_configured"><![CDATA[You need to configure shop settings first. <a href="{0}">Click here</a>.]]></string>
 
 
     <string name="_bx_snipcart_txt_all_entries_by"><![CDATA[<a href="{0}">All Goods by {1} ({2})</a>]]></string>
     <string name="_bx_snipcart_txt_all_entries_by"><![CDATA[<a href="{0}">All Goods by {1} ({2})</a>]]></string>

+ 5 - 5
modules/boonex/snipcart/install/sql/enable.sql

@@ -44,15 +44,15 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 
 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
 ('bx_snipcart_view_entry', 1, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:17:"entity_text_block";}', 0, 0, 1, 0),
 ('bx_snipcart_view_entry', 1, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:17:"entity_text_block";}', 0, 0, 1, 0),
+('bx_snipcart_view_entry', 1, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:18:"entity_attachments";}', 0, 0, 1, 1),
 ('bx_snipcart_view_entry', 2, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_author', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:13:"entity_author";}', 0, 0, 1, 0),
 ('bx_snipcart_view_entry', 2, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_author', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:13:"entity_author";}', 0, 0, 1, 0),
 ('bx_snipcart_view_entry', 3, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_info', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:11:"entity_info";}', 0, 0, 1, 1),
 ('bx_snipcart_view_entry', 3, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_info', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:11:"entity_info";}', 0, 0, 1, 1),
 ('bx_snipcart_view_entry', 3, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_location', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:15:"entity_location";}', 0, 0, 0, 2),
 ('bx_snipcart_view_entry', 3, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_location', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:15:"entity_location";}', 0, 0, 0, 2),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_all_actions', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:18:"entity_all_actions";}', 0, 0, 1, 0),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_all_actions', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:18:"entity_all_actions";}', 0, 0, 1, 0),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_actions', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:14:"entity_actions";}', 0, 0, 0, 1),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_actions', 13, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:14:"entity_actions";}', 0, 0, 0, 1),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_social_sharing', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:21:"entity_social_sharing";}', 0, 0, 0, 2),
 ('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_social_sharing', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:21:"entity_social_sharing";}', 0, 0, 0, 2),
-('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:18:"entity_attachments";}', 0, 0, 0, 3),
-('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_comments', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:15:"entity_comments";}', 0, 0, 1, 4),
-('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_location', 3, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:13:"locations_map";s:6:"params";a:2:{i:0;s:11:"bx_snipcart";i:1;s:4:"{id}";}s:5:"class";s:20:"TemplServiceMetatags";}', 0, 0, 1, 5);
+('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_comments', 11, 2147483647, 'service', 'a:2:{s:6:"module";s:11:"bx_snipcart";s:6:"method";s:15:"entity_comments";}', 0, 0, 1, 3),
+('bx_snipcart_view_entry', 4, 'bx_snipcart', '', '_bx_snipcart_page_block_title_entry_location', 3, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:13:"locations_map";s:6:"params";a:2:{i:0;s:11:"bx_snipcart";i:1;s:4:"{id}";}s:5:"class";s:20:"TemplServiceMetatags";}', 0, 0, 1, 4);
 
 
 -- PAGE: view entry comments
 -- PAGE: view entry comments
 INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
 INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `layout_id`, `visible_for_levels`, `visible_for_levels_editable`, `uri`, `url`, `meta_description`, `meta_keywords`, `meta_robots`, `cache_lifetime`, `cache_editable`, `deletable`, `override_class_name`, `override_class_file`) VALUES 
@@ -187,14 +187,14 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 
 
 -- MENU: sub-menu for view entry
 -- MENU: sub-menu for view entry
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
-('bx_snipcart_view_submenu', '_bx_snipcart_menu_title_view_entry_submenu', 'bx_snipcart_view_submenu', 'bx_snipcart', 8, 0, 1, 'BxSnipcartMenuView', 'modules/boonex/snipcart/classes/BxSnipcartMenuView.php');
+('bx_snipcart_view_submenu', '_bx_snipcart_menu_title_view_entry_submenu', 'bx_snipcart_view_submenu', 'bx_snipcart', 8, 0, 0, 'BxSnipcartMenuView', 'modules/boonex/snipcart/classes/BxSnipcartMenuView.php');
 
 
 INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
 INSERT INTO `sys_menu_sets`(`set_name`, `module`, `title`, `deletable`) VALUES 
 ('bx_snipcart_view_submenu', 'bx_snipcart', '_bx_snipcart_menu_set_title_view_entry_submenu', 0);
 ('bx_snipcart_view_submenu', 'bx_snipcart', '_bx_snipcart_menu_set_title_view_entry_submenu', 0);
 
 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 ('bx_snipcart_view_submenu', 'bx_snipcart', 'view-snipcart-entry', '_bx_snipcart_menu_item_title_system_view_entry', '_bx_snipcart_menu_item_title_view_entry_submenu_entry', 'page.php?i=view-snipcart-entry&id={content_id}', '', '', '', '', 2147483647, 1, 0, 1),
 ('bx_snipcart_view_submenu', 'bx_snipcart', 'view-snipcart-entry', '_bx_snipcart_menu_item_title_system_view_entry', '_bx_snipcart_menu_item_title_view_entry_submenu_entry', 'page.php?i=view-snipcart-entry&id={content_id}', '', '', '', '', 2147483647, 1, 0, 1),
-('bx_snipcart_view_submenu', 'bx_snipcart', 'view-snipcart-entry-comments', '_bx_snipcart_menu_item_title_system_view_entry_comments', '_bx_snipcart_menu_item_title_view_entry_submenu_comments', 'page.php?i=view-snipcart-entry-comments&id={content_id}', '', '', '', '', 2147483647, 1, 0, 2);
+('bx_snipcart_view_submenu', 'bx_snipcart', 'view-snipcart-entry-comments', '_bx_snipcart_menu_item_title_system_view_entry_comments', '_bx_snipcart_menu_item_title_view_entry_submenu_comments', 'page.php?i=view-snipcart-entry-comments&id={content_id}', '', '', '', '', 2147483647, 0, 0, 2);
 
 
 -- MENU: profile stats
 -- MENU: profile stats
 SET @iNotifMenuOrder = (SELECT IFNULL(MAX(`order`), 0) FROM `sys_menu_items` WHERE `set_name` = 'sys_profile_stats' AND `active` = 1 LIMIT 1);
 SET @iNotifMenuOrder = (SELECT IFNULL(MAX(`order`), 0) FROM `sys_menu_items` WHERE `set_name` = 'sys_profile_stats' AND `active` = 1 LIMIT 1);

+ 30 - 24
modules/boonex/snipcart/install/sql/install.sql

@@ -32,8 +32,9 @@ CREATE TABLE IF NOT EXISTS `bx_snipcart_settings` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `author` int(10) unsigned NOT NULL,
   `author` int(10) unsigned NOT NULL,
   `mode` varchar(8) NOT NULL DEFAULT '',
   `mode` varchar(8) NOT NULL DEFAULT '',
-  `api_key_test` varchar(255) NOT NULL,
-  `api_key_live` varchar(255) NOT NULL,
+  `api_key_test` varchar(255) NOT NULL DEFAULT '',
+  `api_key_live` varchar(255) NOT NULL DEFAULT '',
+  `currency` varchar(4) NOT NULL DEFAULT '',
   PRIMARY KEY (`id`),
   PRIMARY KEY (`id`),
   UNIQUE KEY `author` (`author`)
   UNIQUE KEY `author` (`author`)
 );
 );
@@ -110,7 +111,7 @@ CREATE TABLE IF NOT EXISTS `bx_snipcart_votes_track` (
 ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
 ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
 
 
 -- TABLE: views
 -- TABLE: views
-CREATE TABLE `bx_snipcart_views_track` (
+CREATE TABLE IF NOT EXISTS `bx_snipcart_views_track` (
   `object_id` int(11) NOT NULL default '0',
   `object_id` int(11) NOT NULL default '0',
   `viewer_id` int(11) NOT NULL default '0',
   `viewer_id` int(11) NOT NULL default '0',
   `viewer_nip` int(11) unsigned NOT NULL default '0',
   `viewer_nip` int(11) unsigned NOT NULL default '0',
@@ -119,14 +120,14 @@ CREATE TABLE `bx_snipcart_views_track` (
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 
 -- TABLE: metas
 -- TABLE: metas
-CREATE TABLE `bx_snipcart_meta_keywords` (
+CREATE TABLE IF NOT EXISTS `bx_snipcart_meta_keywords` (
   `object_id` int(10) unsigned NOT NULL,
   `object_id` int(10) unsigned NOT NULL,
   `keyword` varchar(255) NOT NULL,
   `keyword` varchar(255) NOT NULL,
   KEY `object_id` (`object_id`),
   KEY `object_id` (`object_id`),
   KEY `keyword` (`keyword`)
   KEY `keyword` (`keyword`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 
-CREATE TABLE `bx_snipcart_meta_locations` (
+CREATE TABLE IF NOT EXISTS `bx_snipcart_meta_locations` (
   `object_id` int(10) unsigned NOT NULL,
   `object_id` int(10) unsigned NOT NULL,
   `lat` double NOT NULL,
   `lat` double NOT NULL,
   `lng` double NOT NULL,
   `lng` double NOT NULL,
@@ -160,7 +161,7 @@ CREATE TABLE IF NOT EXISTS `bx_snipcart_reports_track` (
 ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
 ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
 
 
 -- TABLE: favorites
 -- TABLE: favorites
-CREATE TABLE `bx_snipcart_favorites_track` (
+CREATE TABLE IF NOT EXISTS `bx_snipcart_favorites_track` (
   `object_id` int(11) NOT NULL default '0',
   `object_id` int(11) NOT NULL default '0',
   `author_id` int(11) NOT NULL default '0',
   `author_id` int(11) NOT NULL default '0',
   `date` int(11) NOT NULL default '0',
   `date` int(11) NOT NULL default '0',
@@ -204,14 +205,15 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 ('bx_snipcart', 'bx_snipcart', 'text', '', '', 0, 'textarea', '_bx_snipcart_form_entry_input_sys_text', '_bx_snipcart_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_text_err', 'XssHtml', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'text', '', '', 0, 'textarea', '_bx_snipcart_form_entry_input_sys_text', '_bx_snipcart_form_entry_input_text', '', 1, 0, 2, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_text_err', 'XssHtml', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'title', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_title', '_bx_snipcart_form_entry_input_title', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_title_err', 'Xss', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'title', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_title', '_bx_snipcart_form_entry_input_title', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_title_err', 'Xss', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'cat', '', '#!bx_snipcart_cats', 0, 'select', '_bx_snipcart_form_entry_input_sys_cat', '_bx_snipcart_form_entry_input_cat', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_cat_err', 'Xss', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'cat', '', '#!bx_snipcart_cats', 0, 'select', '_bx_snipcart_form_entry_input_sys_cat', '_bx_snipcart_form_entry_input_cat', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_cat_err', 'Xss', '', 1, 0),
-('bx_snipcart', 'bx_snipcart', 'price', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_price', '_bx_snipcart_form_entry_input_price', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_price_err', 'Float', '', 1, 0),
-('bx_snipcart', 'bx_snipcart', 'weight', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_weight', '_bx_snipcart_form_entry_input_weight', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_weight_err', 'Float', '', 1, 0),
+('bx_snipcart', 'bx_snipcart', 'price', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_price', '_bx_snipcart_form_entry_input_price', '_bx_snipcart_form_entry_input_price_inf', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_price_err', 'Float', '', 1, 0),
+('bx_snipcart', 'bx_snipcart', 'weight', '', '', 0, 'text', '_bx_snipcart_form_entry_input_sys_weight', '_bx_snipcart_form_entry_input_weight', '_bx_snipcart_form_entry_input_weight_inf', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_entry_input_weight_err', 'Float', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'added', '', '', 0, 'datetime', '_bx_snipcart_form_entry_input_sys_date_added', '_bx_snipcart_form_entry_input_date_added', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'added', '', '', 0, 'datetime', '_bx_snipcart_form_entry_input_sys_date_added', '_bx_snipcart_form_entry_input_date_added', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'changed', '', '', 0, 'datetime', '_bx_snipcart_form_entry_input_sys_date_changed', '_bx_snipcart_form_entry_input_date_changed', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_snipcart', 'bx_snipcart', 'changed', '', '', 0, 'datetime', '_bx_snipcart_form_entry_input_sys_date_changed', '_bx_snipcart_form_entry_input_date_changed', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 
 
 ('bx_snipcart_settings', 'bx_snipcart', 'mode', '', '#!bx_snipcart_modes', 0, 'select', '_bx_snipcart_form_settings_input_sys_mode', '_bx_snipcart_form_settings_input_mode', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_settings_input_mode_err', 'Xss', '', 0, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'mode', '', '#!bx_snipcart_modes', 0, 'select', '_bx_snipcart_form_settings_input_sys_mode', '_bx_snipcart_form_settings_input_mode', '', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_settings_input_mode_err', 'Xss', '', 0, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'api_key_test', '', '', 0, 'text', '_bx_snipcart_form_settings_input_sys_api_key_test', '_bx_snipcart_form_settings_input_api_key_test', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'api_key_test', '', '', 0, 'text', '_bx_snipcart_form_settings_input_sys_api_key_test', '_bx_snipcart_form_settings_input_api_key_test', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'api_key_live', '', '', 0, 'text', '_bx_snipcart_form_settings_input_sys_api_key_live', '_bx_snipcart_form_settings_input_api_key_live', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'api_key_live', '', '', 0, 'text', '_bx_snipcart_form_settings_input_sys_api_key_live', '_bx_snipcart_form_settings_input_api_key_live', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0),
+('bx_snipcart_settings', 'bx_snipcart', 'currency', '', '#!bx_snipcart_currencies', 0, 'select', '_bx_snipcart_form_settings_input_sys_currency', '_bx_snipcart_form_settings_input_currency', '_bx_snipcart_form_settings_input_currency_inf', 1, 0, 0, '', '', '', 'Avail', '', '_bx_snipcart_form_settings_input_currency_err', 'Xss', '', 1, 0),
 ('bx_snipcart_settings', 'bx_snipcart', 'do_submit', '_bx_snipcart_form_settings_input_do_submit', '', 0, 'submit', '_bx_snipcart_form_settings_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0);
 ('bx_snipcart_settings', 'bx_snipcart', 'do_submit', '_bx_snipcart_form_settings_input_do_submit', '', 0, 'submit', '_bx_snipcart_form_settings_input_sys_do_submit', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0);
 
 
 INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES 
 INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES 
@@ -252,33 +254,37 @@ INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for
 ('bx_snipcart_settings_edit', 'mode', 2147483647, 1, 1),
 ('bx_snipcart_settings_edit', 'mode', 2147483647, 1, 1),
 ('bx_snipcart_settings_edit', 'api_key_test', 2147483647, 1, 2),
 ('bx_snipcart_settings_edit', 'api_key_test', 2147483647, 1, 2),
 ('bx_snipcart_settings_edit', 'api_key_live', 2147483647, 1, 3),
 ('bx_snipcart_settings_edit', 'api_key_live', 2147483647, 1, 3),
-('bx_snipcart_settings_edit', 'do_submit', 2147483647, 1, 4);
+('bx_snipcart_settings_edit', 'currency', 2147483647, 1, 4),
+('bx_snipcart_settings_edit', 'do_submit', 2147483647, 1, 5);
 
 
 
 
 -- PRE-VALUES
 -- PRE-VALUES
 INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`, `extendable`) VALUES
 INSERT INTO `sys_form_pre_lists`(`key`, `title`, `module`, `use_for_sets`, `extendable`) VALUES
 ('bx_snipcart_cats', '_bx_snipcart_pre_lists_cats', 'bx_snipcart', '0', '1'),
 ('bx_snipcart_cats', '_bx_snipcart_pre_lists_cats', 'bx_snipcart', '0', '1'),
-('bx_snipcart_modes', '_bx_snipcart_pre_lists_modes', 'bx_snipcart', '0', '0');
+('bx_snipcart_modes', '_bx_snipcart_pre_lists_modes', 'bx_snipcart', '0', '0'),
+('bx_snipcart_currencies', '_bx_snipcart_pre_lists_currencies', 'bx_snipcart', '0', '0');
 
 
 INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
 INSERT INTO `sys_form_pre_values`(`Key`, `Value`, `Order`, `LKey`, `LKey2`) VALUES
 ('bx_snipcart_cats', '', 0, '_sys_please_select', ''),
 ('bx_snipcart_cats', '', 0, '_sys_please_select', ''),
-('bx_snipcart_cats', '1', 1, '_bx_snipcart_cat_adult', ''),
-('bx_snipcart_cats', '2', 2, '_bx_snipcart_cat_communication', ''),
-('bx_snipcart_cats', '3', 3, '_bx_snipcart_cat_conversion', ''),
-('bx_snipcart_cats', '4', 4, '_bx_snipcart_cat_documentation', ''),
-('bx_snipcart_cats', '5', 5, '_bx_snipcart_cat_games', ''),
-('bx_snipcart_cats', '7', 6, '_bx_snipcart_cat_mobile', ''),
-('bx_snipcart_cats', '8', 7, '_bx_snipcart_cat_multimedia', ''),
-('bx_snipcart_cats', '9', 8, '_bx_snipcart_cat_music', ''),
-('bx_snipcart_cats', '9', 9, '_bx_snipcart_cat_navigation', ''),
-('bx_snipcart_cats', '10', 10, '_bx_snipcart_cat_other', ''),
-('bx_snipcart_cats', '11', 11, '_bx_snipcart_cat_photography', ''),
-('bx_snipcart_cats', '12', 12, '_bx_snipcart_cat_security', ''),
-('bx_snipcart_cats', '13', 13, '_bx_snipcart_cat_tools', ''),
+('bx_snipcart_cats', '1', 1, '_bx_snipcart_cat_automotive_and_industrial', ''),
+('bx_snipcart_cats', '2', 2, '_bx_snipcart_cat_beauty_health_food', ''),
+('bx_snipcart_cats', '3', 3, '_bx_snipcart_cat_books', ''),
+('bx_snipcart_cats', '4', 4, '_bx_snipcart_cat_clothing_shoes_jewelry', ''),
+('bx_snipcart_cats', '5', 5, '_bx_snipcart_cat_electronics_and_computers', ''),
+('bx_snipcart_cats', '6', 6, '_bx_snipcart_cat_handmade', ''),
+('bx_snipcart_cats', '7', 7, '_bx_snipcart_cat_home_garden_tools', ''),
+('bx_snipcart_cats', '8', 8, '_bx_snipcart_cat_movies_music_games', ''),
+('bx_snipcart_cats', '9', 9, '_bx_snipcart_cat_sports_and_outdoors', ''),
+('bx_snipcart_cats', '10', 10, '_bx_snipcart_cat_toys_kids_baby', ''),
 
 
 ('bx_snipcart_modes', '', 0, '_sys_please_select', ''),
 ('bx_snipcart_modes', '', 0, '_sys_please_select', ''),
 ('bx_snipcart_modes', 'test', 1, '_bx_snipcart_mode_test', ''),
 ('bx_snipcart_modes', 'test', 1, '_bx_snipcart_mode_test', ''),
-('bx_snipcart_modes', 'live', 2, '_bx_snipcart_mode_live', '');
+('bx_snipcart_modes', 'live', 2, '_bx_snipcart_mode_live', ''),
+
+('bx_snipcart_currencies', '', 0, '_sys_please_select', ''),
+('bx_snipcart_currencies', 'CAD', 1, 'CAD', 'C&#36;'),
+('bx_snipcart_currencies', 'EUR', 2, 'EUR', '&#128;'),
+('bx_snipcart_currencies', 'USD', 3, 'USD', '&#36;');
 
 
 
 
 -- COMMENTS
 -- COMMENTS

+ 1 - 1
modules/boonex/snipcart/install/sql/uninstall.sql

@@ -21,7 +21,7 @@ DELETE FROM `sys_form_display_inputs` WHERE `display_name` IN ('bx_snipcart_entr
 
 
 -- PRE-VALUES
 -- PRE-VALUES
 DELETE FROM `sys_form_pre_lists` WHERE `module` = 'bx_snipcart';
 DELETE FROM `sys_form_pre_lists` WHERE `module` = 'bx_snipcart';
-DELETE FROM `sys_form_pre_values` WHERE `Key` IN('bx_snipcart_cats', 'bx_snipcart_modes');
+DELETE FROM `sys_form_pre_values` WHERE `Key` IN('bx_snipcart_cats', 'bx_snipcart_modes', 'bx_snipcart_currencies');
 
 
 
 
 -- COMMENTS
 -- COMMENTS

+ 3 - 0
modules/boonex/snipcart/template/buy_link.html

@@ -0,0 +1,3 @@
+<div class="bx-tl-raw bx-snipcart-tl-actions bx-def-margin-sec-top">
+    <a class="bx-btn bx-snipcart-buy" href="__href__" title="__title__">__content__</a>
+</div>

+ 5 - 0
modules/boonex/snipcart/template/css/main.css

@@ -6,4 +6,9 @@
 	display: inline-block;
 	display: inline-block;
 	float: none;
 	float: none;
 	vertical-align: top;
 	vertical-align: top;
+}
+
+.bx-snipcart-unit-actions .bx-btn {
+	display: inline-block;
+	float:none;
 }
 }

+ 4 - 0
modules/boonex/snipcart/template/css/timeline.css

@@ -0,0 +1,4 @@
+.bx-snipcart-tl-actions .bx-btn {
+	display: inline-block;
+	float:none;
+}

+ 1 - 3
modules/boonex/snipcart/template/sct_button.html

@@ -1,3 +1 @@
-<button class="bx-btn snipcart-add-item bx-def-margin-thd-topbottom bx-def-margin-right" style="display:inline-block; float:none" <bx_repeat:items>data-item-__key__="__value__"</bx_repeat:items>>
-    <bx_text:_bx_snipcart_menu_item_title_buy />
-</button>
+<button class="bx-btn snipcart-add-item bx-def-margin-thd-topbottom bx-def-margin-right" style="display:inline-block; float:none" <bx_repeat:attributes>data-item-__key__="__value__"</bx_repeat:attributes>>__content__</button>

+ 21 - 3
modules/boonex/snipcart/template/unit.html

@@ -1,3 +1,21 @@
-
-<bx_include_base:../modules/base/text/template/unit.html />
-
+<div class="bx-base-text-unit bx-base-text-unit-ext bx-def-box bx-def-round-corners bx-def-color-bg-box bx-def-margin-bottom">
+    <bx_if:thumb>
+        <div class="bx-base-text-unit-cover">
+            <img class="bx-base-text-unit-cover bx-def-round-corners" alt="__title__" src="__thumb_url__" />
+        </div>
+    </bx_if:thumb>
+    <div class="bx-base-text-unit-text bx-def-padding bx-def-box-sizing">
+        <h2><a href="__content_url__">__title__</a></h2>
+        <div class="bx-base-text-unit-info bx-def-margin-sec-top bx-def-font-small">
+            <span class="bx-def-font-grayed">__entry_posting_date__</span>
+            <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+            <a class="bx-base-text-unit-author" href="__author_url__">__author__</a>
+        </div>
+        <div class="bx-base-text-unit-summary bx-def-margin-sec-top bx-clearfix">__summary__</div>
+        <bx_if:show_buy>
+	        <div class="bx-snipcart-unit-actions bx-def-margin-sec-top">
+	            <a class="bx-btn bx-snipcart-buy" href="__buy_url__">__buy_title__</a>
+	        </div>
+        </bx_if:show_buy>
+    </div>
+</div>

+ 14 - 1
modules/boonex/snipcart/template/unit_full.html

@@ -1 +1,14 @@
-<bx_include_base:../modules/base/text/template/unit_full.html />
+<div class="bx-base-text-unit bx-base-text-unit-ext bx-def-margin-bottom">
+    <h1 class="bx-def-padding-sec-top"><a href="__content_url__">__title__</a></h1>
+    <div class="bx-base-text-unit-info bx-def-margin-sec-top">
+        <span class="bx-def-font-grayed">__entry_posting_date__</span>
+        <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+        <a class="bx-base-text-unit-author" href="__author_url__">__author__</a>
+    </div>
+    <div class="bx-base-text-unit-summary bx-def-margin-sec-top bx-def-margin-sec-bottom bx-clearfix">__text__</div>
+    <bx_if:show_buy>
+	    <div class="bx-snipcart-unit-actions">
+	        <a class="bx-btn bx-snipcart-buy" href="__buy_url__">__buy_title__</a>
+	    </div>
+	</bx_if:show_buy> 
+</div>

+ 1 - 3
modules/boonex/snipcart/template/unit_full_private.html

@@ -1,3 +1 @@
-
-<bx_include_base:../modules/base/text/template/unit_full_private.html />
-
+<bx_include_base:../modules/base/text/template/unit_full_private.html />

+ 32 - 1
modules/boonex/snipcart/template/unit_gallery.html

@@ -1 +1,32 @@
-<bx_include_base:../modules/base/text/template/unit_gallery.html />
+<div class="bx-base-text-unit bx-base-text-unit-gallery bx-def-gal-unit-size bx-def-padding-sec bx-def-margin-sec-bottom">
+	<div class="bx-base-text-unit-cnt bx-def-box bx-def-round-corners bx-def-color-bg-box bx-def-box-sizing">
+		<div class="bx-base-text-unit-text bx-def-padding-leftright bx-def-padding-sec-topbottom bx-def-font-align-center bx-def-box-sizing">
+			<h2><a href="__content_url__">__title__</a></h2>
+		    <div class="bx-base-text-unit-info">
+		        <span class="bx-def-font-grayed">__entry_posting_date__</span>
+		        <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+		        <a class="bx-base-text-unit-author" href="__author_url__">__author__</a>
+		    </div>
+		</div>
+	    <bx_if:thumb>
+	        <a href="__content_url__" title="__summary_attr__">
+	            <div class="bx-base-text-unit-thumb bx-def-gal-div-size bx-def-round-corners bx-def-font-middle" style="background-image:url(__gallery_url__)">
+	                <div class="bx-base-text-unit-strecher">__strecher__</div>
+	            </div>
+	        </a>
+	    </bx_if:thumb>
+	    <bx_if:no_thumb>
+	        <div class="bx-def-gal-img-column">
+	            <div class="bx-base-text-unit-no-thumb bx-def-gal-div-size bx-def-font-middle bx-def-font-grayed bx-def-padding bx-def-box-sizing">
+	                __summary_plain__
+	                <div class="bx-base-text-unit-strecher">__strecher__</div>
+	            </div>
+	        </div>
+	    </bx_if:no_thumb>
+	    <bx_if:show_buy>
+            <div class="bx-snipcart-unit-actions bx-def-margin-sec-topbottom">
+                <a class="bx-btn bx-snipcart-buy" href="__buy_url__">__buy_title__</a>
+            </div>
+        </bx_if:show_buy>
+	</div>
+</div>

+ 1 - 3
modules/boonex/snipcart/template/unit_gallery_private.html

@@ -1,3 +1 @@
-
-<bx_include_base:../modules/base/text/template/unit_gallery_private.html />
-
+<bx_include_base:../modules/base/text/template/unit_gallery_private.html />