info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ]  Просмотры: 3769

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 9 лет 1 месяц 14 дней
Сообщения: 1233
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


User Rank Progression Bar

мод реализует показ в % времени до следующего звания на форуме, то есть показывает ваш "прогресс"...

выглядит это так (примерно):

мини-профиль список пользователей профиль пользователя

Если заинтересовало - ставим.

Данный мод не имеет своих файлов и ничего на сервер закачивать не надо.

Правка файлов форума:

общие правки (для любого стиля)
Открыть includes/functions_display.php
Найти

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

* @param string &$rank_img_src the rank image source is stored here after execution


Вставить после найденного

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

* @param int &$percent_complete the percentage of the way a user is to the next rank, where -1 means "not applicable"


Найти

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

function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)


К части кода

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

, &$rank_img_src


Добавить после

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

, &$percent_complete = 0


Найти

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

   if (!empty($user_rank))


Вставить перед найденным

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

   if (!is_int($percent_complete) || $percent_complete < 0 || $percent_complete > 100)
   {
      $percent_complete = -1;
   }


Найти

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

   else if ($user_posts !== false)
   {


Вставить после найденного

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

   $next_rank_post_count = -1;


Найти

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

            if ($user_posts >= $rank['rank_min'])


Вставить перед найденным

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

            if ($user_posts < $rank['rank_min'])
            {
               $next_rank_post_count = $rank['rank_min'];
            }
            else
 


Найти

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

               $rank_title = $rank['rank_title'];


Вставить перед найденным

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

               if ($percent_complete == -1 && $next_rank_post_count > -1)
               {
                  $rank_difference = $next_rank_post_count - $rank['rank_min'];
                  $user_progress = $user_posts - $rank['rank_min'];
                  $percent_complete = round(($user_progress / $rank_difference) * 100, 1);
               }
 



Открыть includes/ucp/ucp_pm_viewmessage.php
Найти

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

      'RANK_IMG'         => $user_info['rank_image'],


Вставить после найденного

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

      'PERCENTAGE_PROGRESS_NUM'   => $user_info['percentage_progress'],
      'PERCENTAGE_PROGRESS'      => sprintf($user->lang['PERCENTAGE_PROGRESS'], $user_info['percentage_progress']),


Найти

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

get_user_rank($user_row['user_rank'], $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);


К части строки

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

, $user_row['rank_image_src']


Добавить после найденного

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

, $user_row['percentage_progress']



Открыть memberlist.php
Найти

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

         get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);


К части строки

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

$rank_img_src


Добавить после найденного

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

, $percentage_progress


Найти

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

   get_user_rank($data['user_rank'], (($user_id == ANONYMOUS) ? false : $data['user_posts']), $rank_title, $rank_img, $rank_img_src);


К части строки

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

$rank_img_src


Добавить после найденного

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

, $percentage_progress


Найти

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

      'RANK_IMG_SRC'      => $rank_img_src,


Вставить после найденного

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

      'PERCENTAGE_PROGRESS_NUM'   => $percentage_progress,
      'PERCENTAGE_PROGRESS'      => sprintf($user->lang['PERCENTAGE_PROGRESS'], $percentage_progress),



Открыть viewtopic.php
Найти

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

      if ($poster_id == ANONYMOUS)
      {
         $user_cache[$poster_id] = array(


Вставить после найденного

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

            'percentage_progress'      => -1,


Найти

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

get_user_rank($row['user_rank'], false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);


К части строки

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

$user_cache[$poster_id]['rank_image_src']


Добавить после найденного

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

, $user_cache[$poster_id]['percentage_progress']


Найти

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

         $id_cache[] = $poster_id;

         $user_cache[$poster_id] = array(


Вставить после найденного

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

            'percentage_progress'      => -1,


Найти

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

get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);


К части строки

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

$user_cache[$poster_id]['rank_image_src']


Добавить после найденного

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

, $user_cache[$poster_id]['percentage_progress']


Найти

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

      'RANK_IMG_SRC'      => $user_cache[$poster_id]['rank_image_src'],


Вставить после найденного

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

      'PERCENTAGE_PROGRESS_NUM'   => $user_cache[$poster_id]['percentage_progress'],
      'PERCENTAGE_PROGRESS'      => sprintf($user->lang['PERCENTAGE_PROGRESS'], $user_cache[$poster_id]['percentage_progress']),


EN языковые правки
Открыть language/en/common.php
Найти



Вставить перед найденным

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

$lang = array_merge($lang, array(
   'PERCENTAGE_PROGRESS' => '%s%%',
   'PROGRESS_TO_NEXT_RANK' => 'Progress to next rank:'
));


RU языковые правки
Открыть language/ru/common.php
Найти



Вставить перед найденным

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

$lang = array_merge($lang, array(
   'PERCENTAGE_PROGRESS' => '%s%%',
   'PROGRESS_TO_NEXT_RANK' => 'Прогресс до следующего звания:'
));


для стилей на основе prosilver
Открыть styles/prosilver/template/memberlist_body.html
Найти (может быть показана только часть строки)

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

<!-- IF memberrow.RANK_IMG --><span class="rank-img">{memberrow.RANK_IMG}</span><!-- ELSE --><span class="rank-img">{memberrow.RANK_TITLE}</span><!-- ENDIF -->


после части строки

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

<!-- ENDIF -->


Вставить код

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

<!-- IF memberrow.PERCENTAGE_PROGRESS_NUM > -1 --><div class="rank_progress_bar" title="{L_PROGRESS_TO_NEXT_RANK}"><span style="width:{memberrow.PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{memberrow.PERCENTAGE_PROGRESS}</span></div><!-- ENDIF -->



Открыть styles/prosilver/template/memberlist_view.html
Найти

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

<!-- IF RANK_IMG --><dd style="text-align: center;">{RANK_IMG}</dd><!-- ENDIF -->


Вставить после найденного

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

<!-- IF PERCENTAGE_PROGRESS_NUM > -1 --><dd>{L_PROGRESS_TO_NEXT_RANK}<div class="rank_progress_bar"><span style="width:{PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{PERCENTAGE_PROGRESS}</span></div></dd><!-- ENDIF -->


Найти

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

<!-- IF RANK_IMG --><dt><!-- IF RANK_TITLE -->&nbsp;<!-- ELSE -->{L_RANK}:<!-- ENDIF --></dt> <dd>{RANK_IMG}</dd><!-- ENDIF -->


Вставить после найденного

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

<!-- IF PERCENTAGE_PROGRESS_NUM > -1 --><dt>{L_PROGRESS_TO_NEXT_RANK}</dt><dd><div class="rank_progress_bar"><span style="width:{PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{PERCENTAGE_PROGRESS}</span></div></dd><!-- ENDIF -->



Открыть styles/prosilver/template/ucp_pm_viewmessage.html
Найти

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

      <!-- IF RANK_IMG --><dd>{RANK_IMG}</dd><!-- ENDIF -->


Вставить после найденного

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

      <!-- IF PERCENTAGE_PROGRESS_NUM > -1 --><dd>{L_PROGRESS_TO_NEXT_RANK}<div class="rank_progress_bar"><span style="width:{PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{PERCENTAGE_PROGRESS}</span></div></dd><!-- ENDIF -->



Открыть styles/prosilver/template/viewtopic_body.html
Найти

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

         <!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->


Вставить после найденного

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

         <!-- IF postrow.PERCENTAGE_PROGRESS_NUM > -1 --><dd>{L_PROGRESS_TO_NEXT_RANK}<div class="rank_progress_bar"><span style="width:{postrow.PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{postrow.PERCENTAGE_PROGRESS}</span></div></dd><!-- ENDIF -->



Открыть styles/prosilver/theme/common.css
Найти



Вставить перед найденным

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

.rank_progress_bar {
   border: 1px solid #b4bac0;
   margin-right: 1em;
   position: relative;
   clear:right
}
.rank_progress_bar span {
   z-index:2;
   position:relative
}
.rank_progress_bar .bar {
   background-color: #fff;
   border-right: 1px solid #b4bac0;
   display:block;
   height: 100%;
   z-index:1;
   position:absolute;
   top: 0;
   left: 0
}


для стилей на основе subsilver2
Открыть styles/subsilver2/template/memberlist_view.html
Найти

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

         <!-- IF RANK_IMG -->
            <tr>
               <td align="center">{RANK_IMG}</td>
            </tr>
         <!-- ENDIF -->


Вставить после найденного

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

         <!-- IF PERCENTAGE_PROGRESS_NUM > -1 -->
            <tr>
               <td>{L_PROGRESS_TO_NEXT_RANK}<div class="rank_progress_bar"><span style="width:{PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{PERCENTAGE_PROGRESS}</span></div></td>
            </tr>
         <!-- ENDIF -->



Открыть styles/subsilver2/template/viewtopic_body.html
Найти

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

         <!-- IF postrow.RANK_IMG -->
            <tr>
               <td>{postrow.RANK_IMG}</td>
            </tr>
         <!-- ENDIF -->


Вставить после найденного

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

         <!-- IF postrow.PERCENTAGE_PROGRESS_NUM > -1 -->
            <tr>
               <td>{L_PROGRESS_TO_NEXT_RANK}<div class="rank_progress_bar"><span style="width:{postrow.PERCENTAGE_PROGRESS_NUM}%" class="bar"></span><span>{postrow.PERCENTAGE_PROGRESS}</span></div></td>
            </tr>
         <!-- ENDIF -->



Открыть styles/subsilver2/theme/stylesheet.css
Найти

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

/* Misc
 ------------ */


Вставить после найденного

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

.rank_progress_bar {
   border: 1px solid #A9B8C2;
   margin-right: 1em;
   position: relative;
   clear:right
}
.rank_progress_bar span {
   z-index:2;
   position:relative
}
.rank_progress_bar .bar {
   background-color: #fff;
   border-right: 1px solid #A9B8C2;
   display:block;
   height: 100%;
   z-index:1;
   position:absolute;
   top: 0;
   left: 0
}


На этом всё. Почистите кэш и наслаждайтесь работой мода.

не забудьте в админке для пользователей создать систему званий/рангов - а то, иначе, что будет выводить мод?




трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
User Rank Progression Bar,phpbb3,mod
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 0, из них зарегистрированных: 0, скрытых: 0 и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 0



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 06 ноя 2024, 04:45

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид