-
Posts
30 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by djnick
-
Модуль Автоматическая обработка прайс-листов. [Поддержка]
djnick replied to usergio's topic in Модули обмена данными
Доброго дня. Несколько вопросов появилось по модулю: 1. Структура YML Файла: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> <yml_catalog date="2021-03-09 03:54"> <shop> <name></name> <company>ООО ""</company> <url>effe</url> <currencies> <currency id="" rate="1" /> </currencies> <categories> <category id="1">Люстра</category> </categories> <offers> <offer id="7464" available="false"> <name>Подвесной светильник MOD135PL-08BS</name> <vendor>Maytoni</vendor> <vendorCode>MOD135PL-08BS</vendorCode> <param name="Гарантия (лет)">2</param> <outlets> <outlet id="1" instock="0" /> </outlets> </offer> </offers> </shop> </yml_catalog> Я не совсем понял, мне, чтобы обновить товары надо выбирать действие всегда "XML/YML лесенкой" ? 2. Категории модуль создал (действием "создать категории"), правда пришлось руками перенести в общую родительскую, не нашел, где указать родительскую категорию для поставщика. 3. Иногда в файле встречается такое: <param name="Коллекция">Outdoor</param> <param name="Серия">Base</param> <param name="Технологии" /> <param name="Типы помещении" /> <param name="Код ТН ВЭД">9405990008</param> То есть тэг <param закрывается внутри себя, в виду отсутствия значения, похоже это где-т о ломает логику модуля. 4. Самое главное.... Директивы для php указал, которые рекомендованы в файле, но всё равно таймаут 504 и при обновлении страницы процесс начинается всегда заново. импортирует 2 первых товара, висит и всё. Всё это касается одного и того-же поставщика. Можно ли средствами модуля читать этот файл, без предварительной "прогонки" в блокнотах, так как хотелось бы обновлять с фида по крону и какие настройки еще в PHP указать?- 49,502 replies
-
- поставщики импорт
- наполнение им
- (and 19 more)
-
1. Стандартный функционал опенкарта не подходит (импорт/экспорт БД) ? 2. PhpMyadmin на хостинге? (в расширенных настройках экспорта можно выбрать вроде деление по строкам) 3. Бэкап базы на хостинге ?
-
УРЛ для опций Ocstore- Seo PRO
djnick replied to amir4ik's topic in Opencart 2.x: Setting and optimization
Я делал вариант реализации, при котором пришлось расклонировать товары, товары, согласно опциям и перелинковать между собой модулем: Можно и без клонирования сделать, в контроллере ловить POST-ом опции и обрабатывать шаблоном... Но тут еще и SEO-pro сам править тогда придется... С клонированием и перелинковкой, с точки зрения SEO лучше. -
[Поддержка] Антиспам формы обратной связи
djnick replied to shoputils's topic in Инструменты, утилиты
Доброго дня! Пытался прикрутить модуль к всплывающей форме заказа обратного звонка, прописал в контроллере о аналогии с ocmod файлом, добавил подклчение контроллера и модели и вызов функции валидации модуля... В логах записывает сообщение и спам пропускает, там идет передача методом POST в модуле... Возможно ли прикрутить?)- 117 replies
-
- антиспам
- спам в контактах
- (and 6 more)
-
В гите пришлось список версий вызвать и взять оттуда 1.4.7, установить её... Тогда в oc_setting залезли нужные строки с настройками модуля. Почему то 1.5.0 и 1.5.1 отказывается добавлять в настройки строки.
- 156 replies
-
- яндекс.касса
- яндекс.маркет
-
(and 1 more)
Tagged with:
-
Модуль Y.CMS 2.0. В чем проблема?
djnick replied to Ivan887's topic in Интернет-магазины и электронная коммерция
В гите пришлось список версий вызвать и взять оттуда 1.4.7, установить её... Тогда в oc_setting залезли нужные строки с настройками модуля -
Доброго времени суток. Сможете подсказать? Стоит мегафильтр про плюс и автоскролл товаров. Если выбрать какой-либо из фильтров, то автокролл перестаёт работать. Если обновить страницу, то начинает снова работать. ДВа вопроса, можно ли как-то отследить событие обновления товаров после срабатывания фильтра? Чтобы автоскролл начал отслеживать скроллинг и подгружать? (я пробовал, отследить изменения дива с товарами получился бесонечный цикл, MFP бесконечно подгружал одно и то же). Или сделать так, чтобы фильтр срабатывал без AJAX обновления товаров, то есть при нажатии на фильтр страничка обновлялось... Может это предусмотрено стандартным функционалом...
- 1,403 replies
-
- mega filter plus
- filter plus
- (and 8 more)
-
Если проект начнет приносить прибыль, то не проблема купить файловый хостинг на террабайт)) Если в основном контроллере добавить нужные функции прописать передачу данных помимо представления заодно и скрипту в 1м варианте ( скрипт подменяет заголовок картинкой) то по идее про прямом обращении это должно вызывать ошибку...
-
Не делаю ресайз... Не кэширую картинки.. Места на хостинге мало, сайт в тестовом режиме, около 500000 позиций.
-
Не отображаются модули в разделе дополнения админки
djnick replied to tsogoevs's topic in Opencart 2.x: Sandbox
Было у меня такое в 2.3 , когда установил криво сконвертированный модуль от предыдущей версии. Отображаться стал только он... Помогает удаление всех файлов модуля, либо доработка его. -
ДОброго времени суток всем. Кто может сказать, как скрыть адреса картинок реальные в опенкарт. Есть каталог, в нём картинки грузятся иногда с других серверов (ничего криминального, для экономии места на хостинге картинки не загружаются на хост) Хлтелось бы, чтобы юзеры не видели их реальный адрес... Ocstore 2.3 Костыль воткнул: В представлении: <img src="imageload.php?product_id=<?php echo $product_id; ?>"> В imageload.php <?php $product_id=$_GET['product_id']; $product_image_id=$_GET['product_image_id']; function getProductImage($product_id) { $mysqli = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); $image=$mysqli->query("SELECT image FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "'" )->fetch_object()->image; $mysqli->close(); return $image; } function getProductImages($product_image_id) { $mysqli = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); $images=$mysqli->query("SELECT image FROM " . DB_PREFIX . "product_image WHERE product_image_id = '" . (int)$product_image_id . "' ORDER BY sort_order ASC" ); //$imagess=$images->fetch_array(); $mysqli->close(); return $images; } //$result = mysqli_query( $link, "SELECT image FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "'" ); //$urlImg = $mysqli->query("SELECT image FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "'"); //$urlImg = $result->row['product_id']; //$urlImg = getProductImages($product_id); //print $urlImg; //output value //$row = $results->fetch_array() //echo $urlImg; // print_r ($result); //"SELECT image FROM " . DB_PREFIX . "product_image WHERE product_image_id = '" . (int)$product_image_id . "' ORDER BY sort_order ASC" function my_url_encode($s){ $s= strtr ($s, array (" "=> "%20", "а"=>"%D0%B0", "А"=>"%D0%90","б"=>"%D0%B1", "Б"=>"%D0%91", "в"=>"%D0%B2", "В"=>"%D0%92", "г"=>"%D0%B3", "Г"=>"%D0%93", "д"=>"%D0%B4", "Д"=>"%D0%94", "е"=>"%D0%B5", "Е"=>"%D0%95", "ё"=>"%D1%91", "Ё"=>"%D0%81", "ж"=>"%D0%B6", "Ж"=>"%D0%96", "з"=>"%D0%B7", "З"=>"%D0%97", "и"=>"%D0%B8", "И"=>"%D0%98", "й"=>"%D0%B9", "Й"=>"%D0%99", "к"=>"%D0%BA", "К"=>"%D0%9A", "л"=>"%D0%BB", "Л"=>"%D0%9B", "м"=>"%D0%BC", "М"=>"%D0%9C", "н"=>"%D0%BD", "Н"=>"%D0%9D", "о"=>"%D0%BE", "О"=>"%D0%9E", "п"=>"%D0%BF", "П"=>"%D0%9F", "р"=>"%D1%80", "Р"=>"%D0%A0", "с"=>"%D1%81", "С"=>"%D0%A1", "т"=>"%D1%82", "Т"=>"%D0%A2", "у"=>"%D1%83", "У"=>"%D0%A3", "ф"=>"%D1%84", "Ф"=>"%D0%A4", "х"=>"%D1%85", "Х"=>"%D0%A5", "ц"=>"%D1%86", "Ц"=>"%D0%A6", "ч"=>"%D1%87", "Ч"=>"%D0%A7", "ш"=>"%D1%88", "Ш"=>"%D0%A8", "щ"=>"%D1%89", "Щ"=>"%D0%A9", "ъ"=>"%D1%8A", "Ъ"=>"%D0%AA", "ы"=>"%D1%8B", "Ы"=>"%D0%AB", "ь"=>"%D1%8C", "Ь"=>"%D0%AC", "э"=>"%D1%8D", "Э"=>"%D0%AD", "ю"=>"%D1%8E", "Ю"=>"%D0%AE", "я"=>"%D1%8F", "Я"=>"%D0%AF")); return $s; } if (isset($_GET['product_image_id'])){ $urlImgs=getProductImages($product_image_id); //print_r($urlImgs->fetch_array()); $imgrow = $urlImgs->fetch_array(); header('Location: '.$imgrow["image"]); } else { $urlImg = getProductImage($product_id); if ($urlImg == null) { $urlImg="/image/placeholder.png"; header('Location: '.$urlImg); } else { $urlImg = getProductImage($product_id); $urlImg2 = my_url_encode($urlImg); $Headers = @get_headers($urlImg2); // проверяем ли ответ от сервера с кодом 200 - ОК if(preg_match("|200|", $Headers[0]) or preg_match("|301|", $Headers[0]) ) { // - немного дольше :) //if(strpos('200', $Headers[0])) { header('Location: '.$urlImg); } else { $urlImg="/image/placeholder.png"; header('Location: '.$urlImg); } } } exit(); ?> Но проблема в том, что если нажать сохранить как на картинку или напрямую в адресной строке вбить Imageload.php?product_id=123 то естественно картинка открывается и видно адрес ресурса. Хочется сделать так, чтобы скрипт срабатывал только извне... Разнес по модели и контроллеру код Выдает PHP Fatal error: Class 'Controller' not found in .../productimg.php on line 2 Код контроллера: <?php class ControllerProductProductimg extends Controller { //private $error = array(); public function index() { $this->load->model('catalog/productimg'); $this->request->get['product_id']; $this->request->get['product_image_id']; function my_url_encode($s){ $s= strtr ($s, array (" "=> "%20", "а"=>"%D0%B0", "А"=>"%D0%90","б"=>"%D0%B1", "Б"=>"%D0%91", "в"=>"%D0%B2", "В"=>"%D0%92", "г"=>"%D0%B3", "Г"=>"%D0%93", "д"=>"%D0%B4", "Д"=>"%D0%94", "е"=>"%D0%B5", "Е"=>"%D0%95", "ё"=>"%D1%91", "Ё"=>"%D0%81", "ж"=>"%D0%B6", "Ж"=>"%D0%96", "з"=>"%D0%B7", "З"=>"%D0%97", "и"=>"%D0%B8", "И"=>"%D0%98", "й"=>"%D0%B9", "Й"=>"%D0%99", "к"=>"%D0%BA", "К"=>"%D0%9A", "л"=>"%D0%BB", "Л"=>"%D0%9B", "м"=>"%D0%BC", "М"=>"%D0%9C", "н"=>"%D0%BD", "Н"=>"%D0%9D", "о"=>"%D0%BE", "О"=>"%D0%9E", "п"=>"%D0%BF", "П"=>"%D0%9F", "р"=>"%D1%80", "Р"=>"%D0%A0", "с"=>"%D1%81", "С"=>"%D0%A1", "т"=>"%D1%82", "Т"=>"%D0%A2", "у"=>"%D1%83", "У"=>"%D0%A3", "ф"=>"%D1%84", "Ф"=>"%D0%A4", "х"=>"%D1%85", "Х"=>"%D0%A5", "ц"=>"%D1%86", "Ц"=>"%D0%A6", "ч"=>"%D1%87", "Ч"=>"%D0%A7", "ш"=>"%D1%88", "Ш"=>"%D0%A8", "щ"=>"%D1%89", "Щ"=>"%D0%A9", "ъ"=>"%D1%8A", "Ъ"=>"%D0%AA", "ы"=>"%D1%8B", "Ы"=>"%D0%AB", "ь"=>"%D1%8C", "Ь"=>"%D0%AC", "э"=>"%D1%8D", "Э"=>"%D0%AD", "ю"=>"%D1%8E", "Ю"=>"%D0%AE", "я"=>"%D1%8F", "Я"=>"%D0%AF")); return $s; } if (isset($this->request->get['product_image_id'])){ $urlImgs=$this->model_catalog_productimg->getProductImages($product_image_id); //print_r($urlImgs->fetch_array()); $imgrow = $urlImgs->fetch_array(); header('Location: '.$imgrow["image"]); } else { $urlImg = $this->model_catalog_productimg->getProductImage($product_id); if ($urlImg == null) { $urlImg="/image/placeholder.png"; header('Location: '.$urlImg); } else { $urlImg = $this->model_catalog_productimg->getProductImage($product_id); $urlImg2 = my_url_encode($urlImg); $Headers = @get_headers($urlImg2); // проверяем ли ответ от сервера с кодом 200 - ОК if(preg_match("|200|", $Headers[0]) or preg_match("|301|", $Headers[0]) ) { // - немного дольше :) //if(strpos('200', $Headers[0])) { header('Location: '.$urlImg); } else { $urlImg="/image/placeholder.png"; header('Location: '.$urlImg); } } } } } Может есть у кого мысли?
-
Как полностью клонировать функционал товаров
djnick replied to djnick's topic in Opencart 2.x: Sandbox
В итоге клонировал модуль информации и на его основе написал сам аукцион)) Оказалось проще.. Систему ставок сделал по аналогии с системой отзывов о товарах... -
Доброго всем времени суток! Подскажите, может кто уже делал такое. Объясню, для чего нужно. У меня на сайте товары обновляет скрипт, удалет все товары и заливает из прайса. Хочу клонировать весь функционал товаров и на клон навешать аукцион, чтобы аукцион не цеплял товары... Я так прикинул, полопенкарта придется перекопать... Надо же клонить и категории и товары и все к ним сопутствующие темы... Или может у кого есть модуль аукциона на примете, который не затрагивает товары...
-
В итоге решил записать переменные в куки в хедере if(!empty($this->request->get['utm_source'])) { setcookie('utm_source', $this->request->get['utm_source'], time()+604800, '/'); } else { $data['utm_source'] = 'Не определено'; setcookie('utm_source', 'Не определено', time()+604800, '/'); }; и потом нужном модуле вызвать $data['utm_source'] = $this->request->cookie['utm_source']; Насколько это корректно, подскажите пожалуйста.
-
Это если непосредственно категория, которая в product, а в модуле изначально все категории и подкатегории выводятся.
-
Попробуйте так: Файл: catalog\view\theme\ВАШ_ШАБЛОН\template\module\category.tpl <div id='cssmenu'> <ul> <?php foreach ($categories as $category) { ?> <li class='has-sub'><a href="<?php echo $category['href']; ?>"><span><?php echo $category['name']; ?></span></a> <?php if ($category['children']) { ?> <ul> <?php foreach ($category['children'] as $child) { ?> <li><a href="<?php echo $child['href']; ?>" ><span><?php echo $child['name']; ?></span></a></li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> </div> CSS пихнуть в Style.css А javascript ближе к футеру.
-
Не знаю, насколько правильно сделал, но работает. В контроллеры header и самого модуля добавил: if(!empty($this->request->get['utm_source'])) { $data['utm_source'] = $this->request->get['utm_source']; } else { $data['utm_source'] = '...'; }; а в скрипте вызова поменял: src: 'index.php?route=module/popup_call_phone', на src: 'index.php?route=module/popup_call_phone&utm_source=<?php echo $utm_source; ?>',
-
Еще помучаю свой мозг сутки, если не допрет, куплю модуль)) а подключается он скриптом: <script type="text/javascript"> $(function() { $('body').prepend('<a onclick="get_popup_call_phone();" id="uptocall-mini"><div class="uptocall-mini-phone"></div></a>'); }); function get_popup_call_phone() { $.magnificPopup.open({ tLoading: '<img src="catalog/view/theme/sstore/stylesheet/popup_call_phone/ring-alt.svg" />', items: { src: 'index.php?route=module/popup_call_phone', type: 'ajax' } }); } </script> Так может передать как то можно переменные эти Ajax'ом...
-
Спасибо за оперативные ответы. Не получается в модуле обратной связи, массив GET содержит только путь до файла модуля... Ситуация вот какая: установлен отдельный модуль - всплывающее модальное окно с формой обратной связи... Может чего подключить в нём еще надо... Буду пытаться, Еще раз Спасибо. полный код контроллера формы <?php class ControllerModulePopupCallPhone extends Controller { public function index() { $data = array(); $this->load->model('catalog/product'); $this->load->language('module/popup_call_phone'); $popup_call_phone_data = (array)$this->config->get('popup_call_phone_data'); $data['popup_call_phone_data'] = $popup_call_phone_data; $data['heading_title'] = $this->language->get('heading_title'); $data['button_close'] = $this->language->get('button_close'); $data['button_send'] = $this->language->get('button_send'); $data['enter_name'] = $this->language->get('enter_name'); $data['enter_telephone'] = $this->language->get('enter_telephone'); $data['enter_comment'] = $this->language->get('enter_comment'); $data['enter_time'] = $this->language->get('enter_time'); $data['text_select'] = $this->language->get('text_select'); $data['text_loading'] = $this->language->get('text_loading'); $data['name'] = ($this->customer->isLogged()) ? $this->customer->getFirstName() : ''; $data['telephone'] = ($this->customer->isLogged()) ? $this->customer->getTelephone() : ''; $data['comment'] = ''; //$data['term'] = ''; $data['time'] = ''; if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/popup_call_phone.tpl')) { $view = $this->load->view($this->config->get('config_template') . '/template/module/popup_call_phone.tpl', $data); } else { $view = $this->load->view('default/template/module/popup_call_phone.tpl', $data); } $this->response->setOutput($view); } public function send() { $json = array(); $this->language->load('module/popup_call_phone'); $this->load->model('module/popup_call_phone'); $popup_call_phone_data = (array)$this->config->get('popup_call_phone_data'); if (isset($this->request->post['name'])) { if ((isset($popup_call_phone_data['name']) && $popup_call_phone_data['name'] == 2) && (utf8_strlen(trim($this->request->post['name'])) < 1) || (utf8_strlen(trim($this->request->post['name'])) > 32)) { $json['error']['field']['name'] = $this->language->get('error_name'); } } if (isset($this->request->post['time'])) { if (isset($popup_call_phone_data['time']) && $popup_call_phone_data['time'] == 2) { if (empty($this->request->post['time'])) { $json['error']['field']['time'] = $this->language->get('error_time'); } } } if (isset($this->request->post['telephone'])) { if ((isset($popup_call_phone_data['telephone']) && $popup_call_phone_data['telephone'] == 2) && (utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) { $json['error']['field']['telephone'] = $this->language->get('error_telephone'); } } if (isset($this->request->post['comment'])) { if ((isset($popup_call_phone_data['comment']) && $popup_call_phone_data['comment'] == 2) && (utf8_strlen($this->request->post['comment']) < 3) || (utf8_strlen($this->request->post['comment']) > 500)) { $json['error']['field']['comment'] = $this->language->get('error_comment'); } } if (!isset($json['error'])) { $post_data = $this->request->post; if (isset($post_data['name'])) { $data[] = array( 'name' => $this->language->get('enter_name'), 'value' => $post_data['name'] ); } if (isset($post_data['telephone'])) { $data[] = array( 'name' => $this->language->get('enter_telephone'), 'value' => $post_data['telephone'] ); } if (isset($post_data['comment'])) { $data[] = array( 'name' => $this->language->get('enter_comment'), 'value' => $post_data['comment'] ); } if (isset($post_data['time'])) { $data[] = array( 'name' => $this->language->get('enter_time'), 'value' => $post_data['time'] ); } $data_send = array( 'info' => serialize($data), ); $this->model_module_popup_call_phone->addRequest($data_send); $json['output'] = $this->language->get('text_success_send'); if ($popup_call_phone_data['notify_status']) { $html_data['date_added'] = date('m/d/Y h:i:s a', time()); $html_data['logo'] = $this->config->get('config_url').'image/'.$this->config->get('config_logo'); $html_data['store_name'] = $this->config->get('config_name'); $html_data['store_url'] = $this->config->get('config_url'); $html_data['text_info'] = $this->language->get('text_info'); $html_data['text_date_added'] = $this->language->get('text_date_added'); $html_data['data_info'] = $data; if (file_exists(DIR_TEMPLATE.$this->config->get('config_template').'/template/mail/popup_call_phone_mail.tpl')) { $html = $this->load->view($this->config->get('config_template').'/template/mail/popup_call_phone_mail.tpl', $html_data); } else { $html = $this->load->view('default/template/mail/popup_call_phone_mail.tpl', $html_data); } if (version_compare(VERSION, '2.0.2', '<')) { $mail = new Mail($this->config->get('config_mail')); } else { $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = (version_compare(VERSION, '2.0.3', '<')) ? $this->config->get('config_mail_smtp_host') : $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); } $mail->setTo($popup_call_phone_data['notify_email']); $mail->setFrom($this->config->get('config_email')); $mail->setSender($this->config->get('config_name')); $mail->setSubject($this->language->get('heading_title')." -- ".$html_data['date_added']); $mail->setHtml($html); $mail->send(); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } }
-
Если в контроллере формы указывать, то получаем: Undefined property: Action::$request in /home/u172474/1xetru/www/catalog/controller/module/popup_call_phone.php on line 1 Notice: Trying to get property of non-object in <b>/home/u172474/1xetru/www/catalog/controller/module/popup_call_phone.phprray ( [route] => module/popup_call_phone ) Хм... Это теперь на всех модулях (категория, главная, продукт и т.д.) отлавливать отдельно метки?
-
Array ( [route] => product/product [path] => 162 [product_id] => 751 [utm_source] => zasd [utm_medium] => jgyy [utm_campaign] => kuyy [utm_term] => bdish ) Возвращает нужный массив с метками...
-
Дело в том, что урл и приходит в таком вот виде: index.php?route=product/product&path=162&product_id=751?utm_source=istocj&utm_medium=rtrttr&utm_term=trtr&utm_content=&utm_campaign=rtrtrt пробовал ручками менять на index.php?route=product/product&path=162&product_id=751&utm_source=istocj&utm_medium=rtrttr&utm_term=trtr&utm_content=&utm_campaign=rtrtrt Можно подробнее, В любом месте контроллера? А как вывести? (извинюсь, за возможно, ламерский вопрос, но это должно вывести массив, а для этого в шаблоне нужно вывод сделать? )
-
Контроллер формы ( popup_call_phone.php - модуль всплывающей формы ) public function index() { $data = array(); $this->load->model('catalog/product'); $this->load->language('module/popup_call_phone'); $popup_call_phone_data = (array)$this->config->get('popup_call_phone_data'); $data['popup_call_phone_data'] = $popup_call_phone_data; $data['heading_title'] = $this->language->get('heading_title'); $data['button_close'] = $this->language->get('button_close'); $data['button_send'] = $this->language->get('button_send'); $data['enter_name'] = $this->language->get('enter_name'); $data['enter_telephone'] = $this->language->get('enter_telephone'); $data['enter_comment'] = $this->language->get('enter_comment'); $data['enter_time'] = $this->language->get('enter_time'); $data['text_select'] = $this->language->get('text_select'); $data['text_loading'] = $this->language->get('text_loading'); $data['name'] = ($this->customer->isLogged()) ? $this->customer->getFirstName() : ''; $data['telephone'] = ($this->customer->isLogged()) ? $this->customer->getTelephone() : ''; $data['comment'] = ''; //$data['term'] = ''; //$data['source'] = ''; $data['time'] = ''; if(!empty($this->request->get['utm_source'])) { $data['utm_source'] = $this->request->get['utm_source']; } else { $data['utm_source'] = '...'; }; if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/popup_call_phone.tpl')) { $view = $this->load->view($this->config->get('config_template') . '/template/module/popup_call_phone.tpl', $data); } else { $view = $this->load->view('default/template/module/popup_call_phone.tpl', $data); } $this->response->setOutput($view); } шаблон формы: <form method="post" enctype="multipart/form-data" id="call-phone-form"> <div class="payment-info"> <input type="hidden" name="source" class="source" value="<?php echo $utm_source;?>" /> <?php if ($popup_call_phone_data['name']) { ?> <div> <label><?php echo $enter_name; ?><?php if ($popup_call_phone_data['name'] == 2) { ?><span class="required">*</span><?php } ?></label> <input name="name" value="<?php echo $name;?>" placeholder="<?php echo $enter_name; ?>" /> </div> <?php } ?> <?php if ($popup_call_phone_data['telephone']) { ?> <div> <label><?php echo $enter_telephone; ?><?php if ($popup_call_phone_data['telephone'] == 2) { ?><span class="required">*</span><?php } ?></label> <input name="telephone" value="<?php echo $telephone;?>" placeholder="<?php echo $enter_telephone; ?>" /> </div> <?php } ?> <?php if ($popup_call_phone_data['time']) { ?> <div> <label><?php echo $enter_time; ?><?php if ($popup_call_phone_data['time'] == 2) { ?><span class="required">*</span><?php } ?></label> <input name="time" value="<?php echo $time;?>" placeholder="<?php echo $enter_time; ?>" class="datetime" /> </div> <?php } ?> <?php if ($popup_call_phone_data['comment']) { ?> <div> <label><?php echo $enter_comment; ?><?php if ($popup_call_phone_data['comment'] == 2) { ?><span class="required">*</span><?php } ?></label> <textarea name="comment" placeholder="<?php echo $enter_comment; ?>"><?php echo $comment;?></textarea> </div> <?php } ?> </div> </form> Урл (именно такой он приходит и в адресной строке остается): index.php?route=product/product&path=162&product_id=751?utm_source=zasd&utm_medium=jgyy&utm_campaign=kuyy&utm_term=bdish Пробовал запихать в контроллер категории/ товара - безрезультатно... вопрос менял на амперсанд... на почту приходит многоточие. буду копаться дальше
-
Да остались метки в строке, я отключил ЧПУ...