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

Panda58dev

Новачок
  
  • Публікації

    21
  • З нами

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

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

  1. Всё, разобрался, нужно было немного с кодировками поколдовать и правильно url сформировать. Всех благодарю, особенно @Blast ! Удачного дня
  2. Хм, похоже у меня какие то проблемы с dataType. Сейчас везде поставил json но в url почему то там где должно быть содержимое файл стоит [object%20Object] Вообще сейчас я путаюсь, что куда мне нужно кодировать json в base64 или наоборот. В результате мне нужен json массив в файле...
  3. @Blast угу, то есть, я генерирую ссылку для скачивания и записываю всю строку в url? Сделал почти так же как в Вашем примере, но выполняется .error хотя код ответа 200, разумеется подумал на ошибки PHP, но в журнале ошибок нет, error_get_last() тоже возвращает пустоту. Странное дело. Контроллер: public function getTplFile(){ if (isset($this->request->post['tpl_name'])) { $this->load->model('user/users_perm_plus'); // $data = $this->model_user_users_perm_plus->getTplPermData($this->request->post['tpl_name']); // (array) $data // $data['tpl_name'] = $this->request->post['tpl_name']; $data = 'test'; $file_name = 'upp_tpl_' . $this->request->post['tpl_name'] . '.json'; $file_data = 'data:text/plain;base64,' . base64_encode($data); $json['file_name'] = $file_name; $json['file_data'] = $file_data; $this->response->addHeader('Content-Type: text/plain'); $this->response->addHeader('Content-Disposition: attachment; filename="' . $file_name . '"'); $this->response->setOutput(json_encode($json)); // $error = error_get_last(); // $this->response->setOutput($error); } } AJAX: function getTplFile(tpl_name) { $.ajax({ url: '<?php echo $link_to_getTplFile; ?>&token=<?php echo $token; ?>', method: 'POST', dataType: 'text/plain', data: { tpl_name: tpl_name }, beforeSend: function () { $('.panel-title').html('<i class="fa-green fa fa-spinner fa-pulse fa-3x fa-fw"></i><?php echo $text_loading; ?>'); }, complete: function () { $('.panel-title').html('<i class="fa fa-table"></i>'); }, success: function(json) { console.log(json); $('#tpl-file-link').attr('href', json['file_data']).attr('download', json['file_name']); document.getElementById("tpl-file-link").click(); }, error: function (error) { console.log(error); } }); } Ответ сервера:
  4. Вообще не понял. У меня есть уже контроллер, который отдаёт файл. AJAX-ом он не обрабатывается... ocStore 2.3.0.2.4 если что...
  5. Да нет, суть заключается в том, что бы файл создавался "на лету" и не хранился на сервере.
  6. Здравствуйте! Есть задача - нужно, что бы на сервере формировался файл, который мог бы скачать пользователь, этим занимается отдельный метод в контроллере, который вызывается посредством AJAX запроса. На "Хабр Q&A" решение подобной задачи уже есть. Проблема заключается в том, что оно по какой то причине не работает - все заголовки отправляются, на фронт всё приходит, но вот файл никакой не качается. Скрины с ответом сервера и кодом прилагаю. Пробовал ответ сервера делать через "echo" - результат точно такой же.
  7. Капец, зачем такой балаган разводить, если ТС уже справился?))
  8. Мой способ может не работать, просто потому что у Вас не дефолтный шаблон, или шаблон, который не поддерживает bootstrap. Ну или просто не туда вставили строку можно Ваш product.tpl?
  9. Может костыль но на дефолтной локалке (ocStore v2.3.0.2.4), вроде работает: \catalog\view\theme\default\template\product\product.tpl строка 135 <li><?php echo $text_stock; ?> <?php echo ($stock == 0)? '<span class="label label-danger">' . $stock . '</span>' : '<span class="label label-success">' . $stock . '</span>'; ?></li>
  10. Она "привязывается" к типам устройств, и имеет множество методов анализа юзер-агента: ссылка.
  11. @ocdev_pro помог и всё разъяснил, с AJAX проблем не было, просто я обращался к методу модели, которого не было. Всем спасибо!
  12. Точно, основной шаблон и метод index загружаются
  13. Окей, с запросом разобрался, оказывается проблема и правда была в url: контроллер, метод index(), в нём подключаю js файл и передаю в шаблон url: $this->document->addScript('view/javascript/users_perm_plus/users_perm_plus.js'); $data['getPerms'] = $this->url->link('user/user_permission/getPerms', 'token=' . $this->session->data['token'] . $url, true); Тут-то и вся проблема - указал не тот контроллер ) Но теперь другая проблема есть: кидает вот такую ошибку:
  14. Слава богу - нет В приложенном коде видно, что запрос отправляет функция getPerms() которая принимает один единственный параметр - url адрес. Адрес по которому отправляется запрос я тоже описал: .../admin/index.php?route=controller/file/method&token=... Если у Вас есть ещё предположения, сильно прошу их высказать!
  15. Ну допустим я к запросу добавляю data: 'test', но от этого ничего не меняется. Что конкретно не так с запросом? Как сделать что бы он отправлялся "в куда"?
  16. ocStore v2.3.0.2.4 Товарищи, приветствую! Пишу модуль в админке, имею контроллер, который загружает основной шаблон. Этот шаблон использую JQ и AJAX обращается к серверу, ожидая, что тот выполнит метод, описанный в контроллере. Этот метод, в свою очередь, выполняет некоторые манипуляции с данными, потом передаёт их второму шаблону (tpl) и тот уже должен выводиться: public function method() { if ($this->request->server['REQUEST_METHOD'] == 'POST') { //code... $this->response->addHeader('Content-Type: html'); $this->response->setOutput($this->load->view('controller/template', $data)); } } AJAX запрос отправляется, и возвращается ответ с кодом 200, в виде html "Страница не найдена". В итоге AJAX стучится в .../admin/index.php?route=controller/file/method&token=... но когда я перехожу по этому адресу, так же вижу сообщение "Страница не найдена". Запрос такой: function getPerms(url) { $.ajax({ url: url, method: 'POST', dataType: 'html', brforeSend: function(){ $('.panel-title>i').replaceWith('<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>'); }, complete: function(){ $('.panel-title>i').replaceWith('<i class="fa fa-table" aria-hidden="true"></i>'); console.log('complete'); console.log(url); }, success: function(data){ $('#upp-table').html(data); console.log(data); }, error: function(){ console.log('error'); } }); } Как правильно обратиться к методу, что бы получить его ответ (готовый шаблон)?
  17. Установил ocStore последней версии на сервер (debian 10) с версией php 7.3.27. Всем файлам дал владельца и группу "www-data": Установка прошла успешно, БД подцепилась и даже сайт отображается нормально, но к сожалению войти в админку у меня просто не получается! Чистил куки, менял браузер, переустанавливал cms, и всё бестолку - зловещая надпись Неправильная токен-сессия. Авторизуйтесь снова. продолжала маячить: error500.mp4 Если посмотреть в вкладку "network" в devtools то выведет следующее: За любую помощь буду очень благодарен!
  18. Здравствуйте! Я начинающий пользователь Open Cart, недавно знакомый посоветовал углубиться в эту cms, так же посоветовал использовать версии 2.x. Я заинтересовался, поставил ocStore, и начал в нём копаться. Разумеется на тот момент я уже знал о существовании модулей, так же как и на других. Собственно мой вопрос заключается в том, как эти модули создавать? в интернете нашёл только этот перевод, но хотелось бы увидеть ещё подобные, что бы было с чем сравнивать. Прошу посоветовать пару статеек/мануалов по созданию модулей и использованию API open cart-a.
×
×
  • Створити...

Important Information

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