Jump to content

Taaliman

Новичок
  • Content Count

    10
  • Joined

  • Last visited

Community Reputation

1 Обычный

About Taaliman

  • Rank
    Пользователь

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

    Отличный модуль! После несложной адаптации - незаменим при работе с мультимагазином. К тому же, благодаря модулю и автозаполнению некоторых geo-полей, процедура оформления заказа немного упрощается, что тоже очень радует. Автор модуля отзывчивый и всегда отвечает. Рекомендую всем!
  1. По-хорошему, файл system/library/session/db.php должен быть таким: <?php /* CREATE TABLE IF NOT EXISTS `session` ( `session_id` varchar(32) NOT NULL, `data` mediumtext NOT NULL, `expire` datetime NOT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; */ namespace Session; final class DB { public $expire = ''; public function __construct($registry) { $this->db = $registry->get('db'); $this->expire = ini_get('session.gc_maxlifetime'); $this->gc(); } public function read($session_id) { $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > now()"); if ($query->num_rows) { return json_decode($query->row['data'], true); } else { return false; } } public function write($session_id, $data) { if ($session_id) { $this->db->query("REPLACE INTO `" . DB_PREFIX . "session` SET session_id = '" . $this->db->escape($session_id) . "', `data` = '" . $this->db->escape(json_encode($data)) . "', expire = DATE_ADD(NOW(), INTERVAL " . $this->expire . " SECOND)"); } return true; } public function destroy($session_id) { $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'"); return true; } public function gc() { $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire <= now()"); return true; } } Тут на самом деле три фикса: Более правильная работа с полем expire, используя только возможности MySQL. Для поля data следует использовать гораздо больше, чем 64Кб (т. е. вместо TEXT лучше юзать MEDIUMTEXT, чего вполне должно хватить на все случаи жизни). На практике у меня ломались сессии из-а того, что накапливалось около 1Мб сессионных данных и они тупо не сохранялись из-за чего в магазине происходила мистика. В метод gc() нет необходимости передавать параметр. Обратил внимание, что даже в master-ветке opencart-а на github-е, фиксы какие-то странные. Хотелось бы услышать критику по этим фиксам и может я что-то не учёл.
  2. На дворе 2020, а я столкнулся с той же проблемой сессий. Удивляет сам факт, что почти за два года проблему так и не пофиксили. Посмотрел репозиторий opencart-а на github-и вроде бы работа идёт полным ходом, хотя ветка 3.0.x какая-то заброшенная и активно идёт работа над веткой 3.1.x. Не значит ли это, что ветка 3.0.x обречена и все фиксы делаются в 3.1.x?
  3. 1. Важно, чтобы использовался шаблон (Customer register), редактируемые через этот модуль. 2. Да много чего может быть со временем. К примеру: параметры генерируемого пароля (только буквы, только цифры, буквы+цифры+спецсимволы) флаг, указывающий, нужно ли делать автологин после регистрации (по-умолчанию - не нужно). Страница, куда делать редирект, после регистрации (актуален, в случае, если флаг автологина после регистрации не установлен). редиректить например на страницу логина (/login). название поля, которое можно использовать в шаблоне письма (например, {password}). дефолтные значения для разных полей (имя, фамилия и т. д.)
  4. Simple разве без рукопликладств сможет предоставить форму с одним email-ом и автогенерацией пароля отправляемого в письме?
  5. OC: 3.0.3.2 Theme: FeelMart Требуется разработать модуль для регистрации по email. Форма регистрации должна быть настраиваемой и по-умолчанию использовать стили темы, пример формы по-умолчанию: --------------------------------------------------------- Email | Введите свой email | * На ваш почтовый адрес будет отправлен пароль Ваши личные данные будут использоваться для улучшения качества обслуживания, для управления доступом к вашей учетной записи и для других целей, описанных в "политика конфидеyциальности". [ РЕГИСТРАЦИЯ ] --------------------------------------------------------- На бэкенде должен создаваться пользователь и ему должно отправляться уведомление со сгенерированным паролем. При этом для шаблона письма должны использоваться настройки модуля (там есть возможность привязывать шаблоны к любым письмам, отсылаемым из пользовательских модулей). Разрабатывать полноценныйраздел для админки на начальном этапе нет необходимости, достаточно, чтобы была возможность всё настраивать через конфиг. В дальнейшем, когда модуль будет доведён до ума, для модуляможно будет разработать удобные раздел с настройками в админке. Все остальные детали касательно интеграции с темой уже обсудим в процессе. С предложениями пишите в личку. P.S.: Хотелось бы найти разработчика,с кем можно будет работать в длительной перспективе и по другим доработкам и модулям.
  6. Приветствую! Подскажите, чем ваш модуль отличается от http://cdek.opencart.ru/? И на сколько он хорошо будет дружить с нестандартной темой (например, FeelMart)?
  7. Ну вы же понимаете, что теряете порядка 30% клиентов, которые из-за этого не покупают ваш модуль? Это боязнь чего? Что покупатель будет сам заниматься поддержкой или начнёт барыжить им параллельно или что-то другое? Вот просто интересно. Скажем, появится поддержка ionCube для 7.4 и появится версия PHP 7.5 без поддержки ionCube. Я как правило по готовности релиза, обновляюсь до максимальной версии. И что, опять никак? Или мне из-за вашего модуля не будет возможным обновиться? )) Надбавьте тогда немного по стоимости, да продайте мне без ionCube, просто это идиотизм какой-то, если по-чесноку.
  8. У меня на серваке PHP 7.4.4. IonCube с ним пока не дружит. Понижать версию PHP и ломать тонко настроенную конфигу я не хочу. Как мне приобрести ваш модуль GeoIP Pro?
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.