Перейти к содержанию
Официальный форум поддержки Simpla

Как избавиться от подобных окончаний ?0d94d4f282e8b4ff474e96beb50e18d6 на картинках?


Рекомендуемые сообщения

Всем привет!
Подскажите пожалуйста, как избавиться от таких окончаний - ?0d94d4f282e8b4ff474e96beb50e18d6 которые добавляются на все картинки товаров?
т.е. к примеру:
сейчас: /files/products/Samsung-Galaxy-Mini-S5570.200x200.jpg?0d94d4f282e8b4ff474e96beb50e18d6
надо: /files/products/Samsung-Galaxy-Mini-S5570.200x200.jpg

Ссылка на сообщение
Поделиться на другие сайты

это ?0d94d4f282e8b4ff474e96beb50e18d6 GET запрос - имя картинки которое передается в resize.php

если в design поверять наличие картинки и если она есть то не ставить GET запрос

Денис, это как то нагрузит систему?

Ссылка на сообщение
Поделиться на другие сайты

Вот этим надо обновить Design.php в функции resize_modifier

if(@file_exists($this->config->root_dir.$this->config->original_images_dir.$resized_filename_encoded))
return $this->config->root_url.$this->config->original_images_dir.$resized_filename_encoded;
else
return $this->config->root_url.$this->config->original_images_dir.$resized_filename_encoded.'?'.$this->config->token($resized_filename);

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, что мой вопрос не остался не замеченным!

Но я не совсем понял как быть с выше указанным кодом.
Прошу объяснить на примере.

Вот функция:

public function resize_modifier($filename, $width=0, $height=0, $set_watermark=false)
{
$resized_filename = $this->image->add_resize_params($filename, $width, $height, $set_watermark);
$resized_filename_encoded = $resized_filename;

if(substr($resized_filename_encoded, 0, 7) == 'http://')
$resized_filename_encoded = rawurlencode($resized_filename_encoded);

$resized_filename_encoded = rawurlencode($resized_filename_encoded);

return $this->config->root_url.'/'.$this->config->resized_images_dir.$resized_filename_encoded.'?'.$this->config->token($resized_filename);
}

Что и как здесь нужно заменить?

Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

public function resize_modifier($filename, $width=0, $height=0, $set_watermark=false)
{
$resized_filename = $this->image->add_resize_params($filename, $width, $height, $set_watermark);
$resized_filename_encoded = $resized_filename;

if(substr($resized_filename_encoded, 0, 7) == 'http://')
$resized_filename_encoded = rawurlencode($resized_filename_encoded);

$resized_filename_encoded = rawurlencode($resized_filename_encoded);

if(@file_exists($this->config->root_dir.$this->config->original_images_dir.$resized_filename_encoded))
return $this->config->root_url.$this->config->original_images_dir.$resized_filename_encoded;
else
return $this->config->root_url.$this->config->original_images_dir.$resized_filename_encoded.'?'.$this->config->token($resized_filename);
}

Ссылка на сообщение
Поделиться на другие сайты

Таким образом если заданного размера не существует функция, при первом обращении вернет
Samsung-Galaxy-Mini-S5570.200x200.jpg?0d94d4f282e8b4ff474e96beb50e18d6
а при последующих
Samsung-Galaxy-Mini-S5570.200x200.jpg

Ссылка на сообщение
Поделиться на другие сайты

Функцию заменил, теперь при выводе картинки не выводятся, а если смотреть в исходном коде, то ?0d94d4f282e8b4ff474e96beb50e18d6 осталось.

Может эти манипуляции нужно произвести в другом месте, которое отвечает за вывод картинок на странице?

Я менял код в /api/Design.php

Ссылка на сообщение
Поделиться на другие сайты

мой косяк! попробуй вот это

public function resize_modifier($filename, $width=0, $height=0, $set_watermark=false)
{
$resized_filename = $this->image->add_resize_params($filename, $width, $height, $set_watermark);
$resized_filename_encoded = $resized_filename;

if(substr($resized_filename_encoded, 0, 7) == 'http://')
$resized_filename_encoded = rawurlencode($resized_filename_encoded);

$resized_filename_encoded = rawurlencode($resized_filename_encoded);

//return $this->config->root_url.'/'.$this->config->resized_images_dir.$resized_filename_encoded.'?'.$this->config->token($resized_filename);

if(@file_exists($this->config->root_dir.'/'.$this->config->resized_images_dir.$resized_filename_encoded))
return $this->config->root_url.'/'.$this->config->resized_images_dir.$resized_filename_encoded;
else
return $this->config->root_url.'/'.$this->config->resized_images_dir.$resized_filename_encoded.'?'.$this->config->token($resized_filename);

}

Ссылка на сообщение
Поделиться на другие сайты

Сначала так и хотел сделать в Симпле, но потом решил что параметр в картинке это меньшее зло чем делать file_exists при каждом вызове resize (а ведь он вызывается по много раз на странице)

Ссылка на сообщение
Поделиться на другие сайты

если я все правильно замерил - нагрузка на локалхосте совсем незначительная.

Заметил небольшую корявость - в родном шаблоне изображение Фотоаппарат Canon Digital IXUS 1000 HS постоянно отправляется на ресайз, хотя изображение создано.

получается если изображение имеет пробелы в названии, оно постоянно масштабируется?

Ссылка на сообщение
Поделиться на другие сайты

> получается если изображение имеет пробелы в названии, оно постоянно масштабируется?
Не должно, видимо какой-то баг. Я проверю

Ссылка на сообщение
Поделиться на другие сайты

Не получается воспроизвести ошибку.
Например на демо-сайте ресайз сохраняется:
http://demo.simplacms.ru/files/products/IXUS-1000%20HS%20BROWN.300x300.jpg

На фтп конечно тоже этот файл есть. При удалении оригинала картинка остается, а значит не ресайзится каждый раз

Ссылка на сообщение
Поделиться на другие сайты

есть вариант не убирать параметр но немного его изменить, сделать красивым? :-)

например вот такого плана:

/files/products/200x200/Samsung-Galaxy-Mini-S5570.jpg

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

Два дня назад была тема такая - там все ответы даны. Не надо заниматься некропостингом.

а можно ссылочку на тему? не читал.

А вот rawurlencode() не знаю, какую пользу дает при проверке file_exists()

 

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...