Аватар

#1 12 декабря 2016 в 14:29
Суть в следующем, пользователь, когда заливает аватар и не нажимает сохранить или просто его удаляет и не сохраняет, идет битая ссылка на аватар
как поставить какую то заглушку на этот случай или может быть есть готовые решения, искал не нашел на форуме!

joxi.ru/vAWVY3bs1kRn32
#2 13 декабря 2016 в 10:06
У стиля этой фото задать фон:
  1. background: url(images/nophoto.png)
если фотка не загрузиться будет "светиться" фон с заданной картинкой
#3 13 декабря 2016 в 12:25
На одном сайте, где многие изображения периодически могут быть недоступны по определенным причинам использую это.

  1. <script>
  2. $(document).ready(function(){
  3. $("img").error(function () {
  4. $(this).unbind("error").attr("src", "/images/nopic.jpg");
  5. });
  6. });
  7.  
  8. </script>
  9.  
в главном шаблоне сайта.
Заменяет все ненайденные картинки на заглушку.
#4 14 декабря 2016 в 08:26
Нил™
спасибо большое, а куда лучше вставить?
#5 14 декабря 2016 в 12:57
В <head> </head> секцию.
#6 14 декабря 2016 в 15:43

<script>
$(document).ready(function(){
$("img").error(function () {
$(this).unbind("error").attr("src", "/images/nopic.jpg");
});
});
 
</script>

Нил™
спасибо!!!
#7 19 декабря 2016 в 12:45
Нил™
не помогло — oneinmoscow.com/users/6534
#8 19 декабря 2016 в 13:04
Вот так не будет работать

  1. <script>
  2. $(document).ready(function(){
  3. $("img").error(function () {
  4. $(this).unbind("error").attr("src", "templates/{$this->name}/images/nopic.jpg");
  5. });
  6. });
  7.  
  8. </script>
Если вы это вставили в html часть кода, то
  1. <?php echo $this->name; ?>
У меня работает



Сверху изображение товара не найдено
выводится заглушка
снизу найдено
выводится изображение продукта

Укажите сразу ссылку напрямую один путь для всех шаблонов а уже в css можете устанвливать её размер если надо
#9 19 декабря 2016 в 13:29

<?php echo $this->name; ?>

Нил™
Я правильно понял?
мне нужно в хед вставить:

  1. <script>
  2. $(document).ready(function(){
  3. $("img").error(function () {
  4. $(this).unbind("error").attr("src", "templates/<?php echo $this->name; ?>/images/nopic.jpg");
  5. });
  6. });
  7.  
  8. </script>
или же
  1. <script>
  2. $(document).ready(function(){
  3. $("img").error(function () {
  4. $(this).unbind("error").attr("src", "templates/city/images/nopic.jpg");
  5. });
  6. });
  7.  
  8. </script>
так?
#10 19 декабря 2016 в 14:20

Я правильно понял?
мне нужно в хед вставить:

TOPg
Второй вариант 100%.
#11 19 декабря 2016 в 16:14
Нил™
в виджетах стало, а в самом профиле нет
#12 19 декабря 2016 в 16:22
перед templates слеш поставьте /templates
там возникает проблема с относительными путями к файлу
#13 19 декабря 2016 в 18:04
Нил™
а если так то в профиле появляется, а в виджетах пропадает)
#14 20 декабря 2016 в 13:38
Нил™
???
#15 20 декабря 2016 в 15:17

а если так то в профиле появляется, а в виджетах пропадает)

TOPg
Ну насколько я вижу, и в профиле и на главной странице в списке пользователей (как я понимаю во второй ветке это и есть виджет) у oneinmoscow.com/users/6534
выводится oneinmoscow.com/templates/city/images/nopic.jpg
Почему вы говорите что не работает в виджетах? Работает.

Вообще можно и на php попробовать.


Я со второй версией не работаю вообще, и у меня в настоящее время на денвере нет копии сайта на двойке, что бы проверить, поэтому может быть мой вариант не в тему, но при беглом осмотре, я бы попробовал так.


/system/libs/html.helper.php

вот это

  1. if (strpos($src, $config->upload_host) === false){
  2. if($is_relative){
  3. $src = $config->upload_host . '/' . $src;
  4. } else {
  5. $src = $config->upload_host_abs . '/' . $src;
  6. }
  7. }
  8.  
заменить на это

  1. if (strpos($src, $config->upload_host) === false){
  2. if($is_relative){
  3. $src = $config->upload_host . '/' . $src;
  4. } else {
  5. $src = $config->upload_host_abs . '/' . $src;
  6. }
  7. if (!file_exists($src)) {
  8. $src = '/templates/city/images/nopic.jpg';
  9. }
  10. }
  11.  
  12.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.