altynjuldyz Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 Пробовал многое. Opencart version 2.3.0.2. Пробовал посмотреть файлы language там на русском как положено но все равно отображаются кнопки по другому. скину исходники catalog/view/theme/default/template/checkout/cart.tpl <?php echo $header; ?> <div class="container"> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } ?> </ul> <?php if ($attention) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $attention; ?> <button type="button" class="close" data-dismiss="alert">×</button> </div> <?php } ?> <?php if ($success) { ?> <div class="alert alert-success"><i class="fa fa-check-circle"></i> <?php echo $success; ?> <button type="button" class="close" data-dismiss="alert">×</button> </div> <?php } ?> <?php if ($error_warning) { ?> <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_warning; ?> <button type="button" class="close" data-dismiss="alert">×</button> </div> <?php } ?> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-9'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <h1><?php echo $heading_title; ?> <?php if ($weight) { ?> (<?php echo $weight; ?>) <?php } ?> </h1> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data"> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <td class="text-center"><?php echo $column_image; ?></td> <td class="text-left"><?php echo $column_name; ?></td> <td class="text-left"><?php echo $column_model; ?></td> <td class="text-left"><?php echo $column_quantity; ?></td> <td class="text-right"><?php echo $column_price; ?></td> <td class="text-right"><?php echo $column_total; ?></td> </tr> </thead> <tbody> <?php foreach ($products as $product) { ?> <tr> <td class="text-center"><?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-thumbnail" /></a> <?php } ?></td> <td class="text-left"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a> <?php if (!$product['stock']) { ?> <span class="text-danger">***</span> <?php } ?> <?php if ($product['option']) { ?> <?php foreach ($product['option'] as $option) { ?> <br /> <small><?php echo $option['name']; ?>: <?php echo $option['value']; ?></small> <?php } ?> <?php } ?> <?php if ($product['reward']) { ?> <br /> <small><?php echo $product['reward']; ?></small> <?php } ?> <?php if ($product['recurring']) { ?> <br /> <span class="label label-info"><?php echo $text_recurring_item; ?></span> <small><?php echo $product['recurring']; ?></small> <?php } ?></td> <td class="text-left"><?php echo $product['model']; ?></td> <td class="text-left"><div class="input-group btn-block" style="max-width: 200px;"> <input type="text" name="quantity[<?php echo $product['cart_id']; ?>]" value="<?php echo $product['quantity']; ?>" size="1" class="form-control" /> <span class="input-group-btn"> <button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger" onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i class="fa fa-times-circle"></i></button> </span></div></td> <td class="text-right"><?php echo $product['price']; ?></td> <td class="text-right"><?php echo $product['total']; ?></td> </tr> <?php } ?> <?php foreach ($vouchers as $voucher) { ?> <tr> <td></td> <td class="text-left"><?php echo $voucher['description']; ?></td> <td class="text-left"></td> <td class="text-left"><div class="input-group btn-block" style="max-width: 200px;"> <input type="text" name="" value="1" size="1" disabled="disabled" class="form-control" /> <span class="input-group-btn"> <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger" onclick="voucher.remove('<?php echo $voucher['key']; ?>');"><i class="fa fa-times-circle"></i></button> </span></div></td> <td class="text-right"><?php echo $voucher['amount']; ?></td> <td class="text-right"><?php echo $voucher['amount']; ?></td> </tr> <?php } ?> </tbody> </table> </div> </form> <?php if ($modules) { ?> <h2><?php echo $text_next; ?></h2> <p><?php echo $text_next_choice; ?></p> <div class="panel-group" id="accordion"> <?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php } ?> </div> <?php } ?> <br /> <div class="row"> <div class="col-sm-4 col-sm-offset-8"> <table class="table table-bordered"> <?php foreach ($totals as $total) { ?> <tr> <td class="text-right"><strong><?php echo $total['title']; ?>:</strong></td> <td class="text-right"><?php echo $total['text']; ?></td> </tr> <?php } ?> </table> </div> </div> <div class="buttons clearfix"> <div class="pull-left"><a href="<?php echo $continue; ?>" class="btn btn-default"><?php echo $button_shopping; ?></a></div> <div class="pull-right"><a href="<?php echo $checkout; ?>" class="btn btn-primary"><?php echo $button_checkout; ?></a></div> </div> <?php echo $content_bottom; ?></div> <?php echo $column_right; ?></div> </div> <?php echo $footer; ?> вот файл language по пути /catalog/language/en-gb/checkout/cart.php <?php // Heading $_['heading_title'] = 'Корзина покупок'; // Text $_['text_success'] = '<a href="%s">%s</a> добавлен <a href="%s">в корзину покупок</a>!'; $_['text_remove'] = 'Корзина покупок изменена!'; $_['text_login'] = 'Необходимо <a href="%s">авторизироваться</a> или <a href="%s">создать учетную запись</a> для просмотра цен!'; $_['text_items'] = 'Товаров %s (%s)'; $_['text_points'] = 'Бонусные баллы: %s'; $_['text_next'] = 'Что бы вы хотели сделать дальше?'; $_['text_next_choice'] = 'Если у вас есть код купона на скидку или бонусные баллы, которые вы хотите использовать, выберите соответствующий пункт ниже. А также, Вы можете приблизительно узнать стоимость доставки в ваш регион.'; $_['text_empty'] = 'Корзина пуста!'; $_['text_day'] = 'день'; $_['text_week'] = 'неделю'; $_['text_semi_month'] = 'полмесяца'; $_['text_month'] = 'месяц'; $_['text_year'] = 'год'; $_['text_trial'] = 'Стоимость: %s; Периодичность: %s %s; Кол-во платежей: %s; Далее, '; $_['text_recurring'] = 'Стоимость: %s; Периодичность: %s %s'; $_['text_length'] = ' Кол-во платежей: %s'; $_['text_until_cancelled'] = 'до отмены'; $_['text_recurring_item'] = 'Периодические платежи'; $_['text_payment_recurring'] = 'Платежный профиль'; $_['btn btn-default'] = 'Получилось'; $_['text_trial_description'] = 'Стоимость: %s; Периодичность: %d %s; Кол-во платежей: %d; Далее, '; $_['text_payment_description'] = 'Стоимость: %s; Периодичность: %d %s; Кол-во платежей: %d'; $_['text_payment_until_canceled_description'] = 'Стоимость: %s; Периодичность: %d %s; Кол-во платежей: до отмены'; // Column $_['column_image'] = 'Изображение'; $_['column_name'] = 'Название'; $_['column_model'] = 'Модель'; $_['column_quantity'] = 'Количество'; $_['column_price'] = 'Цена за шт.'; $_['column_total'] = 'Всего'; // Error $_['error_stock'] = 'Товары отмеченные *** отсутствуют в нужном количестве или их нет на складе!'; $_['error_minimum'] = 'Минимальное количество для заказа товара %s составляет %s!'; $_['error_required'] = '%s обязательно!'; $_['error_product'] = 'В вашей корзине нет товаров!'; $_['error_recurring_required'] = 'Пожалуйста, выберите периодичность платежа!'; Надіслати Поділитися на інших сайтах More sharing options...
altynjuldyz Опубліковано: 22 грудня 2018 Автор Share Опубліковано: 22 грудня 2018 так же проверил файл language /catalog/language/en-gb/en-gb.php тоже на русском все <?php // Locale $_['code'] = 'en'; $_['direction'] = 'ltr'; $_['date_format_short'] = 'd.m.Y'; $_['date_format_long'] = 'l, d F Y'; $_['time_format'] = 'H:i:s'; $_['datetime_format'] = 'd/m/Y H:i:s'; $_['decimal_point'] = '.'; $_['thousand_point'] = ''; // Text $_['text_home'] = '<i class="fa fa-home"></i>'; $_['text_yes'] = 'Да'; $_['text_no'] = 'Нет'; $_['text_none'] = ' --- Не выбрано --- '; $_['text_select'] = ' --- Выберите --- '; $_['text_all_zones'] = 'Все зоны'; $_['text_pagination'] = 'Показано с %d по %d из %d (всего %d страниц)'; $_['text_loading'] = 'Загрузка...'; $_['text_no_results'] = 'Нет данных!'; $_['text_limit'] = 'Показать отзывы'; $_['text_quickview'] = 'Быстрый просмотр'; $_['text_new'] = 'Новый'; $_['text_sale'] = 'Распродажа'; $_['text_telephone'] = 'Наш телефоны: '; //tooltips $_['tooltip_wishlist'] = 'Лист желаний'; $_['tooltip_compare'] = 'Сравнить'; $_['tooltip_cart'] = 'Добавить корзину'; $_['tooltip_quickview'] = 'Быстрый просмотр'; // Buttons $_['button_address_add'] = 'Добавить адрес'; $_['button_back'] = 'Назад'; $_['button_continue'] = 'Продолжить'; $_['button_cart'] = 'Купить'; $_['button_cancel'] = 'Отмена'; $_['button_compare'] = 'В сравнение'; $_['button_wishlist'] = 'В закладки'; $_['button_checkout'] = 'Оформление заказа'; $_['button_confirm'] = 'Подтверждение заказа'; $_['button_coupon'] = 'Применение купона'; $_['button_delete'] = 'Удалить'; $_['button_download'] = 'Скачать'; $_['button_edit'] = 'Редактировать'; $_['button_filter'] = 'Поиск'; $_['button_new_address'] = 'Новый адрес'; $_['button_change_address'] = 'Изменить адрес'; $_['button_reviews'] = 'Отзывы'; $_['button_write'] = 'Написать отзыв'; $_['button_login'] = 'Войти'; $_['button_update'] = 'Обновить'; $_['button_remove'] = 'Удалить'; $_['button_reorder'] = 'Дополнительный заказ'; $_['button_return'] = 'Вернуть'; $_['button_shopping'] = 'Продолжить покупки'; $_['button_search'] = 'Поиск'; $_['button_shipping'] = 'Применить Доставку'; $_['button_submit'] = 'Применить'; $_['button_guest'] = 'Оформление заказа без регистрации'; $_['button_view'] = 'Просмотр'; $_['button_voucher'] = 'Применить подарочный сертификат'; $_['button_upload'] = 'Загрузить файл'; $_['button_reward'] = 'Применить бонусные баллы'; $_['button_quote'] = 'Узнать цены'; $_['button_list'] = 'Список'; $_['button_grid'] = 'Сетка'; $_['button_map'] = 'Посмотреть карту'; // Error $_['error_exception'] = 'Ошибка кода(%s): %s в %s на строке %s'; $_['error_upload_1'] = 'Предупреждение: Размер загружаемого файла превышает значение upload_max_filesize в php.ini!'; $_['error_upload_2'] = 'Предупреждение: Загруженный файл превышает MAX_FILE_SIZE значение, которая была указана в настройках!'; $_['error_upload_3'] = 'Предупреждение: Загруженные файлы были загружены лишь частично!'; $_['error_upload_4'] = 'Предупреждение: Нет файлов для загрузки!'; $_['error_upload_6'] = 'Предупреждение: Временная папка!'; $_['error_upload_7'] = 'Предупреждение: Ошибка записи!'; $_['error_upload_8'] = 'Предупреждение: Запрещено загружать файл с данным расширением!'; $_['error_upload_999'] = 'Предупреждение: Неизвестная ошибка!'; $_['error_curl'] = 'CURL: Ошибка кода(%s): %s'; Надіслати Поділитися на інших сайтах More sharing options...
anboza Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 3 часа назад, altynjuldyz сказал: /en-gb/ Это так должно быть, что папка английской локализации, а внутри, русская? или вы не там просто правите? Надіслати Поділитися на інших сайтах More sharing options... spectre Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 ну а в контроллере подключается это? Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 11 часов назад, altynjuldyz сказал: скину исходники catalog/view/theme/default/template/checkout/cart.tpl А на скрине шаблон. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:16, anboza сказал: Это так должно быть, что папка английской локализации, а внутри, русская? или вы не там просто правите? да папка английской локализации а внутри русская, по исходнику называется $button_shopping; $button_checkout; $_['button_checkout'] = 'Оформление заказа'; в файле локализации $_['button_shopping'] = 'Продолжить покупки'; в файле локализации на русском да возможно я не там исправляю поэтому создал тему для помощи два дня сидел искал в разных файлах результата ноль Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:43, spectre сказал: ну а в контроллере подключается это? как проверить в контроле есть подключение или нет, если честно новичок в этой области Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 22:47, Tom сказал: А на скрине шаблон. а где исходники по корзине именно по кнопкам и т.д.? может подскажите я их тоже скину Надіслати Поділитися на інших сайтах More sharing options... spectre Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 4 минуты назад, altynjuldyz сказал: как проверить в контроле есть подключение или нет, если честно новичок в этой области Если вы совсем в этом не разбираетесь вам проще заплатить 200 300 р тому кто разбирается и скажет в чем беда И я могу, лс Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот в контролере $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот листинг контролера catalog/controller/checkout/cart.php <?php class ControllerCheckoutCart extends Controller { public function index() { $this->load->language('checkout/cart'); $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'href' => $this->url->link('common/home'), 'text' => $this->language->get('text_home') ); $data['breadcrumbs'][] = array( 'href' => $this->url->link('checkout/cart'), 'text' => $this->language->get('heading_title') ); if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $data['heading_title'] = $this->language->get('heading_title'); $data['text_recurring_item'] = $this->language->get('text_recurring_item'); $data['text_next'] = $this->language->get('text_next'); $data['text_next_choice'] = $this->language->get('text_next_choice'); $data['column_image'] = $this->language->get('column_image'); $data['column_name'] = $this->language->get('column_name'); $data['column_model'] = $this->language->get('column_model'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) { $data['error_warning'] = $this->language->get('error_stock'); } elseif (isset($this->session->data['error'])) { $data['error_warning'] = $this->session->data['error']; unset($this->session->data['error']); } else { $data['error_warning'] = ''; } if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register')); } else { $data['attention'] = ''; } if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['action'] = $this->url->link('checkout/cart/edit', '', true); if ($this->config->get('config_cart_weight')) { $data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $data['weight'] = ''; } $this->load->model('tool/image'); $this->load->model('tool/upload'); $data['products'] = array(); $products = $this->cart->getProducts(); foreach ($products as $product) { $product_total = 0; foreach ($products as $product_2) { if ($product_2['product_id'] == $product['product_id']) { $product_total += $product_2['quantity']; } } if ($product['minimum'] > $product_total) { $data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']); } if ($product['image']) { $image = $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_cart_width'), $this->config->get($this->config->get('config_theme') . '_image_cart_height')); } else { $image = ''; } $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')); $price = $this->currency->format($unit_price, $this->session->data['currency']); $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']); } else { $price = false; $total = false; } $recurring = ''; if ($product['recurring']) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($product['recurring']['trial']) { $recurring = sprintf($this->language->get('text_trial_description'), $this->currency->format($this->tax->calculate($product['recurring']['trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['trial_cycle'], $frequencies[$product['recurring']['trial_frequency']], $product['recurring']['trial_duration']) . ' '; } if ($product['recurring']['duration']) { $recurring .= sprintf($this->language->get('text_payment_description'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } else { $recurring .= sprintf($this->language->get('text_payment_cancel'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } } $data['products'][] = array( 'cart_id' => $product['cart_id'], 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } // Gift Voucher $data['vouchers'] = array(); if (!empty($this->session->data['vouchers'])) { foreach ($this->session->data['vouchers'] as $key => $voucher) { $data['vouchers'][] = array( 'key' => $key, 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $this->session->data['currency']), 'remove' => $this->url->link('checkout/cart', 'remove=' . $key) ); } } // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $data['totals'] = array(); foreach ($totals as $total) { $data['totals'][] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $this->session->data['currency']) ); } $data['continue'] = $this->url->link('common/home'); $data['checkout'] = $this->url->link('checkout/checkout', '', true); $this->load->model('extension/extension'); $data['modules'] = array(); $files = glob(DIR_APPLICATION . '/controller/extension/total/*.php'); if ($files) { foreach ($files as $file) { $result = $this->load->controller('extension/total/' . basename($file, '.php')); if ($result) { $data['modules'][] = $result; } } } $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('checkout/cart', $data)); } else { $data['heading_title'] = $this->language->get('heading_title'); $data['text_error'] = $this->language->get('text_empty'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); unset($this->session->data['success']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } public function add() { $this->load->language('checkout/cart'); $json = array(); if (isset($this->request->post['product_id'])) { $product_id = (int)$this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = $product_info['minimum'] ? $product_info['minimum'] : 1; } if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']); foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } $recurrings = $this->model_catalog_product->getProfiles($product_info['product_id']); if ($recurrings) { $recurring_ids = array(); foreach ($recurrings as $recurring) { $recurring_ids[] = $recurring['recurring_id']; } if (!in_array($recurring_id, $recurring_ids)) { $json['error']['recurring'] = $this->language->get('error_recurring_required'); } } if (!$json) { $this->cart->add($this->request->post['product_id'], $quantity, $option, $recurring_id); $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); // Unset all shipping and payment methods unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } else { $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id'])); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function edit() { $this->load->language('checkout/cart'); $json = array(); // Update if (!empty($this->request->post['quantity'])) { foreach ($this->request->post['quantity'] as $key => $value) { $this->cart->update($key, $value); } $this->session->data['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); $this->response->redirect($this->url->link('checkout/cart')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function remove() { $this->load->language('checkout/cart'); $json = array(); // Remove if (isset($this->request->post['key'])) { $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); $json['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 Автор шаблона отказал своему покупателю в помощи? Надіслати Поділитися на інших сайтах More sharing options... Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Не получается переименовать кнопки в корзине Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
spectre Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 ну а в контроллере подключается это? Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 11 часов назад, altynjuldyz сказал: скину исходники catalog/view/theme/default/template/checkout/cart.tpl А на скрине шаблон. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:16, anboza сказал: Это так должно быть, что папка английской локализации, а внутри, русская? или вы не там просто правите? да папка английской локализации а внутри русская, по исходнику называется $button_shopping; $button_checkout; $_['button_checkout'] = 'Оформление заказа'; в файле локализации $_['button_shopping'] = 'Продолжить покупки'; в файле локализации на русском да возможно я не там исправляю поэтому создал тему для помощи два дня сидел искал в разных файлах результата ноль Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:43, spectre сказал: ну а в контроллере подключается это? как проверить в контроле есть подключение или нет, если честно новичок в этой области Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 22:47, Tom сказал: А на скрине шаблон. а где исходники по корзине именно по кнопкам и т.д.? может подскажите я их тоже скину Надіслати Поділитися на інших сайтах More sharing options... spectre Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 4 минуты назад, altynjuldyz сказал: как проверить в контроле есть подключение или нет, если честно новичок в этой области Если вы совсем в этом не разбираетесь вам проще заплатить 200 300 р тому кто разбирается и скажет в чем беда И я могу, лс Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот в контролере $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот листинг контролера catalog/controller/checkout/cart.php <?php class ControllerCheckoutCart extends Controller { public function index() { $this->load->language('checkout/cart'); $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'href' => $this->url->link('common/home'), 'text' => $this->language->get('text_home') ); $data['breadcrumbs'][] = array( 'href' => $this->url->link('checkout/cart'), 'text' => $this->language->get('heading_title') ); if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $data['heading_title'] = $this->language->get('heading_title'); $data['text_recurring_item'] = $this->language->get('text_recurring_item'); $data['text_next'] = $this->language->get('text_next'); $data['text_next_choice'] = $this->language->get('text_next_choice'); $data['column_image'] = $this->language->get('column_image'); $data['column_name'] = $this->language->get('column_name'); $data['column_model'] = $this->language->get('column_model'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) { $data['error_warning'] = $this->language->get('error_stock'); } elseif (isset($this->session->data['error'])) { $data['error_warning'] = $this->session->data['error']; unset($this->session->data['error']); } else { $data['error_warning'] = ''; } if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register')); } else { $data['attention'] = ''; } if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['action'] = $this->url->link('checkout/cart/edit', '', true); if ($this->config->get('config_cart_weight')) { $data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $data['weight'] = ''; } $this->load->model('tool/image'); $this->load->model('tool/upload'); $data['products'] = array(); $products = $this->cart->getProducts(); foreach ($products as $product) { $product_total = 0; foreach ($products as $product_2) { if ($product_2['product_id'] == $product['product_id']) { $product_total += $product_2['quantity']; } } if ($product['minimum'] > $product_total) { $data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']); } if ($product['image']) { $image = $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_cart_width'), $this->config->get($this->config->get('config_theme') . '_image_cart_height')); } else { $image = ''; } $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')); $price = $this->currency->format($unit_price, $this->session->data['currency']); $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']); } else { $price = false; $total = false; } $recurring = ''; if ($product['recurring']) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($product['recurring']['trial']) { $recurring = sprintf($this->language->get('text_trial_description'), $this->currency->format($this->tax->calculate($product['recurring']['trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['trial_cycle'], $frequencies[$product['recurring']['trial_frequency']], $product['recurring']['trial_duration']) . ' '; } if ($product['recurring']['duration']) { $recurring .= sprintf($this->language->get('text_payment_description'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } else { $recurring .= sprintf($this->language->get('text_payment_cancel'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } } $data['products'][] = array( 'cart_id' => $product['cart_id'], 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } // Gift Voucher $data['vouchers'] = array(); if (!empty($this->session->data['vouchers'])) { foreach ($this->session->data['vouchers'] as $key => $voucher) { $data['vouchers'][] = array( 'key' => $key, 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $this->session->data['currency']), 'remove' => $this->url->link('checkout/cart', 'remove=' . $key) ); } } // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $data['totals'] = array(); foreach ($totals as $total) { $data['totals'][] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $this->session->data['currency']) ); } $data['continue'] = $this->url->link('common/home'); $data['checkout'] = $this->url->link('checkout/checkout', '', true); $this->load->model('extension/extension'); $data['modules'] = array(); $files = glob(DIR_APPLICATION . '/controller/extension/total/*.php'); if ($files) { foreach ($files as $file) { $result = $this->load->controller('extension/total/' . basename($file, '.php')); if ($result) { $data['modules'][] = $result; } } } $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('checkout/cart', $data)); } else { $data['heading_title'] = $this->language->get('heading_title'); $data['text_error'] = $this->language->get('text_empty'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); unset($this->session->data['success']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } public function add() { $this->load->language('checkout/cart'); $json = array(); if (isset($this->request->post['product_id'])) { $product_id = (int)$this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = $product_info['minimum'] ? $product_info['minimum'] : 1; } if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']); foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } $recurrings = $this->model_catalog_product->getProfiles($product_info['product_id']); if ($recurrings) { $recurring_ids = array(); foreach ($recurrings as $recurring) { $recurring_ids[] = $recurring['recurring_id']; } if (!in_array($recurring_id, $recurring_ids)) { $json['error']['recurring'] = $this->language->get('error_recurring_required'); } } if (!$json) { $this->cart->add($this->request->post['product_id'], $quantity, $option, $recurring_id); $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); // Unset all shipping and payment methods unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } else { $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id'])); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function edit() { $this->load->language('checkout/cart'); $json = array(); // Update if (!empty($this->request->post['quantity'])) { foreach ($this->request->post['quantity'] as $key => $value) { $this->cart->update($key, $value); } $this->session->data['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); $this->response->redirect($this->url->link('checkout/cart')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function remove() { $this->load->language('checkout/cart'); $json = array(); // Remove if (isset($this->request->post['key'])) { $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); $json['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 Автор шаблона отказал своему покупателю в помощи? Надіслати Поділитися на інших сайтах More sharing options... Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Не получается переименовать кнопки в корзине Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Tom Опубліковано: 22 грудня 2018 Share Опубліковано: 22 грудня 2018 11 часов назад, altynjuldyz сказал: скину исходники catalog/view/theme/default/template/checkout/cart.tpl А на скрине шаблон. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:16, anboza сказал: Это так должно быть, что папка английской локализации, а внутри, русская? или вы не там просто правите? да папка английской локализации а внутри русская, по исходнику называется $button_shopping; $button_checkout; $_['button_checkout'] = 'Оформление заказа'; в файле локализации $_['button_shopping'] = 'Продолжить покупки'; в файле локализации на русском да возможно я не там исправляю поэтому создал тему для помощи два дня сидел искал в разных файлах результата ноль Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:43, spectre сказал: ну а в контроллере подключается это? как проверить в контроле есть подключение или нет, если честно новичок в этой области Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 22:47, Tom сказал: А на скрине шаблон. а где исходники по корзине именно по кнопкам и т.д.? может подскажите я их тоже скину Надіслати Поділитися на інших сайтах More sharing options... spectre Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 4 минуты назад, altynjuldyz сказал: как проверить в контроле есть подключение или нет, если честно новичок в этой области Если вы совсем в этом не разбираетесь вам проще заплатить 200 300 р тому кто разбирается и скажет в чем беда И я могу, лс Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот в контролере $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот листинг контролера catalog/controller/checkout/cart.php <?php class ControllerCheckoutCart extends Controller { public function index() { $this->load->language('checkout/cart'); $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'href' => $this->url->link('common/home'), 'text' => $this->language->get('text_home') ); $data['breadcrumbs'][] = array( 'href' => $this->url->link('checkout/cart'), 'text' => $this->language->get('heading_title') ); if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $data['heading_title'] = $this->language->get('heading_title'); $data['text_recurring_item'] = $this->language->get('text_recurring_item'); $data['text_next'] = $this->language->get('text_next'); $data['text_next_choice'] = $this->language->get('text_next_choice'); $data['column_image'] = $this->language->get('column_image'); $data['column_name'] = $this->language->get('column_name'); $data['column_model'] = $this->language->get('column_model'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) { $data['error_warning'] = $this->language->get('error_stock'); } elseif (isset($this->session->data['error'])) { $data['error_warning'] = $this->session->data['error']; unset($this->session->data['error']); } else { $data['error_warning'] = ''; } if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register')); } else { $data['attention'] = ''; } if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['action'] = $this->url->link('checkout/cart/edit', '', true); if ($this->config->get('config_cart_weight')) { $data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $data['weight'] = ''; } $this->load->model('tool/image'); $this->load->model('tool/upload'); $data['products'] = array(); $products = $this->cart->getProducts(); foreach ($products as $product) { $product_total = 0; foreach ($products as $product_2) { if ($product_2['product_id'] == $product['product_id']) { $product_total += $product_2['quantity']; } } if ($product['minimum'] > $product_total) { $data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']); } if ($product['image']) { $image = $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_cart_width'), $this->config->get($this->config->get('config_theme') . '_image_cart_height')); } else { $image = ''; } $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')); $price = $this->currency->format($unit_price, $this->session->data['currency']); $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']); } else { $price = false; $total = false; } $recurring = ''; if ($product['recurring']) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($product['recurring']['trial']) { $recurring = sprintf($this->language->get('text_trial_description'), $this->currency->format($this->tax->calculate($product['recurring']['trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['trial_cycle'], $frequencies[$product['recurring']['trial_frequency']], $product['recurring']['trial_duration']) . ' '; } if ($product['recurring']['duration']) { $recurring .= sprintf($this->language->get('text_payment_description'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } else { $recurring .= sprintf($this->language->get('text_payment_cancel'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } } $data['products'][] = array( 'cart_id' => $product['cart_id'], 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } // Gift Voucher $data['vouchers'] = array(); if (!empty($this->session->data['vouchers'])) { foreach ($this->session->data['vouchers'] as $key => $voucher) { $data['vouchers'][] = array( 'key' => $key, 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $this->session->data['currency']), 'remove' => $this->url->link('checkout/cart', 'remove=' . $key) ); } } // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $data['totals'] = array(); foreach ($totals as $total) { $data['totals'][] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $this->session->data['currency']) ); } $data['continue'] = $this->url->link('common/home'); $data['checkout'] = $this->url->link('checkout/checkout', '', true); $this->load->model('extension/extension'); $data['modules'] = array(); $files = glob(DIR_APPLICATION . '/controller/extension/total/*.php'); if ($files) { foreach ($files as $file) { $result = $this->load->controller('extension/total/' . basename($file, '.php')); if ($result) { $data['modules'][] = $result; } } } $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('checkout/cart', $data)); } else { $data['heading_title'] = $this->language->get('heading_title'); $data['text_error'] = $this->language->get('text_empty'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); unset($this->session->data['success']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } public function add() { $this->load->language('checkout/cart'); $json = array(); if (isset($this->request->post['product_id'])) { $product_id = (int)$this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = $product_info['minimum'] ? $product_info['minimum'] : 1; } if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']); foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } $recurrings = $this->model_catalog_product->getProfiles($product_info['product_id']); if ($recurrings) { $recurring_ids = array(); foreach ($recurrings as $recurring) { $recurring_ids[] = $recurring['recurring_id']; } if (!in_array($recurring_id, $recurring_ids)) { $json['error']['recurring'] = $this->language->get('error_recurring_required'); } } if (!$json) { $this->cart->add($this->request->post['product_id'], $quantity, $option, $recurring_id); $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); // Unset all shipping and payment methods unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } else { $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id'])); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function edit() { $this->load->language('checkout/cart'); $json = array(); // Update if (!empty($this->request->post['quantity'])) { foreach ($this->request->post['quantity'] as $key => $value) { $this->cart->update($key, $value); } $this->session->data['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); $this->response->redirect($this->url->link('checkout/cart')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function remove() { $this->load->language('checkout/cart'); $json = array(); // Remove if (isset($this->request->post['key'])) { $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); $json['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 Автор шаблона отказал своему покупателю в помощи? Надіслати Поділитися на інших сайтах More sharing options... Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Не получается переименовать кнопки в корзине Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:16, anboza сказал: Это так должно быть, что папка английской локализации, а внутри, русская? или вы не там просто правите? да папка английской локализации а внутри русская, по исходнику называется $button_shopping; $button_checkout; $_['button_checkout'] = 'Оформление заказа'; в файле локализации $_['button_shopping'] = 'Продолжить покупки'; в файле локализации на русском да возможно я не там исправляю поэтому создал тему для помощи два дня сидел искал в разных файлах результата ноль Надіслати Поділитися на інших сайтах More sharing options...
altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 14:43, spectre сказал: ну а в контроллере подключается это? как проверить в контроле есть подключение или нет, если честно новичок в этой области Надіслати Поділитися на інших сайтах More sharing options...
altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 В 22.12.2018 в 22:47, Tom сказал: А на скрине шаблон. а где исходники по корзине именно по кнопкам и т.д.? может подскажите я их тоже скину Надіслати Поділитися на інших сайтах More sharing options...
spectre Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 4 минуты назад, altynjuldyz сказал: как проверить в контроле есть подключение или нет, если честно новичок в этой области Если вы совсем в этом не разбираетесь вам проще заплатить 200 300 р тому кто разбирается и скажет в чем беда И я могу, лс Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот в контролере $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот листинг контролера catalog/controller/checkout/cart.php <?php class ControllerCheckoutCart extends Controller { public function index() { $this->load->language('checkout/cart'); $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'href' => $this->url->link('common/home'), 'text' => $this->language->get('text_home') ); $data['breadcrumbs'][] = array( 'href' => $this->url->link('checkout/cart'), 'text' => $this->language->get('heading_title') ); if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $data['heading_title'] = $this->language->get('heading_title'); $data['text_recurring_item'] = $this->language->get('text_recurring_item'); $data['text_next'] = $this->language->get('text_next'); $data['text_next_choice'] = $this->language->get('text_next_choice'); $data['column_image'] = $this->language->get('column_image'); $data['column_name'] = $this->language->get('column_name'); $data['column_model'] = $this->language->get('column_model'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) { $data['error_warning'] = $this->language->get('error_stock'); } elseif (isset($this->session->data['error'])) { $data['error_warning'] = $this->session->data['error']; unset($this->session->data['error']); } else { $data['error_warning'] = ''; } if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register')); } else { $data['attention'] = ''; } if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['action'] = $this->url->link('checkout/cart/edit', '', true); if ($this->config->get('config_cart_weight')) { $data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $data['weight'] = ''; } $this->load->model('tool/image'); $this->load->model('tool/upload'); $data['products'] = array(); $products = $this->cart->getProducts(); foreach ($products as $product) { $product_total = 0; foreach ($products as $product_2) { if ($product_2['product_id'] == $product['product_id']) { $product_total += $product_2['quantity']; } } if ($product['minimum'] > $product_total) { $data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']); } if ($product['image']) { $image = $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_cart_width'), $this->config->get($this->config->get('config_theme') . '_image_cart_height')); } else { $image = ''; } $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')); $price = $this->currency->format($unit_price, $this->session->data['currency']); $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']); } else { $price = false; $total = false; } $recurring = ''; if ($product['recurring']) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($product['recurring']['trial']) { $recurring = sprintf($this->language->get('text_trial_description'), $this->currency->format($this->tax->calculate($product['recurring']['trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['trial_cycle'], $frequencies[$product['recurring']['trial_frequency']], $product['recurring']['trial_duration']) . ' '; } if ($product['recurring']['duration']) { $recurring .= sprintf($this->language->get('text_payment_description'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } else { $recurring .= sprintf($this->language->get('text_payment_cancel'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } } $data['products'][] = array( 'cart_id' => $product['cart_id'], 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } // Gift Voucher $data['vouchers'] = array(); if (!empty($this->session->data['vouchers'])) { foreach ($this->session->data['vouchers'] as $key => $voucher) { $data['vouchers'][] = array( 'key' => $key, 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $this->session->data['currency']), 'remove' => $this->url->link('checkout/cart', 'remove=' . $key) ); } } // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $data['totals'] = array(); foreach ($totals as $total) { $data['totals'][] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $this->session->data['currency']) ); } $data['continue'] = $this->url->link('common/home'); $data['checkout'] = $this->url->link('checkout/checkout', '', true); $this->load->model('extension/extension'); $data['modules'] = array(); $files = glob(DIR_APPLICATION . '/controller/extension/total/*.php'); if ($files) { foreach ($files as $file) { $result = $this->load->controller('extension/total/' . basename($file, '.php')); if ($result) { $data['modules'][] = $result; } } } $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('checkout/cart', $data)); } else { $data['heading_title'] = $this->language->get('heading_title'); $data['text_error'] = $this->language->get('text_empty'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); unset($this->session->data['success']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } public function add() { $this->load->language('checkout/cart'); $json = array(); if (isset($this->request->post['product_id'])) { $product_id = (int)$this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = $product_info['minimum'] ? $product_info['minimum'] : 1; } if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']); foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } $recurrings = $this->model_catalog_product->getProfiles($product_info['product_id']); if ($recurrings) { $recurring_ids = array(); foreach ($recurrings as $recurring) { $recurring_ids[] = $recurring['recurring_id']; } if (!in_array($recurring_id, $recurring_ids)) { $json['error']['recurring'] = $this->language->get('error_recurring_required'); } } if (!$json) { $this->cart->add($this->request->post['product_id'], $quantity, $option, $recurring_id); $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); // Unset all shipping and payment methods unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } else { $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id'])); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function edit() { $this->load->language('checkout/cart'); $json = array(); // Update if (!empty($this->request->post['quantity'])) { foreach ($this->request->post['quantity'] as $key => $value) { $this->cart->update($key, $value); } $this->session->data['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); $this->response->redirect($this->url->link('checkout/cart')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function remove() { $this->load->language('checkout/cart'); $json = array(); // Remove if (isset($this->request->post['key'])) { $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); $json['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 Автор шаблона отказал своему покупателю в помощи? Надіслати Поділитися на інших сайтах More sharing options... Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Не получается переименовать кнопки в корзине
altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот в контролере $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); Надіслати Поділитися на інших сайтах More sharing options...
altynjuldyz Опубліковано: 24 грудня 2018 Автор Share Опубліковано: 24 грудня 2018 вот листинг контролера catalog/controller/checkout/cart.php <?php class ControllerCheckoutCart extends Controller { public function index() { $this->load->language('checkout/cart'); $this->document->setTitle($this->language->get('heading_title')); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'href' => $this->url->link('common/home'), 'text' => $this->language->get('text_home') ); $data['breadcrumbs'][] = array( 'href' => $this->url->link('checkout/cart'), 'text' => $this->language->get('heading_title') ); if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $data['heading_title'] = $this->language->get('heading_title'); $data['text_recurring_item'] = $this->language->get('text_recurring_item'); $data['text_next'] = $this->language->get('text_next'); $data['text_next_choice'] = $this->language->get('text_next_choice'); $data['column_image'] = $this->language->get('column_image'); $data['column_name'] = $this->language->get('column_name'); $data['column_model'] = $this->language->get('column_model'); $data['column_quantity'] = $this->language->get('column_quantity'); $data['column_price'] = $this->language->get('column_price'); $data['column_total'] = $this->language->get('column_total'); $data['button_update'] = $this->language->get('button_update'); $data['button_remove'] = $this->language->get('button_remove'); $data['button_shopping'] = $this->language->get('button_shopping'); $data['button_checkout'] = $this->language->get('button_checkout'); if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) { $data['error_warning'] = $this->language->get('error_stock'); } elseif (isset($this->session->data['error'])) { $data['error_warning'] = $this->session->data['error']; unset($this->session->data['error']); } else { $data['error_warning'] = ''; } if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register')); } else { $data['attention'] = ''; } if (isset($this->session->data['success'])) { $data['success'] = $this->session->data['success']; unset($this->session->data['success']); } else { $data['success'] = ''; } $data['action'] = $this->url->link('checkout/cart/edit', '', true); if ($this->config->get('config_cart_weight')) { $data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point')); } else { $data['weight'] = ''; } $this->load->model('tool/image'); $this->load->model('tool/upload'); $data['products'] = array(); $products = $this->cart->getProducts(); foreach ($products as $product) { $product_total = 0; foreach ($products as $product_2) { if ($product_2['product_id'] == $product['product_id']) { $product_total += $product_2['quantity']; } } if ($product['minimum'] > $product_total) { $data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']); } if ($product['image']) { $image = $this->model_tool_image->resize($product['image'], $this->config->get($this->config->get('config_theme') . '_image_cart_width'), $this->config->get($this->config->get('config_theme') . '_image_cart_height')); } else { $image = ''; } $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') { $value = $option['value']; } else { $upload_info = $this->model_tool_upload->getUploadByCode($option['value']); if ($upload_info) { $value = $upload_info['name']; } else { $value = ''; } } $option_data[] = array( 'name' => $option['name'], 'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value) ); } // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')); $price = $this->currency->format($unit_price, $this->session->data['currency']); $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']); } else { $price = false; $total = false; } $recurring = ''; if ($product['recurring']) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($product['recurring']['trial']) { $recurring = sprintf($this->language->get('text_trial_description'), $this->currency->format($this->tax->calculate($product['recurring']['trial_price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['trial_cycle'], $frequencies[$product['recurring']['trial_frequency']], $product['recurring']['trial_duration']) . ' '; } if ($product['recurring']['duration']) { $recurring .= sprintf($this->language->get('text_payment_description'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } else { $recurring .= sprintf($this->language->get('text_payment_cancel'), $this->currency->format($this->tax->calculate($product['recurring']['price'] * $product['quantity'], $product['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), $product['recurring']['cycle'], $frequencies[$product['recurring']['frequency']], $product['recurring']['duration']); } } $data['products'][] = array( 'cart_id' => $product['cart_id'], 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } // Gift Voucher $data['vouchers'] = array(); if (!empty($this->session->data['vouchers'])) { foreach ($this->session->data['vouchers'] as $key => $voucher) { $data['vouchers'][] = array( 'key' => $key, 'description' => $voucher['description'], 'amount' => $this->currency->format($voucher['amount'], $this->session->data['currency']), 'remove' => $this->url->link('checkout/cart', 'remove=' . $key) ); } } // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $data['totals'] = array(); foreach ($totals as $total) { $data['totals'][] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $this->session->data['currency']) ); } $data['continue'] = $this->url->link('common/home'); $data['checkout'] = $this->url->link('checkout/checkout', '', true); $this->load->model('extension/extension'); $data['modules'] = array(); $files = glob(DIR_APPLICATION . '/controller/extension/total/*.php'); if ($files) { foreach ($files as $file) { $result = $this->load->controller('extension/total/' . basename($file, '.php')); if ($result) { $data['modules'][] = $result; } } } $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('checkout/cart', $data)); } else { $data['heading_title'] = $this->language->get('heading_title'); $data['text_error'] = $this->language->get('text_empty'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); unset($this->session->data['success']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } public function add() { $this->load->language('checkout/cart'); $json = array(); if (isset($this->request->post['product_id'])) { $product_id = (int)$this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (isset($this->request->post['quantity']) && ((int)$this->request->post['quantity'] >= $product_info['minimum'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = $product_info['minimum'] ? $product_info['minimum'] : 1; } if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']); foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } $recurrings = $this->model_catalog_product->getProfiles($product_info['product_id']); if ($recurrings) { $recurring_ids = array(); foreach ($recurrings as $recurring) { $recurring_ids[] = $recurring['recurring_id']; } if (!in_array($recurring_id, $recurring_ids)) { $json['error']['recurring'] = $this->language->get('error_recurring_required'); } } if (!$json) { $this->cart->add($this->request->post['product_id'], $quantity, $option, $recurring_id); $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); // Unset all shipping and payment methods unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } else { $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id'])); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function edit() { $this->load->language('checkout/cart'); $json = array(); // Update if (!empty($this->request->post['quantity'])) { foreach ($this->request->post['quantity'] as $key => $value) { $this->cart->update($key, $value); } $this->session->data['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); $this->response->redirect($this->url->link('checkout/cart')); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function remove() { $this->load->language('checkout/cart'); $json = array(); // Remove if (isset($this->request->post['key'])) { $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); $json['success'] = $this->language->get('text_remove'); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['reward']); // Totals $this->load->model('extension/extension'); $totals = array(); $taxes = $this->cart->getTaxes(); $total = 0; // Because __call can not keep var references so we put them into an array. $total_data = array( 'totals' => &$totals, 'taxes' => &$taxes, 'total' => &$total ); // Display prices if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $sort_order = array(); $results = $this->model_extension_extension->getExtensions('total'); foreach ($results as $key => $value) { $sort_order[$key] = $this->config->get($value['code'] . '_sort_order'); } array_multisort($sort_order, SORT_ASC, $results); foreach ($results as $result) { if ($this->config->get($result['code'] . '_status')) { $this->load->model('extension/total/' . $result['code']); // We have to put the totals in an array so that they pass by reference. $this->{'model_extension_total_' . $result['code']}->getTotal($total_data); } } $sort_order = array(); foreach ($totals as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $totals); } $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency'])); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Надіслати Поділитися на інших сайтах More sharing options...
Tom Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 Автор шаблона отказал своему покупателю в помощи? Надіслати Поділитися на інших сайтах More sharing options... Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options... altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Bunz Опубліковано: 24 грудня 2018 Share Опубліковано: 24 грудня 2018 В system/storage могут быть файлы, если это модификации какие-то. Надіслати Поділитися на інших сайтах More sharing options...
altynjuldyz Опубліковано: 27 грудня 2018 Автор Share Опубліковано: 27 грудня 2018 спасибо за хороший форум где все зарабатывают и не помогают друг другу за бесплатно, видимо форумы для программистов уже не те! всего два раза обратился за помощью в форумы именно на этом сайте и не получил ответа. Проблему решил сам в итоге потратил много времени как я и говорил я новичок в этой теме. Сам занимаюсь android разработкой но иногда приходится заниматься тем где имею мало знаний 1 Надіслати Поділитися на інших сайтах More sharing options...
Tom Опубліковано: 27 грудня 2018 Share Опубліковано: 27 грудня 2018 У вас есть проблема, которая запросто решается обращением к автору используемого шаблона, на то он и автор , что лучше всех знает, куда именно он их запихал. Так как это могут быть собственные языковые файлы шаблона. Вы не пишите автору, видимо потому что есть причина, самая частая это элементарно "а я не покупал,.....". Второй важный момент " помощь", который каждый понимает по разному. Одно дело , когда у вас плохое зрение и вы просите прочесть что написано в бланке , мелким для вас почерком. Ну и совершенно иное, когда вам нужно вырыть на даче яму под бассейн, но вы не знаете как это делается и поэтому с радостью доверите в качестве помощи, что бы это кто то сделал за вас. Форум он площадка в основном для получения знаний , но совершенно не для того что бы ваша головная боль, за которую вам оплатят заказчики или же станет вашим орудием заработка, стало поводом сделать это за вас здесь. Да и те сообщения , что вам пишут форумчане , явно говорят что помочь вам стараются на том уровне на котором это возможно в вашей ситуации. Пересмотрите свои взгляды, это поможет вам не создавать в голове образ алчного хищного сообщества, которое не является таковым, но у всего есть свои границы. Одно дело "помоги", другое "сделай за меня" иначе обижусь. 2 Надіслати Поділитися на інших сайтах More sharing options... 5 р Tom locked this topic Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0
Recommended Posts