Search code examples
phpmodel-view-controlleroverridingprestashopprestashop-1.6

Increase the maximum number of thumbnails per category


In the category management, AdminCategories, I can only upload 3 thumbnails.

I want to increase the maximum number which is allowed. In addition I also want to increase the maximum file size.

I don't found the solution in the method renderForm() in AdminCategoriesController.php


Solution

  • In classes/helper/HelperForm.php

    public function generate ()
    {
    (...)
    case 'file':
                                $uploader = new HelperUploader();
                                $uploader->setId(isset($params['id'])?$params['id']:null);
                                $uploader->setName($params['name']);
                                $uploader->setUrl(isset($params['url'])?$params['url']:null);
                                $uploader->setMultiple(isset($params['multiple'])?$params['multiple']:false);
                                $uploader->setUseAjax(isset($params['ajax'])?$params['ajax']:false);
                                $uploader->setMaxFiles(isset($params['max_files'])?$params['max_files']:null);
    
                                if (isset($params['files']) && $params['files'])
                                    $uploader->setFiles($params['files']);
                                elseif (isset($params['image']) && $params['image']) // Use for retrocompatibility                          
                                    $uploader->setFiles(array(
                                        0 => array(
                                        'type'       => HelperUploader::TYPE_IMAGE,
                                        'image'      => isset($params['image'])?$params['image']:null,
                                        'size'       => isset($params['size'])?$params['size']:null,
                                        'delete_url' => isset($params['delete_url'])?$params['delete_url']:null
                                    )));
    
                                if (isset($params['file']) && $params['file']) // Use for retrocompatibility                            
                                    $uploader->setFiles(array(
                                        0 => array(
                                        'type'       => HelperUploader::TYPE_FILE,
                                        'size'       => isset($params['size'])?$params['size']:null,
                                        'delete_url' => isset($params['delete_url'])?$params['delete_url']:null,
                                        'download_url' => isset($params['file'])?$params['file']:null
                                    )));
    
                                if (isset($params['thumb']) && $params['thumb']) // Use for retrocompatibility                          
                                    $uploader->setFiles(array(
                                        0 => array(
                                        'type'       => HelperUploader::TYPE_IMAGE,
                                        'image'      => isset($params['thumb'])?'<img src="'.$params['thumb'].'" alt="'.(isset($params['title']) ? $params['title'] : '').'" title="'.(isset($params['title']) ? $params['title'] : '').'" />':null,
                                    )));
    
                                $uploader->setTitle(isset($params['title'])?$params['title']:null);
                                $params['file'] = $uploader->render();
                            break;
    (...)
    }
    

    You can override this class and set a custom value with setMaxFiles from HelperUploader class.

    $uploader->setMaxFiles(isset($params['max_files'])?$params['max_files']:null);