Бесплатный форум: форум поддержки
Добро пожаловать на форум поддержки сервиса Forum2x2 !

Для полноценной работы с форумом,
пожалуйста, войдите на форум под своим логином (если вы уже зарегистрированы) или же зарегистрируйтесь.


С нашей помощью вы можете создать форум,
похожий на этот!

Смена аватара в сообщении

Перейти вниз

Смена аватара в сообщении

Сообщение автор Моргана Анубис в Чт 27 Авг - 1:29

В некоторых форумах видела такую фишку – в окне сообщения они ставят ссылку на картинку, с двух сторон выделяют в код (ava) и при отправке меняется аватар написавшего. Следующим сообщением если ничего не делать, то будет та ава, которая залита в профиль.

Возможно ли такое сделать у нас?
avatar
Моргана Анубис
 
 

Женщина
Сообщения : 256
Возраст : 31
Регистрация : 2011-08-31
Благодарности : 2

Без предупреждений

http://misteria7.forum2x2.ru/

Вернуться к началу Перейти вниз

Re: Смена аватара в сообщении

Сообщение автор Предвестница в Сб 29 Авг - 1:20

Наверняка полезная функция для многих ролевых форумов. Не ручаюсь за работоспособность, но у нас со второго пинка завелось. Только для phpbb3. Если что-то не будет работать, пишите в этой же теме — постараемся исправить.

Написала за пару часов такой вот код, вставлять в Администрирование → Модули → Управление JavaScript → Создать новый → отметить «в Темах» → вставить код ниже:
Код:
// Replace avatar with the picture in text [av=http://something.jpg]

$( document ).ready(function() {
   // Add users ID there, like u1 (administrator), u2255 (user 2255) etc
   var allowedUsers = [ "u30", "u31" ];
  
   $( "div.post" ).each(function() {
      // Check if user is valid
      var profileLink=$( this ).find( "div.user2" ).find( "a" ).first().attr( "href" );
      var profileID=profileLink.match(/u[0-9]*$/g);
          
      if ((profileID == null) || (jQuery.inArray( profileID[0], allowedUsers ) == -1))
         return; // Regex not found or not our user
          
      // Locate avatar in [av=http://something.png]
      var postText=$( this ).find( "div.content" ).html();
          
      var postContentsCodes = postText.match(/\[av=[^\]]*\]/gi);
      var avatarLink;
          
      if ( postContentsCodes == null)
         return; // Nothing to do, user did not used this functionality
          
      // Retrieve link for avatar
      avatarLink=postContentsCodes[postContentsCodes.length-1].slice(4,-1);
          
      // Clean up post text
      postText=postText.replace(/\[av=[^\]]*\]/g, "");
      $( this ).find( "div.content" ).html(postText);
          
      // Replace avatar
      $( this ).find( "div.user2" ).find( "img" ).first().attr( "src", avatarLink );
   });
});


Правда, потребуется ещё немного изменить вот эту строчку:
Код:
var allowedUsers = [ "u30", "u31" ];
Здесь вместо "u30", "u31" ввести номера пользователей, которым разрешено пользоваться данной возможностью форума. Для Вашего форума, скорее всего, будет вот так:
Код:
var allowedUsers = [ "u5" ];


Как пользоваться: в любом месте поста вставить следующий текст, заменив «http://link/to/picture.png» на ссылку на временный аватар:
Код:
[av=http://link/to/picture.png]
Разумеется, этого текста видно не будет. Правда, он появится, если у пользователя выключен JavaScript или если пользователь заходит с мобильной версии форума, так что будьте осторожны.




Упрощённая версия скрипта, работающая не только для «избранных», но вообще для всех пользователей форума:
Спойлер:

Код:
// Replace avatar with the picture in text [av=http://something.jpg]

$( document ).ready(function() {
   $( "div.post" ).each(function() {
      // Locate avatar in [av=http://something.png]
      var postText=$( this ).find( "div.content" ).html();
          
      var postContentsCodes = postText.match(/\[av=[^\]]*\]/gi);
      var avatarLink;
          
      if ( postContentsCodes == null)
         return; // Nothing to do, user did not used this functionality
          
      // Retrieve link for avatar
      avatarLink=postContentsCodes[postContentsCodes.length-1].slice(4,-1);
          
      // Clean up post text
      postText=postText.replace(/\[av=[^\]]*\]/g, "");
      $( this ).find( "div.content" ).html(postText);
          
      // Replace avatar
      $( this ).find( "div.user2" ).find( "img" ).first().attr( "src", avatarLink );
   });
});
avatar
Предвестница
Новичок

Сообщения : 11
Возраст : 22
Регистрация : 2015-08-21
Благодарности : 4

Без предупреждений

http://area.forum2x2.ru/

Вернуться к началу Перейти вниз

Re: Смена аватара в сообщении

Сообщение автор Моргана Анубис в Сб 29 Авг - 16:54

Все работает, спасибо! d_daisy
avatar
Моргана Анубис
 
 

Женщина
Сообщения : 256
Возраст : 31
Регистрация : 2011-08-31
Благодарности : 2

Без предупреждений

http://misteria7.forum2x2.ru/

Вернуться к началу Перейти вниз

Re: Смена аватара в сообщении

Сообщение автор Предвестница в Сб 29 Авг - 17:31

Моргана Анубис, незачто!

Если у кого-то другого будут проблемы с установкой, пишите в эту тему — постараюсь ответить.
avatar
Предвестница
Новичок

Сообщения : 11
Возраст : 22
Регистрация : 2015-08-21
Благодарности : 4

Без предупреждений

http://area.forum2x2.ru/

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения