Skip to content

Instantly share code, notes, and snippets.

@weismannweb
Last active April 23, 2024 12:45
Show Gist options
  • Select an option

  • Save weismannweb/8add8fab5be99854db5c618d751281b2 to your computer and use it in GitHub Desktop.

Select an option

Save weismannweb/8add8fab5be99854db5c618d751281b2 to your computer and use it in GitHub Desktop.
Caches category data for Opencart 3.0 to make it faster. Opencart installs with alot of categories are really slow. http://forum.opencart.com/viewtopic.php?f=161&t=126241
<modification>
<id>Cache category data to speed up page load for store with many categories and sub categories.</id>
<version>1.0.1</version>
<vqmver>2.3.2</vqmver>
<author>Weismann Web - www.weismannweb.com</author>
<file name="catalog/controller/extension/module/category.php">
<operation>
<search position="after"><![CDATA[
foreach ($categories as $category) {
]]></search>
<add><![CDATA[
$category_data = $this->cache->get('vqmod_category_data_controller_module_category_'.$data['category_id'].'_'.$this->config->get('config_store_id'));
if ($category_data) {
$data['categories'] = $category_data;
break;
}
]]></add>
</operation>
<operation>
<search position="replace"><![CDATA[
return $this->load->view('extension/module/category', $data);
]]></search>
<add><![CDATA[
if (empty($category_data)) {
$this->cache->set('vqmod_category_data_controller_module_category_'.$data['category_id'].'_'.$this->config->get('config_store_id'), $data['categories']);
}
return $this->load->view('extension/module/category', $data);
]]></add>
</operation>
</file>
<file name="catalog/controller/common/menu.php">
<operation>
<search position="after"><![CDATA[
foreach ($categories as $category) {
]]></search>
<add><![CDATA[
$category_data = $this->cache->get('vqmod_category_data_controller_common_header'.$this->config->get('config_store_id'));
if ($category_data) {
$data['categories'] = $category_data;
break;
}
]]></add>
</operation>
<operation>
<search position="replace"><![CDATA[
return $this->load->view('common/menu', $data);
]]></search>
<add><![CDATA[
if (empty($category_data)) {
$this->cache->set('vqmod_category_data_controller_common_header'.$this->config->get('config_store_id'), $data['categories']);
}
return $this->load->view('common/menu', $data);
]]></add>
</operation>
</file>
</modification>
@weismannweb
Copy link
Copy Markdown
Author

weismannweb commented Feb 28, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment