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

Gorman

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

    187
  • З нами

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

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

  1. Форму регистрации не кастомизировали? В идеале бы ее глянуть на Вашем сайте. Или хотя бы вью (шаблон) формы регистрации скиньте. Валидация полей происходит в контроллере в методе Validate(), в том файле, который Вы прикрепили. В этом методе есть условие, что телефон проверяется на длину строку (должен быть не меньше 3 и не больше 32 символов). if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) { $this->error['telephone'] = $this->language->get('error_telephone'); } Если в данном методе формируется массив $this->error, то валидация не проходит и пользователь не создается. У вас это условие есть, и если оно может не работать по нескольким причинам. Например, поле telephone посылается на сервер в скрытом виде, или по каким-то еще. Нужно смотреть шаблон.
  2. Что за модуль то стоит? Имеет отношение к категориям или к их выводу? Ошибка d логах отношения не имеет к этому, если что. Сначала определите природу проблемы: с данными проблема, или с выводом. Загляните в базу, не задублировались ли категории/подкатегории. Скорее всего нет, если в админке все выводится верно. Значит проблема с выводом, конкретно в этой меню категорий. Оно менялось (хотя непохоже)? В любом случае, если проблема видна только там, данные в админке и в базе в порядке, то нужно искать шаблон (вью) этого меню. Посмотреть какие переменные в шаблон приходят и как отображаются. Если причин проблем во вью не нашли, идем в контроллер. Перед вызовом вьюшки (последняя строка метода index() контроллера) разворачиваем весь массив $data и "умираем" скриптом - смотрим что в нем лежит. И дальше уже думаем или обратно в сторону вьюшки, или потрошим дальше контоллер и смотрим модель. Универсальный "отладчик": echo '<pre>'; print_r($data); die();
  3. Вот вы как разработчик магазинов, реально думаете, что по написанному выше можно что-то понять?:) Даже если есть желание помочь, никакой возможности не даете. По теме: в чем проблема, вооружайтесь var_dump( ) и die( ) и вперед - отлаживать. Искать связи, куда идут и откуда берутся данные глюки. Если вы другие способы отладки конфликтов знаете, то поделитесь, особенно интересна отладка чужого кода по скриншотам.
  4. Чем импортируете? По делу - в модель не приходят перечисленные индексы массива, поэтому он и ругается. Как исправить - отправить эти индексы, они перечислены. Можно попробовать добавить их в YML например.
  5. 1. Просто лазить в конфиги без лишней надобности не нужно, это такой хороший закон Особенно когда не полностью понимаешь, что там происходит. Если мешает - тогда стоит разобраться. Иногда хостер вообще не принимает изменения в ваших php.ini себе, что в целом оправдано. 2. а) Следите за доп вкладками б) Выше написал товарищ все верно, иногда с хостинга вычищают все сессии под замес, и Вашу не устаревшую тоже. Если хостер гибкий, то можно подумать что с этим делать
  6. А, если если tpl, то другой разговор Приводите синтаксис в порядок, получайте URL из $_SERVER, если он у вас в приличном виде (в ЧПУ), сравнивайте и принимайте решение о выводе. Или же все таки придется отправить переменную категории из контроллера во вью.
  7. Это кто вас там научил делать? Сессионная кука хранится до закрытия браузера, если не задано другое в php.ini session.cookie_lifetime . Можете прямо сейчас зайти и ручками посмотреть срок действия PHPSESSID в той же админке. Время жизни сессий, определяемое в session.gc_maxlifetime, определяет время, когда они будут удаляться с серверной части, причем тут идентификатор сессии вообще.
  8. Заменить цифры на 0 или стереть - одно и то же в нашем случае просто сайт отдал новый css и все отрисовалось. Если знаете как работать с отладкой в браузере (F12) и хотите покопаться, то дам Вам вектор - все абсолютные размеры (в px) нужно заменить на относительные (в %). Конечно, тех стилей, которые касаются этого баннера. Плюс для мобилки придется писать медиа-запрос (тоже можете погуглить, если время есть), ибо баннер сократить пропорционально можно, а вот растянуть как видно нельзя - поэтому в определенный момент он и не центрируется. В общем, можно экспериментировать в отладке)
  9. Я же писал как нужно сделать, Инструменты разработчика, f12, стрелочка... ладно
  10. Сделайте принудительное обновление страницы - на виндовс ctrl+f5, сайт пока отдает Вам старую версию стилей, обновите - отдаст новую. Я уже вижу изменения
  11. Если ничего не меняли, то обычно сессия живет 24 минуты (1440 секунд), что прописано в php.ini, конфигурационном файле, который дефолтный и хранится чаще всего у хостера. Если у вас в папке с сайтом такой файл (php.ini) есть, то найдите строку session.gc_maxlifetime, посмотрите значение, разделите на 60 - получите время жизни сессии в минутах. Можно поиграться с настройками, но только в том случае, если реально мешает работе. Код в футер может помочь, но реально это костыль. И коллега, объясните зачем мы ставим сессионную переменную 'last_ping', где-то дергать будем ее потом?
  12. Слайдер не очень адаптивный, лучше конечно доработать его более полноценно. Нужно копаться в css, все верно говорите. Чтобы страницу так не пучило, можете сразу поправить отступы. У элемента ниже есть класс owl-carousel <div id="slideshow0" class="owl-carousel owl-theme" style="opacity: 1; display: block;"> У данного класса есть свойство margin: 0 100px 20px; . Его нужно удалить, страницу перестанет тянуть влево вправо. Появится другая неприятность, на большом экране слайдер не будет стоять посередине, но тут уже надо дальше работать. Как найти свойство в css файле знаете?
  13. Пожалуйста. В футер тогда ничего не вставляйте, что Вам коллега сверху написал. Логика такая: когда Вы входите в админку и отправляете на сервер имя пользователя/пароль, сервер проверяет их на существование и на правильность. Если он убеждается, что все ок - он отдает Вам своеобразный временный пароль, токен. Выглядит как хвост URL-a (например, token=XACTyA8eiRdfV8QuBlhopsjRM22dFjxe). Теперь любые действия с админкой, будь то переходы по вкладкам, создание товара или что-либо еще, будут верифицироваться с помощью этого временного пароля. То есть, при каждом Вашем переходе сервер будет думать "Я отдал им вот такой токен (пароль), посмотрим, что они мне возвращают", и смотрит на этот хвост. Если он не совпадает - он просит Вас войти еще раз. Отсюда рождаются такие ситуации: на нескольких вкладках у вас стоят разные токены, и Вы каждый раз вводите сервер в заблуждение, посылая ему не тот токен, который он Вам отдал последний раз. При этом он просит войти еще раз, генерирует новый токен - и теперь все ваши старые страницы, который только что работали, имеют старый недействительный токен. И так по кругу В общем, много вкладок использовать можно, но следите, чтобы токен у всех вкладок был одинаковый.
  14. Проверьте хорошо, работаете с одной вкладки/окна браузера?
  15. Выкидывает прямо насильно что ли? Сидишь заполняешь - и бах, просит пароль? Информация в консоли к этому отношения не имеет.
  16. Открываете отладку (а-ка Инструменты разработчика) в гугл хроме (F12 или правой кнопкой - посмотреть код) или в любом другой вменяемом браузере, выделяете стрелочкой (самая левая верхняя иконка отладки) место, смотрите как называется блок, перед/после которого хотите поставить таймер. Ищите этот блок в файле, вставляете - профит.
  17. Для начала из SEO URL уберите все символы и пробелы, слова разделяйте дефисами, о чем уже сказали. Например, так: uf-i-led-lampy ссfl-2Bled-2036-vt Когда url станут нормального вид , тогда можно подумать дальше, если ошибка не уйдет.
  18. Ничего не понятно, вы просто открываете страницу с категориями, а там 500ая ошибка? Или она возникает в ходе какого-то процесса?
  19. А, теперь стало яснее. Во-первых, убрать href="javascript:;" вообще, во-вторых, править вызываемый метод remove() объекта cart (привел ниже, из Вашего common.js), там он Вас и редиректит. 'remove': function(key) { $.ajax({ url: 'index.php?route=checkout/cart/remove', type: 'post', data: 'key=' + key, dataType: 'json', success: function(json) { if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { location = 'index.php?route=checkout/cart'; } else { $('#cart_block #cart_content').load('index.php?route=common/cart/info #cart_content_ajax'); $('#cart_block #total_price_ajax').load('index.php?route=common/cart/info #total_price'); $('#cart_block #cart_count_ajax').load('index.php?route=common/cart/info #cart_count'); $('#cart-total').html(json['total']); } } }); }
  20. Не так давно пришел в Опенкарт, раньше работал по большей части с фреймворками, где контроллеры максимально тонкие. Увидел контроллер OC с выгрузкой каждой переменной из language файла и отравкой в $data массив, сразу захотелось добавить две строчки кода для быстрой автоматической загрузки lang во view. Зашел в языковой класс (system/library/language.php) и смутился - вот прямо перед глазами два метода: all() и merge(), чтобы взять все из твоего lang файла и отправить во вью. Подгрузка всей языковой даты выглядела бы так: $data = $this->language->all(); $this->language->merge($data); При этом, над ними висит комментарий: // Please dont use the below function i'm thinking getting rid of it. То есть деприкатный метод. Это история для версии 2.3. Зашел в 3.0.2, merge() теперь нет (но не очень-то и нужен, повторял нативную php функцию), all() до сих пор висит, но уже без строчки "не пользоваться", и в некоторых контроллерах из коробки ее уже пользуют. И вот думаешь - зачем столько копипаста в каждом контроллере, когда есть замечательный метод автоимпорта текстов в view? Никаким DRY-ем и не пахнет Так что опенкарт сам подталкивает временами к какой-то бездумной не структурированной работе, и приходится этому сопротивляться)
  21. Не psr-2, конечно, но более менее читаемо Мешанина из отсутствия и присутствия фигурных скобок в условии, тернарных и обычных вариантов if-а в двух строчках - ниче хорошего с точки зрения красоты точно, но иногда это не самое главное. Привести код к красоте проще, чем его написать+запустить
  22. По первому вопросу, чтобы лучше понять: а возможность опенкарта из коробки продавать загружаемые файлы не подходит по какому параметру? Загружаете в админке цифровые товары, после оплаты они появляются в личном кабинете пользователя для скачивания. Отправить на почту ссылку на скачивание или сам файл не сложно. Ссылку отдавать в личном кабинете тоже можно, если подкрутить немного, но даже без подкрутки как раз txt со ссылкой можно отдавать. По второму вопросу: год назад искал сервис для приема всего, кроме ВМ (он отдельно подключен), но с обязательным требованием приема платежей для физ лица. Выбрал Walletone, агрегирует все, что нужно. Процент местами конечно грабительский, но когда была Робокасса, было хуже. Вывожу на карту, для физлиц лимит 15000 за одну операций. Процент берут с меня, для юрлиц, по-моему, можно выставить процент для клиента. Модули тоже есть для валлетки на опенкарт. Для юриков в общем нужно узнавать, но много кто пользуется.
  23. Вы можете описать подробнее симптомы, возможно создатель модуля поймет Вас по одному предложению, лично я не могу. 1. У вас реально по результату приходит только стоимость одного товара на весь заказ? Можете сделать скриншоты куда приходит и что написано? 2. Откуда вы взяли эту строчку кода 'initialPrice' => $product['price']? Разбираетесь в коде, или как она попала к Вам? Почему вызвала сомнения в правильности передачи данных? 3. Если верхняя строчка кода из моделей модуля (и если в коде вы разбираетесь), то присмотритесь, в цикле foreach ($orderProducts as $product) собирается массив массивов $order['items'][], в который падает каждый товар, в частности в него попадает стоимость каждого продукта (ваша строчка кода). Значит все данные есть, и если есть такая необходимость, модуль или вы сами можете их достать. Реально не понятно в чем проблема, и причем тут эта строчка, выдранная из цикла.
  24. При обновлении страницы выскакивает окно "Подтвердите повторную отправку формы" ? Если да - то это нормально, что кладется еще раз. Вкратце: когда браузер загружает страницу, он дает серверу команду: "ДАЙ мне страницу по адресу такому-то". Когда вы нажимаете на кнопку "положить в корзину", браузер дает серверу команду "ПОЛОЖИ выбранный товар в корзину". Когда вы нажимаете на кнопку "обновить", то браузер повторяет последнюю команду к данной странице, собственно посылая еще раз команду "ПОЛОЖИ...". Это нормально, так работает интернет. В нашем современном мире проблема решается отправкой ajax запроса (запрос "в фоновом режиме", без перезагрузки страницы), получением ответа и изменением корзины, как собственно и реализовано из коробки в Опенкарте. Другие способы в случае с интернет-магазином - изврат.
×
×
  • Створити...

Important Information

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