Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » PunBB / FluxBB (форк)

Модерирует : Antuan, Dekker

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

Открыть новую тему     Написать ответ в эту тему

Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


 
Последняя официальная версия: FluxBB 1.5
Скачать
Русский ланг-пак для PunBB 1.2.*
Официальный сайт (англ. яз)
Официальный форум (англ. яз.)
многочисленные моды: здесь и здесь
http://punbb.ru - Русскоязычный не официальный форум.

 
абсолютно нереальный форум  
 * высокая скорость (время генерации станиц + их размер)
 * распространяеться по лицензии GNU GPL
 * требует PHP4(5) + MySQL 3.23 и выше(PgSQL, SQLite)
но есть и минусы - иногда приходится ставить апдейты для закрывания редких дыр. В секьюрити-аудите активно участвуют товарищи из Hardened-PHP Project (http://www.hardened-php.net/), что весьма полезно.
 
есть конверторы из  
    * Invision Power Board 1.3
    * Invision Power Board 2.0
    * MiniBB 1.7d
    * phpBB 2.0
    * PHPNuke 7.4
    * vBulletin 3.0.0
    * YabbSE 1.5.5
 
© Copyright 2002-2008 Rickard Andersson

Всего записей: 3210 | Зарегистр. 25-12-2001 | Отправлено: 20:55 16-08-2003 | Исправлено: Farch, 13:32 24-08-2012
XuM



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexsun
я скоро выложу МОД для punbb на тему отметки прочитанным
 
Добавлено
punbb.org почемуто не ресолвится  меня, поэтому выкладываю сюда.
 
lang/en_common.php

Цитата:
 
find :
'Mark all as read' => 'Mark all forums as read',
 
replace:
'Mark all as read' => 'Mark forum as read',
 

include/functions.php

Цитата:
 
add:
function explode_haveread($var){
    global $haveread;
    $haveread[$var]=true;
  }
 

idex.php

Цитата:
 
find: if (!$cookie['is_guest'] &&($cur_forum['last_post'] > $cur_user['last_post']))
delete it, and add:
$f_id = $cur_forum['fid'];
     $forum_id = $f_id;
 
    $new_cookie="pun-new-$forum_id";
    $haveread_cookie="pun-haveread-$forum_id";
 
        $res = $db->query('Select last_post_id as f_maxid FROM '.$db->prefix.'forums WHERE id='.$f_id.'');
            $f_maxid = $db->result($res,0);
        if(!IsSet($$new_cookie)){
                $$new_cookie='0';
        }
      $use_haveread=false;
           if(IsSet($$haveread_cookie)) {
           $arr=explode(".", $$haveread_cookie);
           $old_message=reset($arr);
           array_walk($arr, "explode_haveread");
           $use_haveread=true;
           }
           else{
               $old_message=$$new_cookie;
    }
              $isnew=false;
             if($use_haveread){
              if ($old_message<$f_maxid) {
                  if(!IsSet($haveread[$f_maxid])) {
                    $isnew=true;
                    }
                  }
          }
              elseif($old_message<$f_maxid){
                $isnew=true;
        }
       if($isnew)
{
                $icon = '<img src="img/'.$pun_config['o_default_style'].'_new.png" width="16" height="16" alt="">';
        }
    else
        icon = '&nbsp;';
 

misc.php

Цитата:
 
find: elseif ($action == 'markread') and replace whole elsif with:
    elseif ($action == 'markread')
 {
           $forum_id = intval($_GET['fid']);
           
    $new_cookie="pun-new-$forum_id";
    $haveread_cookie="pun-haveread-$forum_id";
     
        $res = $db->query('Select last_post_id as max_id FROM '.$db->prefix.'forums WHERE id='.$forum_id.'');
        //$aryRow=$q->getrow();
        $aryRow= $db->fetch_array($res);
        if(isset($aryRow['max_id'])){
            $max_id=$aryRow['max_id'];
            $$new_cookie=$max_id;
            SetCookie($new_cookie,$$new_cookie,time()+ 31536000);
            SetCookie($haveread_cookie,$$new_cookie); //destroy session cookie
            unset($$haveread_cookie);
        }
         
        redirect($_SERVER['HTTP_REFERER'], $lang_misc['Mark read redirect']);
    }
// end marking
 

viewforum.php

Цитата:
 
find:
<td class="punright" style="width: 19%; white-space: nowrap"><b><?php echo $post_link ?></b></td>
after add:
<td><?php echo '&nbsp;&nbsp;<b><a href="misc.php?action=markread&fid='.$id.'">'.$lang_common['Mark forum read'].'</b></a>' ?></td>

find:
       if (!$cookie['is_guest'] && $cur_topic['last_post'] > $cur_user['last_visit'] && $cur_topic['moved_to'] == null)
        {
            if ($cur_user['show_img'] == '1')
                $icon = '<img src="img/'.$cur_user['style'].'_new.png" width="16" height="16" alt="">';
            else
                $icon = '<span class="puntext"><b>&#8226;</b></span>';
 
            $subject = '<b>'.$subject.'</b>';
            //New posts in the topic
            $subject_new_posts = '[&nbsp;<a href="viewtopic.php?id='.$cur_topic['id'].'&amp;action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a>&nbsp;]';
        }
        else
        {
            $icon = '&nbsp;';
            $subject_new_posts = null;
        }
 
replace with:
 
$forum_id = $id;
$new_cookie="pun-new-$forum_id";
$haveread_cookie="pun-haveread-$forum_id";
$t_id = $cur_topic['id'];
 
    $res = $db->query('Select last_post_id as t_maxid FROM '.$db->prefix.'topics WHERE id='.$cur_topic['id'].'');
    $t_maxid = $db->result($res,0);
    if(!IsSet($$new_cookie)){
        $$new_cookie='0';
    }
 
    $use_haveread=false;
    if(IsSet($$haveread_cookie)) {
        $arr=explode(".", $$haveread_cookie);
        $old_message=reset($arr);
        array_walk($arr, "explode_haveread");
        $use_haveread=true;
    }
    else{
        $old_message=$$new_cookie;
    }
 
   $isnew=false;
   
        if($use_haveread){
          if ($old_message<$t_maxid) {
            if(!IsSet($haveread[$t_maxid])) {
              $isnew=true;
            }
          }
        }
        elseif($old_message<$t_maxid){
          $isnew=true;
        }
   
         if($isnew){
                   //New posts in the topic
        $subject_new_posts = '[&nbsp;<a href="viewtopic.php?id='.$cur_topic['id'].'&amp;action=new" title="'.$lang_common['New posts info'].'"><font color=orange>New</font></a>&nbsp;]';
      }
      else{
            $subject_new_posts = null;}
             
 

viewtopic.php

Цитата:
 
 find:
 else if (isset($_GET['action']) && $_GET['action'] == 'new' && !$cookie['is_guest'])
{
      $result = $db->query('SELECT MIN(id) FROM '.$db->prefix.'posts WHERE topic_id='.$id.' AND posted >'.$cur_user['last_visitonline']) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
  $first_new_post_id = $db->result($result, 0);
 
 replace with
 else if (isset($_GET['action']) && $_GET['action'] == 'new')
 {  
 $res = $db->query('Select id from '.$db->prefix.'posts where topic_id='.$id.' ORDER BY id');
 $rec = $db->fetch_row($res);
   While($rec){
       $msgarr[]=$rec[0];
        $rec = $db->fetch_row($res);
        }
 $res = $db->query('Select forum_id from '.$db->prefix.'topics where topic_id='.$id.'');
 $forum_id = $db->result($res,0);
 
$new_cookie="pun-new-$forum_id";
$haveread_cookie="pun-haveread-$forum_id";
 
 $arr=explode(".", $$haveread_cookie);                          
 
        function newmsg($a, $b) {
        $al = sizeof($a);
        $bl = sizeof($b);
        sort($a);
                               
         if ($b[$bl-1]<$a[0]) return $b[$bl-1];
         
        $i = 0; $j = 0;
        while(1) {
        if ($a[$i] < $b[$j]) {
                   $i++;
             if ($i == $al) return $b[$j];
             } else if($a[$i] == $b[$j]) {
                $j++;
            if ($j == $bl) return $b[$bl-1];
                } else {
               return $b[$j];
              }
          }
        }
 
    $first_new_post_id = newmsg($arr, $msgarr);
     
     
find:  
$footer_style = 'topic';
require $pun_root.'footer.php';
 
before add:
$new_cookie="pun-new-$forum_id";  
$haveread_cookie="pun-haveread-$forum_id";
 
 
    if(!IsSet($$new_cookie)){
      $$new_cookie='0';
    }
 
    $use_haveread=false;
    if(IsSet($$haveread_cookie)) {
      $arr=explode(".", $$haveread_cookie);
      $old_message=@reset($arr);
      array_walk($arr, "explode_haveread");
      $use_haveread=true;
    }
    else{
      $old_message=$$new_cookie;
    }
     
     
  $res = $db->query('Select id from '.$db->prefix.'posts where topic_id='.$id.' ORDER BY id');
  $rec = $db->fetch_row($res);
 
  While($rec){
    $headers[]=$rec;
    $rec = $db->fetch_row($res);
     }
      $madechange=false;
     @reset($headers);
    $row=@current($headers);
      while(!empty($row[0])){
 
        if(empty($haveread[$row[0]]) && $row[0] > $old_message){
          $madechange=true;
          if(empty($$haveread_cookie)){
            $haveread[$$new_cookie] = true;
            $$haveread_cookie=$$new_cookie;
          }
          $$haveread_cookie.=".";
          $$haveread_cookie.=$row[0];
        }
        $haveread[$row[0]] = true;
        $max_id=$row[0];
        $row=next($headers);
      }
      if ($madechange) {
        SetCookie($haveread_cookie,$$haveread_cookie,0);
      }
     
   
 
  if($UseCookies){
    if($$new_cookie<$max_id){
      $$new_cookie=$max_id;
      SetCookie($new_cookie,$$new_cookie,time()+ 31536000);
    }
  }
 


----------
В этом нет ничего сложного. Просто нужно нажимать нужные клавиши в нужное время!(с) И.С. Бах

Всего записей: 464 | Зарегистр. 31-01-2003 | Отправлено: 10:52 11-12-2004
alexbw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тут кое-что интересное выяснил.
максимальное количество сессий в базе данных может быть около 618
punbb_online (HEAP, 208 байт на сессию, 126кб всего)
а это сильное ограничение ((
 
600 юзверей одновременно - мда-а-а-а-а....серьезный посещаемый форум не поднять
 
кстати, ктонибудь знает длительность жизни сессии в базе?

Всего записей: 21 | Зарегистр. 07-12-2004 | Отправлено: 22:33 12-12-2004
XuM



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexbw
хм, ну возьми и поправь, сделай ее не HEAP а обычной.
кстати откуда такие значения насчет 126Кб ??
я вот только такие нашел на dev.mysql.com

Цитата:
MEMORY tables allow up to 32 indexes per table, 16 columns per index, and a maximum key length of 500 bytes.



----------
В этом нет ничего сложного. Просто нужно нажимать нужные клавиши в нужное время!(с) И.С. Бах

Всего записей: 464 | Зарегистр. 31-01-2003 | Отправлено: 10:38 13-12-2004
alexbw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
откуда значения?...практически выяснено...путем исследования базы
 
а вообще я уже разоврался...мне разработчик ответил
http://forums.punbb.org/viewtopic.php?id=5310
 
хороший форум, жаль только не хватает лички, аттачментов и кнопок в ответе для быстрой вставки ХТТП, картинок и т.д.
а так я сравнил голый движок с phpbb последним...в среднем скорость быстрее в 3-4 раза (с кэшированием) и в 5-6 раз (без кеширования) на всех страницах и подфорумах...
у меня на сервере генерация некоторых страниц была 0.01 секунду

Всего записей: 21 | Зарегистр. 07-12-2004 | Отправлено: 12:52 13-12-2004
alexsun



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XuM всё классно!
Но только почему то не работает "Пометить все форумы".
Как работает механизм?

Всего записей: 20 | Зарегистр. 10-05-2002 | Отправлено: 15:33 13-12-2004
XuM



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexsun
смотри на форуме PunBB, там поправленная версия лежит, в этой кучка ошибок, а пометить все форумы ты и сам сделать можешь, мне просто это не надо было, я и не сделал. отметка отдельно форума есть.

----------
В этом нет ничего сложного. Просто нужно нажимать нужные клавиши в нужное время!(с) И.С. Бах

Всего записей: 464 | Зарегистр. 31-01-2003 | Отправлено: 15:39 13-12-2004 | Исправлено: XuM, 15:45 13-12-2004
alexeyz



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
punBB, как оказалось, на собственном печально опыте , также как и phpBB подвержен уязвимости PHPBB Remote URLDecode Input Validation Vulnerability, которую использует червь PHP/PERL Santy.A.worm .  
 
Подробнее: http://www.securityfocus.com/bid/11672
 
У меня пострадали как сайты с phpBB, так и сайты с punbb.
 
Может, есть специалисты, которые помогут изменить код форума, чтобы избежать в будующем таких проблем?

Всего записей: 184 | Зарегистр. 22-10-2002 | Отправлено: 22:28 23-12-2004
alexbw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вышла вторая версия...punBB 1.2
Супер!!!

Всего записей: 21 | Зарегистр. 07-12-2004 | Отправлено: 01:43 09-01-2005
ringer

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://punbb.f-j.ru

Всего записей: 108 | Зарегистр. 12-02-2004 | Отправлено: 21:58 28-01-2005
alexeyz



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Забавный глюк в версии 1.2:
 
Невозможно написать большую русскую букву "К", так как в функции pun_trim заменяется на пробел также и символ с кодом chr(0xCA), что и соответствует "К"
 
Лечиться элементарно, в файле include\functions.php заменить функцию pun_trim на:
 

Код:
 
function pun_trim($str)
{
$fishy_chars = array(chr(0x81), chr(0x8D), chr(0x8F), chr(0x90), chr(0x9D), chr(0xA0), '&nbsp;');
 
return trim(str_replace($fishy_chars, ' ', $str));
}
 

 
PS: думается, что в различных кодировках этот баг будет проявляться по-разному...

Всего записей: 184 | Зарегистр. 22-10-2002 | Отправлено: 12:09 02-02-2005 | Исправлено: alexeyz, 12:09 02-02-2005
Austral

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, обновите шапку! Вышел PunBB 1.2.1.

Всего записей: 152 | Зарегистр. 12-03-2002 | Отправлено: 14:47 03-02-2005
KEM



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, кто-нить может сделать версию с встроенными модами, чтоб уже инсталировалась версия с расширенными возможностями и русская версия????
И ещё вопрос, кто-нить может сделать мод для админа, который позволял бы скачивать форум и отдельные ветки (темы, разделы) форума на винт для оффлайн просмотра. Тогда бы форум реальностал круче.
Вобщем ждёмс версии с модами. Хотя бы голосование, скрытия резделов, нормальные кнопки для выделения текста и вставки ссылок (как на других движках), рейтинг.....
http://punbb.f-j.ru тут есть описание как сделать чтоб были кнопки при ответе.

Всего записей: 387 | Зарегистр. 02-09-2004 | Отправлено: 15:35 11-02-2005
KAdot



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вышла версия 1.2.3. Исправлены уязвимости в безопасности.

Всего записей: 75 | Зарегистр. 10-07-2003 | Отправлено: 16:36 13-03-2005 | Исправлено: KAdot, 16:37 13-03-2005
Romych

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а есть типа ру-бордовского стиль? =)

Всего записей: 226 | Зарегистр. 06-04-2004 | Отправлено: 21:10 18-03-2005
KAdot



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вышла версия 1.2.4
Опять проблемы с безопасностью
Romych
со стилями к панбб туго

Всего записей: 75 | Зарегистр. 10-07-2003 | Отправлено: 21:48 19-03-2005
Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PunBB is currently undergoing a security audit and this is the reason for the high number of security updates lately.

Всего записей: 3210 | Зарегистр. 25-12-2001 | Отправлено: 22:23 23-03-2005
netspider

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Никто не задавался вопросом повышения секурности данного форума?
Имеется в виду в первую очередь процедура авторизации на форуме...

Всего записей: 405 | Зарегистр. 13-01-2004 | Отправлено: 06:37 04-04-2005
XuM



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
netspider
в данный момент как раз этим занимаюсь, перевожу на сессии все

Всего записей: 464 | Зарегистр. 31-01-2003 | Отправлено: 06:44 04-04-2005
netspider

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XuM
Хим...вроде как бы я этим должен был заниматься

Всего записей: 405 | Зарегистр. 13-01-2004 | Отправлено: 07:05 04-04-2005
XuM



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
netspider
бугага не узнал тебя в гриме

Всего записей: 464 | Зарегистр. 31-01-2003 | Отправлено: 08:17 04-04-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » PunBB / FluxBB (форк)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru