Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Заглушка для удаленного аватара

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
rst
phpBB 2.0.1
Сообщения: 255
Стаж: 7 лет 4 месяца
Благодарил (а): 48 раз
Поблагодарили: 6 раз

Заглушка для удаленного аватара

Сообщение rst »

Не нашел подобного обсуждения (расширения). Есть только расширение для установки аватары по умолчанию.

Если пользователь удалил аватару - выглядит это некрасиво. Так поступают немногие и их минипрофиль смотрится "неправильно" среди остальных. Есть ли возможность в случае, когда аватар удален выводить вместо него стандартный аватар заглушку (аватар по-умолчанию)?

Отправлено спустя 4 минуты 26 секунд:
Правильно ли я понимаю, что если сюда

Код: Выделить всё

<!-- IF postrow.POSTER_AVATAR -->
						<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}" class="avatar">{postrow.POSTER_AVATAR}</a><!-- ELSE --><span class="avatar">{postrow.POSTER_AVATAR}</span><!-- ENDIF -->
					<!-- ENDIF -->
добавить ELSE и после него вставку изображения, то получу нужный результат?

Отправлено спустя 1 минуту 48 секунд:
Имеется в виду:

Код: Выделить всё

<!-- IF postrow.POSTER_AVATAR -->
						<!-- IF postrow.U_POST_AUTHOR -->
								<a href="{postrow.U_POST_AUTHOR}" class="avatar">{postrow.POSTER_AVATAR}</a>
						<!-- ELSE -->
								<span class="avatar">{postrow.POSTER_AVATAR}</span>
						<!-- ENDIF -->
<!-- ELSE -->
						 ТУТ ЗАГЛУШКА
<!-- ENDIF -->
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: Заглушка для удаленного аватара

Сообщение rxu »

Либо прописываете всё, что требуется, стилю no-avatar, либо как выше, но ELSE не может стоять после ENDIF.
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Заглушка для удаленного аватара

Сообщение Татьяна5 »

Может стоять else после endif, если они из разных условий. Так, как в примере, сделать можно. Или ещё можно установить одно из расширений noavatar, к примеру http://bb3.mobi/forum/viewtopic.php?t=351
Аватара пользователя
apollion
phpBB 2.0.22
Сообщения: 1382
Стаж: 10 лет 1 месяц
Откуда: Юг Руси
Благодарил (а): 21 раз
Поблагодарили: 70 раз

Re: Заглушка для удаленного аватара

Сообщение apollion »

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

Другое дело - давний глюк\баг\фича.

При переносе юзера в другую группу или назначении ему новой группы "по умолчанию" - аватар сам удаляется.

Т. е. если юзер в двух группах и происходит смена группы по умолчанию, или добавление третьей группы и назначение ее для юзера по умолчанию - аватар юзера пропадает с концами.
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Заглушка для удаленного аватара

Сообщение dimassamid »

apollion писал(а): 01.06.2017 18:00 если юзер удаляет аватар - вместо него отображается аватар группы этого юзера.
С каких-то пор, видимо, это перестало работать. Сейчас, если юзер удаляет свой аватар, то аватар группы сам назад не устанавливается. Если пользователи периодически удаляют аватарки в личном разделе, то все их посты и профиль отображаются некрасиво. Время от времени необходимо повторно заливать картинку для группы в администраторском разделе, чтобы пользователям снова задать это изображение.
Интересно, это баг или фича? Скорее второе. :|
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Заглушка для удаленного аватара

Сообщение dimassamid »

Если у пользователя показывается аватарка группы, то в базе данных в таблице phpbb_users поля у меня имеют следующие значения:
user_avatar g6_1644863708.png
user_avatar_type avatar.driver.upload
user_avatar_width 100
user_avatar_height 100

Если юзер ставил свою персональную аватарку, а затем удалил её, то значения будут такие:
user_avatar
user_avatar_type
user_avatar_width 0
user_avatar_height 0

Может кто подскажет грамотный SQL запрос для того, чтобы привести второе к первому, т.е. установить групповую аватару всем юзерам, кто удалил свою персональную? :oops:
Я бы натравил на всё это дело серверный Cron и пусть каждые сутки выполняет этот запрос :popcorn
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 803
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: Заглушка для удаленного аватара

Сообщение Perfecthus »

dimassamid, Попробуй так:

Код: Выделить всё

UPDATE `pref_users` SET `user_avatar` = 'g6_1644863708.png' AND `user_avatar_type` = 'avatar.driver.upload' AND `user_avatar_width` = '100' AND `user_avatar_height` = '100' WHERE `user_avatar` = '' AND `user_avatar_type` = '' AND `user_avatar_width` = '0' AND `user_avatar_height` = '0';
Префикс к таблице свой поставь, вместо pref_
Аватара пользователя
1smerch1
phpBB 2.0.4
Сообщения: 435
Стаж: 6 лет 5 месяцев
Откуда: Россия
Благодарил (а): 183 раза
Поблагодарили: 15 раз

Re: Заглушка для удаленного аватара

Сообщение 1smerch1 »

Обязательно в базу данных лазить? Может через код есть решение?
Спорт - сила
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 803
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: Заглушка для удаленного аватара

Сообщение Perfecthus »

Кто не даёт реализовать запрос через php? :dontknow
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Заглушка для удаленного аватара

Сообщение dimassamid »

Запрос выполняется без ошибок, но в поле user_avatar прописывается 0 вместо g6_1644863708.png, а другие 3 поля не изменяются вообще :?
Скриншот 
user_avatar.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Заглушка для удаленного аватара

Сообщение Татьяна5 »

Код: Выделить всё

UPDATE `pref_users` SET `user_avatar` = 'g6_1644863708.png', `user_avatar_type` = 'avatar.driver.upload', `user_avatar_width` = '100', `user_avatar_height` = '100' WHERE `user_avatar` = '' AND `user_avatar_type` = '' AND `user_avatar_width` = '0' AND `user_avatar_height` = '0';
Не проверяла, но по синтаксису так
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Заглушка для удаленного аватара

Сообщение dimassamid »

Спасибо! Да, такой вариант работает! :hat

Отправлено спустя 48 минут 25 секунд:
На основании запроса сделал вот такой маленький php скрипт, который будет прописывать аватарку группы всем тем, у кого она удалена.
Выполнение скрипта настроил через серверный Cron раз в сутки.

Код: Выделить всё

 <?php 
   $host = 'localhost'; // адрес сервера
   $db_name = 'database'; // имя базы данных
   $user = 'user'; // имя пользователя
   $password = 'password'; // пароль

   // создание подключения к базе   
      $connection = mysqli_connect($host, $user, $password, $db_name);

   // текст SQL запроса, который будет передан базе
      $query = 'UPDATE `phpbb_users` SET `user_avatar` = \'g6_1644863708.png\', `user_avatar_type` = \'avatar.driver.upload\', `user_avatar_width` = \'100\', `user_avatar_height` = \'100\' WHERE `user_avatar` = \'\' AND `user_avatar_type` = \'\' AND `user_avatar_width` = \'0\' AND `user_avatar_height` = \'0\'';

   // выполняем запрос к базе данных
      $result = mysqli_query($connection, $query);

   // закрываем соединение с базой
      mysqli_close($connection);
?>
Вроде работает, я доволен :popcorn
Аватара пользователя
1smerch1
phpBB 2.0.4
Сообщения: 435
Стаж: 6 лет 5 месяцев
Откуда: Россия
Благодарил (а): 183 раза
Поблагодарили: 15 раз

Re: Заглушка для удаленного аватара

Сообщение 1smerch1 »

dimassamid, это куда прописать? С заменой или что?
Спорт - сила
dimassamid
phpBB 2.0.0
Сообщения: 205
Стаж: 17 лет 5 месяцев
Благодарил (а): 58 раз
Поблагодарили: 84 раза

Re: Заглушка для удаленного аватара

Сообщение dimassamid »

Это просто отдельный независимый от движка php файл, который я назвал set_avatar.php и положил в корень сайта. Если его выполнить, т.е. зайти на https://мой_сайт.ru/set_avatar.php, он отправит SQL запрос в базу данных и установит всем юзерам без аватарки аватару группы.

Разумеется, предварительно скрипт нужно отредактировать под себя, а именно:
  • Указать в самом верху ваши данные для подключения к БД
  • Установить в админке аватар для группы "Зарегистрированные пользователи"
  • Указать название этой картинки вместо моей g6_1644863708.png
Чтобы файл не запускать каждый раз вручную, я настроил на сервере Cron, который сам будет выполнять его раз в сутки. Узнайте, есть ли у вас на хостинге возможность выполнять скрипты по расписанию. Если нет, то можете просто вручную запускать этот файл по надобности.

Конечно, было бы идеально, если кто-нибудь реализовал бы такую возможность в виде расширения или правок движка. К примеру, пользователь удаляет аватар и в базу сразу уходит нужная картинка аватара группы.
Но, увы, пока так...
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 803
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: Заглушка для удаленного аватара

Сообщение Perfecthus »

Татьяна5, Да, в первой половине до WHERE не нужно было AND вставлять, я просто запрос написал, скопировал и вставил. :)

Вернуться в «phpBB-пространство»