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

Venter

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

    1 262
  • З нами

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

Усі публікації користувача Venter

  1. может кому пригодится, выкладываю в общем сам родной шаблон twig восстановления пароля не менял а новый сделал и назвал swd_forgotten.twig {{ header }} <div id="account-forgotten" class="container"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> {% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div> {% endif %} <div class="row">{{ column_left }} {% if column_left and column_right %} {% set class = 'col-md-6 col-sm-8 col-xs-12' %} {% elseif column_left or column_right %} {% set class = 'col-md-9 col-sm-8 col-xs-12' %} {% else %} {% set class = 'col-sm-12' %} {% endif %} <div id="content" class="{{ class }}">{{ content_top }} <div class="inspire-form-bg"> <h1 class="heading">{{ cheading_title }}</h1> <p>{{ text_email }}</p> <div class="row infos"></div> <form id="swd-forgotten" method="post" enctype="multipart/form-data" class="form-horizontal"> <fieldset> <legend>{{ text_your_email }}</legend> <div class="form-group required"> <label class="col-sm-2 control-label" for="input-email">{{ entry_email }}</label> <div class="col-sm-10"> <input type="email" name="email" value="{{ email }}" placeholder="{{ entry_email }}" id="input-email" class="form-control" /> </div> </div> </fieldset> <div class="buttons clearfix"> <div class="pull-left"><a href="{{ back }}" class="btn btn-default">{{ button_back }}</a></div> <div class="pull-right"> <input type="submit" value="{{ button_continue }}" class="btn btn-primary" /> </div> </div> </form> <script type="text/javascript" > var swdloader = '{{ load }}'; $(document).ready(function() { $('#swd-forgotten').on('submit', function() { var formData = $('#swd-forgotten').serialize(); var dataStr = formData+'&action=swdforgotten'; $.ajax({ type: 'POST', url: 'index.php?route=account/forgotten/swd_forgot', dataType: 'json', data: dataStr, cache: false, beforeSend: function(){ $('.infos').html('<img src="' + swdloader + '">').show(); }, success: function(json){ if(json.success) { $('.form-control').val(''); $('.infos').html(json.response.mes); setTimeout('location.replace("' + json.response.link + '")', 1900); } else { setTimeout($('.infos').html(json.response), 700); } } }); return false; }); }); </script> </div> {{ content_bottom }}</div> {{ column_right }}</div> </div> {{ footer }} я по ходу еще использую свой хелпер он в папке helper/default.php вот его код function swd_json_success( $json ) { $response = array( 'success' => true ); if ( isset( $json ) ) { $response['response'] = $json; } echo json_encode( $response ); exit(); } function swd_json_error( $json ) { $response = array( 'success' => false ); if ( isset( $json ) ) { $response['response'] = $json; } echo json_encode( $response ); exit(); } function swd_info( $info, $def = true ) { $html = ''; $css = 'success'; if( !$def ) $css = 'danger'; $html .= '<div class="alert swd-alert swd-'.$css.'">'; $html .= '<i class="fa fa-check-circle"></i> '.$info; $html .= '<button type="button" class="close" data-dismiss="alert">&times;</button>'; $html .= '</div>'; return $html; } function clearText( $data ) { $data = trim($data); $data = stripslashes($data); $data = preg_replace("/ +/", " ", $data); $data = str_replace('#39;', '', $data); $data = str_replace("`", '"', $data); $data = str_replace("'", '"', $data); $data = preg_replace('/"([^"]*)"/', '«$1»', $data); $data = preg_replace('#<script[^>]*>.*?</script>#is', '', $data); $data = str_replace('/^(.+?)(\?.*?)?(#.*)?$/', '$1$3', $data); $data = strip_tags($data); return $data; } //////////////////////////////////////////////////////// //////// Validate swd form cotact ////////////// //////////////////////////////////////////////////////// function check_email( $email ) { if (function_exists('filter_var')) return filter_var($email, FILTER_VALIDATE_EMAIL); else return preg_match("/^[a-z0-9_\.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $email); } теперь сами правки в controller/account/forgotten.php метод public function index() { в самый конец ////////////////////////////////////////////////////////////// if ($this->request->server['HTTPS']) { $server = $this->config->get('config_ssl'); } else { $server = $this->config->get('config_url'); } $data['load'] = $server . 'image/swdmail/load8.gif'; ////////////////////////////////////////////////////////////// //$this->response->setOutput($this->load->view('account/forgotten', $data)); $this->response->setOutput($this->load->view('account/swd_forgotten', $data)); кстати еще в папке image создал папку и туда лоадер загрузил. кому надо gif лоадер в сети скачает. идем дальше после protected function validate() { вставляем /////////////////////////////////// $this->error['info'] = true; //////////////////////////////////// вот так должно быть protected function validate() { /////////////////////////////////// $this->error['info'] = true; //////////////////////////////////// if (!isset($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_email'); } elseif (!$this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_email'); } // Check if customer has been approved. $customer_info = $this->model_account_customer->getCustomerByEmail($this->request->post['email']); if ($customer_info && !$customer_info['status']) { $this->error['warning'] = $this->language->get('error_approved'); } return !$this->error; } это чтоб старый вариант обработки не работал ну и сами методы ////////////////////////////////////////////////////////// /////// Validate form forgotten ajax ////////////////////////////////////////////////////////// public function swd_forgot() { //гружу свой хелпер $this->load->helper('default'); $this->load->model('account/customer'); $this->load->language('account/forgotten'); if( $this->request->post['action'] == 'swdforgotten' ) { if( ($this->request->server['REQUEST_METHOD'] == 'POST') && $this->swd_validate() ) { $this->model_account_customer->editCode($this->request->post['email'], token(40)); $redirect = $this->url->link('account/account', '', true); $json = array('mes' => swd_info( sprintf($this->language->get('forgotten_success'), $this->request->post['email']) ), 'link' => $redirect); swd_json_success( $json ); } //если есть ошибки выводим if( isset($this->error['info']) ) { $info = $this->error['info']; } else { $info = ''; } swd_json_error( swd_info( $info, false ) ); } else { swd_json_error( swd_info( $this->language->get('error_send'), false ) ); } } protected function swd_validate() { if (!isset($this->request->post['email'])) { $this->error['info'] = $this->language->get('error_email'); } elseif (!$this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['info'] = $this->language->get('error_email'); } if( !check_email($this->request->post['email']) ) { $this->error['info'] = $this->language->get('error_mail_valid'); } if( empty($this->request->post['email']) ) { $this->error['info'] = $this->language->get('error_mail_empty'); } // Check if customer has been approved. $customer_info = $this->model_account_customer->getCustomerByEmail($this->request->post['email']); if ($customer_info && !$customer_info['status']) { $this->error['info'] = $this->language->get('error_approved'); } return !$this->error; } еще в языковой файл forgotten.php добавил вот эти строки $_['error_mail_valid'] = 'Введите правильный Email!'; $_['error_mail_empty'] = 'Введите адрес электронной почты'; $_['error_send'] = 'Ошибка запроса! Обратитесь к администрации.'; $_['forgotten_success'] = 'На %s адрес электронной почты было отправлено письмо со ссылкой для подтверждения.'; ну в общем все
  2. смотрю controller/account/forgotten.php и чет найти не могу где ж подключается mail/forgotten.php
  3. Кто подскажет, при восстановлении пароля юсером приходит письмо, а вот откуда оно отправляется, с какого файла?
  4. в экспортированом VamShop .sql меняете поляна опенкартовские и импортируете в бд опенкарта
  5. в catalog/controller/startup/startup.php .после public function index() { $user = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE vip_date < NOW() - INTERVAL 25 DAY"); if($user->num_rows) { //возвращаем в обыч группу }
  6. $parts = ''; if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); }
  7. сaм лично ставил сео про с окстор на опенкарт 3 и все работает как надо
  8. Оказалось что хостинг глючит, на бегете тестировал. Вено у него какието проблемы
  9. В общем суть такая, хочу на магазине оставить Phpmailer подключил и т.д. Начал тестить, тестил как на магазине так и на ростом сайте. Суть проблемы Обычная отправка $phpmailer = new PHPMailer( true ); $phpmailer->CharSet = CHARSET; $phpmailer->isMail(); $phpmailer->setFrom( FROM_MAIL, FROM_NAME ); $phpmailer->addAddress( [email protected]', 'Вася' ); $subject = 'Предложение'; $phpmailer->Subject = $subject; $phpmailer->Body = 'Ваше предложение'; if (!$phpmailer->send()) { echo "Mailer Error: " . $phpmailer->ErrorInfo; } else { echo "Message sent!"; } Отправка SMTP $phpmailer = new PHPMailer( true ); $phpmailer->CharSet = CHARSET; $phpmailer->isSMTP(); $phpmailer->Host = SMTP_HOST; $phpmailer->Port = SMTP_PORT; $phpmailer->SMTPAuth = true; $phpmailer->Username = SMTP_USER; $phpmailer->Password = SMTP_RASS; $phpmailer->setFrom( FROM_MAIL, FROM_NAME ); $phpmailer->addAddress( [email protected]', 'Вася' ); $subject = 'Предложение'; $phpmailer->Subject = $subject; $phpmailer->Body = 'Ваше предложение'; if (!$phpmailer->send()) { echo "Mailer Error: " . $phpmailer->ErrorInfo; } else { echo "Message sent!"; } не отравляется, страница грузиться и все по сути isMail() для обычной отправки, а если SMTP то нужно указать isSMTP() Теперь, если прописать вот так $phpmailer = new PHPMailer( true ); $phpmailer->CharSet = CHARSET; $phpmailer->isSMTP(); $phpmailer->Host = SMTP_HOST; $phpmailer->Port = SMTP_PORT; $phpmailer->SMTPAuth = true; $phpmailer->Username = SMTP_USER; $phpmailer->Password = SMTP_RASS; $phpmailer->isMail(); $phpmailer->setFrom( FROM_MAIL, FROM_NAME ); $phpmailer->addAddress( [email protected]', 'Вася' ); $subject = 'Предложение'; $phpmailer->Subject = $subject; $phpmailer->Body = 'Ваше предложение'; if (!$phpmailer->send()) { echo "Mailer Error: " . $phpmailer->ErrorInfo; } else { echo "Message sent!"; } то есть после SMTP настроек указать isMail() то все отравляется нормально, то есть вроде как срабатывает отправка по SMTP Почему такая ерунда никак не пойму??? Сначало думал дело в магазине, ан нет, протестил на сайте клиента тоже так, протестил на другом сайте тоже так Куда копать???
  10. Крутой модуль, обязательно в закладки. Видимо как раз то что нужно. @Seriusis спасибо за ссылку на модуль, а то помнил вроде что было что то подобное из модулей а какой именно никак не мог вспомнить
  11. Нужно в карточке товара сделать Характеристики, как тут: http://hisense-air.ru/product/vision-inv/ Чтобы был выпадающий список Выберите модель: и при смете модели внизу менялись характеристики. Есть ли такой модуль вообще???
  12. Ошибка говорит о том что переменная query не определена, у вас стоит логическое условие, а нужно скорее всего так if( isset($query) && empty($query) ) { $this->request->get['route'] = 'error/not_found'; return; } }
  13. Вроде стоит дефолтный шаблон. А почему на кнопках повешана js функция onclick="get_simple_shopping('123','catalog'); прием абсолютно на всех кнопках в карточках товаров get_simple_shopping('123','catalog');
  14. Во первых код js у вас кривой на ПХП Если все ОК то $json['status'] = true; $json['redirect'] = ''; Если ошибка $json['status'] = false; $json['redirect'] = 'ссылка'; На JS $(document).on('click', '#forgot', function(){ $.ajax({ url: 'index.php?route=account/forgotten/validate', //отправляем запрос в catalog/controller/account/forgotten.php ф-ию validate, которая protected function - может дело в protected? type: 'post', //зщые data: $('#ff input[type=\'text\']'), //данные dataType: 'json', //json success: function(json) { //выводим сообщение if (json.status) { //еренаправляем setTimeout('location.replace("' + json.redirect + '")', 1000); } } }); }); А вот это на js работать не будет if (json['redirect']) { location = json['redirect']; //если все ок, то направим на страницу входа (или любую другую укажу) } else if (json['error']) { if (json['error']['warning']) { $.jGrowl(json['error']['warning']); //показ ошибок если есть, а она всего одна может быть - есть ли такой email или нет } } }, Подучить бы для начала вам
  15. А потому что у тебя функция protected function validate() { А надо function validate() { или public function validate() { Читаем ЗДЕСЬ Ну и как по мне в Ajax запрос я бы оставил вывод сообщения успешное восстановление пароля или как , и если нужно перенаправить то через Н времени перенаправляем, а так я бы вообще создал отдельный метод на который слал бы запрос а в forgotten в методе index поставил бы запрет на обработку формы
  16. слушайте ну если у вас действительно нет знаний по этому поводу то почему бы часик времени не уделить тем ссылкам которые выше дали. Зачем вы пытаетесь учиться кодить методом тыка
  17. $comment = !empty($order['comment']) ? " | Коментарии покупателя: " . $order['comment'] : " | Коментарии покупателя: Нет коментарии"; // Шапка документа $document['Документ' . $document_counter] = array( 'Ид' => $order['order_id'], 'Номер' => $order['order_id'], 'Дата' => $order['date'], 'Время' => $order['time'], 'Валюта' => $currency, 'Курс' => 1, 'ХозОперация' => 'Заказ товара', 'Роль' => 'Продавец', 'Сумма' => $order['total'], 'Комментарий' => $comment ); или if( !empty($order['comment']) ) { $comment = " | Коментарии покупателя: " . $order['comment']; } else { $comment = " | Коментарии покупателя: Нет коментарии"; } // Шапка документа $document['Документ' . $document_counter] = array( 'Ид' => $order['order_id'], 'Номер' => $order['order_id'], 'Дата' => $order['date'], 'Время' => $order['time'], 'Валюта' => $currency, 'Курс' => 1, 'ХозОперация' => 'Заказ товара', 'Роль' => 'Продавец', 'Сумма' => $order['total'], 'Комментарий' => $comment ); И вообще почему вы в названии ключа массива решили использовать кирилицу, вот это $document['Документ' . $document_counter]
  18. во первых ваше else в массивах вот таким образом не используется. Не знаете как кодить не беритесь А полное условие где??? else есть а IF нет )))) Что вам вообще в итоге нужно полуить
  19. Пруфы есть про то что ваша верстка не тормозит сайт а бустрап тормозит????? тем более никто не заставляет к примеру брать весь бутстрап, и кстати последние версии давно уже на флексбокс, от бутстрапа к примеру можно взять чисто сетку А так про то что библиотека css бутстрап будет тормозить сайт видится мне что вы вообще не знаете о чем пишите
  20. Потому что учить лень синтаксис пхп. Полный вид этого кода в студию
  21. если что бутстрап новые версии на flex. И почему бутстрап не комильфо?

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

Important Information

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