67 |
113 |
--------------------------------------------------------------------------------
/upload/admin/view/template/multiseller/transaction-form.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
17 |
18 |
19 |
20 |
21 |
69 |
70 |
71 |
102 |
--------------------------------------------------------------------------------
/upload/admin/view/template/multiseller/transaction.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
54 |
55 |
56 |
57 |
72 |
--------------------------------------------------------------------------------
/upload/admin/view/template/payment/multimerch-paypal.tpl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/upload/catalog/controller/seller/account-dashboard.php:
--------------------------------------------------------------------------------
1 | request->post['payment_status']) && strtolower($this->request->post['payment_status']) == 'completed') {
7 | $this->data['success'] = $this->language->get('ms_account_sellerinfo_saved');
8 | }
9 |
10 | $this->load->model('catalog/product');
11 | $this->load->model('tool/image');
12 | $this->load->model('account/order');
13 |
14 | $seller_id = $this->customer->getId();
15 |
16 | $seller = $this->MsLoader->MsSeller->getSeller($seller_id);
17 | $seller_group_names = $this->MsLoader->MsSellerGroup->getSellerGroupDescriptions($seller['ms.seller_group']);
18 | $my_first_day = date('Y-m-d H:i:s', mktime(0, 0, 0, date("n"), 1));
19 |
20 | $this->data['seller'] = array_merge(
21 | $seller,
22 | array('balance' => $this->currency->format($this->MsLoader->MsBalance->getSellerBalance($seller_id), $this->config->get('config_currency'))),
23 | array('commission_rates' => $this->MsLoader->MsCommission->calculateCommission(array('seller_id' => $seller_id))),
24 | array('total_earnings' => $this->currency->format($this->MsLoader->MsSeller->getTotalEarnings($seller_id), $this->config->get('config_currency'))),
25 | array('earnings_month' => $this->currency->format($this->MsLoader->MsSeller->getTotalEarnings($seller_id, array('period_start' => $my_first_day)), $this->config->get('config_currency'))),
26 | array('sales_month' => $this->MsLoader->MsOrderData->getTotalSales(array(
27 | 'seller_id' => $seller_id,
28 | 'period_start' => $my_first_day
29 | ))),
30 | array('seller_group' => $seller_group_names[$this->config->get('config_language_id')]['name']),
31 | array('date_created' => date($this->language->get('date_format_short'), strtotime($seller['ms.date_created'])))
32 | //array('total_products' => $this->MsLoader->MsProduct->getTotalProducts(array(
33 | //'seller_id' => $seller_id,
34 | //'enabled' => ))
35 | );
36 |
37 | if ($seller['ms.avatar'] && file_exists(DIR_IMAGE . $seller['ms.avatar'])) {
38 | $this->data['seller']['avatar'] = $this->MsLoader->MsFile->resizeImage($seller['ms.avatar'], $this->config->get('msconf_seller_avatar_dashboard_image_width'), $this->config->get('msconf_seller_avatar_dashboard_image_height'));
39 | } else {
40 | $this->data['seller']['avatar'] = $this->MsLoader->MsFile->resizeImage('ms_no_image.jpg', $this->config->get('msconf_seller_avatar_dashboard_image_width'), $this->config->get('msconf_seller_avatar_dashboard_image_height'));
41 | }
42 |
43 | $payments = $this->MsLoader->MsPayment->getPayments(
44 | array(
45 | 'seller_id' => $seller_id,
46 | ),
47 | array(
48 | 'order_by' => 'mpay.date_created',
49 | 'order_way' => 'DESC',
50 | 'offset' => 0,
51 | 'limit' => 5
52 | )
53 | );
54 |
55 | $orders = $this->MsLoader->MsOrderData->getOrders(
56 | array(
57 | 'seller_id' => $seller_id,
58 | 'order_status' => $this->config->get('msconf_display_order_statuses')
59 | ),
60 | array(
61 | 'order_by' => 'date_added',
62 | 'order_way' => 'DESC',
63 | 'offset' => 0,
64 | 'limit' => 5
65 | )
66 | );
67 |
68 | $this->load->model('localisation/order_status');
69 | $order_statuses = $this->model_localisation_order_status->getOrderStatuses();
70 |
71 | foreach ($orders as $order) {
72 | $suborder = $this->MsLoader->MsOrderData->getSuborders(array(
73 | 'order_id' => $order['order_id'],
74 | 'seller_id' => $this->customer->getId(),
75 | 'single' => 1
76 | ));
77 |
78 | $status_name = $this->MsLoader->MsHelper->getStatusName(array('order_status_id' => $order['order_status_id']));
79 |
80 | if (isset($suborder['order_status_id']) && $suborder['order_status_id'] && $order['order_status_id'] != $suborder['order_status_id']) {
81 | $status_name .= ' (' . $this->MsLoader->MsHelper->getStatusName(array('order_status_id' => $suborder['order_status_id'])) . ')';
82 | }
83 |
84 | $products = $this->MsLoader->MsOrderData->getOrderProducts(array('order_id' => $order['order_id'], 'seller_id' => $seller_id));
85 |
86 | foreach($products as $key=>$p)
87 | $products[$key]['options'] = $this->model_account_order->getOrderOptions($order['order_id'], $p['order_product_id']);
88 |
89 | $this->data['orders'][] = array(
90 | 'order_id' => $order['order_id'],
91 | 'customer' => "{$order['firstname']} {$order['lastname']} ({$order['email']})",
92 | 'status' => $status_name,
93 | 'products' => $products,
94 | 'date_created' => date($this->language->get('date_format_short'), strtotime($order['date_added'])),
95 | 'total' => $this->currency->format($this->MsLoader->MsOrderData->getOrderTotal($order['order_id'], array('seller_id' => $seller_id)), $this->config->get('config_currency'))
96 | );
97 | }
98 |
99 | $this->data['link_back'] = $this->url->link('account/account', '', 'SSL');
100 |
101 | $this->document->setTitle($this->language->get('ms_account_dashboard_heading'));
102 |
103 | $this->data['breadcrumbs'] = $this->MsLoader->MsHelper->setBreadcrumbs(array(
104 | array(
105 | 'text' => $this->language->get('text_account'),
106 | 'href' => $this->url->link('account/account', '', 'SSL'),
107 | ),
108 | array(
109 | 'text' => $this->language->get('ms_account_dashboard_breadcrumbs'),
110 | 'href' => $this->url->link('seller/account-dashboard', '', 'SSL'),
111 | )
112 | ));
113 |
114 | list($template, $children) = $this->MsLoader->MsHelper->loadTemplate('account-dashboard');
115 | $this->response->setOutput($this->load->view($template, array_merge($this->data, $children)));
116 | }
117 | }
118 |
119 | ?>
120 |
--------------------------------------------------------------------------------
/upload/catalog/controller/seller/account-withdrawal.php:
--------------------------------------------------------------------------------
1 | request->post;
6 |
7 | $seller = $this->MsLoader->MsSeller->getSeller($this->customer->getId());
8 | $balance = $this->MsLoader->MsBalance->getAvailableSellerFunds($this->customer->getId());
9 |
10 | $json = array();
11 |
12 | if (!$this->MsLoader->MsSeller->getPaypal()) {
13 | $json['errors']['withdraw_amount'] = $this->language->get('ms_account_withdraw_no_paypal');
14 | $this->response->setOutput(json_encode($json));
15 | return;
16 | }
17 |
18 | if (!isset($data['withdraw_amount'])) {
19 | $data['withdraw_amount'] = $balance;
20 | }
21 |
22 | if (preg_match("/[^0-9.]/",$data['withdraw_amount']) || (float)$data['withdraw_amount'] <= 0) {
23 | $json['errors']['withdraw_amount'] = $this->language->get('ms_error_withdraw_amount');
24 | } else {
25 | $data['withdraw_amount'] = (float)$data['withdraw_amount'];
26 | if ($data['withdraw_amount'] > $balance) {
27 | $json['errors']['withdraw_amount'] = $this->language->get('ms_error_withdraw_balance');
28 | } else if ($data['withdraw_amount'] < $this->config->get('msconf_minimum_withdrawal_amount')) {
29 | $json['errors']['withdraw_amount'] = $this->language->get('ms_error_withdraw_minimum');
30 | }
31 | }
32 |
33 | if (empty($json['errors'])) {
34 | $this->MsLoader->MsPayment->createPayment(array(
35 | 'seller_id' => $this->customer->getId(),
36 | 'payment_type' => MsPayment::TYPE_PAYOUT_REQUEST,
37 | 'payment_status' => MsPayment::STATUS_UNPAID,
38 | 'payment_method' => MsPayment::METHOD_PAYPAL,
39 | 'payment_data' => $seller['ms.paypal'],
40 | 'amount' => $data['withdraw_amount'],
41 | 'currency_id' => $this->currency->getId($this->config->get('config_currency')),
42 | 'currency_code' => $this->currency->getCode($this->config->get('config_currency')),
43 | 'description' => sprintf($this->language->get('ms_account_withdraw_description'), $this->language->get('ms_account_withdraw_method_paypal'), $seller['ms.paypal'], date($this->language->get('date_format_short'))),
44 | )
45 | );
46 |
47 | $mails[] = array(
48 | 'type' => MsMail::SMT_WITHDRAW_REQUEST_SUBMITTED
49 | );
50 | $mails[] = array(
51 | 'type' => MsMail::AMT_WITHDRAW_REQUEST_SUBMITTED,
52 | );
53 |
54 | $this->MsLoader->MsMail->sendMails($mails);
55 |
56 | $this->session->data['success'] = $this->language->get('ms_request_submitted');
57 | $json['redirect'] = $this->url->link('account/account', '', 'SSL');
58 | }
59 | $this->response->setOutput(json_encode($json));
60 | }
61 |
62 | public function index() {
63 | if (!$this->config->get('msconf_allow_withdrawal_requests'))
64 | $this->response->redirect($this->url->link('account/account', '', 'SSL'));
65 |
66 | $seller_id = $this->customer->getId();
67 |
68 | $seller_balance = $this->MsLoader->MsBalance->getSellerBalance($seller_id);
69 | $pending_funds = $this->MsLoader->MsBalance->getReservedSellerFunds($seller_id);
70 | $waiting_funds = $this->MsLoader->MsBalance->getWaitingSellerFunds($seller_id);
71 | $available_balance = $this->MsLoader->MsBalance->getAvailableSellerFunds($seller_id);
72 |
73 | $balance_formatted = $this->currency->format($this->MsLoader->MsBalance->getSellerBalance($seller_id),$this->config->get('config_currency'));
74 | $balance_reserved_formatted = $pending_funds > 0 ? sprintf($this->language->get('ms_account_balance_reserved_formatted'), $this->currency->format($pending_funds)) . ', ' : '';
75 | $balance_reserved_formatted .= $waiting_funds > 0 ? sprintf($this->language->get('ms_account_balance_waiting_formatted'), $this->currency->format($waiting_funds)) . ', ' : '';
76 | $balance_reserved_formatted = ($balance_reserved_formatted == '' ? '' : '(' . substr($balance_reserved_formatted, 0, -2) . ')');
77 |
78 | $this->data['ms_account_balance_formatted'] = $balance_formatted;
79 | $this->data['ms_account_reserved_formatted'] = $balance_reserved_formatted;
80 |
81 | $this->document->addScript('catalog/view/javascript/account-withdrawal.js');
82 |
83 | $this->data['balance'] = $seller_balance;
84 | $this->data['balance_formatted'] = $this->currency->format($this->data['balance'],$this->config->get('config_currency'));
85 |
86 | $this->data['balance_available'] = $available_balance;
87 | $this->data['balance_available_formatted'] = $this->currency->format($available_balance, $this->config->get('config_currency'));
88 |
89 | $this->data['paypal'] = $this->MsLoader->MsSeller->getPaypal();
90 | $this->data['msconf_allow_partial_withdrawal'] = $this->config->get('msconf_allow_partial_withdrawal');
91 | $this->data['currency_code'] = $this->config->get('config_currency');
92 |
93 | if ($available_balance - $this->config->get('msconf_minimum_withdrawal_amount') >= 0) {
94 | $this->data['withdrawal_minimum_reached'] = TRUE;
95 | } else {
96 | $this->data['withdrawal_minimum_reached'] = FALSE;
97 | }
98 |
99 | $this->data['link_back'] = $this->url->link('account/account', '', 'SSL');
100 | $this->document->setTitle($this->language->get('ms_account_withdraw_heading'));
101 |
102 | $this->data['breadcrumbs'] = $this->MsLoader->MsHelper->setBreadcrumbs(array(
103 | array(
104 | 'text' => $this->language->get('text_account'),
105 | 'href' => $this->url->link('account/account', '', 'SSL'),
106 | ),
107 | array(
108 | 'text' => $this->language->get('ms_account_dashboard_breadcrumbs'),
109 | 'href' => $this->url->link('seller/account-dashboard', '', 'SSL'),
110 | ),
111 | array(
112 | 'text' => $this->language->get('ms_account_withdraw_breadcrumbs'),
113 | 'href' => $this->url->link('seller/account-withdrawal', '', 'SSL'),
114 | )
115 | ));
116 |
117 | list($template, $children) = $this->MsLoader->MsHelper->loadTemplate('account-withdrawal');
118 | $this->response->setOutput($this->load->view($template, array_merge($this->data, $children)));
119 | }
120 | }
121 |
122 | ?>
123 |
--------------------------------------------------------------------------------
/upload/catalog/controller/seller/account.php:
--------------------------------------------------------------------------------
1 | document->addStyle('catalog/view/javascript/multimerch/datatables/css/jquery.dataTables.css');
10 | $this->document->addScript('catalog/view/javascript/multimerch/datatables/js/jquery.dataTables.min.js');
11 | $this->document->addScript('catalog/view/javascript/multimerch/common.js');
12 | $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/moment.js');
13 | $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js');
14 | $this->document->addStyle('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css');
15 |
16 | $this->data = array_merge($this->data, $this->load->language('multiseller/multiseller'),$this->load->language('account/account'));
17 | $parts = explode('/', $this->request->request['route']);
18 |
19 | if (isset($parts[2]) && in_array($parts[2], array('jxUpdateFile','jxUploadImages', 'jxUploadDownloads', 'jxUploadSellerAvatar'))) {
20 | if (empty($_POST) || empty($_FILES))
21 | return;
22 | // Re-create session as Flash doesn't pass session info
23 | if (isset($_POST['session_id'])) {
24 | if (!isset($this->session->data['customer_id'])) {
25 | session_destroy();
26 | $_COOKIE['PHPSESSID'] = $_POST['session_id'];
27 | $registry->set('session', new Session());
28 | }
29 | if (isset($_SESSION['customer_id'])) {
30 | $salt = $this->MsLoader->MsSeller->getSalt($_SESSION['customer_id']);
31 | if (isset($_POST['token']) && isset($_POST['timestamp']) && $_POST['token'] == md5($salt . $_POST['timestamp'])) {
32 | $this->session->data['customer_id'] = $_SESSION['customer_id'];
33 | $this->customer = new Customer($this->registry);
34 | // todo re-initialize seller object
35 | }
36 | }
37 | }
38 | }
39 |
40 | if (!$this->customer->isLogged()) {
41 | $this->session->data['redirect'] = $this->url->link('account/account', '', 'SSL');
42 | $this->response->redirect($this->url->link('account/login', '', 'SSL'));
43 | } else if (!$this->MsLoader->MsSeller->isSeller()) {
44 | if (!array_intersect($parts, array('account-profile', 'jxsavesellerinfo', 'jxUploadSellerAvatar'))) {
45 | $this->response->redirect($this->url->link('seller/account-profile', '', 'SSL'));
46 | }
47 | } else if ($this->MsLoader->MsSeller->getStatus() != MsSeller::STATUS_ACTIVE) {
48 | $allowed_routes = array('account-profile', 'jxsavesellerinfo', 'jxUploadSellerAvatar');
49 | if ($this->MsLoader->MsSeller->getStatus() == MsSeller::STATUS_INACTIVE && $this->config->get('msconf_allow_inactive_seller_products')) {
50 | $allowed_routes[] = 'account-product';
51 | $allowed_routes[] = 'jxSubmitProduct';
52 | $allowed_routes[] = 'jxUploadDownloads';
53 | $allowed_routes[] = 'jxUploadImages';
54 | $allowed_routes[] = 'jxAutocomplete';
55 | $allowed_routes[] = 'tab-shipping';
56 | }
57 | if (!array_intersect($parts, $allowed_routes)) {
58 | $this->response->redirect($this->url->link('seller/account-profile', '', 'SSL'));
59 | }
60 | }
61 |
62 | if (isset($this->session->data['success'])) {
63 | $this->data['success'] = $this->session->data['success'];
64 | unset($this->session->data['success']);
65 | } else {
66 | $this->data['success'] = '';
67 | }
68 |
69 | $this->MsLoader->MsHelper->addStyle('multiseller');
70 |
71 | if (!isset($this->session->data['multiseller']['files']))
72 | $this->session->data['multiseller']['files'] = array();
73 | }
74 | }
75 | ?>
76 |
--------------------------------------------------------------------------------
/upload/catalog/controller/seller/catalog.php:
--------------------------------------------------------------------------------
1 | MsLoader->MsHelper->addStyle('multiseller');
8 | $this->data = array_merge($this->data, $this->load->language('multiseller/multiseller'),$this->language->load('product/product'));
9 | }
10 | }
11 | ?>
--------------------------------------------------------------------------------
/upload/catalog/model/localisation/order_status.php:
--------------------------------------------------------------------------------
1 | config->get('config_language_id');
5 |
6 | if ($data) {
7 | $sql = "SELECT * FROM " . DB_PREFIX . "order_status WHERE language_id = $language_id";
8 |
9 | $sql .= " ORDER BY name";
10 |
11 | if (isset($data['order']) && ($data['order'] == 'DESC')) {
12 | $sql .= " DESC";
13 | } else {
14 | $sql .= " ASC";
15 | }
16 |
17 | if (isset($data['start']) || isset($data['limit'])) {
18 | if ($data['start'] < 0) {
19 | $data['start'] = 0;
20 | }
21 |
22 | if ($data['limit'] < 1) {
23 | $data['limit'] = 20;
24 | }
25 |
26 | $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
27 | }
28 |
29 | $query = $this->db->query($sql);
30 |
31 | return $query->rows;
32 | } else {
33 | $order_status_data = $this->cache->get('order_status.' . $language_id);
34 |
35 | if (!$order_status_data) {
36 | $query = $this->db->query("SELECT order_status_id, name FROM " . DB_PREFIX . "order_status WHERE language_id = $language_id ORDER BY name");
37 |
38 | $order_status_data = $query->rows;
39 |
40 | $this->cache->set('order_status.' . $language_id, $order_status_data);
41 | }
42 |
43 | return $order_status_data;
44 | }
45 | }
46 |
47 | public function getOrderStatusDescriptions($order_status_id) {
48 | $order_status_data = array();
49 |
50 | $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "'");
51 |
52 | foreach ($query->rows as $result) {
53 | $order_status_data[$result['language_id']] = array('name' => $result['name']);
54 | }
55 |
56 | return $order_status_data;
57 | }
58 | }
59 | ?>
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/account-withdrawal.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | $('input[name="withdraw_all"]').change(function() {
3 | if ($(this).val() == 1) {
4 | $('input[name="withdraw_amount"]').attr('disabled','disabled');
5 | } else {
6 | $('input[name="withdraw_amount"]').removeAttr('disabled');
7 | }
8 | });
9 |
10 | $("#ms-submit-request").click(function() {
11 | $.ajax({
12 | type: "POST",
13 | dataType: "json",
14 | url: $('base').attr('href') + 'index.php?route=seller/account-withdrawal/jxrequestmoney',
15 | data: $(this).parents("form").serialize(),
16 | beforeSend: function() {
17 | $('#ms-withdrawal a.button').hide().before('

');
18 | },
19 | success: function(jsonData) {
20 | $('.error').text('');
21 | if (!jQuery.isEmptyObject(jsonData.errors)) {
22 | $('#ms-withdrawal a.button').show().prev('span.wait').remove();
23 | for (error in jsonData.errors) {
24 | if (!jsonData.errors.hasOwnProperty(error)) {
25 | continue;
26 | }
27 | $('#error_'+error).text(jsonData.errors[error]);
28 | window.scrollTo(0,0);
29 |
30 | }
31 | } else {
32 | location = jsonData['redirect'];
33 | }
34 | }
35 | });
36 | });
37 | });
38 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/dialog-sellercontact.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | $("#sendMessage").click(function() {
3 | $.ajax({
4 | type: "POST",
5 | dataType: "json",
6 | url: $('base').attr('href') + 'index.php?route=seller/catalog-seller/jxSubmitContactDialog',
7 | data: $("#contactForm").serialize(),
8 | beforeSend: function() {
9 | },
10 | complete: function() {
11 | },
12 | success: function(data) {
13 | $('#contactDialog').find('.alert-danger, .alert-success').remove();
14 |
15 | if (!jQuery.isEmptyObject(data.errors)) {
16 | console.log(data.errors);
17 | for (error in data.errors) {
18 | $('#contactDialog .modal-body').append('
' + data.errors[error] + '
');
19 | }
20 | }
21 |
22 | if (data.success) {
23 | $('#contactDialog').find('textarea').val('');
24 | $('#contactDialog .modal-body').append('
' + data.success + '
');
25 | }
26 | }
27 | });
28 | });
29 | });
30 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/ms-common.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/ms-common.js
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/account-product-form-options.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | // load options tab
3 | $('#tab-options').load($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderOptions&product_id=' + msGlobals.product_id, function(data){
4 | // load existing product options
5 | if (msGlobals.product_id.length > 0) {
6 | $.get($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderProductOptions&product_id=' + msGlobals.product_id, function(data) {
7 | $('div.options').append(data).find('input[name$="[option_id]"]').each(function(index) {
8 | $(this).closest('.ms-options').find('.select_option option[value="'+ $(this).val() + '"]').attr('disabled', true );
9 | });
10 | });
11 | }
12 | });
13 |
14 | // option handlers
15 | // delete
16 | $('body').delegate(".option_delete", "click", function() {
17 | var option_id = $(this).closest('.option').find('input[name$="[option_id]"]').val();
18 | $(this).closest('.ms-options').find('.select_option option[value="'+ option_id + '"]').attr('disabled', false);
19 | $(this).closest('.option').remove();
20 | });
21 |
22 | // add
23 | $('body').delegate(".select_option", "change", function() {
24 | $(this).children(':selected').attr('disabled', 'disabled');
25 | var option_id = $(this).children(':selected').val();
26 | var select = this;
27 |
28 | $.get($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderOptionValues&option_id=' + option_id, function(data) {
29 | var lastRow = $(select).parents('.ms-options').find('.option:last input:last').attr('name');
30 |
31 | if (typeof lastRow == "undefined") {
32 | var newRowNum = 1;
33 | } else {
34 | var newRowNum = parseInt(lastRow.match(/[0-9]+/g).shift()) + 1;
35 | }
36 |
37 | var data = $(data);
38 | data.find('input,select').attr('name', function(i,name) {
39 | if (name) return name.replace('product_option[0]','product_option[' + newRowNum + ']');
40 | });
41 | $('div.options').append(data);
42 | });
43 | $(this).val(0);
44 | });
45 |
46 |
47 | // value handlers
48 | // add
49 | $('body').delegate("select.select_option_value", "change", function() {
50 | $(this).children(':selected').attr('disabled', 'disabled');
51 | var newVal = $(this).closest('.o-content').find('.option_value.ffSample').mmClone();
52 | newVal.find('.option_name').text($(this).children(':selected').text());
53 | newVal.find('input[name$="[option_value_id]"]').val($(this).children(':selected').val());
54 | $(this).val(0);
55 | });
56 |
57 | $.fn.mmClone = function() {
58 | var lastRow = $(this).closest('div.mmCtr').find('div:last input:last').attr('name');
59 |
60 | if (typeof lastRow == "undefined") {
61 | var newRowNum = 1;
62 | } else {
63 | var newRowNum = parseInt(lastRow.match(/[0-9]+/g).pop()) + 1;
64 | }
65 |
66 | var newRow = $(this).clone();
67 | newRow.find('input,select').attr('name', function(i,name) {
68 | return name.replace('[product_option_value][0]','[product_option_value][' + newRowNum + ']');
69 | });
70 |
71 | $(this).closest('div.mmCtr').append(newRow.removeClass('ffSample'));
72 |
73 | return newRow;
74 | }
75 |
76 | // change prefix
77 | $('body').delegate(".option_price_prefix", "click", function() {
78 | $(this).toggleClass('plus minus');
79 | var prefix = $(this).closest('.option_value').find('input[name$="[price_prefix]"]');
80 | prefix.val(prefix.val() === "-" ? "+" : "-");
81 | });
82 |
83 | // change required
84 | $('body').delegate(".option_required", "click", function() {
85 | $(this).toggleClass('bw');
86 | var required = $(this).closest('.option').find('input[name$="[required]"]');
87 | required.val(required.val() === "1" ? "0" : "1");
88 | });
89 |
90 | // delete
91 | $('body').delegate(".option_value_delete", "click", function() {
92 | var option_value_id = $(this).closest('.option_value').find('input[name$="[option_value_id]"]').val();
93 | $(this).closest('.option').find('.select_option_value option[value="'+ option_value_id + '"]').attr('disabled', false);
94 | $(this).closest('.option_value').remove();
95 | });
96 | });
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/account-register-seller.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | $("#ms-submit-button").click(function() {
3 | var button = $(this);
4 |
5 | $.ajax({
6 | type: "POST",
7 | dataType: "json",
8 | url: $('base').attr('href') + 'index.php?route=account/register-seller/jxsavesellerinfo',
9 | data: $("form#seller-form").serialize(),
10 | beforeSend: function() {
11 | button.hide();
12 | $('p.error').remove();
13 | $('.warning.main').hide();
14 | $('.form-group').removeClass("has-error");
15 | },
16 | complete: function(jqXHR, textStatus) {
17 | if (textStatus != 'success') {
18 | button.show();
19 | $(".warning.main").text(msGlobals.formError).show();
20 | window.scrollTo(0,0);
21 | }
22 | },
23 | success: function(jsonData) {
24 | if (!jQuery.isEmptyObject(jsonData.errors)) {
25 | $('#ms-submit-button').show().prev('span.wait').remove();
26 | $('.error').text('');
27 |
28 | for (error in jsonData.errors) {
29 | if ($('#error_' + error).length > 0) {
30 | $('#error_' + error).text(jsonData.errors[error]);
31 | $('#error_' + error).parents('.form-group').addClass('has-error');
32 | } else if ($('[name="'+error+'"]').length > 0) {
33 | $('[name="' + error + '"]').parents('.form-group').addClass('has-error');
34 | $('[name="' + error + '"]').parents('div:first').append('
' + jsonData.errors[error] + '
');
35 | } else $(".warning.main").append("
" + jsonData.errors[error] + "
").show();
36 | }
37 | window.scrollTo(0,0);
38 | } else {
39 | window.location = jsonData.redirect;
40 | }
41 | }
42 | });
43 | });
44 | });
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/common.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | $.fn.dataTableExt.sErrMode = 'throw';
3 |
4 | if (typeof config_language != 'undefined') {
5 | $.extend($.fn.dataTable.defaults, {
6 | "oLanguage": {
7 | "sUrl": config_language
8 | }
9 | });
10 | }
11 |
12 | $.extend($.fn.dataTable.defaults, {
13 | "bProcessing": true,
14 | "bSortCellsTop": true,
15 | "bServerSide": true,
16 | "sPaginationType": "full_numbers",
17 | "aaSorting": [],
18 | "bAutoWidth": false,
19 | "bLengthChange": false,
20 | "sDom": 'rt<"pagination"pi><"clear">',
21 | "asStripeClasses": [],
22 | // todo insert proper value
23 | "iDisplayLength": 10
24 | });
25 |
26 | $("body").delegate(".dataTable .filter input[type='text']", "keyup", function() {
27 | $(this).parents(".dataTable").dataTable().fnFilter(this.value, $(this).parents(".dataTable").find("thead tr.filter td").index($(this).parent("td")));
28 | });
29 | });
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/css/jquery.dataTables.css:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * Table
4 | */
5 | table.dataTable {
6 | margin: 0 auto;
7 | clear: both;
8 | width: 100%;
9 | }
10 |
11 | table.dataTable thead th {
12 | padding: 3px 18px 3px 10px;
13 | border-bottom: 1px solid black;
14 | font-weight: bold;
15 | cursor: pointer;
16 | *cursor: hand;
17 | }
18 |
19 | table.dataTable tfoot th {
20 | padding: 3px 18px 3px 10px;
21 | border-top: 1px solid black;
22 | font-weight: bold;
23 | }
24 |
25 | table.dataTable td {
26 | padding: 3px 10px;
27 | }
28 |
29 | table.dataTable td.center,
30 | table.dataTable td.dataTables_empty {
31 | text-align: center;
32 | }
33 |
34 | table.dataTable tr.odd { background-color: #E2E4FF; }
35 | table.dataTable tr.even { background-color: white; }
36 |
37 | table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; }
38 | table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; }
39 | table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; }
40 | table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; }
41 | table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; }
42 | table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
43 |
44 |
45 | /*
46 | * Table wrapper
47 | */
48 | .dataTables_wrapper {
49 | position: relative;
50 | clear: both;
51 | *zoom: 1;
52 | }
53 |
54 |
55 | /*
56 | * Page length menu
57 | */
58 | .dataTables_length {
59 | float: left;
60 | }
61 |
62 |
63 | /*
64 | * Filter
65 | */
66 | .dataTables_filter {
67 | float: right;
68 | text-align: right;
69 | }
70 |
71 |
72 | /*
73 | * Table information
74 | */
75 | .dataTables_info {
76 | clear: both;
77 | float: left;
78 | }
79 |
80 |
81 | /*
82 | * Pagination
83 | */
84 | .dataTables_paginate {
85 | float: right;
86 | text-align: right;
87 | }
88 |
89 | /* Two button pagination - previous / next */
90 | .paginate_disabled_previous,
91 | .paginate_enabled_previous,
92 | .paginate_disabled_next,
93 | .paginate_enabled_next {
94 | height: 19px;
95 | float: left;
96 | cursor: pointer;
97 | *cursor: hand;
98 | color: #111 !important;
99 | }
100 | .paginate_disabled_previous:hover,
101 | .paginate_enabled_previous:hover,
102 | .paginate_disabled_next:hover,
103 | .paginate_enabled_next:hover {
104 | text-decoration: none !important;
105 | }
106 | .paginate_disabled_previous:active,
107 | .paginate_enabled_previous:active,
108 | .paginate_disabled_next:active,
109 | .paginate_enabled_next:active {
110 | outline: none;
111 | }
112 |
113 | .paginate_disabled_previous,
114 | .paginate_disabled_next {
115 | color: #666 !important;
116 | }
117 | .paginate_disabled_previous,
118 | .paginate_enabled_previous {
119 | padding-left: 23px;
120 | }
121 | .paginate_disabled_next,
122 | .paginate_enabled_next {
123 | padding-right: 23px;
124 | margin-left: 10px;
125 | }
126 |
127 | .paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; }
128 | .paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; }
129 | .paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; }
130 |
131 | .paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; }
132 | .paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; }
133 | .paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; }
134 |
135 | /* Full number pagination */
136 | .paging_full_numbers {
137 | height: 22px;
138 | line-height: 22px;
139 | }
140 | .paging_full_numbers a:active {
141 | outline: none
142 | }
143 | .paging_full_numbers a:hover {
144 | text-decoration: none;
145 | }
146 |
147 | .paging_full_numbers a.paginate_button,
148 | .paging_full_numbers a.paginate_active {
149 | border: 1px solid #aaa;
150 | -webkit-border-radius: 5px;
151 | -moz-border-radius: 5px;
152 | border-radius: 5px;
153 | padding: 2px 5px;
154 | margin: 0 3px;
155 | cursor: pointer;
156 | *cursor: hand;
157 | color: #333 !important;
158 | }
159 |
160 | .paging_full_numbers a.paginate_button {
161 | background-color: #ddd;
162 | }
163 |
164 | .paging_full_numbers a.paginate_button:hover {
165 | background-color: #ccc;
166 | text-decoration: none !important;
167 | }
168 |
169 | .paging_full_numbers a.paginate_active {
170 | background-color: #99B3FF;
171 | }
172 |
173 |
174 | /*
175 | * Processing indicator
176 | */
177 | .dataTables_processing {
178 | position: absolute;
179 | top: 50%;
180 | left: 50%;
181 | width: 250px;
182 | height: 30px;
183 | margin-left: -125px;
184 | margin-top: -15px;
185 | padding: 14px 0 2px 0;
186 | border: 1px solid #ddd;
187 | text-align: center;
188 | color: #999;
189 | font-size: 14px;
190 | background-color: white;
191 | }
192 |
193 |
194 | /*
195 | * Sorting
196 | */
197 | .sorting { background: url('../images/sort_both.png') no-repeat center right; }
198 | .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; }
199 | .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; }
200 |
201 | .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; }
202 | .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; }
203 |
204 | table.dataTable thead th:active,
205 | table.dataTable thead td:active {
206 | outline: none;
207 | }
208 |
209 |
210 | /*
211 | * Scrolling
212 | */
213 | .dataTables_scroll {
214 | clear: both;
215 | }
216 |
217 | .dataTables_scrollBody {
218 | *margin-top: -1px;
219 | -webkit-overflow-scrolling: touch;
220 | }
221 |
222 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/css/jquery.dataTables_themeroller.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | * Table
5 | */
6 | table.dataTable {
7 | margin: 0 auto;
8 | clear: both;
9 | width: 100%;
10 | border-collapse: collapse;
11 | }
12 |
13 | table.dataTable thead th {
14 | padding: 3px 0px 3px 10px;
15 | cursor: pointer;
16 | *cursor: hand;
17 | }
18 |
19 | table.dataTable tfoot th {
20 | padding: 3px 10px;
21 | }
22 |
23 | table.dataTable td {
24 | padding: 3px 10px;
25 | }
26 |
27 | table.dataTable td.center,
28 | table.dataTable td.dataTables_empty {
29 | text-align: center;
30 | }
31 |
32 | table.dataTable tr.odd { background-color: #E2E4FF; }
33 | table.dataTable tr.even { background-color: white; }
34 |
35 | table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; }
36 | table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; }
37 | table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; }
38 | table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; }
39 | table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; }
40 | table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
41 |
42 |
43 | /*
44 | * Table wrapper
45 | */
46 | .dataTables_wrapper {
47 | position: relative;
48 | clear: both;
49 | *zoom: 1;
50 | }
51 | .dataTables_wrapper .ui-widget-header {
52 | font-weight: normal;
53 | }
54 | .dataTables_wrapper .ui-toolbar {
55 | padding: 5px;
56 | }
57 |
58 |
59 | /*
60 | * Page length menu
61 | */
62 | .dataTables_length {
63 | float: left;
64 | }
65 |
66 |
67 | /*
68 | * Filter
69 | */
70 | .dataTables_filter {
71 | float: right;
72 | text-align: right;
73 | }
74 |
75 |
76 | /*
77 | * Table information
78 | */
79 | .dataTables_info {
80 | padding-top: 3px;
81 | clear: both;
82 | float: left;
83 | }
84 |
85 |
86 | /*
87 | * Pagination
88 | */
89 | .dataTables_paginate {
90 | float: right;
91 | text-align: right;
92 | }
93 |
94 | .dataTables_paginate .ui-button {
95 | margin-right: -0.1em !important;
96 | }
97 |
98 | .paging_two_button .ui-button {
99 | float: left;
100 | cursor: pointer;
101 | * cursor: hand;
102 | }
103 |
104 | .paging_full_numbers .ui-button {
105 | padding: 2px 6px;
106 | margin: 0;
107 | cursor: pointer;
108 | * cursor: hand;
109 | color: #333 !important;
110 | }
111 |
112 | /* Two button pagination - previous / next */
113 | .paginate_disabled_previous,
114 | .paginate_enabled_previous,
115 | .paginate_disabled_next,
116 | .paginate_enabled_next {
117 | height: 19px;
118 | float: left;
119 | cursor: pointer;
120 | *cursor: hand;
121 | color: #111 !important;
122 | }
123 | .paginate_disabled_previous:hover,
124 | .paginate_enabled_previous:hover,
125 | .paginate_disabled_next:hover,
126 | .paginate_enabled_next:hover {
127 | text-decoration: none !important;
128 | }
129 | .paginate_disabled_previous:active,
130 | .paginate_enabled_previous:active,
131 | .paginate_disabled_next:active,
132 | .paginate_enabled_next:active {
133 | outline: none;
134 | }
135 |
136 | .paginate_disabled_previous,
137 | .paginate_disabled_next {
138 | color: #666 !important;
139 | }
140 | .paginate_disabled_previous,
141 | .paginate_enabled_previous {
142 | padding-left: 23px;
143 | }
144 | .paginate_disabled_next,
145 | .paginate_enabled_next {
146 | padding-right: 23px;
147 | margin-left: 10px;
148 | }
149 |
150 | .paginate_enabled_previous { background: url('../images/back_enabled.png') no-repeat top left; }
151 | .paginate_enabled_previous:hover { background: url('../images/back_enabled_hover.png') no-repeat top left; }
152 | .paginate_disabled_previous { background: url('../images/back_disabled.png') no-repeat top left; }
153 |
154 | .paginate_enabled_next { background: url('../images/forward_enabled.png') no-repeat top right; }
155 | .paginate_enabled_next:hover { background: url('../images/forward_enabled_hover.png') no-repeat top right; }
156 | .paginate_disabled_next { background: url('../images/forward_disabled.png') no-repeat top right; }
157 |
158 | /* Full number pagination */
159 | .paging_full_numbers a:active {
160 | outline: none
161 | }
162 | .paging_full_numbers a:hover {
163 | text-decoration: none;
164 | }
165 |
166 | .paging_full_numbers a.paginate_button,
167 | .paging_full_numbers a.paginate_active {
168 | border: 1px solid #aaa;
169 | -webkit-border-radius: 5px;
170 | -moz-border-radius: 5px;
171 | border-radius: 5px;
172 | padding: 2px 5px;
173 | margin: 0 3px;
174 | cursor: pointer;
175 | *cursor: hand;
176 | color: #333 !important;
177 | }
178 |
179 | .paging_full_numbers a.paginate_button {
180 | background-color: #ddd;
181 | }
182 |
183 | .paging_full_numbers a.paginate_button:hover {
184 | background-color: #ccc;
185 | text-decoration: none !important;
186 | }
187 |
188 | .paging_full_numbers a.paginate_active {
189 | background-color: #99B3FF;
190 | }
191 |
192 |
193 | /*
194 | * Processing indicator
195 | */
196 | .dataTables_processing {
197 | position: absolute;
198 | top: 50%;
199 | left: 50%;
200 | width: 250px;
201 | height: 30px;
202 | margin-left: -125px;
203 | margin-top: -15px;
204 | padding: 14px 0 2px 0;
205 | border: 1px solid #ddd;
206 | text-align: center;
207 | color: #999;
208 | font-size: 14px;
209 | background-color: white;
210 | }
211 |
212 |
213 | /*
214 | * Sorting
215 | */
216 | table.dataTable thead th div.DataTables_sort_wrapper {
217 | position: relative;
218 | padding-right: 20px;
219 | }
220 |
221 | table.dataTable thead th div.DataTables_sort_wrapper span {
222 | position: absolute;
223 | top: 50%;
224 | margin-top: -8px;
225 | right: 0;
226 | }
227 |
228 | table.dataTable th:active {
229 | outline: none;
230 | }
231 |
232 |
233 | /*
234 | * Scrolling
235 | */
236 | .dataTables_scroll {
237 | clear: both;
238 | }
239 |
240 | .dataTables_scrollBody {
241 | *margin-top: -1px;
242 | -webkit-overflow-scrolling: touch;
243 | }
244 |
245 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/back_disabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/back_enabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/back_enabled_hover.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/favicon.ico
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/forward_disabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/forward_enabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/forward_enabled_hover.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/sort_asc.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/sort_both.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/sort_desc.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/multimerch/datatables/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/multimerch/datatables/lang/en.lng:
--------------------------------------------------------------------------------
1 | {
2 | "sEmptyTable": "No data available in table",
3 | "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
4 | "sInfoEmpty": "Showing 0 to 0 of 0 entries",
5 | "sInfoFiltered": "(filtered from _MAX_ total entries)",
6 | "sInfoPostFix": "",
7 | "sInfoThousands": ",",
8 | "sLengthMenu": "Show _MENU_ entries",
9 | "sLoadingRecords": "Loading...",
10 | "sProcessing": "
",
11 | "sSearch": "Search:",
12 | "sZeroRecords": "No matching records found",
13 | "oPaginate": {
14 | "sFirst": "|<",
15 | "sLast": ">|",
16 | "sNext": ">",
17 | "sPrevious": "<"
18 | },
19 | "oAria": {
20 | "sSortAscending": ": activate to sort column ascending",
21 | "sSortDescending": ": activate to sort column descending"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css:
--------------------------------------------------------------------------------
1 | /*
2 | Plupload
3 | ------------------------------------------------------------------- */
4 |
5 | .plupload_button {
6 | display: -moz-inline-box; /* FF < 3*/
7 | display: inline-block;
8 | font: normal 12px sans-serif;
9 | text-decoration: none;
10 | color: #42454a;
11 | border: 1px solid #bababa;
12 | padding: 2px 8px 3px 20px;
13 | margin-right: 4px;
14 | background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center;
15 | outline: 0;
16 |
17 | /* Optional rounded corners for browsers that support it */
18 | -moz-border-radius: 3px;
19 | -khtml-border-radius: 3px;
20 | -webkit-border-radius: 3px;
21 | border-radius: 3px;
22 | }
23 |
24 | .plupload_button:hover {
25 | color: #000;
26 | text-decoration: none;
27 | }
28 |
29 | .plupload_disabled, a.plupload_disabled:hover {
30 | color: #737373;
31 | border-color: #c5c5c5;
32 | background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center;
33 | cursor: default;
34 | }
35 |
36 | .plupload_add {
37 | background-position: -181px center;
38 | }
39 |
40 | .plupload_wrapper {
41 | font: normal 11px Verdana,sans-serif;
42 | width: 100%;
43 | }
44 |
45 | .plupload_container {
46 | padding: 8px;
47 | background: url('../img/transp50.png');
48 | /*-moz-border-radius: 5px;*/
49 | }
50 |
51 | .plupload_container input {
52 | border: 1px solid #DDD;
53 | font: normal 11px Verdana,sans-serif;
54 | width: 98%;
55 | }
56 |
57 | .plupload_header {background: #2A2C2E url('../img/backgrounds.gif') repeat-x;}
58 | .plupload_header_content {
59 | background: url('../img/backgrounds.gif') no-repeat 0 -317px;
60 | min-height: 56px;
61 | padding-left: 60px;
62 | color: #FFF;
63 | }
64 | .plupload_header_title {
65 | font: normal 18px sans-serif;
66 | padding: 6px 0 3px;
67 | }
68 | .plupload_header_text {
69 | font: normal 12px sans-serif;
70 | }
71 |
72 | .plupload_filelist {
73 | margin: 0;
74 | padding: 0;
75 | list-style: none;
76 | }
77 |
78 | .plupload_scroll .plupload_filelist {
79 | height: 185px;
80 | background: #F5F5F5;
81 | overflow-y: scroll;
82 | }
83 |
84 | .plupload_filelist li {
85 | padding: 10px 8px;
86 | background: #F5F5F5 url('../img/backgrounds.gif') repeat-x 0 -156px;
87 | border-bottom: 1px solid #DDD;
88 | }
89 |
90 | .plupload_filelist_header, .plupload_filelist_footer {
91 | background: #DFDFDF;
92 | padding: 8px 8px;
93 | color: #42454A;
94 | }
95 | .plupload_filelist_header {
96 | border-top: 1px solid #EEE;
97 | border-bottom: 1px solid #CDCDCD;
98 | }
99 |
100 | .plupload_filelist_footer {border-top: 1px solid #FFF; height: 22px; line-height: 20px; vertical-align: middle;}
101 | .plupload_file_name {float: left; overflow: hidden}
102 | .plupload_file_status {color: #777;}
103 | .plupload_file_status span {color: #42454A;}
104 | .plupload_file_size, .plupload_file_status, .plupload_progress {
105 | float: right;
106 | width: 80px;
107 | }
108 | .plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;}
109 |
110 | .plupload_filelist .plupload_file_name {width: 205px}
111 |
112 | .plupload_file_action {
113 | float: right;
114 | width: 16px;
115 | height: 16px;
116 | margin-left: 15px;
117 | }
118 |
119 | .plupload_file_action * {
120 | display: none;
121 | width: 16px;
122 | height: 16px;
123 | }
124 |
125 | li.plupload_uploading {background: #ECF3DC url('../img/backgrounds.gif') repeat-x 0 -238px;}
126 | li.plupload_done {color:#AAA}
127 |
128 | li.plupload_delete a {
129 | background: url('../img/delete.gif');
130 | }
131 |
132 | li.plupload_failed a {
133 | background: url('../img/error.gif');
134 | cursor: default;
135 | }
136 |
137 | li.plupload_done a {
138 | background: url('../img/done.gif');
139 | cursor: default;
140 | }
141 |
142 | .plupload_progress, .plupload_upload_status {
143 | display: none;
144 | }
145 |
146 | .plupload_progress_container {
147 | margin-top: 3px;
148 | border: 1px solid #CCC;
149 | background: #FFF;
150 | padding: 1px;
151 | }
152 | .plupload_progress_bar {
153 | width: 0px;
154 | height: 7px;
155 | background: #CDEB8B;
156 | }
157 |
158 | .plupload_scroll .plupload_filelist_header .plupload_file_action, .plupload_scroll .plupload_filelist_footer .plupload_file_action {
159 | margin-right: 17px;
160 | }
161 |
162 | /* Floats */
163 |
164 | .plupload_clear,.plupload_clearer {clear: both;}
165 | .plupload_clearer, .plupload_progress_bar {
166 | display: block;
167 | font-size: 0;
168 | line-height: 0;
169 | }
170 |
171 | li.plupload_droptext {
172 | background: transparent;
173 | text-align: center;
174 | vertical-align: middle;
175 | border: 0;
176 | line-height: 165px;
177 | }
178 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/backgrounds.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/backgrounds.gif
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/buttons-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/buttons-disabled.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/buttons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/buttons.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/delete.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/delete.gif
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/done.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/done.gif
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/error.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/error.gif
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/throbber.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/throbber.gif
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/transp50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.plupload.queue/img/transp50.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css:
--------------------------------------------------------------------------------
1 | /*
2 | Plupload
3 | ------------------------------------------------------------------- */
4 |
5 | .plupload_button {cursor: pointer;}
6 |
7 | .plupload_wrapper {
8 | font: normal 11px Verdana,sans-serif;
9 | width: 100%;
10 | }
11 |
12 | .plupload .plupload_container input {width: 98%;}
13 | .plupload .plupload_filelist_footer {border-width: 1px 0 0 0}
14 | .plupload .plupload_filelist_header {border-width: 0 0 1px 0}
15 | div.plupload .plupload_file {border-width: 0 0 1px 0}
16 | div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;}
17 |
18 | .plupload_file .ui-icon {
19 | cursor:pointer;
20 | }
21 |
22 | .plupload_header_content {
23 | background-image: url('../img/plupload.png');
24 | background-repeat: no-repeat;
25 | background-position: 8px center;
26 | min-height: 56px;
27 | padding-left: 60px;
28 | position:relative;
29 | }
30 | .plupload_header_content_bw {background-image: url('../img/plupload-bw.png');}
31 | .plupload_header_title {
32 | font: normal 18px sans-serif;
33 | padding: 6px 0 3px;
34 | }
35 | .plupload_header_text {font: normal 12px sans-serif;}
36 |
37 | .plupload_filelist,
38 | .plupload_filelist_content {
39 | border-collapse: collapse;
40 | margin: 0;
41 | padding: 0;
42 | width: 100%;
43 | -moz-user-select:none;
44 | -webkit-user-select:none;
45 | user-select:none;
46 | }
47 |
48 | .plupload_cell {padding: 8px 6px;}
49 |
50 | .plupload_file {
51 | border-left: none;
52 | border-right: none;
53 | }
54 |
55 | .plupload .ui-sortable-helper,
56 | .plupload .ui-sortable .plupload_file {
57 | cursor:move;
58 | }
59 |
60 | .plupload_scroll {
61 | max-height: 180px;
62 | min-height: 168px;
63 | _height: 168px;
64 | overflow-y: auto;
65 | }
66 |
67 | .plupload_file_size, .plupload_file_status {text-align: right;}
68 | .plupload_file_size, .plupload_file_status {width: 52px;}
69 | .plupload_file_action {width: 16px;}
70 | .plupload_file_name {
71 | overflow: hidden;
72 | padding-left: 10px;
73 | }
74 |
75 | .plupload_file_rename {
76 | width:95%;
77 | }
78 |
79 | .plupload_progress {width: 60px;}
80 | .plupload_progress_container {padding: 1px;}
81 |
82 |
83 | /* Floats */
84 |
85 | .plupload_right {float: right;}
86 | .plupload_left {float: left;}
87 | .plupload_clear,.plupload_clearer {clear: both;}
88 | .plupload_clearer, .plupload_progress_bar {
89 | display: block;
90 | font-size: 0;
91 | line-height: 0;
92 | }
93 | .plupload_clearer {height: 0;}
94 |
95 | /* Misc */
96 | .plupload_hidden {display: none;}
97 | .plupload_droptext {
98 | background: transparent;
99 | text-align: center;
100 | vertical-align: middle;
101 | border: 0;
102 | line-height: 165px;
103 | }
104 |
105 | .plupload_buttons, .plupload_upload_status {float: left}
106 |
107 | .plupload_message {
108 | position: absolute;
109 | top: 0px;
110 | left: 0px;
111 | height: 100%;
112 | width: 100%;
113 | }
114 |
115 | .plupload_message p {
116 | padding:0.7em;
117 | margin:0;
118 | }
119 |
120 | .plupload_message strong {
121 | font-weight: bold;
122 | }
123 |
124 | plupload_message i {
125 | font-style: italic;
126 | }
127 |
128 | .plupload_message p span.ui-icon {
129 | float: left;
130 | margin-right: 0.3em;
131 | }
132 |
133 | .plupload_header_content .ui-state-error,
134 | .plupload_header_content .ui-state-highlight {
135 | border:none;
136 | }
137 |
138 | .plupload_message_close {
139 | position:absolute;
140 | top:5px;
141 | right:5px;
142 | cursor:pointer;
143 | }
144 |
145 | .plupload .ui-sortable-placeholder {
146 | height:35px;
147 | }
148 |
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.ui.plupload/img/plupload-bw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.ui.plupload/img/plupload-bw.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/jquery.ui.plupload/img/plupload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/catalog/view/javascript/plupload/jquery.ui.plupload/img/plupload.png
--------------------------------------------------------------------------------
/upload/catalog/view/javascript/plupload/plupload.browserplus.js:
--------------------------------------------------------------------------------
1 | (function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true,multi_selection:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l
0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v';if(d.ua.ie){q=b.createElement("div");l.appendChild(q);q.outerHTML=p;q=null}else{l.innerHTML=p}}());function n(){return b.getElementById(m.id+"_flash")}function j(){if(h++>5000){o({success:false});return}if(g[m.id]===false){setTimeout(j,1)}}j();k=l=null;m.bind("Destroy",function(p){var q;d.removeAllEvents(b.body,p.id);delete g[p.id];delete a[p.id];q=b.getElementById(p.id+"_flash_container");if(q){i.removeChild(q)}});m.bind("Flash:Init",function(){var r={},q;try{n().setFileFilters(m.settings.filters,m.settings.multi_selection)}catch(p){o({success:false});return}if(g[m.id]){return}g[m.id]=true;m.bind("UploadFile",function(s,u){var v=s.settings,t=m.settings.resize||{};n().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});m.bind("CancelUpload",function(){n().cancelUpload()});m.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});m.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!==d.FAILED&&s.state!==d.STOPPED){n().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});m.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;t0;u=Math.ceil(q.size/r);if(!n){r=q.size;u=1}function o(){var B,x=t.settings.multipart,w=0,A={name:q.target_name||q.name},y=t.settings.url;function z(D){var C,I="----pluploadboundary"+c.guid(),F="--",H="\r\n",E,G;if(x){h.setRequestHeader("Content-Type","multipart/form-data; boundary="+I);C=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(A,t.settings.multipart_params),function(K,J){C.append(F+I+H+'Content-Disposition: form-data; name="'+J+'"'+H+H);C.append(K+H)});G=c.mimeTypes[q.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";C.append(F+I+H+'Content-Disposition: form-data; name="'+t.settings.file_data_name+'"; filename="'+q.name+'"'+H+"Content-Type: "+G+H+H);C.append(D);C.append(H+F+I+F+H);E=C.getAsBlob();w=E.length-D.length;D=E}h.send(D)}if(q.status==c.DONE||q.status==c.FAILED||t.state==c.STOPPED){return}if(n){A.chunk=v;A.chunks=u}B=Math.min(r,q.size-(v*r));if(!x){y=c.buildUrl(t.settings.url,A)}h=google.gears.factory.create("beta.httprequest");h.open("POST",y);if(!x){h.setRequestHeader("Content-Disposition",'attachment; filename="'+q.name+'"');h.setRequestHeader("Content-Type","application/octet-stream")}c.each(t.settings.headers,function(D,C){h.setRequestHeader(C,D)});h.upload.onprogress=function(C){q.loaded=s+C.loaded-w;t.trigger("UploadProgress",q)};h.onreadystatechange=function(){var C;if(h.readyState==4&&t.state!==c.STOPPED){if(h.status==200){C={chunk:v,chunks:u,response:h.responseText,status:h.status};t.trigger("ChunkUploaded",q,C);if(C.cancelled){q.status=c.FAILED;return}s+=B;if(++v>=u){q.status=c.DONE;t.trigger("FileUploaded",q,{response:h.responseText,status:h.status})}else{o()}}else{t.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:q,chunk:v,chunks:u,status:h.status})}}};if(v';n=i.firstChild;j.appendChild(n);b.addEvent(n,"load",function(C){var D=C.target,B,y;if(!k){return}try{B=D.contentWindow.document||D.contentDocument||d.frames[D.id].document}catch(A){p.trigger("Error",{code:b.SECURITY_ERROR,message:b.translate("Security error."),file:k});return}y=B.body.innerHTML;if(y){k.status=b.DONE;k.loaded=1025;k.percent=100;p.trigger("UploadProgress",k);p.trigger("FileUploaded",k,{response:y})}},p.id)}if(p.settings.container){j=e(p.settings.container);if(b.getStyle(j,"position")==="static"){j.style.position="relative"}}p.bind("UploadFile",function(i,A){var B,y;if(A.status==b.DONE||A.status==b.FAILED||i.state==b.STOPPED){return}B=e("form_"+A.id);y=e("input_"+A.id);y.setAttribute("name",i.settings.file_data_name);B.setAttribute("action",i.settings.url);b.each(b.extend({name:A.target_name||A.name},i.settings.multipart_params),function(E,C){var D=a.createElement("input");b.extend(D,{type:"hidden",name:C,value:E});B.insertBefore(D,B.firstChild)});k=A;e("form_"+q).style.top=-1048575+"px";B.submit()});p.bind("FileUploaded",function(i){i.refresh()});p.bind("StateChanged",function(i){if(i.state==b.STARTED){u()}else{if(i.state==b.STOPPED){d.setTimeout(function(){b.removeEvent(n,"load",i.id);if(n.parentNode){n.parentNode.removeChild(n)}},0)}}b.each(i.files,function(A,y){if(A.status===b.DONE||A.status===b.FAILED){var B=e("form_"+A.id);if(B){B.parentNode.removeChild(B)}}})});p.bind("Refresh",function(y){var F,A,B,C,i,G,H,E,D;F=e(y.settings.browse_button);if(F){i=b.getPos(F,e(y.settings.container));G=b.getSize(F);H=e("form_"+q);E=e("input_"+q);b.extend(H.style,{top:i.y+"px",left:i.x+"px",width:G.w+"px",height:G.h+"px"});if(y.features.triggerDialog){if(b.getStyle(F,"position")==="static"){b.extend(F.style,{position:"relative"})}D=parseInt(F.style.zIndex,10);if(isNaN(D)){D=0}b.extend(F.style,{zIndex:D});b.extend(H.style,{zIndex:D-1})}B=y.settings.browse_button_hover;C=y.settings.browse_button_active;A=y.features.triggerDialog?F:H;if(B){b.addEvent(A,"mouseover",function(){b.addClass(F,B)},y.id);b.addEvent(A,"mouseout",function(){b.removeClass(F,B)},y.id)}if(C){b.addEvent(A,"mousedown",function(){b.addClass(F,C)},y.id);b.addEvent(a.body,"mouseup",function(){b.removeClass(F,C)},y.id)}}});f.bind("FilesRemoved",function(y,B){var A,C;for(A=0;A3){k.pop()}while(k.length<4){k.push(0)}l=r.split(".");while(l.length>4){l.pop()}do{t=parseInt(l[p],10);m=parseInt(k[p],10);p++}while(p8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);if(d.getStyle(k,"position")==="static"){k.style.position="relative"}}k.appendChild(o);for(l=0;l';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var i,r={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(s){i=[]});p.bind("Silverlight:SelectFile",function(s,v,t,u){var w;w=d.guid();r[w]=v;r[v]=w;i.push(new d.File(w,t,u))});p.bind("Silverlight:SelectSuccessful",function(){if(i.length){p.trigger("FilesAdded",i)}});p.bind("Silverlight:UploadChunkError",function(s,v,t,w,u){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:u,file:s.getFile(r[v])})});p.bind("Silverlight:UploadFileProgress",function(s,w,t,v){var u=s.getFile(r[w]);if(u.status!=d.FAILED){u.size=v;u.loaded=t;s.trigger("UploadProgress",u)}});p.bind("Refresh",function(s){var t,u,v;t=b.getElementById(s.settings.browse_button);if(t){u=d.getPos(t,b.getElementById(s.settings.container));v=d.getSize(t);d.extend(b.getElementById(s.id+"_silverlight_container").style,{top:u.y+"px",left:u.x+"px",width:v.w+"px",height:v.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(s,v,t,y,x){var w,u=s.getFile(r[v]);w={chunk:t,chunks:y,response:x};s.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED&&s.state!==d.STOPPED){j().UploadNextChunk()}if(t==y-1){u.status=d.DONE;s.trigger("FileUploaded",u,{response:x})}});p.bind("Silverlight:UploadSuccessful",function(s,v,t){var u=s.getFile(r[v]);u.status=d.DONE;s.trigger("FileUploaded",u,{response:t})});p.bind("FilesRemoved",function(s,u){var t;for(t=0;t
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
88 |
89 |
90 |
91 |
92 |
93 |
98 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-order.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
45 |
46 |
49 |
50 |
51 |
52 |
53 |
70 |
71 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-product-form-options-values.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | currency->getSymbolLeft(); ?>
16 |
17 | currency->getSymbolRight(); ?>
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
" title="">
31 |
32 | currency->getSymbolLeft(); ?>
33 |
34 | currency->getSymbolRight(); ?>
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-product-form-options.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-product-form-shipping-categories.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
19 |
20 |
21 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-product.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
58 |
59 |
63 |
64 |
65 |
66 |
67 |
89 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-transaction.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
54 |
55 |
56 |
57 |
58 |
83 |
84 |
87 |
88 |
89 |
90 |
91 |
118 |
119 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/account-withdrawal.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
currency->format($this->config->get('msconf_minimum_withdrawal_amount'),$this->config->get('config_currency')); ?>
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/catalog-seller-products.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
27 |
28 |
29 |
30 |
31 |
40 |
41 |
42 |
43 |
44 |
45 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/catalog-seller-profile.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | config->get('msconf_enable_seller_banner') && isset($seller['banner'])) { ?>
28 |
29 | ![<?php echo $seller['nickname']; ?> <?php echo $seller['nickname']; ?>](<?php echo $seller['banner']; ?>)
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |

67 |
68 |
69 |
70 | -
71 | -
72 | -
73 | -
74 | -
75 |
76 |
77 |
78 |
79 |
80 | config->get('mmess_conf_enable') || $this->config->get('msconf_enable_private_messaging') == 2) { ?>
81 | customer->getId()) || ($this->customer->getId() != $seller['seller_id'])) { ?>
82 |
83 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/catalog-seller.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
27 |
28 |
29 |
30 |
31 |
40 |
41 |
42 |
43 |
44 |
45 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
![<?php echo $seller['nickname']; ?> <?php echo $seller['nickname']; ?>](<?php echo $seller['thumb']; ?>)
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
98 |
99 |
100 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/dialog-sellercontact.tpl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/upload/catalog/view/theme/default/template/multiseller/payment-paypal.tpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/upload/image/ms_no_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smgom/multimerch/9ec253e1a137a2d5729ee59ef0a45f2e7c95e808/upload/image/ms_no_image.jpg
--------------------------------------------------------------------------------
/upload/system/library/msloader.php:
--------------------------------------------------------------------------------
1 | registry = $registry;
9 | spl_autoload_register(array('MsLoader', '_autoloadLibrary'));
10 | spl_autoload_register(array('MsLoader', '_autoloadController'));
11 | }
12 |
13 | public function __get($class) {
14 | if (!isset($this->$class)){
15 | $this->$class = new $class($this->registry);
16 | }
17 |
18 | return $this->$class;
19 | }
20 |
21 | private static function _autoloadLibrary($class) {
22 | $file = DIR_SYSTEM . 'library/' . strtolower($class) . '.php';
23 | if (file_exists($file)) {
24 | require_once(VQMod::modCheck($file));
25 | } else {
26 | $file = DIR_SYSTEM . 'library/multimerch/' . strtolower($class) . '.php';
27 | if (file_exists($file)) {
28 | require_once(VQMod::modCheck($file));
29 | }
30 | }
31 | }
32 |
33 | private static function _autoloadController($class) {
34 | preg_match_all('/((?:^|[A-Z])[a-z]+)/',$class,$matches);
35 |
36 | if (isset($matches[0][1]) && isset($matches[0][2])) {
37 | $file = DIR_APPLICATION . 'controller/' . strtolower($matches[0][1]) . '/' . strtolower($matches[0][2]) . '.php';
38 | if (file_exists($file)) {
39 | require_once(VQMod::modCheck($file));
40 | }
41 | }
42 | }
43 | }
44 |
45 | ?>
46 |
--------------------------------------------------------------------------------
/upload/system/library/msoption.php:
--------------------------------------------------------------------------------
1 | config->get('config_language_id'))
13 | . (isset($data['enabled']) ? " AND enabled = " . (int)$data['enabled'] : '')
14 | . (isset($sort['order_by']) ? " ORDER BY {$sort['order_by']} {$sort['order_way']}" : '')
15 | . (isset($sort['limit']) ? " LIMIT ".(int)$sort['offset'].', '.(int)($sort['limit']) : '');
16 |
17 | $res = $this->db->query($sql);
18 |
19 | $total = $this->db->query("SELECT FOUND_ROWS() as total");
20 | if ($res->rows) $res->rows[0]['total_rows'] = $total->row['total'];
21 |
22 | return ($res->num_rows == 1 && isset($data['single']) ? $res->row : $res->rows);
23 | }
24 |
25 | public function getOptionValues($option_id) {
26 | $option_value_data = array();
27 | $sql = "SELECT *
28 | FROM " . DB_PREFIX . "option_value ov
29 | LEFT JOIN " . DB_PREFIX . "option_value_description ovd
30 | ON (ov.option_value_id = ovd.option_value_id)
31 | WHERE ov.option_id = " . (int)$option_id
32 | . (isset($data['language_id']) ? " AND ovd.language_id = " . (int)$data['language_id'] : " AND ovd.language_id = " . (int)$this->config->get('config_language_id')) . "
33 | ORDER BY ov.sort_order ASC";
34 |
35 | $option_value_query = $this->db->query($sql);
36 |
37 | foreach ($option_value_query->rows as $option_value) {
38 | $option_value_data[] = array(
39 | 'option_value_id' => $option_value['option_value_id'],
40 | 'name' => $option_value['name'],
41 | 'image' => $option_value['image'],
42 | 'sort_order' => $option_value['sort_order']
43 | );
44 | }
45 |
46 | return $option_value_data;
47 | }
48 | }
49 | ?>
--------------------------------------------------------------------------------
/upload/system/library/mssellergroup.php:
--------------------------------------------------------------------------------
1 | db->query($sql);
10 |
11 | return $res->row;
12 | }
13 |
14 | public function getSellerGroups($data = array(), $sort = array(), $cols = array()) {
15 | $filters = '';
16 | if(isset($sort['filters'])) {
17 | foreach($sort['filters'] as $k => $v) {
18 | $filters .= " AND {$k} LIKE '%" . $this->db->escape($v) . "%'";
19 | }
20 | }
21 |
22 | $sql = "SELECT
23 | SQL_CALC_FOUND_ROWS
24 | *
25 | FROM " . DB_PREFIX . "ms_seller_group msg
26 | LEFT JOIN " . DB_PREFIX . "ms_seller_group_description msgd
27 | ON (msg.seller_group_id = msgd.seller_group_id)
28 | WHERE msgd.language_id = '" . (int)$this->config->get('config_language_id') . "'"
29 | . $filters
30 | . (isset($sort['order_by']) ? " ORDER BY {$sort['order_by']} {$sort['order_way']}" : '')
31 | . (isset($sort['limit']) ? " LIMIT ".(int)$sort['offset'].', '.(int)($sort['limit']) : '');
32 | $res = $this->db->query($sql);
33 |
34 | $total = $this->db->query("SELECT FOUND_ROWS() as total");
35 | if ($res->rows) $res->rows[0]['total_rows'] = $total->row['total'];
36 |
37 | return $res->rows;
38 | }
39 |
40 | public function getSellerGroupDescriptions($seller_group_id) {
41 | $seller_group_data = array();
42 |
43 | $sql = "SELECT *
44 | FROM " . DB_PREFIX . "ms_seller_group_description
45 | WHERE seller_group_id = '" . (int)$seller_group_id . "'";
46 |
47 | $res = $this->db->query($sql);
48 |
49 | foreach ($res->rows as $result) {
50 | $seller_group_data[$result['language_id']] = array(
51 | 'name' => $result['name'],
52 | 'description' => $result['description']
53 | );
54 | }
55 |
56 | return $seller_group_data;
57 | }
58 |
59 | public function getTotalSellerGroups() {
60 | $sql = "SELECT COUNT(*) as total
61 | FROM " . DB_PREFIX . "ms_seller_group";
62 |
63 | $res = $this->db->query($sql);
64 | return $res->row['total'];
65 | }
66 |
67 | public function createSellerGroup($data) {
68 | // commissions
69 | $commission_id = $this->MsLoader->MsCommission->createCommission($data['commission_rates']);
70 | $this->db->query("
71 | INSERT INTO " . DB_PREFIX . "ms_seller_group
72 | SET commission_id = '" . (!is_null($commission_id) ? $commission_id : 'NULL') . "',
73 | product_period = '" . (!is_null($data['product_period']) ? $data['product_period'] : '0') . "',
74 | product_quantity = '" . (!is_null($data['product_quantity']) ? $data['product_quantity'] : '0') . "'
75 | ");
76 | $seller_group_id = $this->db->getLastId();
77 |
78 | foreach ($data['description'] as $language_id => $value) {
79 | $this->db->query("
80 | INSERT INTO " . DB_PREFIX . "ms_seller_group_description
81 | SET seller_group_id = '" . (int)$seller_group_id . "',
82 | language_id = '" . (int)$language_id . "',
83 | name = '" . $this->db->escape($value['name']) . "',
84 | description = '" . $this->db->escape($value['description']) . "'");
85 | }
86 |
87 |
88 | }
89 |
90 | // Edit seller group
91 | public function editSellerGroup($seller_group_id, $data) {
92 | // commissions
93 | if (!$data['commission_id']) {
94 | $commission_id = $this->MsLoader->MsCommission->createCommission($data['commission_rates']);
95 | } else {
96 | $commission_id = $this->MsLoader->MsCommission->editCommission($data['commission_id'], $data['commission_rates']);
97 | }
98 |
99 | $sql = "UPDATE " . DB_PREFIX . "ms_seller_group
100 | SET commission_id = " . (!is_null($commission_id) ? (int)$commission_id : 'NULL' ) . ",
101 | product_period = '" . (!is_null($data['product_period']) ? $data['product_period'] : '0') . "',
102 | product_quantity = '" . (!is_null($data['product_quantity']) ? $data['product_quantity'] : '0') . "'
103 | WHERE seller_group_id = " . (int)$seller_group_id;
104 | $this->db->query($sql);
105 |
106 | foreach ($data['description'] as $language_id => $language) {
107 | $sql = "UPDATE " . DB_PREFIX . "ms_seller_group_description
108 | SET name = '". $this->db->escape($language['name']) ."',
109 | description = '". $this->db->escape(htmlspecialchars(nl2br($language['description']), ENT_COMPAT)) ."'
110 | WHERE seller_group_id = " . (int)$seller_group_id . "
111 | AND language_id = " . (int)$language_id;
112 |
113 | $this->db->query($sql);
114 | }
115 | }
116 |
117 | // Delete seller group
118 | public function deleteSellerGroup($seller_group_id) {
119 | $this->db->query("DELETE FROM " . DB_PREFIX . "ms_seller_group_description
120 | WHERE seller_group_id = '" . (int)$seller_group_id . "'");
121 | $this->db->query("DELETE FROM " . DB_PREFIX . "ms_seller_group WHERE seller_group_id = '" . (int)$seller_group_id . "'");
122 | }
123 | }
124 | ?>
125 |
--------------------------------------------------------------------------------
/upload/vqmod/xml/multimerch_core_oc2_loader_magic.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
11 | registry->get($key);
14 | }
15 |
16 | public function __set($key, $value) {
17 | $this->registry->set($key, $value);
18 | }
19 | ]]>
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/upload/vqmod/xml/multimerch_core_ordercomments.xml_:
--------------------------------------------------------------------------------
1 |
2 |
4 | ]>
5 |
6 | MultiMerch Core Order Comments per Seller
7 | http://multimerch.com/
8 |
9 |
10 |
11 | session->data['payment_methods'] = $method_data;
13 | ]]>
14 | language->load('multiseller/multiseller');
16 | if ($this->cart->hasProducts()) {
17 | $products = $this->cart->getProducts();
18 |
19 | foreach ($products as $product) {
20 | $id = $this->MsLoader->MsProduct->getSellerId($product['product_id']);
21 | if (!isset($sellers[$id])) $sellers[$id] = $this->MsLoader->MsSeller->getSeller($id);
22 | }
23 |
24 | $this->session->data['sellers'] = $sellers;
25 | }
26 | ]]>
27 |
28 |
29 |
30 | session->data['comment'] = strip_tags($this->request->post['comment']);
32 | ]]>
33 | request->post['comment'])) {
35 | foreach($this->request->post['comment'] as $key => $value) {
36 | $comment[$key] = strip_tags($value);
37 | }
38 | } else {
39 | $comment = strip_tags($this->request->post['comment']);
40 | }
41 | $this->session->data['comment'] = $comment;
42 | ]]>
43 |
44 |
45 |
46 |
47 |
48 |
50 | ]]>
51 |
53 | session->data['sellers'] as $seller) { ?>
54 | language->get('ms_seller_forseller'); ?>:
55 |
56 |
57 |
58 | ]]>
59 |
60 |
61 |
62 |
63 |
64 |
66 | ]]>
67 |
68 |
69 |
70 |
72 | ]]>
73 |
74 |
75 |
76 |
77 |
78 |
79 | session->data['comment'] = strip_tags($this->request->post['comment']);
81 | ]]>
82 | session->data['comment'] = "";
84 | ]]>
85 |
86 |
87 |
88 |
89 |
90 | session->data['comment'];
92 | ]]>
93 | session->data['comment'])) {
95 | $data['comment'] = implode('\n',$this->session->data['comment']);
96 | } else {
97 | $data['comment'] = $this->session->data['comment'];
98 | }
99 | ]]>
100 |
101 |
102 |
103 | cart->getProducts() as $product) {
105 | ]]>
106 | MsLoader->MsProduct->getSellerId($product['product_id']);
108 | if($seller_id != 0) {
109 | $this->MsLoader->MsOrderData->addOrderComment(
110 | $this->session->data['order_id'],
111 | $product['product_id'],
112 | array(
113 | 'seller_id' => $seller_id,
114 | 'comment' => isset($this->session->data['comment'][$seller_id]) ? $this->session->data['comment'][$seller_id] : $this->session->data['comment'],
115 | )
116 | );
117 | }
118 | ]]>
119 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/upload/vqmod/xml/multimerch_core_seourl.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | ]>
5 |
6 | MultiMerch Core SEO URLs
7 | http://multimerch.com/
8 |
9 |
10 |
11 | num_rows) {
13 | ]]>
14 | config->get('msconf_sellers_slug') || $part == 'products') {
16 | continue;
17 | } else
18 | ]]>
19 |
20 |
21 |
22 |
25 |
28 |
29 |
30 |
31 |
34 | request->get['seller_id'] = $url[1];
37 | }
38 | ]]>
39 |
40 |
41 |
42 | request->get['information_id'])) {
44 | ]]>
45 | request->get['seller_id'])) {
47 | if (strpos($this->request->get['_route_'], "products") !== FALSE) {
48 | $this->request->get['route'] = 'seller/catalog-seller/products';
49 | }
50 | else {
51 | $this->request->get['route'] = 'seller/catalog-seller/profile';
52 | }
53 | } elseif (strpos($this->request->get['_route_'], $this->config->get('msconf_sellers_slug')) === 0) {
54 | $this->request->get['route'] = 'seller/catalog-seller';
55 | ]]>
56 |
57 |
58 |
59 |
62 |
65 |
66 |
67 |
68 |
71 | config->get('msconf_sellers_slug') . '/';
74 | }
75 | ]]>
76 |
77 |
78 |
79 | row['keyword'];
81 | ]]>
82 | config->get('msconf_sellers_slug') . '/' . $query->row['keyword'];
85 | }
86 | else if ($data['route'] == 'seller/catalog-seller/products') {
87 | $url .= '/' . $this->config->get('msconf_sellers_slug') . '/' . $query->row['keyword'] . '/products/';
88 | }
89 | else {
90 | $url .= '/' . $query->row['keyword'];
91 | }
92 | ]]>
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------