Merge pull request #22 from PrestaShop/fix-many-categories

Only compute once file list from the category image directory
This commit is contained in:
Pablo Borowicz
2018-12-20 14:02:26 +01:00
committed by GitHub
+11 -3
View File
@@ -52,12 +52,18 @@ class Ps_MainMenu extends Module implements WidgetInterface
*/ */
protected $spacer_size = '5'; protected $spacer_size = '5';
/*
* Array of files from the category image directory
*/
private $imageFiles;
public function __construct() public function __construct()
{ {
$this->name = 'ps_mainmenu'; $this->name = 'ps_mainmenu';
$this->tab = 'front_office_features'; $this->tab = 'front_office_features';
$this->version = '2.1.1'; $this->version = '2.1.1';
$this->author = 'PrestaShop'; $this->author = 'PrestaShop';
$this->imageFiles = null;
$this->bootstrap = true; $this->bootstrap = true;
parent::__construct(); parent::__construct();
@@ -737,10 +743,12 @@ class Ps_MainMenu extends Module implements WidgetInterface
if (isset($category['children']) && !empty($category['children'])) { if (isset($category['children']) && !empty($category['children'])) {
$node['children'] = $this->generateCategoriesMenu($category['children'], 1); $node['children'] = $this->generateCategoriesMenu($category['children'], 1);
$files = scandir(_PS_CAT_IMG_DIR_); if ($this->imageFiles === null) {
$this->imageFiles = scandir(_PS_CAT_IMG_DIR_);
}
if (count(preg_grep('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $files)) > 0) { if (count(preg_grep('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $this->imageFiles)) > 0) {
foreach ($files as $file) { foreach ($this->imageFiles as $file) {
if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1) { if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1) {
$image_url = $this->context->link->getMediaLink(_THEME_CAT_DIR_.$file); $image_url = $this->context->link->getMediaLink(_THEME_CAT_DIR_.$file);
$node['image_urls'][] = $image_url; $node['image_urls'][] = $image_url;