Nie jesteś zalogowany na forum.
Strony: 1
Wątek zamknięty
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ć.
Offline
Offline
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> » <a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li> » <?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> » <a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li> » <?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> » <a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li> » <?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> » <a href="viewforum.php?id=<?php echo $cur_topic['forum_id'] ?>"><?php echo pun_htmlspecialchars($cur_topic['forum_name']) ?></a></li><li> » <?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> </li><li>» <?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> </li><li>» <?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> </li><li>» <?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> </li><li>» <?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
Mogę poprawić readme - gdyby Tomek powiedziałby chociaż czy jest zainteresowany instalacją tego moda.
Offline
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
Strony: 1
Wątek zamknięty