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

Модуль BOOST - ускоритель OpenCart + AJAX загрузка модулей [Поддержка]


Recommended Posts






  • Submitter
  • Submitted
    07/23/2015
  • Category
  • Ioncube Loader
    Требуется
  • ocStore
    3.0
    2.3.0.2.4
    2.3
    2.2
    2.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х
  • Get request to server of developer
    Нет

 

Надіслати
Поділитися на інших сайтах

Вы конечно молодцы, пустой Опенкарт и на хостинге за 3 копейки летает.

 

А не проще ли выставить например демо-сайт с 100К товаров и показать на что способен ваш модуль?

 

Можно ведь просто в Экселе простым "растягиванием" сделать 100К товаров, типа "Товар 1, Товар 2 и т.д" и пару сотен категорий, и уже потом хвалить свой модуль.

 

Но показывать как вы говорите ускоритель, который ускоряет сайт до 1000 раз, на пустом сайте, не более, чем маркетинг.  :ugeek:

 

Я не говорю, что модуль не работает, просто нельзя такие модули так рекламировать.

  • +1 2
Надіслати
Поділитися на інших сайтах


Вы конечно молодцы, пустой Опенкарт и на хостинге за 3 копейки летает.

 

А не проще ли выставить например демо-сайт с 100К товаров и показать на что способен ваш модуль?

 

Можно ведь просто в Экселе простым "растягиванием" сделать 100К товаров, типа "Товар 1, Товар 2 и т.д" и пару сотен категорий, и уже потом хвалить свой модуль.

 

Но показывать как вы говорите ускоритель, который ускоряет сайт до 1000 раз, на пустом сайте, не более, чем маркетинг.  :ugeek:

 

Я не говорю, что модуль не работает, просто нельзя такие модули так рекламировать.

Особенность модуля в том, что ему в прицепе все равно сколько товаров в магазине, сколько категорий, модулей итд. Практически любой сайт будет грузится почти так же как и пустой демо сайт, то есть доли секунды (генерации на хорошем сервере миллисекунды или даже меньше 1 мс), даже если до этого он грузился 2,3,5 или даже 10 секунд. Только если на сайте много графики, яваскрипт файлов, внешних каких-то библиотек то они после загрузки страницы будут больше подгружаться.

Можете в теме для версии 1.5 отзыва почитать.

В отзывах человек дает свой рабочий сайт, на котором этом модуль работает.

www.avtotool.com.ua

На сайте более 20924 товаров...

Более 500 категорий...

Более 20 разнообразных модулей стоит...

Надіслати
Поділитися на інших сайтах

20тс это не показатель. Нагрузите серьезно ваш демо сайт

Без разницы :)

Это модуль страничного кеширования, он фактически создает копию почти всей страницы и пишет ее в кеш. После этого при втором и последующих запросах просто отдает эту готовую копию из кеша. При этом вообще не грузится база данных и не грузится весь движок. Получается что практически сайт отдает статическую страницу. Поэтому нагрузка на сам сервер падает в десятки если не сотни раз, соответственно и нагрузка, которую сайт может выдержать из-за уменьшения нагрузки так же увеличивается в десятки раз.

Надіслати
Поділитися на інших сайтах

Как бы там не было - создать демо сайт с 50.000 товаров и 100-400 категориями дело - 30-45 минут максимум. Это очень повысило бы доверие к модулю. Если проблема с хостингом - то могу предоставить. обычный шаред-хостинг - заодно и будет видно как магазин будет работать на таком хосте...

 

а так очень заинтересован в модуле.

Надіслати
Поділитися на інших сайтах


Без разницы :)

Это модуль страничного кеширования, он фактически создает копию почти всей страницы и пишет ее в кеш. После этого при втором и последующих запросах просто отдает эту готовую копию из кеша. При этом вообще не грузится база данных и не грузится весь движок. Получается что практически сайт отдает статическую страницу. Поэтому нагрузка на сам сервер падает в десятки если не сотни раз, соответственно и нагрузка, которую сайт может выдержать из-за уменьшения нагрузки так же увеличивается в десятки раз.

 

Сколько будет стоить с установкой или там всё просто?

Надіслати
Поділитися на інших сайтах


Как бы там не было - создать демо сайт с 50.000 товаров и 100-400 категориями дело - 30-45 минут максимум. Это очень повысило бы доверие к модулю. Если проблема с хостингом - то могу предоставить. обычный шаред-хостинг - заодно и будет видно как магазин будет работать на таком хосте...

 

а так очень заинтересован в модуле.

1. создать демо сайт на 50 тыс. товаров дело не 30 минут. Хостинг есть. Нету базы с реальными данными. Дайте базу, создам такой сайт, без проблем

2. это будет сайт без модулей и темы, опять же нужно все это для более менее нормального демо

3. самым лучшим демо являются уже рабочие сайты с установленными на них модулями, модуль работает на больше чем 100 сайтах, один сайт рабочий я давал выше в комментариях.

Можете также почитать комментарии в теме для версии 1.5 модуля, там много сообщений, отзывов итд.

Или спрашивайте если есть вопросы.

Я понимаю ваши сомнения, но модуль реально делает то, что описано в описании. Скорость генерации страницы из кеша реально тысячные доли секунды, а иногда даже меньше 1мс. И это не зависимо от к-ва товаров на сайте, хоть миллион.

 

Сколько будет стоить с установкой или там всё просто?

Там все просто, есть инструкция, нужно добавить штук 5-6 строк кода. + есть поддержка, если будут вопросы всегда помогу,

илу рублей за 150 могу даже установить вам этот модуль сам.  

 

как бы там не было, но 500 тыс товаров это 500 тыс файлов в каталоге- файловом кэше. И вот тут мы и посмотрим у кого кунфу сильнее

Это все теория и домыслы.

А реальность такова, что модуль (версия для 1.5) уже работает на больше чем сотне сайтов. И никто не отключает. Конечно, бывают исключения, они будут в любом модуле, но это крайне редко.

С 99% модулей (разные фильтры, блоги, даже другие модули кеширования) и тем модуль отлично работает, никаких проблем нет.

Надіслати
Поділитися на інших сайтах

  • 1 month later...

После установки и всех настроек выдает ошибку: Fatal error: Cannot redeclare Customer::getCustomerGroupId() in /var/www/.../system/modification/system/library/customer.php on line 161.

 

Удалил в файле customer.php:

public function getCustomerGroupId() {
return $this->customer_group_id;
}

 

Это помогло, но до следующего обновления кеша модификаторов. Все повторяется. Нужна помощь!

 

Вот полностью содержание customer.php:

class Customer {
private $customer_id;
private $firstname;
private $lastname;
private $email;
private $telephone;
private $fax;
private $newsletter;
private $customer_group_id;
private $address_id;

public function __construct($registry) {
$this->config = $registry->get('config');
$this->db = $registry->get('db');
$this->request = $registry->get('request');
$this->session = $registry->get('session');

if (isset($this->session->data['customer_id'])) {
$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE customer_id = '" . (int)$this->session->data['customer_id'] . "' AND status = '1'");

if ($customer_query->num_rows) {
$this->customer_id = $customer_query->row['customer_id'];
$this->firstname = $customer_query->row['firstname'];
$this->lastname = $customer_query->row['lastname'];
$this->email = $customer_query->row['email'];
$this->telephone = $customer_query->row['telephone'];
$this->fax = $customer_query->row['fax'];
$this->newsletter = $customer_query->row['newsletter'];
$this->customer_group_id = $customer_query->row['customer_group_id'];
$this->address_id = $customer_query->row['address_id'];

$this->db->query("UPDATE " . DB_PREFIX . "customer SET cart = '" . $this->db->escape(isset($this->session->data['cart']) ? serialize($this->session->data['cart']) : '') . "', wishlist = '" . $this->db->escape(isset($this->session->data['wishlist']) ? serialize($this->session->data['wishlist']) : '') . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE customer_id = '" . (int)$this->customer_id . "'");

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_ip WHERE customer_id = '" . (int)$this->session->data['customer_id'] . "' AND ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'");

if (!$query->num_rows) {
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_ip SET customer_id = '" . (int)$this->session->data['customer_id'] . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', date_added = NOW()");
}
} else {
$this->logout();
}
}
}

public function login($email, $password, $override = false) {
if ($override) {
$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND status = '1'");
} else {
$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1' AND approved = '1'");
}

if ($customer_query->num_rows) {
$this->session->data['customer_id'] = $customer_query->row['customer_id'];

$this->session->data['customer_group_id'] = $customer_query->row['customer_group_id'];


if ($customer_query->row['cart'] && is_string($customer_query->row['cart'])) {
$cart = unserialize($customer_query->row['cart']);

foreach ($cart as $key => $value) {
if (!array_key_exists($key, $this->session->data['cart'])) {
$this->session->data['cart'][$key] = $value;
} else {
$this->session->data['cart'][$key] += $value;
}
}
}

if ($customer_query->row['wishlist'] && is_string($customer_query->row['wishlist'])) {
if (!isset($this->session->data['wishlist'])) {
$this->session->data['wishlist'] = array();
}

$wishlist = unserialize($customer_query->row['wishlist']);

foreach ($wishlist as $product_id) {
if (!in_array($product_id, $this->session->data['wishlist'])) {
$this->session->data['wishlist'][] = $product_id;
}
}
}

$this->customer_id = $customer_query->row['customer_id'];
$this->firstname = $customer_query->row['firstname'];
$this->lastname = $customer_query->row['lastname'];
$this->email = $customer_query->row['email'];
$this->telephone = $customer_query->row['telephone'];
$this->fax = $customer_query->row['fax'];
$this->newsletter = $customer_query->row['newsletter'];
$this->customer_group_id = $customer_query->row['customer_group_id'];
$this->address_id = $customer_query->row['address_id'];

$this->db->query("UPDATE " . DB_PREFIX . "customer SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE customer_id = '" . (int)$this->customer_id . "'");

return true;
} else {
return false;
}
}

public function logout() {
$this->db->query("UPDATE " . DB_PREFIX . "customer SET cart = '" . $this->db->escape(isset($this->session->data['cart']) ? serialize($this->session->data['cart']) : '') . "', wishlist = '" . $this->db->escape(isset($this->session->data['wishlist']) ? serialize($this->session->data['wishlist']) : '') . "' WHERE customer_id = '" . (int)$this->customer_id . "'");

unset($this->session->data['customer_id']);

unset($this->session->data['customer_group_id']);


$this->customer_id = '';
$this->firstname = '';
$this->lastname = '';
$this->email = '';
$this->telephone = '';
$this->fax = '';
$this->newsletter = '';
$this->customer_group_id = '';
$this->address_id = '';
}

public function isLogged() {
return $this->customer_id;
}

public function getId() {
return $this->customer_id;
}

public function getFirstName() {
return $this->firstname;
}

public function getLastName() {
return $this->lastname;
}

public function getEmail() {
return $this->email;
}

public function getTelephone() {
return $this->telephone;
}

public function getFax() {
return $this->fax;
}

public function getNewsletter() {
return $this->newsletter;
}


public function getCustomerGroupId() {
return $this->getGroupId();
}



public function getCustomerGroupId() {
return $this->customer_group_id;
}


public function getGroupId() {
return $this->customer_group_id;
}

public function getAddressId() {
return $this->address_id;
}

public function getBalance() {
$query = $this->db->query("SELECT SUM(amount) AS total FROM " . DB_PREFIX . "customer_transaction WHERE customer_id = '" . (int)$this->customer_id . "'");

return $query->row['total'];
}

public function getRewardPoints() {
$query = $this->db->query("SELECT SUM(points) AS total FROM " . DB_PREFIX . "customer_reward WHERE customer_id = '" . (int)$this->customer_id . "'");

return $query->row['total'];
}
}

 

 

Надіслати
Поділитися на інших сайтах


После установки и всех настроек выдает ошибку: Fatal error: Cannot redeclare Customer::getCustomerGroupId() in /var/www/.../system/modification/system/library/customer.php on line 161.

 

 

пишите мне в ЛС или на почту, помогу, эта ошибка означает что у вы или не загрузили ocmod файл или он у вас отработал неправильно, возможно из-за конфликта.

Надіслати
Поділитися на інших сайтах

  • 2 months later...

можно ли запустить на мультимагазине?

да, работать будет, проблема с ключем, если магазинов не много то ключи можно выдать отдельно и ввести через запятую, модуль это поддерживает, но если магазинов много то такой вариант не подойдет, нужно будет искать другое решение. 

Надіслати
Поділитися на інших сайтах

  • 3 weeks later...

Добрый день.Как побороть ?

2015-11-26 16:48:43 - PHP Notice:  Undefined index: status in /home/stroytorg/domains/st-sklad.ru/public_html/admin/view/template/module/boost.tpl on line 281
2015-11-26 16:55:52 - PHP Notice:  Undefined index: status in /home/stroytorg/domains/st-sklad.ru/public_html/admin/view/template/module/boost.tpl on line 281
Надіслати
Поділитися на інших сайтах


Добрый день, при отсутсвии ионкуб и невозможности его поставить про модуль можно забыть? Как его купить если сейчас собираю магазин на тестовом домене в тестовом окружении, потом придется перенести, на продакшен площадку, это два раза надо купить?

Надіслати
Поділитися на інших сайтах


Добрый день, при отсутсвии ионкуб и невозможности его поставить про модуль можно забыть? Как его купить если сейчас собираю магазин на тестовом домене в тестовом окружении, потом придется перенести, на продакшен площадку, это два раза надо купить?

без ioncube модуль работать не будет,

для тестового домена я могу дать отдельный ключ

Надіслати
Поділитися на інших сайтах

  • 3 months later...

На данный момент остро встал вопрос о небольших изменениях на данном модуле.

1 - нужно чтобы модуль не трогал цена на сайте. 

2 - или как выход ставить кэш на 1 час и сбрасывать его.

Потому что есть модули по обновлению цен через прайсы и есть модуль ночные скидки - который меняет цены на % и через некоторое время восстанавливает цены которые были до изменения. временной интервал ночных скидок - с 19:00-7:00 по мск.

Есть ли рациональный выход по данному вопросу ?

 

Изменил время жизни кэша с 36500 на 3600 - насколько это эффективно? и чистится ли кэш ?

Змінено користувачем xirosima
Надіслати
Поділитися на інших сайтах


На данный момент остро встал вопрос о небольших изменениях на данном модуле.

1 - нужно чтобы модуль не трогал цена на сайте. 

2 - или как выход ставить кэш на 1 час и сбрасывать его.

Потому что есть модули по обновлению цен через прайсы и есть модуль ночные скидки - который меняет цены на % и через некоторое время восстанавливает цены которые были до изменения. временной интервал ночных скидок - с 19:00-7:00 по мск.

Есть ли рациональный выход по данному вопросу ?

 

Изменил время жизни кэша с 36500 на 3600 - насколько это эффективно? и чистится ли кэш ?

1. это не возможно и я уже отвечал на этот вопрос где-то на этом форуме и вроде не раз.

Потому что модуль создает кеш ВСЕЙ страницы, а не каких-то отдельных блоков на ней. Модуль дает возможность грузить какие-то блоки через аякс, если их относительно немного, но если это цена, может находится в десятках местах на странице (список товаров, блоки, банеры итд.) то для того, чтобы загрузить все через аякс нужно выполнить десятки аякс запросов что только увеличит время загрузки страницы, а не уменьшит его.

да, можно как-то чистить через крон или установить время жизни кеша маленький, напр. час. Эффективно ли это зависит от того, сколько раз за это время пользователи загрузят эту страницу, чем больше тем больше она загрузится из кеша и тем больше будет эффект.

Надіслати
Поділитися на інших сайтах

или, например

        require_once(DIR_SYSTEM .  'driver' . '.php');
        $this->cache = Driver ($expire);
        $this->cache->delete();
Надіслати
Поділитися на інших сайтах

или, например

        require_once(DIR_SYSTEM .  'driver' . '.php');
        $this->cache = Driver ($expire);
        $this->cache->delete();
 
метод модуля для очистки кеша

 

public function clearCache($key='') {

 
    $settings = $this->config->get('boost_options');
    
    if (isset($settings['cache_type']) && $settings['cache_type']) {
      $cache_type = $settings['cache_type'];
    } else {
      $cache_type = 'file';
    }
 
    if (isset($settings['expire']) && $settings['expire']) {
      $expire = $settings['expire'];
    } else {
      $expire = 84000;
    }
 
    require_once(DIR_SYSTEM . 'library/boost/cache/' . $cache_type . '.php');
 
    $cache_class = 'Boost' . $cache_type;
    $cache = new $cache_class ($expire);
 
    $cache->delete($key);
  }
  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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