Oficjalne forum pomocy serwisu PUN.pl

Niestety, nikt nie powie Ci czym jest FluxBB - musisz go poznać sam!

Nie jesteś zalogowany na forum.

#1 2012-07-27 21:48:52

xn
Użytkownik
Dołączył: 2010-08-09
Liczba postów: 455

Not Sum - wyłączenie zliczania postów dla wybranych działów

Pewien rosyjski programista stworzył modyfikację, niestety dla FluxBB 1.4... i jakby tego było mało - nie ma wersji samodzielnej (stworzył wersję FluxBB z wbudowanymi modami).

Pogrzebałem i przystosowałem go do PunBB 1.2 (1.4 pewnie też ;D)


UWAGA!
W PLIKU AP_Not_Sum.php ZROBIŁEM PROWIZORKĘ!
ŚCIEŻKI do admin_forums.php oraz admin_plugin_not_sum.php są tam ustawione na sztywno!
(wygląda to tak:
require PUN_ROOT.'lang/Polish/admin_forums.php';
require PUN_ROOT.'lang/Polish/admin_plugin_not_sum.php';
)
Plik lang/Polish/admin_forums.php to zupełnie inny plik niż ten w folderze głównym!
FluxBB ma dwa pliki tak nazwane (w folderze głównym i w lang/XXX/admin_forums.php), a punBB tylko w folderze głównym. 
Do punbb 1.2 przystosował Nitrol.


I. delete.php
    
    1.
        Zamień:
            delete_topic($cur_post['tid']);
        Na:
            delete_topic($cur_post['tid'], $cur_post['no_sum_mess']); // not sun - Visman
    
    2.
        Znajdź linię:
            redirect('viewtopic.php?id='.$cur_post['tid'], $lang_delete['Post del redirect']);
        Dodaj PRZED nią:
            // not sum - Visman
            if ($cur_post['no_sum_mess'] == 0)
                $db->query('UPDATE '.$db->prefix.'users SET num_posts=num_posts-1 WHERE id='.$cur_post['poster_id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
    
    3.    
        Znajdź linię:
            $result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.id AS tid, t.subject, t.posted, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
        Po:
        f.moderators, f.redirect_url, 
        Dodaj:
        f.no_sum_mess,

        
II. include\common_admin.php

    1.
        Znajdź linie:
            if ($topic_ids != '')
            {
        Dodaj PO nich:
            // not sum - Visman
            $result = $db->query('SELECT no_sum_mess FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Unable to fetch forums', __FILE__, __LINE__, $db->error());
            if (!$db->num_rows($result))
                $flag_f = 1;
            else
                $flag_f = $db->result($result);
                
            if ($flag_f == 0)
            {
                $result = $db->query('SELECT COUNT(id), poster_id FROM '.$db->prefix.'posts WHERE topic_id IN('.$topic_ids.') GROUP BY poster_id', true) or error('Unable to fetch posts', __FILE__, __LINE__, $db->error());
                while ($row = $db->fetch_row($result))
                {
                $db->query('UPDATE '.$db->prefix.'users SET num_posts = num_posts-'.$row[0].' WHERE id='.$row[1]) or error('Unable to update posters messages count', __FILE__, __LINE__, $db->error());
                }
            }
III. moderate.php

    1.
        Znajdź linię:
            $result = $db->query('SELECT moderators FROM '.$db->prefix.'forums WHERE id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
        Zamień ją na:
            $result = $db->query('SELECT moderators, no_sum_mess FROM '.$db->prefix.'forums WHERE id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error()); // not sum - Visman
    
    2.
        Znajdź linię:
            // Delete the posts
        Dodaj PRZED nią:
            // ?????????? ?????? ? ?????? ? not sum - Visman
            if ($flag_f == 0)
            {
                $result = $db->query('SELECT COUNT(id), poster_id FROM '.$db->prefix.'posts WHERE id IN('.$posts.') GROUP BY poster_id', true) or error('Unable to fetch posts', __FILE__, __LINE__, $db->error());
                while ($row = $db->fetch_row($result))
                {
                    $db->query('UPDATE '.$db->prefix.'users SET num_posts=num_posts-'.$row[0].' WHERE id='.$row[1]) or error('Unable to update posters messages count', __FILE__, __LINE__, $db->error());
                }
            }
    
    3.
        Znajdź linię:
            // Create a list of the post ID's in this topic and then strip the search index
        Dodaj PRZED nią:
            // ?????????? ?????? ? ?????? ? not sum - Visman
            if ($flag_f == 0)
            {
                $result = $db->query('SELECT COUNT(id), poster_id FROM '.$db->prefix.'posts WHERE topic_id IN('.$topics.') GROUP BY poster_id', true) or error('Unable to fetch posts', __FILE__, __LINE__, $db->error());
                while ($row = $db->fetch_row($result))
                {
                    $db->query('UPDATE '.$db->prefix.'users SET num_posts=num_posts-'.$row[0].' WHERE id='.$row[1]) or error('Unable to update posters messages count', __FILE__, __LINE__, $db->error());
                }
            }
    
    
IV. post.php
    
    1.
        Znajdź linie:
            if ($tid)
                $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.subject, t.closed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$tid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
            else
                $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
        Zamień je na:
            if ($tid)
                $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, f.no_sum_mess, fp.post_replies, fp.post_topics, t.subject, t.closed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$tid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
            else
                $result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, f.no_sum_mess, fp.post_replies, fp.post_topics FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND f.id='.$fid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
                
V. include\functions.php
    1.
        Znajdź linie:
            function delete_topic($topic_id)
            {
                global $db;

                // Delete the topic and any redirect topics
                $db->query('DELETE FROM '.$db->prefix.'topics WHERE id='.$topic_id.' OR moved_to='.$topic_id) or error('Unable to delete topic', __FILE__, __LINE__, $db->error());

                // Create a list of the post ID's in this topic
                $post_ids = '';
                $result = $db->query('SELECT id FROM '.$db->prefix.'posts WHERE topic_id='.$topic_id) or error('Unable to fetch posts', __FILE__, __LINE__, $db->error());
                while ($row = $db->fetch_row($result))
                    $post_ids .= ($post_ids != '') ? ','.$row[0] : $row[0];
                    
        Zamień je na:
            function delete_topic($topic_id, $flag_f = 1) // not sum - Visman
            {
            global $db;

                // Delete the topic and any redirect topics
                $db->query('DELETE FROM '.$db->prefix.'topics WHERE id='.$topic_id.' OR moved_to='.$topic_id) or error('Unable to delete topic', __FILE__, __LINE__, $db->error());

                if ($flag_f == 0) // ?????????? ?????? ? ?????? ? not sum - Visman
                {
                    $result = $db->query('SELECT COUNT(id), poster_id FROM '.$db->prefix.'posts WHERE topic_id='.$topic_id.' GROUP BY poster_id') or error('Unable to fetch posts', __FILE__, __LINE__, $db->error());
                    while ($row = $db->fetch_row($result))
                    {
                        $db->query('UPDATE '.$db->prefix.'users SET num_posts = num_posts-'.$row[0].' WHERE id='.$row[1]) or error('Unable to update posters messages count', __FILE__, __LINE__, $db->error());
                    }
                }
                
                
                
                
Na koniec.
    Skopiuj pliki:
        lang\Polish\admin_plugin_not_sum.php 
        lang\Polish\admin_forums.php
        plugins\AP_Not_Sum.php

        
Dowolną metodą do bazy danych forum do tabeli forums dodaj:
`no_sum_mess` tinyint(1) NOT NULL default '0',

Do pobrania tu:
http://lionking.trh.com.pl/NOTSUM.zip

Mam nadzieję, że Tomkowi zechce się go wgrać. [sred])

Offline

#2 2012-07-27 22:20:47

Dares
Użytkownik
Skąd: Łomża
Dołączył: 2012-04-14
Liczba postów: 1,551
WWW

Odp: Not Sum - wyłączenie zliczania postów dla wybranych działów

Co tu dużo mówić? To samo co przy innych twoich modyfikacjach.
Good work, men.

PS: Czy mi się zdaje, czy aby zwykli użytkownicy nie robią aby dla pun'a aby więcej niż sam tomek?


img.php?type=sig&player_id=568895

Offline

#3 2012-08-09 17:13:34

Rudik
Użytkownik
Skąd: Iława
Dołączył: 2007-06-18
Liczba postów: 5,530

Odp: Not Sum - wyłączenie zliczania postów dla wybranych działów

Nie sprawdzałem samego kodu, ale readme masz bardzo mało czytelny
Istnieje szablon według którego tworzy się pliki readme dla PunBB, wystarczyłoby zobaczyć przykładowy readme z punresu, gdyby jeszcze istniał, ale pokaże Ci readme z mojego Punportalu (wzorowałem się na tym szablonie):

##
##
##        Mod title:  PunPortal by Rudik
##
##      Mod version:  1.0
##
##   Works on PunBB:  1.2.23
##
##     Release date:  2011-12-17
##
##           Author:  Paweł Neścior "Rudik" (pavel.henry@gmail.com)
##
##      Description:  Adds possibility to add portal as a main page of the forum.
##
##       Affects DB:  Yes
##
##   Affected files:  index.php
##                    header.php
##                    viewtopic.php
##                    viewforum.php
##                    include/functions.php
##
##            Notes:  None
##
##       DISCLAIMER:  Please note that 'mods' are not officially supported by
##                    PunBB. Installation of this modification is done at your
##                    own risk. Backup your forum database and any and all
##                    applicable files before proceeding.
##

#
#---------[ 1. CHANGE NAME ]---------------------------------------------------
#

index.php to forums.php (IMPORTANT!)

#
#---------[ 2. UPLOAD ]---------------------------------------------------
#

install_mod.php to /
AP_PunPortal.php to plugins/
index.php to /
punportal.php to lang/YOUR_LANGUAGE/

#
#---------[ 3. RUN ]---------------------------------------------------
#

install_mod.php

#
#---------[ 4. DELETE ]---------------------------------------------------
#

install_mod.php

#
#---------[ 5. OPEN ]---------------------------------------------------
#

lang/YOUR_LANGUAGE/punportal.php

#
#---------[ 6. PLACE YOUR LANGUAGE TEXT ]---------------------------------------------------
#

#
#---------[ 7. OPEN ]---------------------------------------------------
#

include/functions.php

#
#---------[ 8. FIND (line: 274) ]---------------------------------------------------
#

$links[] = '<li id="navindex"><a href="index.php">'.$lang_common['Index'].'</a>';


#
#---------[ 9. REPLACE WITH ]---------------------------------------------------
#

if ($pun_config['o_portal'] == '1')
		$links[] = '<li id="navportal"><a href="index.php">Portal</a>';
$links[] = '<li id="navindex"><a href="forums.php">'.$lang_common['Index'].'</a>';

#
#---------[ 10. OPEN ]---------------------------------------------------
#

viewtopic.php

#
#---------[ 11. FIND (line: 173) ]---------------------------------------------------
#

<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a></li><li>&nbsp;&raquo;&nbsp;<a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li>&nbsp;&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_topic['subject']) ?></li></ul>

#
#---------[ 12. REPLACE WITH ]---------------------------------------------------
#

<ul><li><a href="forums.php"><?php echo $lang_common['Index'] ?></a></li><li>&nbsp;&raquo;&nbsp;<a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li>&nbsp;&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_topic['subject']) ?></li></ul>

#
#---------[ 13. FIND (line: 351) ]---------------------------------------------------
#

<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a></li><li>&nbsp;&raquo;&nbsp;<a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li>&nbsp;&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_topic['subject']) ?></li></ul>

#
#---------[ 14. REPLACE WITH ]---------------------------------------------------
#

<ul><li><a href="forums.php"><?php echo $lang_common['Index'] ?></a></li><li>&nbsp;&raquo;&nbsp;<a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li>&nbsp;&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_topic['subject']) ?></li></ul>

#
#---------[ 15. OPEN ]---------------------------------------------------
#

viewforum.php

#
#---------[ 16. FIND (line: 88) ]---------------------------------------------------
#

<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a>&nbsp;</li><li>&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>

#
#---------[ 17. REPLACE WITH ]---------------------------------------------------
#

<ul><li><a href="forums.php"><?php echo $lang_common['Index'] ?></a>&nbsp;</li><li>&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>

#
#---------[ 18. FIND (line: 247) ]---------------------------------------------------
#

<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a>&nbsp;</li><li>&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>

#
#---------[ 19. REPLACE WITH ]---------------------------------------------------
#

<ul><li><a href="forums.php"><?php echo $lang_common['Index'] ?></a>&nbsp;</li><li>&raquo;&nbsp;<?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></li></ul>

#
#---------[ 20. OPEN ]---------------------------------------------------
#

header.php

#
#---------[ 21. FIND (line: 80) ]---------------------------------------------------
#

<link rel="stylesheet" type="text/css" href="style/<?php echo $pun_user['style'].'.css' ?>" />
<?php

#
#---------[ 22. AFTER, ADD ]---------------------------------------------------
#

if ($pun_config['o_portal'] == 1) {
    $leftPanels = $db->query('SELECT * FROM ' . $db->prefix . 'portalpanels WHERE side = 1 ORDER BY `order`');
    $leftPanelsCount = $db->num_rows($leftPanels);
    $rightPanels = $db->query('SELECT * FROM ' . $db->prefix . 'portalpanels WHERE side = 2 ORDER BY `order`');
    $rightPanelsCount = $db->num_rows($rightPanels);
    echo "<style type=\"text/css\">";
    echo "\n#main { " . (($leftPanelsCount > 0) ? "margin-left: 190px;\n" : "") . (($rightPanelsCount > 0) ? "margin-right: 190px;\n" : "") . " }";
    echo "\n#left { width: 180px; float: left; }";
    echo "\n#right { width: 180px; float: right; }";
    echo "\n</style>\n";
}

#
#---------[ 23. FIND (line: 164) ]---------------------------------------------------
#

// START SUBST - <pun_title>
$tpl_main = str_replace('<pun_title>', '<h1><span>'.pun_htmlspecialchars($pun_config['o_board_title']).'</span></h1>', $tpl_main);
// END SUBST - <pun_title>

#
#---------[ 24. REPLACE WITH ]---------------------------------------------------
#

// START SUBST - <pun_title>
if (defined('PUN_PORTAL') && $pun_config['o_portaltitle'] != '') {
    $tpl_main = str_replace('<pun_title>', '<h1><span>'.pun_htmlspecialchars($pun_config['o_portaltitle']).'</span></h1>', $tpl_main);
}
else {
    $tpl_main = str_replace('<pun_title>', '<h1><span>'.pun_htmlspecialchars($pun_config['o_board_title']).'</span></h1>', $tpl_main);
}
// END SUBST - <pun_title>

#
#---------[ 25. FIND (line: 174) ]---------------------------------------------------
#

// START SUBST - <pun_desc>
$tpl_main = str_replace('<pun_desc>', '<p><span>'.$pun_config['o_board_desc'].'</span></p>', $tpl_main);
// END SUBST - <pun_desc>

#
#---------[ 26. REPLACE WITH ]---------------------------------------------------
#

// START SUBST - <pun_desc>
if (defined('PUN_PORTAL') && $pun_config['o_portaldesc'] != '') {
    $tpl_main = str_replace('<pun_desc>',$pun_config['o_portaldesc'],$tpl_main);
}
else {
    $tpl_main = str_replace('<pun_desc>', '<p><span>'.$pun_config['o_board_desc'].'</span></p>', $tpl_main);
}
// END SUBST - <pun_desc>

#
#---------[ 27. FIND (line: 218) ]---------------------------------------------------
#

if ($pun_config['o_announcement'] == '1')

#
#---------[ 28. REPLACE WITH ]---------------------------------------------------
#

if ((!defined('PUN_PORTAL') && $pun_config['o_announcement'] == '1') || (defined('PUN_PORTAL') && $pun_config['o_portalannoun'] == '1'))

#
#---------[ 29. FIND (line: 222) ]---------------------------------------------------
#

			<div><?php echo $pun_config['o_announcement_message'] ?></div>

#
#---------[ 30. REPLACE WITH ]---------------------------------------------------
#

			<div><?php echo defined('PUN_PORTAL') ? (($pun_config['o_portalannoundiff'] == '1') ? $pun_config['o_announcement_message'] : $pun_config['o_portalannounmessage']) : $pun_config['o_announcement_message']; ?></div>

#
#---------[ 31. SAVE/UPLOAD ]---------------------------------------------------
#

Offline

#4 2012-08-25 17:11:43

xn
Użytkownik
Dołączył: 2010-08-09
Liczba postów: 455

Odp: Not Sum - wyłączenie zliczania postów dla wybranych działów

Mogę poprawić readme - gdyby Tomek powiedziałby chociaż czy jest zainteresowany instalacją tego moda.

Offline

#5 2012-08-26 14:25:57

Dod108
Użytkownik
Dołączył: 2008-04-16
Liczba postów: 6,745
WWW

Odp: Not Sum - wyłączenie zliczania postów dla wybranych działów

Tomasz i tak zapewne nie wgra tego moda, bo uzna, że "jest bez sensu"(w przypadku cashmoda tak powiedział na chacie - link), lub "nie ma czasu".

Ostatnio edytowany przez Dod108 (2012-08-26 14:35:55)


Rada Magów Puna

Offline

Użytkowników czytających ten temat: 0, gości: 1
[Bot] claudebot

Stopka

Forum oparte na FluxBB

Darmowe Forum
forum-xytheria2 - mythofempire - forumdream - metin2mody - gminachorkowka