Разделы

  
 

[EVO] по следам PhpThumbOf - Final

Сборка наработанного материала, навеянная необходимостью доработки и упрощения существующих методов создания превиюшек для Evolution.

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

Для ровной работы сниппета требуются оригинальные библиотеки phpThumb



( Читать дальше )

[EVO]по следам PhpThumbOf 2 =)

Финальная версия!

Куда то делась тема, где один товарищ выложил данный сниппет, использующий оригинальные классы phpthumb:
<?php
/*
    Сниппет создания миниатюр
    Кеш в папке /assets/cache/phpthumbof/*.*
*/
    $replace  = Array("," => "&", "_" => "=");
    $options  = strtr($options, $replace);
    $options .= $_SERVER['HTTP_HOST']."|3|BR|FFFFFF&f=jpg&q=100";

    require_once $_SERVER['DOCUMENT_ROOT']."/assets/snippets/phpthumb/phpthumb.class.php";
    $phpThumb = new phpthumb();
    $phpThumb->setSourceFilename($input); 
    $options = explode("&", $options);
    foreach ($options as $value) {
       $thumb = explode("=", $value);
       $phpThumb->setParameter($thumb[0], $thumb[1]);
    }
    $outputFilename = $_SERVER['DOCUMENT_ROOT']."/assets/cache/phpthumbof/".md5($input.$options).".jpg";
    if (!file_exists($outputFilename))
       if ($phpThumb->GenerateThumbnail())
           $phpThumb->RenderToFile($outputFilename) ;
    $res = explode("/assets", $outputFilename); 
    $res = "/assets".$res[1];
    return $res;
?>


В данной строчке мы видим, что именем нового отресайзеного фала должно быть мд5 от названия + значение опций:
$outputFilename = $_SERVER['DOCUMENT_ROOT']."/assets/cache/phpthumbof/".md5($input.$options).".jpg";


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

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

UPDATE

<?php
/*
    Сниппет создания миниатюр
    Кеш в папке /assets/cache/phpthumbof/*.*
*/
    $replace  = Array("," => "&", "_" => "=");
    $options  = strtr($options, $replace);
    $options .= $_SERVER['HTTP_HOST']."|3|BR|FFFFFF&f=jpg&q=100";

    require_once $_SERVER['DOCUMENT_ROOT']."/assets/snippets/phpthumb/phpthumb.class.php";
    $phpThumb = new phpthumb();
    $phpThumb->setSourceFilename($input); 
    $options = explode("&", $options);
    foreach ($options as $value) {
       $thumb = explode("=", $value);
       $phpThumb->setParameter($thumb[0], $thumb[1]);
    }
    $pt = $modx->getPageInfo($modx->documentIdentifier);
    $outputFilename = $_SERVER['DOCUMENT_ROOT']."/assets/cache/phpthumbof/".md5($input.$pt['id']).".jpg";
    if (!file_exists($outputFilename))
       if ($phpThumb->GenerateThumbnail())
           $phpThumb->RenderToFile($outputFilename) ;
    $res = explode("/assets", $outputFilename); 
    $res = "/assets".$res[1];
    return $res;
?>


Это не поможет, если одно и то же изображение нужно вывести на странице в разных размерах несколько раз. Потому как имена опять таки будут совпадать.

[EVO] Актуальный phpThumb?

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