Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save amelekesov/b5cb853495ca240e1bb5 to your computer and use it in GitHub Desktop.

Select an option

Save amelekesov/b5cb853495ca240e1bb5 to your computer and use it in GitHub Desktop.
diff --git a/_tools/migration/migrations/20160118144318_core_change_file_size_type.php b/_tools/migration/migrations/20160118144318_core_change_file_size_type.php
new file mode 100644
index 0000000..0442e2b
--- /dev/null
+++ b/_tools/migration/migrations/20160118144318_core_change_file_size_type.php
@@ -0,0 +1,48 @@
+<?php
+
+use Phinx\Migration\AbstractMigration;
+
+class CoreChangeFileSizeType extends AbstractMigration
+{
+ public function up()
+ {
+ $options = $this->adapter->getOptions();
+ $pr = $options['prefix'];
+
+ $table = $pr . 'product_files';
+ $max_size = pow(2, 32) - 1;
+
+ // alter tables structure
+ $this->execute(
+ "ALTER TABLE {$table}"
+ . " CHANGE COLUMN `file_size`"
+ . " `file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"
+ );
+ $this->execute(
+ "ALTER TABLE {$pr}product_options"
+ . " CHANGE COLUMN `max_file_size`"
+ . " `max_file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0"
+ );
+
+ // update wrong sizes of EDP files
+ $files_to_check = $this->fetchAll(
+ "SELECT file_id, product_id, file_path"
+ . " FROM {$table}"
+ . " WHERE file_size = {$max_size}"
+ );
+ $downloads_dir = rtrim($options['dir_root'], '/') . '/var/downloads/';
+ foreach ($files_to_check as $file) {
+ $path = $downloads_dir . $file['product_id'] . '/' . $file['file_path'];
+ if (file_exists($path)) {
+ $size = sprintf('%u', filesize($path));
+ if ($size > $max_size) {
+ $this->execute(
+ "UPDATE {$table}"
+ . " SET file_size = {$size}"
+ . " WHERE file_id = {$file['file_id']}"
+ );
+ }
+ }
+ }
+ }
+}
diff --git a/app/addons/ebay/controllers/backend/ebay.php b/app/addons/ebay/controllers/backend/ebay.php
index a791fc3..a62eacb 100644
--- a/app/addons/ebay/controllers/backend/ebay.php
+++ b/app/addons/ebay/controllers/backend/ebay.php
@@ -96,6 +96,12 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
return \Ebay\Controller::actionSynchronizationObjects();
break;
+
+ case 'clean_product_logs':
+ \Ebay\ProductLogger::clean();
+
+ return array(CONTROLLER_STATUS_OK, 'ebay.product_logs');
+ break;
}
diff --git a/app/addons/ebay/controllers/backend/products.post.php b/app/addons/ebay/controllers/backend/products.post.php
index df4985e..e68b418 100644
--- a/app/addons/ebay/controllers/backend/products.post.php
+++ b/app/addons/ebay/controllers/backend/products.post.php
@@ -41,10 +41,12 @@ if ($mode == 'update') {
if (!empty($field_names['ebay_template_id'])) {
$params = array();
unset($field_names['ebay_template_id']);
- $templates = fn_get_ebay_templates($params, 0, DESCR_SL, true);
- array_unshift($templates, '---');
+
+ $templates = array('' => '---');
+ $templates += fn_get_ebay_templates($params, 0, DESCR_SL, true);
$field_groups['S']['ebay_template_id'] = array(
+ 'skip_lang' => true,
'name' => 'products_data',
'variants' => $templates
);
diff --git a/app/addons/ebay/Ebay/ProductLogger.php b/app/addons/ebay/Ebay/ProductLogger.php
index 94f981b..e05e836 100644
--- a/app/addons/ebay/Ebay/ProductLogger.php
+++ b/app/addons/ebay/Ebay/ProductLogger.php
@@ -226,4 +226,12 @@ class ProductLogger
static::ACTION_END_PRODUCT => __("ebay_action_end_product")
);
}
+
+ /**
+ * Clean logs
+ */
+ public static function clean()
+ {
+ db_query("TRUNCATE TABLE ?:ebay_product_log");
+ }
}
diff --git a/app/addons/payment_dependencies/func.php b/app/addons/payment_dependencies/func.php
index e2f1b91..9f91eba 100644
--- a/app/addons/payment_dependencies/func.php
+++ b/app/addons/payment_dependencies/func.php
@@ -83,7 +83,7 @@ function fn_payment_dependencies_checkout_select_default_payment_method(&$cart,
}
// Change default payment if it doesn't exists
- if (!in_array($cart['payment_id'], $available_payment_ids)) {
+ if (floatval($cart['total']) != 0 && !in_array($cart['payment_id'], $available_payment_ids)) {
$cart['payment_id'] = reset($available_payment_ids);
$cart['payment_method_data'] = fn_get_payment_method_data($cart['payment_id']);
}
diff --git a/app/addons/reward_points/schemas/promotions/schema.post.php b/app/addons/reward_points/schemas/promotions/schema.post.php
index 23b0b49..75d3c3f 100644
--- a/app/addons/reward_points/schemas/promotions/schema.post.php
+++ b/app/addons/reward_points/schemas/promotions/schema.post.php
@@ -16,13 +16,15 @@ $schema['conditions']['reward_points'] = array (
'operators' => array ('eq', 'neq', 'lte', 'gte', 'lt', 'gt'),
'type' => 'input',
'field' => '@auth.points',
- 'zones' => array('catalog', 'cart')
+ 'zones' => array('catalog', 'cart'),
+ 'filter' => 'intval'
);
$schema['bonuses']['give_points'] = array (
'type' => 'input',
'function' => array('fn_reward_points_promotion_give_points', '#this', '@cart', '@auth', '@cart_products'),
'zones' => array('cart'),
+ 'filter' => 'intval'
);
return $schema;
diff --git a/app/controllers/backend/promotions.php b/app/controllers/backend/promotions.php
index 0d20aec..3b7e58c 100644
--- a/app/controllers/backend/promotions.php
+++ b/app/controllers/backend/promotions.php
@@ -296,7 +296,7 @@ function fn_promotions_filter_conditions($conditions)
if (isset($conditions['conditions'])) {
$conditions['conditions'] = fn_promotions_filter_conditions($conditions['conditions']);
- } else {
+ } elseif (!isset($conditions['set'])) {
foreach ($conditions as &$condition) {
if (isset($condition['condition'], $condition['value'])) {
if (!empty($schema['conditions'][$condition['condition']]['filter'])) {
diff --git a/app/controllers/backend/settings.php b/app/controllers/backend/settings.php
index 3b85036..9937baf 100644
--- a/app/controllers/backend/settings.php
+++ b/app/controllers/backend/settings.php
@@ -64,10 +64,8 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($license_status == 'ACTIVE') {
// Save data
- Settings::instance()->updateValue('license_number', $_REQUEST['license_number']);
-
+ Settings::instance()->updateValue('license_number', $_REQUEST['license_number'], '', false, false);
fn_set_storage_data('store_mode', 'full');
-
} else {
if (empty($messages)) {
$messages['unable_to_check'] = array(
diff --git a/app/functions/fn.catalog.php b/app/functions/fn.catalog.php
index 21beeb2..4e1dd9a 100644
--- a/app/functions/fn.catalog.php
+++ b/app/functions/fn.catalog.php
@@ -1474,7 +1474,12 @@ function fn_get_categories($params = array(), $lang_code = CART_LANGUAGE)
}
if (!empty($params['max_nesting_level'])) {
- $condition .= db_quote(" AND ?:categories.level <= ?i", $params['max_nesting_level']);
+ if (!empty($params['parent_category_id'])) {
+ $parent_nesting_level = (int) db_get_field("SELECT level FROM ?:categories WHERE category_id = ?i", $params['parent_category_id']);
+ } else {
+ $parent_nesting_level = 0;
+ }
+ $condition .= db_quote(" AND ?:categories.level <= ?i", $params['max_nesting_level'] + $parent_nesting_level);
}
$limit = $join = $group_by = '';
@@ -5518,11 +5523,12 @@ function fn_check_combination($combinations, $product_id)
*/
fn_set_hook('check_combination_pre', $combinations, $product_id);
+ $exceptions = fn_get_product_exceptions($product_id);
+
$exception_id = 0;
if (!empty($exceptions)) {
foreach ($exceptions as $k => $v) {
- $temp = array();
$temp = $v['combination'];
foreach ($combinations as $key => $value) {
if ((in_array($value, $temp)) && ($temp[$key] == $value)) {
diff --git a/app/functions/fn.multivendor.php b/app/functions/fn.multivendor.php
index 61e0b9c..2c2c3b7 100644
--- a/app/functions/fn.multivendor.php
+++ b/app/functions/fn.multivendor.php
@@ -290,7 +290,8 @@ function fn_mve_import_check_exist_category($category, $delimiter, $lang)
function fn_mve_import_check_object_id(&$primary_object_id, &$processed_data, &$skip_record, $object = 'products')
{
if (!empty($primary_object_id)) {
- list($field, $value) = each($primary_object_id);
+ $value = reset($primary_object_id);
+ $field = key($primary_object_id);
$company_id = db_get_field("SELECT company_id FROM ?:$object WHERE $field = ?s", $value);
if ($company_id != Registry::get('runtime.company_id')) {
$processed_data['S']++;
diff --git a/app/Tygh/Database/Connection.php b/app/Tygh/Database/Connection.php
index 2e4f86d..bcb0fe7 100644
--- a/app/Tygh/Database/Connection.php
+++ b/app/Tygh/Database/Connection.php
@@ -14,6 +14,7 @@
namespace Tygh\Database;
+use Tygh\Database;
use Tygh\Debugger;
use Tygh\Exceptions\DatabaseException;
use Tygh\Registry;
@@ -428,6 +429,8 @@ class Connection
*/
public function query($query)
{
+ $this->raw = $this->raw ?: Database::$raw; // Backward compatibility
+
if (!$this->raw) {
fn_set_hook('db_query', $query);
}
@@ -490,6 +493,7 @@ class Connection
}
$this->raw = false;
+ Database::$raw = false; // Backward compatibility
return $result;
}
diff --git a/app/Tygh/Database.php b/app/Tygh/Database.php
index 4765b8f..6d07801 100644
--- a/app/Tygh/Database.php
+++ b/app/Tygh/Database.php
@@ -22,6 +22,13 @@ namespace Tygh;
class Database
{
/**
+ * if set to true, next query will be executed without additional processing by hooks
+ *
+ * @var boolean
+ */
+ public static $raw = false;
+
+ /**
* Connects to the database server
* @param string $user user name
* @param string $passwd password
diff --git a/app/Tygh/Settings.php b/app/Tygh/Settings.php
index 355a124..0e39a42 100644
--- a/app/Tygh/Settings.php
+++ b/app/Tygh/Settings.php
@@ -76,6 +76,7 @@ class Settings
/**
* Returns static object of Settings class or create it if it is not exists.
*
+ * @param int|null $company_id
* @return Settings Instance of class
*/
public static function instance($company_id = null)
@@ -867,6 +868,7 @@ class Settings
* @param int $object_id Setting identifier
* @param string $value New value
* @param string $company_id Company identifier
+ * @param bool $execute_functions Flag needed execute functions
* @return bool True on success, false otherwise
*/
public function updateValueById($object_id, $value, $company_id = null, $execute_functions = true)
@@ -1516,6 +1518,10 @@ class Settings
*/
private function _getCompanyId($company_id = null)
{
+ if ($company_id === false) {
+ return false;
+ }
+
if ($this->_root_mode && empty($this->_company_id)) {
return false;
}
diff --git a/app/Tygh/Tools/Url.php b/app/Tygh/Tools/Url.php
index 164c4b2..ea112c9 100644
--- a/app/Tygh/Tools/Url.php
+++ b/app/Tygh/Tools/Url.php
@@ -238,7 +238,7 @@ class Url
} catch (\InvalidArgumentException $e) {}
}
- return $domain;
+ return strtolower($domain);
}
return false;
diff --git a/design/backend/css/styles.less b/design/backend/css/styles.less
index 3b057cf..9d71dfa 100644
--- a/design/backend/css/styles.less
+++ b/design/backend/css/styles.less
@@ -1230,17 +1230,17 @@ td.addon-action {
.install-addon {
width: 600px;
- min-height: 400px;
.install-addon-wrapper {
text-align: center;
.install-addon-banner {
- padding: 30px 0 34px 0;
+ padding: 20px 0 34px 0;
}
.install-addon-text {
padding-bottom: 20px;
}
.fileuploader {
text-align: center;
+ padding-bottom: 10px;
}
}
}
diff --git a/design/backend/mail/templates/addons/rma/print_slip.tpl b/design/backend/mail/templates/addons/rma/print_slip.tpl
index 3b218bf..79292e7 100644
--- a/design/backend/mail/templates/addons/rma/print_slip.tpl
+++ b/design/backend/mail/templates/addons/rma/print_slip.tpl
@@ -1,4 +1,4 @@
-<!DOCTYPE html">
+<!DOCTYPE html>
<html dir="{$language_direction}">
<head></head>
diff --git a/design/backend/mail/templates/orders/print_invoice.tpl b/design/backend/mail/templates/orders/print_invoice.tpl
index 2389afa..17d1a1e 100644
--- a/design/backend/mail/templates/orders/print_invoice.tpl
+++ b/design/backend/mail/templates/orders/print_invoice.tpl
@@ -1,4 +1,4 @@
-<!DOCTYPE html">
+<!DOCTYPE html>
<html dir="{$language_direction}">
<head>
{literal}
diff --git a/design/backend/mail/templates/orders/print_packing_slip.tpl b/design/backend/mail/templates/orders/print_packing_slip.tpl
index 2036e91..4f5a513 100644
--- a/design/backend/mail/templates/orders/print_packing_slip.tpl
+++ b/design/backend/mail/templates/orders/print_packing_slip.tpl
@@ -1,4 +1,4 @@
-<!DOCTYPE html">
+<!DOCTYPE html>
<html dir="{$language_direction}">
<head></head>
diff --git a/design/backend/templates/addons/ebay/views/ebay/product_logs.tpl b/design/backend/templates/addons/ebay/views/ebay/product_logs.tpl
index 0ced653..3ce1bfc 100644
--- a/design/backend/templates/addons/ebay/views/ebay/product_logs.tpl
+++ b/design/backend/templates/addons/ebay/views/ebay/product_logs.tpl
@@ -49,4 +49,12 @@
{include file="common/pagination.tpl"}
{/capture}
+
+{capture name="buttons"}
+ {capture name="tools_list"}
+ <li>{btn type="list" text=__("clean_logs") href="ebay.clean_product_logs" class="cm-confirm cm-post"}</li>
+ {/capture}
+ {dropdown content=$smarty.capture.tools_list}
+{/capture}
+
{include file="common/mainbox.tpl" title=__("ebay_logs") content=$smarty.capture.mainbox buttons=$smarty.capture.buttons sidebar=$smarty.capture.sidebar}
diff --git a/design/backend/templates/views/products/m_update.tpl b/design/backend/templates/views/products/m_update.tpl
index 56c712a..ea6e113 100644
--- a/design/backend/templates/views/products/m_update.tpl
+++ b/design/backend/templates/views/products/m_update.tpl
@@ -270,7 +270,12 @@
{elseif $type == "S"}
<select name="{$name.name}[{$product.product_id}][{$field}]">
{foreach from=$name.variants key=v_id item=v_name}
- <option value="{$v_id}" {if $product.$field == $v_id}selected="selection"{/if}>{__($v_name)}</option>
+ {if $name.skip_lang}
+ {assign var="option_name" value=$v_name}
+ {else}
+ {assign var="option_name" value=__($v_name)}
+ {/if}
+ <option value="{$v_id}" {if $product.$field == $v_id}selected="selection"{/if}>{$option_name}</option>
{/foreach}
</select>
{elseif $type == "T"}
diff --git a/design/backend/templates/views/upgrade_center/components/upload_upgrade_package.tpl b/design/backend/templates/views/upgrade_center/components/upload_upgrade_package.tpl
index 0c7ef6d..0cf5b85 100644
--- a/design/backend/templates/views/upgrade_center/components/upload_upgrade_package.tpl
+++ b/design/backend/templates/views/upgrade_center/components/upload_upgrade_package.tpl
@@ -3,7 +3,7 @@
<div class="install-addon-wrapper">
<img class="install-addon-banner" src="{$images_dir}/addon_box.png" width="151px" height="141px" />
- <p class="install-addon-text">{__("install_theme_text", ['[exts]' => implode(',', $config.allowed_pack_exts)])}</p>
+ <p class="install-addon-text">{__("install_upgrade_package_text", ['[exts]' => implode(',', $config.allowed_pack_exts)])}</p>
{include file="common/fileuploader.tpl" var_name="upgrade_pack[0]"}
</div>
diff --git a/design/themes/responsive/mail/templates/orders/print_invoice.tpl b/design/themes/responsive/mail/templates/orders/print_invoice.tpl
index 2389afa..17d1a1e 100644
--- a/design/themes/responsive/mail/templates/orders/print_invoice.tpl
+++ b/design/themes/responsive/mail/templates/orders/print_invoice.tpl
@@ -1,4 +1,4 @@
-<!DOCTYPE html">
+<!DOCTYPE html>
<html dir="{$language_direction}">
<head>
{literal}
diff --git a/design/themes/responsive/templates/404.tpl b/design/themes/responsive/templates/404.tpl
index b38d010..606aec2 100644
--- a/design/themes/responsive/templates/404.tpl
+++ b/design/themes/responsive/templates/404.tpl
@@ -1,4 +1,4 @@
-<!DOCTYPE html">
+<!DOCTYPE html>
<html dir="{$language_direction}">
<head>
<title>{__("page_not_found")}</title>
diff --git a/design/themes/responsive/templates/views/orders/details.tpl b/design/themes/responsive/templates/views/orders/details.tpl
index f41e4a3..5339266 100644
--- a/design/themes/responsive/templates/views/orders/details.tpl
+++ b/design/themes/responsive/templates/views/orders/details.tpl
@@ -233,7 +233,7 @@
{__("included")}
{/if}
{if $tax_data.regnumber}
- {$tax_data.regnumber})
+ ({$tax_data.regnumber})
{/if}
</td>
<td class="ty-orders-summary__taxes-description" data-ct-orders-summary="summary-tax-sub">{include file="common/price.tpl" value=$tax_data.tax_subtotal}</td>
diff --git a/js/tygh/core.js b/js/tygh/core.js
index e113c65..4ca7e06 100644
--- a/js/tygh/core.js
+++ b/js/tygh/core.js
@@ -1033,7 +1033,7 @@ var Tygh = {
$.commonInit();
- // fix dialog scrolling after click on elements with tooltips
+ // FIXME dialog scrolling after click on elements with tooltips
$.widget( "ui.dialog", $.ui.dialog, {
_moveToTop: function( event, silent ) {
var moved = !!this.uiDialog.nextAll(":visible:not(.tooltip)").insertBefore( this.uiDialog ).length;
@@ -1041,13 +1041,15 @@ var Tygh = {
this._trigger( "focus", event );
}
return moved;
- }
- });
-
+ },
- $.widget("ui.dialog", $.ui.dialog, {
- _allowInteraction: function(event) {
- return !!$(event.target).closest(".editable-input").length || this._super( event );
+ _allowInteraction: function (event) {
+ // FIXME Select2 search broken inside jQuery UI 1.10.x modal Dialog
+ // https://github.com/select2/select2/issues/1246
+ if($(event.target).closest(".editable-input").length) {
+ return !!$(event.target).closest(".editable-input").length || this._super( event );
+ }
+ return !!$(event.target).is(".select2-search__field") || this._super(event);
}
});
diff --git a/var/database/data/struct/struct.sql b/var/database/data/struct/struct.sql
index 8d5bccb..3151090 100644
--- a/var/database/data/struct/struct.sql
+++ b/var/database/data/struct/struct.sql
@@ -637,7 +637,7 @@ CREATE TABLE `cscart_product_files` (
`product_id` mediumint(8) unsigned NOT NULL default '0',
`file_path` varchar(255) NOT NULL default '',
`preview_path` varchar(255) NOT NULL default '',
- `file_size` int(11) unsigned NOT NULL default '0',
+ `file_size` bigint unsigned NOT NULL default '0',
`preview_size` int(11) unsigned NOT NULL default '0',
`agreement` char(1) NOT NULL default 'N',
`max_downloads` smallint(5) unsigned NOT NULL default '0',
@@ -723,7 +723,7 @@ CREATE TABLE `cscart_product_options` (
`required` char(1) NOT NULL default 'N',
`multiupload` char(1) NOT NULL default 'N',
`allowed_extensions` varchar(255) NOT NULL default '',
- `max_file_size` int(11) NOT NULL default 0,
+ `max_file_size` bigint unsigned NOT NULL default 0,
`missing_variants_handling` char(1) NOT NULL default 'M',
`status` char(1) NOT NULL default 'A',
`position` smallint(5) unsigned NOT NULL default '0',
diff --git a/var/langs/en/core.po b/var/langs/en/core.po
index 760b97a..d7659a9 100644
--- a/var/langs/en/core.po
+++ b/var/langs/en/core.po
@@ -13364,6 +13364,10 @@ msgctxt "Languages::install_theme_text"
msgid "Uploading and installing a new theme is a great way to personalize your storefront. You can upload a theme by picking a [exts] format archive and clicking <strong>Upload</strong>."
msgstr "Uploading and installing a new theme is a great way to personalize your storefront. You can upload a theme by picking a [exts] format archive and clicking <strong>Upload</strong>."
+msgctxt "Languages::install_upgrade_package_text"
+msgid "You can upload an upgrade package manually from the local machine, your server, or from a remote location. Specify the location of a [exts] format archive and click <strong>Upload</strong>."
+msgstr "You can upload an upgrade package manually from the local machine, your server, or from a remote location. Specify the location of a [exts] format archive and click <strong>Upload</strong>."
+
msgctxt "Languages::non_writable_directories"
msgid "The following directories do not have writable permissions"
msgstr "The following directories do not have writable permissions"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment