Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Avatar of poster on Index and Viewforum phpbb3 2012-05-20

Аватар пользователя

Введение

Давненько еще я установил одну чудесную модификацию для phpbb3, а именно Avatar of poster on Index and Viewforum. Чем она хороша? Да тем, что добавляет на главную страницу, напротив каждого подфорума, аватар того, кто последним ответил в темах конкретных подфорумов, а так же на странице просмотра подфорумов выводится аватар автора темы и последнего ответившего. Все это наглядно вы можете увидеть на нашем форуме, присмотритесь. Собственно сегодня хотелось бы проанонсировать данный мод.
Данная модификация интегрируется со следущими модами



Интеграция только для данной версии мода, на более новых версиях работать не будет
Вложение :
Комментарий к файлу: Avatar of poster on Index and Viewforum версия 1.2.1а
avatar_index_viewforum121a.zip [68.78 KiB]
Скачиваний: 169

Вывод аватар на страницу Активных тем(Новые сообщения, Непрочитанные сообщения и тд)

Открываем search.php и находим (первый найденный результат)
$tpl_ary = array(
 

Вставляем перед найденным
$avatar_img = $avatar_max_dimensions = $topic_last_poster_avatar_height = $topic_last_poster_avatar_width = $topic_first_poster_avatar_width = $topic_first_poster_avatar_height = '';
      
      if ( !empty($row['topic_first_poster_avatar']) || !empty($row['topic_last_poster_avatar']))
      {
      $avatar_max_dimensions = 40; // here you can change the max-width you would like to have the avatars displayed
      
         if ( $row['topic_first_poster_avatar_width'] >= $row['topic_first_poster_avatar_height'] )
         {
            $topic_first_poster_avatar_width = ( $row['topic_first_poster_avatar_width'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_first_poster_avatar_width'] ;
            $topic_first_poster_avatar_height = ( $topic_first_poster_avatar_width == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_first_poster_avatar_width'] * $row['topic_first_poster_avatar_height']) : $row['topic_first_poster_avatar_height'] ;
         }
         else
         {
            $topic_first_poster_avatar_height = ( $row['topic_first_poster_avatar_height'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_first_poster_avatar_height'] ;
            $topic_first_poster_avatar_width = ( $topic_first_poster_avatar_height == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_first_poster_avatar_height'] * $row['topic_first_poster_avatar_width']) : $row['topic_first_poster_avatar_width'] ;
         }

         if ( $row['topic_last_poster_avatar_width'] >= $row['topic_last_poster_avatar_height'] )
         {
            $topic_last_poster_avatar_width = ( $row['topic_last_poster_avatar_width'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_last_poster_avatar_width'] ;
            $topic_last_poster_avatar_height = ( $topic_last_poster_avatar_width == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_last_poster_avatar_width'] * $row['topic_last_poster_avatar_height']) : $row['topic_last_poster_avatar_height'] ;
         }
         else
         {
            $topic_last_poster_avatar_height = ( $row['topic_last_poster_avatar_height'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['topic_last_poster_avatar_height'] ;
            $topic_last_poster_avatar_width = ( $topic_last_poster_avatar_height == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['topic_last_poster_avatar_height'] * $row['topic_last_poster_avatar_width']) : $row['topic_last_poster_avatar_width'] ;
         }
         
      }
 

После найденного вставляем
'TOPIC_AUTHOR_AVATAR'      => ($config['enable_avatar_index']) ? get_user_avatar($row['topic_first_poster_avatar'], $row['topic_first_poster_avatar_type'], $topic_first_poster_avatar_width, $topic_first_poster_avatar_height) : false,
         'TOPIC_AUTHOR_AVATAR_MARGIN'   => ( $topic_first_poster_avatar_width == '' ) ? '' : (( $topic_first_poster_avatar_width == $avatar_max_dimensions ) ? 5 : ( $avatar_max_dimensions - $topic_first_poster_avatar_width + 5 )),
         'AVATAR_WIDTH'            => $avatar_max_dimensions ,
'LAST_POST_AUTHOR_AVATAR'   => ($config['enable_avatar_index']) ? get_user_avatar($row['topic_last_poster_avatar'], $row['topic_last_poster_avatar_type'], $topic_last_poster_avatar_width, $topic_last_poster_avatar_height) : false,
         'LAST_POST_AUTHOR_AVATAR_MARGIN'=> ( $topic_last_poster_avatar_width == $avatar_max_dimensions ) ? 5 : ( $avatar_max_dimensions - $topic_last_poster_avatar_width + 5 ),
 

Открываем шаблон search_results.html используемого стиля. Между условиями <!-- BEGIN searchresults --> и <!-- END searchresults --> располагается одна строка выводимой темы. Теперь тут на ваше усмотрение куда пихать код от мода, но
<!-- IF searchresults.TOPIC_AUTHOR_AVATAR -->{searchresults.TOPIC_AUTHOR_AVATAR}<!-- ENDIF -->
 

Выводит аватару автора темы, а
<!-- IF searchresults.LAST_POST_AUTHOR_AVATAR --> {searchresults.LAST_POST_AUTHOR_AVATAR}<!-- ENDIF -->
 

Выводит аватару последнего ответившего. Так что верстайте под свои стили сами

Установка

Сама по себе модификация легка в установке, правок правда многовато, но они не трудные. Скачиваем архив с модом и устанавливаем по инструкции

Внимание !!! В инструкции к моду автор допустил ошибку, в правке файла includes\functions_admin.php
Нужно найти
 // These are fields that will be synchronised
         $fieldnames = array(
 

И вставить после найденного код
//-- mod : apiv ----------------------------------------------------------------
//-- add
         $fieldnames += array('first_poster_avatar', 'last_poster_avatar');
//-- fin mod : apiv ------------------------------------------------------------
 

Но вставить его надо таким образом, чтобы получилось
 // These are fields that will be synchronised
         $fieldnames = array('time', 'replies', 'replies_real', 'poster', 'first_post_id', 'first_poster_name', 'first_poster_colour', 'last_post_id', 'last_post_subject', 'last_post_time', 'last_poster_id', 'last_poster_name', 'last_poster_colour');
//-- mod : apiv ----------------------------------------------------------------
//-- add
         $fieldnames += array('first_poster_avatar', 'last_poster_avatar');
//-- fin mod : apiv ------------------------------------------------------------
 

Для руссификации скачиваем архив, прикрепленный ниже и единственную папку распаковываем в корень форума
Вложение :
Комментарий к файлу: Руссификация модификации Avatar of poster on Index and Viewforum
langudfgage.rar [1.18 KiB]
Скачиваний: 141

После правок не забываем запускать установочные скрипты.
Вот и все, модификация установлена, настройки мода находятся в админке - Общие - Аватары, успехов :co_ol:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
Avatar of poster on Index and Viewforum phpbb3, аватары, аватары на главной форума phpbb3, аватар последнего ответившего phpbb3,аватар автора темы phpbb3

Последний раз редактировалось DeaDRoMeO 02 окт 2013, 12:33, всего редактировалось 5 раз(а).
Обновлена версия мода
          Вернуться наверх  
 


Аватар пользователя

:ro_za: спасибо!

Сообщение добавлено... спустя 50 минут 57 секунд:
masik писал(а):

Ссылку на форум можете скинуть?

форум заработал, была бы благодарна за подсказку как выровнять аватарки!


          Вернуться наверх  
 


Аватар пользователя

Может к class="topicdetails приписать align left , не?


          Вернуться наверх  
 


Аватар пользователя

tanyxa писал(а):

форум заработал, была бы благодарна за подсказку как выровнять аватарки!


Открыть файл viewforum_body.html

Найти в нем <tbody id="flist

Внутри его найти

<td class="row2" nowrap="nowrap" align="center" style="background-image: url(); background-repeat: no-repeat;">
 


И заменить свойство align="center" на align="left"

Сообщение добавлено... спустя 1 минуту 42 секунды:
bublik89 писал(а):

Может к class="topicdetails приписать align left , не?


Ты прав, не в классе class="topicdetails, а для td


          Вернуться наверх  
 


Аватар пользователя

Огромное спасибо! :ro_za:


          Вернуться наверх  
 


Аватар пользователя

masik писал(а):

Ты прав, не в классе class="topicdetails, а для td

Так то я ничего не понял :-0=)
Просто смотрел что row2 много где прописан и сдвинутся другие надписи, или нет?
а про td и dd смотрел что б подвинуть надписи и аватару в минипрофиле.. там тоже как то мутно все...


          Вернуться наверх  
 


Аватар пользователя

tanyxa писал(а):

Огромное спасибо!


Да не за что :-00):


          Вернуться наверх  
 


Аватар пользователя

bublik89 писал(а):

В обоих стилях нет аватарки у тех кто ее не установил, хотя стоит автоава (как на данном форуме, с динозаврами)

Никто не подскажет?


          Вернуться наверх  
 


Аватар пользователя

Дык надо мод допиливать, добавлять в условие вывода else как минимум


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

DeaDRoMeO писал(а):

Дык надо мод допиливать, добавлять в условие вывода else как минимум

прива!
а не пробовали допилить под 1_3_0, чтобы авы выводились в блоки "активные темы", "объявления"?
Я так же пользую рнрввех, там на сей момент версия 3.0.12

Если нет, то подойдет ли версия модуля 1.2.1 под движок 3.0.12 ?



Информация о редактировании
Последний раз редактировалось vbnm 29 июл 2014, 16:35, всего редактировалось 1 раз.
          Вернуться наверх  
 


Аватар пользователя

bublik89 писал(а):

Никто не подскажет?


Подскажем. Добавление для шаблона "Etechgreen"
Открывай файл в папке название_шаблона/template/viewtopic_body.html
Находим там
<!-- IF postrow.POSTER_AVATAR --><div class="postavatar">{postrow.POSTER_AVATAR}</div><!-- ENDIF -->
 


Заменить на:

<!-- IF postrow.POSTER_AVATAR --><div class="postavatar">{postrow.POSTER_AVATAR}</div>
               <!-- ELSE -->
               <div class="postavatar"><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="Not Avatar" /></div>
<!-- ENDIF -->
 


После этого добавить в папку images шаблона файл который будет отвечать за картинку "нет-аватара". Ну и все.
PS. Единственное, картинка "без аватара" будет выводиться только в топиках, для других мест делаем по анологии...


          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

DeaDRoMeO писал(а):

$tpl_ary = array(

и как быть, если эта срока повторяется там два раза и создает два массива?
речь идет о движке на 3.0.12


          Вернуться наверх  
 


Аватар пользователя

vbnm писал(а):

и как быть, если эта срока повторяется там два раза и создает два массива?


Код можете показать?


          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

masik писал(а):

Код можете показать?

)))
$row['topic_title'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['topic_title']);

$tpl_ary = array(
'TOPIC_AUTHOR' => get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'TOPIC_AUTHOR_COLOUR' => get_username_string('colour', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'TOPIC_AUTHOR_FULL' => get_username_string('full', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'FIRST_POST_TIME' => $user->format_date($row['topic_time']),
'LAST_POST_SUBJECT' => $row['topic_last_post_subject'],
'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']),
'LAST_VIEW_TIME' => $user->format_date($row['topic_last_view_time']),
'LAST_POST_AUTHOR' => get_username_string('username', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'LAST_POST_AUTHOR_COLOUR' => get_username_string('colour', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'LAST_POST_AUTHOR_FULL' => get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),

'PAGINATION' => topic_generate_pagination($replies, $view_topic_url),
'TOPIC_TYPE' => $topic_type,

'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt),
'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'),
'TOPIC_FOLDER_IMG_ALT' => $user->lang[$folder_alt],
'TOPIC_FOLDER_IMG_WIDTH'=> $user->img($folder_img, '', false, '', 'width'),
'TOPIC_FOLDER_IMG_HEIGHT' => $user->img($folder_img, '', false, '', 'height'),

'TOPIC_ICON_IMG' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '',
'TOPIC_ICON_IMG_WIDTH' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '',
'TOPIC_ICON_IMG_HEIGHT' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['height'] : '',
'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $auth->acl_get('f_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
'UNAPPROVED_IMG' => ($topic_unapproved || $posts_unapproved) ? $user->img('icon_topic_unapproved', ($topic_unapproved) ? 'TOPIC_UNAPPROVED' : 'POSTS_UNAPPROVED') : '',

'S_TOPIC_GLOBAL' => (!$forum_id) ? true : false,
'S_TOPIC_TYPE' => $row['topic_type'],
'S_USER_POSTED' => (!empty($row['topic_posted'])) ? true : false,
'S_UNREAD_TOPIC' => $unread_topic,

'S_TOPIC_REPORTED' => (!empty($row['topic_reported']) && $auth->acl_get('m_report', $forum_id)) ? true : false,
'S_TOPIC_UNAPPROVED' => $topic_unapproved,
'S_POSTS_UNAPPROVED' => $posts_unapproved,

'U_LAST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],
'U_LAST_POST_AUTHOR' => get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'U_TOPIC_AUTHOR' => get_username_string('profile', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;view=unread') . '#unread',
'U_MCP_REPORT' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=reports&amp;t=' . $result_topic_id, true, $user->session_id),
'U_MCP_QUEUE' => $u_mcp_queue,
);
}
else
{
if ((isset($zebra['foe']) && in_array($row['poster_id'], $zebra['foe'])) && (!$view || $view != 'show' || $post_id != $row['post_id']))
{
$template->assign_block_vars('searchresults', array(
'S_IGNORE_POST' => true,

'L_IGNORE_POST' => sprintf($user->lang['POST_BY_FOE'], $row['username'], "<a href=\"$u_search&amp;start=$start&amp;p=" . $row['post_id'] . '&amp;view=show#p' . $row['post_id'] . '">', '</a>'))
);

continue;
}

// Replace naughty words such as farty pants
$row['post_subject'] = censor_text($row['post_subject']);

if ($row['display_text_only'])
{
// now find context for the searched words
$row['post_text'] = get_context($row['post_text'], array_filter(explode('|', $hilit), 'strlen'), $return_chars);
$row['post_text'] = bbcode_nl2br($row['post_text']);
}
else
{
// Second parse bbcode here
if ($row['bbcode_bitfield'])
{
$bbcode->bbcode_second_pass($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], !empty($row['post_time']) ? $row['post_time'] : 0);
}

$row['post_text'] = bbcode_nl2br($row['post_text']);
$row['post_text'] = smiley_text($row['post_text']);

if (!empty($attachments[$row['post_id']]))
{
parse_attachments($forum_id, $row['post_text'], $attachments[$row['post_id']], $update_count);

// we only display inline attachments
unset($attachments[$row['post_id']]);
}
}

if ($hilit)
{
// post highlighting
$row['post_text'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['post_text']);
$row['post_subject'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['post_subject']);
}

$tpl_ary = array(
'POST_AUTHOR_FULL' => get_username_string('full', $row['poster_id'], $row['username'], $row['user_colour'], $row['post_username']),
'POST_AUTHOR_COLOUR' => get_username_string('colour', $row['poster_id'], $row['username'], $row['user_colour'], $row['post_username']),
'POST_AUTHOR' => get_username_string('username', $row['poster_id'], $row['username'], $row['user_colour'], $row['post_username']),
'U_POST_AUTHOR' => get_username_string('profile', $row['poster_id'], $row['username'], $row['user_colour'], $row['post_username']),


хотя думаю, что это уже не важно..
лексикон от версии 1.2.1 уже сменился в 1.3.0
дебагер пишет что переменные не определяются, помотрел в чем дело, а их и нет вовсе
такие дела.
если б понять что и куда должно отправляться, то можно было бы переписать.
и вывод блоков для основной страницы в 3.0.12 осуществляется через index.php и idnex.html, а не поисковиком
так что копать там придется во вюверах и индекс, поисковик можно оставить в покое.


          Вернуться наверх  
 


Аватар пользователя

vbnm писал(а):

и как быть, если эта срока повторяется там два раза и создает два массива?


Ничего там не создается 2 массива, просто видимо кто то что то добавлял к массиву причем криво...Почему? Потому что сначала идет присвоение переменной массива одних данных, а ниже идет переприсвоение и в итоге Вы получаете только послений массив, другие просто вычищаются.
Примерно так же если было:
$arr = array(
   '0' => '0',
   '1' => '1',
   '2' => '2',
);

$arr = array(
   '3' => '3',
);

var_dump($arr);
====================================
Ответ будет следующий:
array (size=1)
  3 => string '3' (length=1)
 


Выводы делайте сами...


          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

даже, если так, допустим мы добавим все, что надо к послед массиву и перед ним, что делать с лексикой?

Сообщение добавлено... спустя 1 час 38 минут 6 секунд:
хм, какая версия движка phphbb3 сейчас стоит здесь, похоже что не 3.0.12?
и какая версия этого модуля тут применяется?


          Вернуться наверх  
 


Аватар пользователя

vbnm писал(а):

хм, какая версия движка phphbb3 сейчас стоит здесь, похоже что не 3.0.12?


Думаю, что все таки последняя...


          Вернуться наверх  
 


Аватар пользователя

У нас 3.0.12 с модом версии 1.2.1а


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

хм, интересно, зачем тогда этот на 1.3.0 ?
при усановке через автомод, там куча ошибок вылазиет.
некоторые места повторяются по три раза в инстал.хмл...
и при удалении выдает ошибку по одной строке, которую определить не может, что сам её записал))
запарка была чистить его, а он оказывается еще и не дает того, что надо.

DeaDRoMeO у вас при установке на 3.0.12 не наблюдали той же картинки в сичере.пхп, что и у меня, два массива под тпл? может это чисто выверт пхпббех
попробую снова поставить 1.2.1а. мож че не доглядел.


          Вернуться наверх  
 


Аватар пользователя

Нее, только один под тпл у меня, поставьте еще раз


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

поставил заново, ручками все доделал, но так и не получил желаемого результата
в версии ЕХ имеются переопределения для блоков Активные темы и объявления, что выводятся на главной странице
там авы так и не отображаются, а вот если смотреть чисто по ссылке активные темы то там они появляются


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Random No Avatar phpbb3 (случайная аватара по умолчанию)
Random No Avatar - модификация для phpbb3, автоматически назначающая случайную аватару пользователю если он самостоятельно ее не установил

DeaDRoMeO

83

5155

Аватар пользователя

29 апр 2014, 17:09

Князь Мышкин

Аватар пользователя Index SEO
Index SEO phpbb3 - прекрасный мод в плане СЕО оптимизации для форумов phpbb3, позволит вам задать описание и список ключевых слов для главной страницы

DeaDRoMeO

154

11500

Аватар пользователя

13 мар 2015, 19:09

белк

Аватар пользователя Лог регистраций phpbb3
Лог регистраций phpbb3 - полезное в администрировании дополнение для phpbb3, данная модификация ведет лог всех ответов пользователей при регистрации

DeaDRoMeO

125

12104

Аватар пользователя

05 дек 2015, 20:27

Чародейка

Аватар пользователя BAN redirect URL phpbb3
BAN redirect URL - модификация для phpbb3, позволяющая перенаправлять заблокированных пользователей по любому адресу

DeaDRoMeO

21

4949

Аватар пользователя

16 июн 2014, 05:05

DeaDRoMeO

Аватар пользователя Forum SEO phpbb3
Forum SEO phpbb3 - прекрасный мод в плане СЕО оптимизации для форумов phpbb3, позволит вам задать описание и список ключевых слов для каждого раздела и подфорума.

DeaDRoMeO

249

16814

Аватар пользователя

16 дек 2014, 05:43

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P