Jump to content
  • 0

Znak wodny, watermark


jakub0002

Question

Mam problem z wygenerowaniem znaku wodnego na starych obrazkach produktów. Przy dodawaniu nowych produktów wszystko jest ok. Po ponownym wygenerowaniu obrazów nie mają one znaku wodnego. Jaka może być tego przyczyna? 

 

Wersja Presta: 1.6.1.1

Moduł Watermark 1.0.4

 

Z góry dziękuję za pomoc.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Miałem podobny problem z ponownym wygenerowaniem zdjęć ze znakiem wodnym - nie były tworzone. Działo się to gdy na serwerze brakowało jakiegoś obrazka.
Nie były też ponownie generowane zdjęcia typu "no-image". Same zdjęcia bez znaku wodnego były poprawnie generowane.


poniższa poprawka rozwiązuje ten problem, może komuś się przyda
 

<?php

class AdminImagesController extends AdminImagesControllerCore {
    
    protected function _regenerateThumbnails($type = 'all', $deleteOldImages = false) {
        $this->start_time = time();
        ini_set('max_execution_time', $this->max_execution_time); // ini_set may be disabled, we need the real value
        $this->max_execution_time = (int)ini_get('max_execution_time');
        $languages = Language::getLanguages(false);
        

        $process = array(
            array('type' => 'categories', 'dir' => _PS_CAT_IMG_DIR_),
            array('type' => 'manufacturers', 'dir' => _PS_MANU_IMG_DIR_),
            array('type' => 'suppliers', 'dir' => _PS_SUPP_IMG_DIR_),
            array('type' => 'scenes', 'dir' => _PS_SCENE_IMG_DIR_),
            array('type' => 'products', 'dir' => _PS_PROD_IMG_DIR_),
            array('type' => 'stores', 'dir' => _PS_STORE_IMG_DIR_)
        );

        // Launching generation process
        foreach ($process as $proc) {
            if ($type != 'all' && $type != $proc['type']) {
                continue;
            }
            
            // Getting format generation
            $formats = ImageType::getImagesTypes($proc['type']);
            if ($type != 'all') {
                $format = strval(Tools::getValue('format_'.$type));
                if ($format != 'all') {
                    foreach ($formats as $k => $form) {
                        if ($form['id_image_type'] != $format) {
                            unset($formats[$k]);
                        }
                    }
                }
            }

            if ($deleteOldImages) {
                $this->_deleteOldImages($proc['dir'], $formats, ($proc['type'] == 'products' ? true : false));
            }
            
            if (($return = $this->_regenerateNewImages($proc['dir'], $formats, ($proc['type'] == 'products' ? true : false))) === true) {
                if (!count($this->errors)) {
                    $this->errors[] = sprintf(Tools::displayError('Cannot write images for this type: %s. Please check the %s folder\'s writing permissions.'), $proc['type'], $proc['dir']);
                }
            } // elseif ($return == 'timeout') {
                
                
            if ($return === 'timeout') {
                $this->errors[] = Tools::displayError('Only part of the images have been regenerated. The server timed out before finishing.');
                break;
            } else {
                
                if ($proc['type'] == 'products') {
                    $return = $this->_regenerateWatermark($proc['dir'], $formats);
                    if ($return === 'timeout') {
                        $this->errors[] = Tools::displayError('Server timed out. The watermark may not have been applied to all images.');
                        break;
                    }
                }
                
                if ($this->_regenerateNoPictureImages($proc['dir'], $formats, $languages)) {
                    $this->errors[] = sprintf(Tools::displayError('Cannot write "No picture" image to (%s) images folder. Please check the folder\'s writing permissions.'), $proc['type']);
                }
                
            }
        } // ============= foreach
        
        return (count($this->errors) > 0 ? false : true);
    }
    
    
    
}

kod należy umieścić w pliku /override/controllers/admin/AdminImagesController.php

należy też usunąć plik class_index.php z folderu cache

Pozdrawiam

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...