1 (edited by strlog_Prod 2017.06.02 06:36)

Topic: Картинка для каждой группы

У меня тут еще вопрос, просто я новичок в PunBB перешал с XF.. Так вот, как можно сделать так же:
Чтобы статусы "Онлайн/оффлайн" и каждой группе своё изображение

https://punbb.softplaza.net/uploads/images/2017/06/3ba1003abb61b8169bb612c4bc3e890c.jpg

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

2 (edited by PunBB 2017.06.02 07:20)

Re: Картинка для каждой группы

Есть ссылка, где можно было бы посмотреть вживую. Мне понять структуру HTML & CSS .

Я думаю, что все это реально.

Скажите, вы переносили свой форум с XF на PunBB, или создали новый?

3

Re: Картинка для каждой группы

PunBB, games.myfabis.ru/forum (не реклама)

$matches[1]

PunBB, Нет, сделали новый игровой проект. А PunBB взяли т.к его легче было адоптировать под дизайн сайта.

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

4 (edited by PunBB 2017.06.02 08:38)

Re: Картинка для каждой группы

Посмотрел. Там скорее всего функционал встроили в сам движок. Но такое не сложно сделать и отдельным расширением.

$matches[1]

перенес тему в соответствующий раздел

5

Re: Картинка для каждой группы

А каким расширением можно сделать? был бы очень блогодарен.

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

6

Re: Картинка для каждой группы

strlog_Prod wrote:

А каким расширением можно сделать?

Расширение нужно будет написать. Со временем возможно кто то и реализует. Я однажды пытался статусы из аськи приклеить, а потом забросил. Будет время, гляну, что можно сделать.

7

Re: Картинка для каждой группы

strlog_Prod, А каким расширением можно сделать?

Тем, что напишите самостоятельно!  PunBB_INFO_ICQ/wink

8

Re: Картинка для каждой группы

Ну знал бы как написал) Просто с данным движком работаю недавно. Ладно спасибо за ответ

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

9

Re: Картинка для каждой группы

strlog_Prod,  если есть минимальные знания PHP и желание, то вникнешь быстро. А то тут только несколько человек все пишут, остальные все хотят на шару и заходят на форум только тогда, когда появляется еще какя нибудь хотелка! PunBB_INFO_ICQ/sorry

10

Re: Картинка для каждой группы

Ну попробую)

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

11

Re: Картинка для каждой группы

Я с удовольствием помогу. По мне так лучше одного человека научить писать расширения, чем писать их самому. Двойная польза и ему самому и нам.

Часто новички, вкусив на сколько прост PunBB сами побуждены больше вкладывать в проект, нежели потребительствовать.
Да и сами подумайте, написав даже самое простое расширение, разве у вас самих не появляется чувства удовлетворения, что вы чего то достигли?

2

12

Re: Картинка для каждой группы

PunBB, Красиво сказал  PunBB_INFO_ICQ/ok. Ну да думаю было бы не плохо если мы бы сделали такое расширение, да и новичкам было бы полезно, т.к я тоже очень давно искал такое расширение но так и не нашел.

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

13

Re: Картинка для каждой группы

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

Итак. Шаг 1.

Создайте каркас расширения. По сути, каркас это директория с айди ID расширения латинскими буквами в нижнем регистре.

Например prefix_ext_name
Префикс - советую его использовать, чтобы в будущем не было путаницы и конфликтов.
В итоге имя может быть таким:
vasya_colored_group
или
petya_groups_color
Но без максимализма, т.е. без предлогов of, on, in, for .... чтобы отражало саму суть

Шаг 2. Файл манифест. Каркас.
Далее внутри директории поместите файл с именем manifest.xml

За основу можете взять манифест любого официального расширения с префиксом pun_ или от fancy_, они образцы в этом отношении.

Вот готовый каркас взятый из расширения Pun BBcode:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
   <id>pun_bbcode</id>
   <title>BBCode buttons</title>
   <version>1.4.18</version>
   <description>(pun_bbcode) - Кнопки для BB - кодов.</description>
   <author>PunBB Development Team</author>

   <minversion>1.4.2</minversion>
   <maxtestedon>1.4.4</maxtestedon>

   <install><![CDATA[
//выполнение скрипта при установке
       ]]></install>

   <uninstall><![CDATA[
//выполнение скрипта при удалении
   ]]></uninstall>

    <hooks>



    </hooks>
</extension>

Итак, задача:
Заполните 5 полей на свои и сохраните файл в кодировке UTF-8

id - имя директории в точности как есть
title - имя расширения, любое
version - ваша текущая версия, желательно начинать с, 0.1 или 1 и при следующих правках увеличивать число, десятое или целое.
description - ваше описание, любое, краткое.
author - ваш ник, логин, емаил и тп.

Вот и все для начала. Это расширение уже можно будет устанавливать и удалять. Правда никаких функций пока оно не выполняет, это мы добавим в будущем.

14

Re: Картинка для каждой группы

Я тут подумал а если просто сделать через php? Пока у меня вот что вышло:

https://punbb.softplaza.net/uploads/images/2017/06/b6255802ac6e239201a240b4f0d06a8b.png

В viewtopic.php после

   $forum_page['author_ident']['username'] = '<li class="username">'.(($forum_user['g_view_users'] == '1') ? '<a title="'.sprintf($lang_topic['Go to profile'], forum_htmlencode($cur_post['username'])).'" href="'.forum_link($forum_url['user'], $cur_post['poster_id']).'">'.forum_htmlencode($cur_post['username']).'</a>' : '<strong>'.forum_htmlencode($cur_post['username']).'</strong>').'</li>';
            $forum_page['author_ident']['usertitle'] = '<li class="usertitle"><span>'.get_title($cur_post).'</span></li>';

Вставить:

   $rang = $cur_post['g_id'];
            if($rang == "1") $userrang = '<img class="popup" src="'.$base_url.'/img/rang/admin.png" title="Системный Администратор проекта">';  
            if($rang == "4") $userrang = '<img class="popup" src="'.$base_url.'/img/rang/moder.png" title="Мл.модератор">';
            if($rang == "3") $userrang = '<img class="popup" src="'.$base_url.'/img/rang/user.png" title="Пользователь">';
           

Осталось только статусы онлайн/оффлайн.. Но тут и проблема не как не могу сделать... Вроде и получается вроде и нет, может кто-нибудь подкинет код.

Пытался заменить на изображение тут:

   if ($cur_post['is_online'] == $cur_post['poster_id'])
            
                  
                  $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Online'].'</span></li>';
                  
            else
               $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Offline'].'</span></li>';
         }
         else

Но не выходит как тут:

https://punbb.softplaza.net/uploads/images/2017/06/3ba1003abb61b8169bb612c4bc3e890c.jpg

$matches[1]

PunBB, Что думаешь? Можно как-нибудь реализовать через код?

Мой форум на PunBB - https://games.myfabis.su/forum/!  Зацени!

15

Re: Картинка для каждой группы

strlog_Prod wrote:

Можно как-нибудь реализовать через код?

можно вшить конечно в сам файл viewtopic.php, но я всегда рекомендую интегрировать с помощью системы хуков.

Ну смотрите, в исходнике того форума вот такая разметка:

<li class="usertitle">
    <span title="Возраст: 25" style="float: left; margin-left: 1px;"><img src="/images/icon_forum/user.png" border="0"></span>
    <span style="float: right;"> <img src="/images/icon_forum/off.png" style="opacity: 0.7;" title="Пользователя сейчас нет на форуме!" border="0"></span>
</li>

Значит нужно найти такой код:

$forum_page['author_ident']['usertitle'] = '<li class="usertitle"><span>'.get_title($cur_post).'</span></li>';

и заменить на

$forum_page['author_ident']['usertitle'] = '
<li class="usertitle">
<span style="float: left; margin-left: 1px;"><img src="/images/icon_forum/user.png" border="0"></span>
<span style="float: right;"><img src="/images/icon_forum/off.png" style="opacity: 0.7;" title="Пользователя сейчас нет на форуме!" border="0"></span>
</li>';

Кроме того нужно назначать картинку в замисимости от группы. Определять так:

if ($cur_post['g_id'] == 1)
{
    echo 'Администратор';
}

1

16

Re: Картинка для каждой группы

Расширение реализовано. Тема более не актуальна. По дополнительным вопросам, запросам пишите в тему расширения вот ссылка