Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

berrber

Користувачі
  
  • Публікації

    265
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем berrber

  1. 1. Вероятно не выполнили все readme, к примеру не вставили код модуля в product.tpl.

    2. Опубликуйте лог ошибок из файла error.txt за последние 2 дня в спойлер.

    3. Ваша версия opencart/ostore не поддерживается, см. описание модуля?

  2. Модуль имеет свой механизм рассылки, он никак не взаимодействует со стандартным.

    Если удалить всех подписчиков, вы потеряете базу подписчиков. Если все же хотите всех удалить, можете в разделе "Система-Настройки-Опции-Элементов на страницу (Админка)" выставить 500 и удалить подписчиков через функционал модуля, кнопкой "Удалить".
     

    Что вот я сделала, так это выделила первый столбик (всех подписчиков первой страницы),т.к. думала провести рассылку по странице в час,например. Может в этом дело?

    Нажав кнопку "Выполнить рассылку" вы произведете рассылку по всему списку подписчиков, выбирать "галочками" их не нужно. Может в этом проблема - вы выбрали 8 раз подписчиков и нажали соответственно 8 раз кнопку "Выполнить рассылку"?

  3. Установил opencart 1.5.3.1, установил модуль. Создал пару подписчиков, заполнил тестовым текстом "Подписка на новости-Письмо подписчику", нажал кнопку "Выполнить рассылку". Каждый из подписчиков получил по одному письму. В вашем случае я вижу следующие вероятные возможности возникновения описанной вами ситуации:

    1. Многократно нажали кнопку "Выполнить рассылку".
    2. Каким-то образом у вас присутствуют дубли e-mail, что маловероятно.
    3. Некорректные настройки хостинга, следует обратиться к ним по этому вопросу. Но перед этим проверьте как отрабатывает стандартная система рассылки, если она не повторяет описанное вами поведение, дело не в хостинге.
    4. Ошибка в коде модуля, которую я не вижу.

  4. 1. Вы в разделе панели управления магазином "Подписка на новости" нажимаете кнопку "Выполнить рассылку" и к вашим подписчикам приходит письмо, оформленное в разделе "Письмо подписчику" в количестве 10 копий, так же на вашу почту, указанную в разделе "Система-Настройки" приходит это же письмо в количестве 10 копий, все верно?
    2. Опубликуйте в ветку лог error.txt за последние 2 дня в спойлер.

     

    P.S. код выполняющей рассылку информации подписчикам не выполняет рассылку для администратора магазина.

    контроллер:

    	public function send() {
    		$this->language->load('catalog/subscribe');
    
    		$this->load->model('catalog/subscribe');
    
    		$subscribers = $this->model_catalog_subscribe->getSubscribers();
    
    		if ($this->validateSendMail($subscribers)) {
    			foreach ($subscribers as $subscriber) {
    				if ($subscriber['status']) {
    					$subscribe_descriptions = $this->model_catalog_subscribe->getEmailDescription();
    					$text_mail = $subscribe_descriptions[(int) $this->config->get('config_language_id')];
    					$subject = sprintf($this->language->get('text_subject_mail'), $this->config->get('config_name'));
    
    					$message = '<html dir="ltr" lang="en">' . "\n";
    					$message .= '  <head>' . "\n";
    					$message .= '    <title>' . $subject . '</title>' . "\n";
    					$message .= '    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' . "\n";
    					$message .= '  </head>' . "\n";
    					$message .= '  <body>' . html_entity_decode($text_mail, ENT_QUOTES, 'UTF-8') . '</body>' . "\n";
    					$message .= '</html>' . "\n";
    
    					$mail = new Mail();
    					$mail->protocol = $this->config->get('config_mail_protocol');
    					$mail->parameter = $this->config->get('config_mail_parameter');
    					$mail->hostname = $this->config->get('config_smtp_host');
    					$mail->username = $this->config->get('config_smtp_username');
    					$mail->password = $this->config->get('config_smtp_password');
    					$mail->port = $this->config->get('config_smtp_port');
    					$mail->timeout = $this->config->get('config_smtp_timeout');
    					$mail->setTo($subscriber['email']);
    					$mail->setFrom($this->config->get('config_email'));
    					$mail->setSender($this->config->get('config_name'));
    					$mail->setSubject($subject);
    					$mail->setHtml($message);
    					$mail->send();
    
    					$this->session->data['success'] = $this->language->get('text_send_success');
    				}
    			}
    		}
    
    		$this->getList();
    	}
    

    модель:

    	public function getSubscribers($data = array()) {
    		$sql = "SELECT * FROM " . DB_PREFIX . "subscribe ";
    
    		$sort_data = array(
    			'name',
    			'status'
    		);
    
    		if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    			$sql .= "ORDER BY " . $data['sort'];
    		} else {
    			$sql .= " ORDER BY email";
    		}
    
    		if (isset($data['order']) && ($data['order'] == 'DESC')) {
    			$sql .= " DESC";
    		} else {
    			$sql .= " ASC";
    		}
    
    		if (isset($data['start']) || isset($data['limit'])) {
    			if ($data['start'] < 0) {
    				$data['start'] = 0;
    			}
    
    			if ($data['limit'] < 1) {
    				$data['limit'] = 20;
    			}
    
    			$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
    		}
    
    		$query = $this->db->query($sql);
    
    		return $query->rows;
    	}
    

    Стоит доработать функцию "send", указать "start=0" & "limit=$this->model_catalog_subscribe->getTotalSubscibe()". Но это не к текущему случаю, в целом.

  5. Не думаю что это сложно будет сделать, равно как и недорого, если сервис серьезный и предоставляет адекватный протокол сопряжения. Обратитесь в раздел Программирование, создание модулей, изменение функциональности на этом форуме, там достаточно исполнителей которые могут реализовать функционал. Сделаете - публикуйте решение, думаю многим понадобиться.

  6. функционал ОТПИСКИ самим подписчиком в планах есть? куда хотя бы копать, мож сам наклепаю?

     

    В ближайшие полгода нет. Посмотрите как сделан функционал подтверждение подписки e-mail в данном модуле, в это письмо можно размещать ссылку для отписки. Допишите функцию описки для контроллера модуля, посмотрите как в личном кабинете либо "Продажи-Покупатели-Покупатели" реализовано подобное. Если сделаете, по возможности опубликуйте решение в ветке.

     

    функционал ПОИСКА в админке по емайлу в планах есть? у меня уже 1600 подписчиков, такие простыни мама не горюй... куда хотя бы копать, мож сам наклепаю?

     

    В ближайшие полгода нет. Посмотрите как сделано в "Продажи-Покупатели-Покупатели". Если сделаете, по возможности опубликуйте решение в ветке.

  7. Решение простое до безобразия))

    адрес ...catalog\view\theme\default\template\module

    файл subscribe.tpl

    Добавляем то,что выделено голубым и ставим адрес картинки,которую заливаем в любое место сайта.

    <div class="box">

    <div class="box-heading"><?php echo $heading_title; ?></div>

    <div class="box-content">

    <div class="subscribe<?php echo $module; ?>">

    <div><img src="адрес картинки" /></div>

    <span><?php echo $text_enter_email; ?></span><br/>

    <input type="text" name="subscribe_email<?php echo $module; ?>" value="" />

    <input type="button" value="<?php echo $button_subscribe; ?>" onclick="addSubscribe(<?php echo $module; ?>);" class="button" />

    </div>

    </div>

    </div>

     

     Хорошее решение.

     

    Да,пожалуйста!

    Вот модуль фрилансера

     

    Авторизация через соц. сети - модуль Логинза(платный), где-то здесь есть на сайте - не проблема

    Благодарю, не лишняя информация для пользователей модуля подписки.

  8. Ясно,спасибо. Как раз то,что нужно. Уже сделала запрос(это не сложно-есть уже давно установленный модуль для быстроты запросов)

    Я смотрела другой модуль. Но стандартные методы рассылки не подходят,т.к. ограничение по количеству покупателей мне нельзя. Да, и нового покупателя я не совсем понимаю зачем добавлять,если человек зарегился уже или зашел через соц. сети.

     

    Опубликуйте ссылку на модуль, если вспомните, с помощью которого из панели управления магазином можно делать sql запросы в базу данных.

    Какой модуль используете для авторизации через соцсети?

  9. Спасибо.

    "newsletter" - будут только подписавшиеся? Других не будет вообще? Или они будут выключены?

    "approved" - вообще все будут подписаны?

    И так можно делать периодически? Они не будут задваиваться,затраиваться и т.д.?

     

    Запрос копирует всех покупателей, которые прошли регистрацию с проверкой на дубли в модуле подписки, т.е. можете периодически его выполнять, обновляя базу рассылки модуля. Возможно вам стоит обратить внимание на альтернативный модуль подписки, он создает покупателя стандартными средствами, высылает сгенерированный пароль на почту покупателя для входа в личный кабинет, выполняет рассылку через стандартный механизм "Продажи-Почта", вам не придется заниматься манипуляциями через базу данных.

    "newsletter" или "approved" - из столбца берется значение для статуса подписчика в модуле, включена или выключена подписка.

  10. Можно как-то всех подписавшихся стандартным способом переподписать сюда? :-)

     

    Выполните запрос в базе данных, скопируются email всех зарегистрированных покупателей, активированные покупатели получат статус рассылка включена. Можно поменять "approved" на "newsletter", тогда скопируется сам статус подписки из таблицы покупателя.

    INSERT INTO subscribe (email, status) SELECT email, approved FROM customer WHERE email NOT IN(SELECT email FROM subscribe)
    
  11. Здравствуйте. Подскажите как в маске номера сразу же поставить +7(___) ___-__-__ 

    +7 имеете в виду? Если да, то настройки модуля смотрите, его описание и скриншоты с форума.

  12. Огромное спасибо за модуль и за решение моей задачи! Думаю, может ещё кому пригодится! Чё-то скупятся админы на плюсики Вам в репутацию!!

    Попробую сам ещё добавить дополнительную строчку для формы

     

    Опубликуйте решение в ветке, если будет возможность.

  13. 1. В контроллер

    $this->data['text_catapulta'] = $this->language->get('text_catapulta');
    $this->data['catapulta'] = $this->url->link('catalog/catapulta', 'token=' . $this->session->data['token'], 'SSL');
    

    2. В шаблон

    <a href="<?php echo $catapulta; ?>" class="button"><?php echo $text_catapulta; ?></a>
    

    3. В файл локализации

    $_['text_catapulta'] = 'Заказы';
    
    • +1 1
  14. Подскажите пожалуйста. На двуязычном сайте (русский + английский) все подписчики получают исключительно письма на русском языке. Непонятно, по какому принципу выполняется рассылка. И как вообще должно быть? Всем по два письма?

     

    На данный момент язык текста письма рассылки подписчикам выбирается на основе текущего языка front-end. Планируется доработка, для рассылки писем подписчикам в том языке, какой был выбран покупателем в front-end при подписке. Сроки доработки не определены.

  15. Здравствуйте! Подскажите пожалуйста, как можно вывести модуль не в модальном окне по кнопке, а чтобы он был в "развёрнутом" виде, например в футере, хэдере или в html-блоке. То есть какую строчку нужно вставить например в footer.tpl или header.tpl? Или тут не обойтись одной-двумя строчками кода?

     

    Добрый день.

     

    1. Замените содержание файла /dondo/catalog/view/javascript/dondo_position.js на представленный ниже код

    $(document).ready(function () {

        $('head').append("<link rel=\"stylesheet\" type=\"text/css\" href=\"catalog/view/javascript/jquery/colorbox/colorbox.css\" \/>");

        $.getScript('catalog/view/javascript/jquery/colorbox/jquery.colorbox-min.js');

        $.getScript('catalog/view/javascript/jquery/jquery.maskedinput.min.js');

        $.getScript('catalog/view/javascript/dondo.js');

        $('.dondo-custom-position').each(function () {

            var dondo_module = this;

            $.ajax({

                url: 'index.php?route=module/dondo',

                type: 'post',

                data: 'module='+$(dondo_module).data('module'),

                success: function (data) {

                    $(dondo_module).html(data);

                }

            });

        });

        $('.dondo-form').each(function(index, element) {

            var module = $(element).data('module');

            $.ajax({

                url: 'index.php?route=module/dondo/getForm',

                type: 'get',

                data: 'module='+module,

                success: function (data) {

                    $(element).html(data);

                    var phone_mask = $('input[name=\'dondo_contact\']').data('phoneMask');

                    if (phone_mask) {

                        $('input[name=\'dondo_contact\']').mask(phone_mask);

                    }

                }

            });

        });

    });

    2. Замените содержание файла /dondo/catalog/view/javascript/dondo.js на представленный ниже код

    $(document).ready(function () {

        $('.dondo-send').live('click', function () {

            var wait = $(this).data('wait');

            var module = $(this).data('module');

            var module_box = $(this).closest('.dondo');

            $.ajax({

                url: 'index.php?route=module/dondo/write',

                type: 'post',

                dataType: 'json',

                data: 'module='+module+'&contact='+encodeURIComponent($(module_box).find('input[name=\'dondo_contact\']').val()),

                beforeSend: function () {

                    $(module_box).find('.attention').remove();

                    $(this).attr('disabled', true);

                    $(module_box).find('.dondo-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" />'+wait+'</div>');

                    $.colorbox.resize();

                },

                complete: function () {

                    $(this).attr('disabled', false);

                    $(module_box).find('.attention').remove();

                    $.colorbox.resize();

                },

                success: function (data) {

                    $(module_box).find('.success').remove();

                    if (data['error']) {

                        $(module_box).find('.error').remove();

                        if (data['error']['contact']) {

                            $(module_box).find('.contact_error').after('<span class="error">'+data['error']['contact']+'</span>');

                        }

                    }

                    if (data['success']) {

                        if ($(module_box).closest('#colorbox').length) {

                            $(module_box).after(data['success']);

                            $(module_box).remove();

                        } else {

                            $(module_box).find('input[name=\'dondo_contact\']').val('');

                            $(module_box).find('.buttons').after(data['success']);

                            $(module_box).find('.success').fadeOut(5000);

                        }

                    }

                    $.colorbox.resize();

                }

            });

        });

    });

    function addToDondo(module) {

        $.colorbox({

            scrolling: false,

            overlayClose: true,

            opacity: 0.5,

            href: 'index.php?route=module/dondo/getForm',

            data: 'module='+module,

            onComplete: function () {

                var phone_mask = $('input[name=\'dondo_contact\']').data('phoneMask');

                if (phone_mask) {

                    $('input[name=\'dondo_contact\']').mask(phone_mask);

                }

            }

        });

    }

    3. Для установки в шапку или подвал вместо стандартной строки

    <div class="dondo-custom-position" data-module="1"></div>
    

    установите следующую

    <div class="dondo-form" data-module="1"></div>
    

    Напомню, что так же нужно установить в шапку скрипт и верный номер data-module, все в соответствии с инструкцией по установке модуля в произвольные позиции, которая поставляется вместе с модулем.

    • +1 1
  16. Читайте как модифицировать seo_url.php на opencart.com или opencartforum.com.

     

    Если и у вас ostore, можно проще - включите seoPro, если нет, ставьте seoPro, insert в БД:

    INSERT INTO oc_url_alias (query, keyword) VALUES ('information/arbitrage', 'arbitrage');
    

    Если еще проще - смотрите модули для seoPro freelancer-а, там user-friendly интерфейс.

  17. Появилось 2 вопроса по модулю.

    1. как можно изменить url страницы чтоб привести его в нормальный вид, а не index.php?route=information/arbitrage

    2. как сделать отображение на главной не так:

     

    Отзыв 1

    Отзыв 2

     

    А так:

    отзыв 1  отзыв 2 отзыв 3

     

    Спасибо!

     

    Верстка.

  18. и валидация емайл у вас реализована запросом к серверу ОПЯТЬЖЕ... мдя.. на джиквери разве нельзя тупо сделать и не мучить лишний раз сервак? а если кликеры или бот придет, для него тег input type submit милое дело!!!

     

    Можно дополнить имеющуюся валидацию на сервере js-валидацией, очевидно совсем убирать с сервера проверку, используя только js - нельзя. Публикуйте код, если он будет рабочий, внесу его в модуль.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.