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

Vladzimir

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

    1 500
  • З нами

4 підписники

Технічна підтримка

  • Інше
    https://www.buymeacoffee.com/vladzimir

Інформація

  • Стать
    Не определился
  • Місто:
    Київ/Kyiv

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

Vladzimir's Achievements

Veteran

Veteran (13/14)

  • Dedicated Rare
  • First Post
  • Posting Machine Rare
  • Collaborator
  • Conversation Starter

Recent Badges

335

Репутація

  1. Скопіюйте каталог system до кореневого каталогу завантаження OpenCart. Додайте наведені нижче параметри до system/config/default.php, після чого оновіть кеш модифікаторів в адміністративній панелі: $_['cryptex_key'] = 'RANDOM%STRING'; $_['cryptex_max'] = 9000000; // Верхня межа справжнього ID, не включно. $_['cryptex_smooth'] = 1000000; // Зсув, що додається до зашифрованого значення. $_['cryptex_start'] = 123; // Перший справжній ID, який потрібно приховувати. Цей приклад підтримує справжні ID замовлень до 8999999 включно та створює семизначні публічні ID в діапазоні від 1000000 до 9999999. Вимоги: 64-бітна версія PHP; cryptex_key має бути непорожнім секретним рядком; 0 <= cryptex_start < cryptex_max; cryptex_smooth >= cryptex_start; сума cryptex_max - 1 + cryptex_smooth має вміщуватися в ціле число PHP. Не змінюйте ключ або числові налаштування після створення публічних ID: правильне декодування старих посилань залежить від незмінності цих значень.
  2. В мене є ще одна геніальна реалізація ім. Д.Керра - перманентне оновлення кошика при будь-якому звертанні до сайту system/library/cart/cart.php $this->db->query("UPDATE " . DB_PREFIX . "cart SET session_id = '" . $this->db->escape($this->session->getId()) . "' WHERE api_id = '0' AND customer_id = '" . (int)$this->customer->getId() . "'"); От нахіба так робити, якщо сесія не змінилася? Це ж дуже просто $this->db->query("UPDATE " . DB_PREFIX . "cart SET session_id = '" . $this->db->escape($this->session->getId()) . "' WHERE api_id = '0' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id != '" . $this->db->escape($this->session->getId()) . "'");
  3. Там вся черхарда через $start = $page - floor($num_links / 2); $end = $page + floor($num_links / 2); А в кінці строго порівнюють int з float Але мене дивує що це роками живе в коді і ніхто цього не помічає. І в черговий раз ми отримуємо підтвердження що Д. Керр - говнокодер.
  4. Якщо у вас опенкарт версій 2.* або 3.* ви навіть можете не здогадуватись про цей баг у пагінації. Бо проявляється він тільки на п'ятій сторінці де генерується посилання-дубль головної сторінки виду ?page=1 Ви спитаєте в чому причина? У приведенні типів if ($i === 1) { І так, баг працює вже понад 10 років. Він абсурдний. Його ніхто не помічає, а він є. Лікується дуже просто, прибираєте зайвий = і насолоджуєтесь чистою пагінацією без дублювання першої сторінки. Всіх зі святами!
  5. Новачки обирають пром, де згодом стають інтернет-бомжами. Ті що трохи заробили переходять на усілякий Saas типу харашопу. Де вони і продовжують бомжувати не маючи змоги кастомізуватися та розвиватися. Якщо сайт не у вас на сервері - він вам не належить.
  6. Вузька еконіша, відсутність розробників, велика вартість доповнень. Ну і головне це поробка від .
  7. Можно, але при умові що ви полюбляєте садомазо
  8. Та я вже зрозумів, що спілкуюся з чатжпт. Питання риторичне, але з якого моменту форк публічного репозиторію на гітхабі став крадіжкою?
  9. Не бачу ніяких протирічь. Ні в тексті ліцензії ні в концепції ООП. Принцип залишається той самий.
  10. Як і будь який програміст, з базовим розумінням ООП, під агрегацією я розумію логіку, за якою один об'єкт містить посилання на інші, але при цьому вони можуть існувати і без нього. На відміну від композиції, де "частини" не можуть існувати без "цілого". Яскравий приклад композиції - модулі опенкарту не можуть "жити" окремо від екосистеми і ядра опенкарту. Що автоматично робить їх похідними роботами.
Гість
×
  • Створити...

Important Information

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