моё ОООООчень простое решение, которое требует чтоб путь не хранился в бд:
после ресайза, генерим новое имя, это я делаю всегда тупым считчиком, предположим нове име 12345.jpg, ложим в 2 папки
/image/ - общая папка воообще для всех картинок
--/original/12345.jpg (вдруг понадобиться еще один размер чтоб было от чего отресайзить)
--/300x300/12345.jpg
--/50x50/12345.jpg
соответсвенно в бд требуется 1 колонка куда я спокойно записываю только название и расширение
таблица news:
id|title|img
1|news 1|12345.jpg
после когда верстальшик делат вывод я ему в шаблон отдаю всю запись
а также говорю что есть функцию для формирования
в итоге получается 2 шаблона
шаблон 1 список
<?php foreach ($items as $item): ?>
<div>
<img src="<?php image_url($item['img'],'50x50');?>" />
<?php echo $item['title']; ?>
</div>
<?php endforeach;?>
шаблон 2 сама новость
<div>
<img src="<?php image_url($item['img'],'300x300');?>" />
<?php echo $item['title']; ?>
и тут еще всякие текста которых нет в бд т.к. они не нужны для этой темы
</div>
у меня есть 2 функции:
Свернутый текст
/**
* в этих константах настройки, которые все хранят где хотят и как хотя xD)
* IMAGE_DIR - путь до папки с тумбами картинок относительно корня
* IMAGE_URL - ссылка относительно домена до папки с картинками
* URL_ROOT - сам домен
* DIR_ROOT - корень проекта
*
* всегда и везде есть в конфе слеш.
*
*/
function image_url($name,$size = '150x150')
{
echo image_url_return($name,$size);
}
function image_url_return($name,$size = '150x150')
{
$path = DIR_ROOT . IMAGE_DIR . $size . DIRECTORY_SEPARATOR . $name;
if (file_exists($path))
{
return URL_ROOT . IMAGE_URL . $size . '/' . $name;
}
else
{
return URL_ROOT . IMAGE_URL . $size . '/none.jpg';
}
}
соответвенно
в 1 шаблоне функция принимает значение 12345.jpg и возвращает domen.ru/img/50x50/12345.jpg
в 2 шаблоне функция принимает значение 12345.jpg и возвращает domen.ru/img/300x300/12345.jpg