igor_k Опубликовано 28 марта, 2012 Жалоба Поделиться Опубликовано 28 марта, 2012 Всем привет!Подскажите пожалуйста, как избавиться от таких окончаний - ?0d94d4f282e8b4ff474e96beb50e18d6 которые добавляются на все картинки товаров?т.е. к примеру:сейчас: /files/products/Samsung-Galaxy-Mini-S5570.200x200.jpg?0d94d4f282e8b4ff474e96beb50e18d6надо: /files/products/Samsung-Galaxy-Mini-S5570.200x200.jpg Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 28 марта, 2012 Жалоба Поделиться Опубликовано 28 марта, 2012 это ?0d94d4f282e8b4ff474e96beb50e18d6 GET запрос - имя картинки которое передается в resize.phpесли в design поверять наличие картинки и если она есть то не ставить GET запросДенис, это как то нагрузит систему? Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 28 марта, 2012 Жалоба Поделиться Опубликовано 28 марта, 2012 Вот этим надо обновить Design.php в функции resize_modifierif(@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); Цитата Ссылка на сообщение Поделиться на другие сайты
igor_k Опубликовано 29 марта, 2012 Автор Жалоба Поделиться Опубликовано 29 марта, 2012 Спасибо, что мой вопрос не остался не замеченным!Но я не совсем понял как быть с выше указанным кодом.Прошу объяснить на примере.Вот функция: 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); }Что и как здесь нужно заменить?Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 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); } Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 Таким образом если заданного размера не существует функция, при первом обращении вернет Samsung-Galaxy-Mini-S5570.200x200.jpg?0d94d4f282e8b4ff474e96beb50e18d6а при последующихSamsung-Galaxy-Mini-S5570.200x200.jpg Цитата Ссылка на сообщение Поделиться на другие сайты
igor_k Опубликовано 29 марта, 2012 Автор Жалоба Поделиться Опубликовано 29 марта, 2012 Функцию заменил, теперь при выводе картинки не выводятся, а если смотреть в исходном коде, то ?0d94d4f282e8b4ff474e96beb50e18d6 осталось.Может эти манипуляции нужно произвести в другом месте, которое отвечает за вывод картинок на странице?Я менял код в /api/Design.php Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 именно эта функция и отвечает за вывод картинки, сейчас посмотрю... Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 мой косяк! попробуй вот это 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); } Цитата Ссылка на сообщение Поделиться на другие сайты
igor_k Опубликовано 29 марта, 2012 Автор Жалоба Поделиться Опубликовано 29 марта, 2012 Все отлично!!!Большое спасибо!!! Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 Сначала так и хотел сделать в Симпле, но потом решил что параметр в картинке это меньшее зло чем делать file_exists при каждом вызове resize (а ведь он вызывается по много раз на странице) Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 я тоже об этом подумал, потому сперва спросил как данная функция нагрусит запрос. Надо бы как то протестировать... Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 если я все правильно замерил - нагрузка на локалхосте совсем незначительная.Заметил небольшую корявость - в родном шаблоне изображение Фотоаппарат Canon Digital IXUS 1000 HS постоянно отправляется на ресайз, хотя изображение создано.получается если изображение имеет пробелы в названии, оно постоянно масштабируется? Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 > получается если изображение имеет пробелы в названии, оно постоянно масштабируется?Не должно, видимо какой-то баг. Я проверю Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 Не получается воспроизвести ошибку.Например на демо-сайте ресайз сохраняется:http://demo.simplacms.ru/files/products/IXUS-1000%20HS%20BROWN.300x300.jpgНа фтп конечно тоже этот файл есть. При удалении оригинала картинка остается, а значит не ресайзится каждый раз Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 значит @file_exists как то коряво работает с подобным случаем Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 29 марта, 2012 Жалоба Поделиться Опубликовано 29 марта, 2012 есть вариант не убирать параметр но немного его изменить, сделать красивым? :-)например вот такого плана:/files/products/200x200/Samsung-Galaxy-Mini-S5570.jpg Цитата Ссылка на сообщение Поделиться на другие сайты
homogen Опубликовано 13 июня, 2013 Жалоба Поделиться Опубликовано 13 июня, 2013 значит @file_exists как то коряво работает с подобным случаем$resized_filename надо проверять Цитата Ссылка на сообщение Поделиться на другие сайты
alaster Опубликовано 13 июня, 2013 Жалоба Поделиться Опубликовано 13 июня, 2013 Два дня назад была тема такая - там все ответы даны. Не надо заниматься некропостингом. Цитата Ссылка на сообщение Поделиться на другие сайты
homogen Опубликовано 13 июня, 2013 Жалоба Поделиться Опубликовано 13 июня, 2013 Два дня назад была тема такая - там все ответы даны. Не надо заниматься некропостингом.а можно ссылочку на тему? не читал.А вот rawurlencode() не знаю, какую пользу дает при проверке file_exists() Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.