Минимум мнения за пускане на нова тема
Автор: djvato
Това е урок който може да ограничите в който си искате раздел от колко мнения да може да се пуска нова тема Confused мисля , че описанието е достатъчно и затова нека започнем . Забравих да добавя … това не важи за администратори и модератори само за потребители администраторите и модераторите могат да си имат и помалко мнения но пак ще могат да пишат !
Преди да започнем и със самия урок трябва да създадем един файл db.php
db.php
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if( !$userdata['session_logged_in'] )
{
$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("login.$phpEx?redirect=db_update.$phpEx", true));
exit;
}
if( $userdata['user_level'] != ADMIN )
{
message_die(GENERAL_MESSAGE, 'You are not authorised to access this page');
}
$page_title = 'Updating the database';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
echo '<table width="100%" cellspacing="1" cellpadding="2" border="0" class="forumline">';
echo '<tr><th>Updating the database</th></tr><tr><td><span class="genmed"><ul type="circle">';
$sql = array();
$sql[] = "ALTER TABLE " . $table_prefix . "forums ADD minimum_posts_newthread MEDIUMINT(8) unsigned default '0'";
for( $i = 0; $i < count($sql); $i++ )
{
if( !$result = $db->sql_query ($sql[$i]) )
{
$error = $db->sql_error();
echo '<li>' . $sql[$i] . '<br /> +++ <font color="#FF0000"><b>Error:</b></font> ' . $error['message'] . '</li><br />';
}
else
{
echo '<li>' . $sql[$i] . '<br /> +++ <font color="#00AA00"><b>Successfull</b></font></li><br />';
}
}
echo '</ul></span></td></tr><tr><td class="catBottom" height="28"> </td></tr>';
echo '<tr><th>End</th></tr><tr><td><span class="genmed">Installation is now finished. Please be sure to delete this file now.<br />If you have run into any errors, please visit the <a href="http://www.darkcheats.org" target="_phpbbsupport">DarkCheats.org</a> and ask someone for help.</span></td></tr>';
echo '<tr><td class="catBottom" height="28" align="center"><span class="genmed"><a href="' . append_sid("index.$phpEx") . '">Have a nice day</a></span></td></table>';
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>след като сложито този код в файла стартирайте го … след ако всичко е минало добре го изтрийте !
за тези който незнаят файла служи за промени в базата данни вместо за ръчкате из phpmyadmin направо файла си върши работата !
след това
#
#-----[ отваряте ]------------------------------------------
#
posting.php
#
#----[ намирате ]------------------------------------------
#
//
// Here we do various lookups to find topic_id, forum_id, post_id etc.
// Doing it here prevents spoofing (eg. faking forum_id, topic_id or post_id
//
#
#-----[ преди него добавяте ]------------------------------------------
#
//
// Minimum Posts to New Thread
//
if (!($userdata['user_level'] == ADMIN OR $userdata['user_level'] == MOD))
{
$sql = "SELECT f.forum_id, f.minimum_posts_newthread, u.user_posts
FROM " . FORUMS_TABLE . " f, " . USERS_TABLE . " u
WHERE user_id = " . $userdata['user_id'];
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
$forum_id_limit = $row['forum_id'];
$minimum_posts_newthread = $row['minimum_posts_newthread'];
$user_posts_limit = $row['user_posts'];
$error_limit = sprintf($lang['minimum_posts_newthread_error'], $minimum_posts_newthread);
if ($forum_id == $forum_id_limit AND $user_posts_limit < $minimum_posts_newthread)
{
message_die(GENERAL_ERROR, $error_limit);
}
}
}
//
// Minimum Posts to New Thread
//
//
#
#-----[ отваряте ]------------------------------------------
#
admin/admin_forums.php
#
#----[ намирате ]------------------------------------------
#
$forumstatus = $row['forum_status'];
#
#----[ след него добавяте ]------------------------------------------
#
$minimum_posts_newthread = $row['minimum_posts_newthread'];
#
#----[ намирате ]------------------------------------------
#
$forumstatus = FORUM_UNLOCKED;
#
#----[ след него добавяте ]------------------------------------------
#
$minimum_posts_newthread = '';
#
#----[ намирате ]------------------------------------------
#
'FORUM_NAME' => $forumname,
#
#----[ след него добавяте ]------------------------------------------
#
'minimum_posts_newthread' => $minimum_posts_newthread,
'L_minimum_posts_newthread' => $lang['minimum_posts_newthread'],
#
#-----[ намирате ]--------------------------------------------
#
$sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ")
VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")";
#
#-----[ на същия ред някъде ще намерите ]------------------------------------
#
, forum_status
#
#-----[ след него добавяте ]--------------------------------------
#
, minimum_posts_newthread
#
#-----[ след това пак на съшия ред някъде ще намерите ]------------------------------------
#
, " . intval($HTTP_POST_VARS['forumstatus']) . "
#
#-----[ след него добавяте ]--------------------------------------
#
, " . intval($HTTP_POST_VARS['minimum_posts_newthread']) . "
#
#-----[ намирате ]--------------------------------------------
#
$sql = "UPDATE " . FORUMS_TABLE . "
SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . "
#
#-----[ някъде на реда ще намерите ]------------------------------------
#
, forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . "
#
#-----[ след него добавяте ]--------------------------------------
#
, minimum_posts_newthread = " . intval($HTTP_POST_VARS['minimum_posts_newthread']) . "
#
#-----[ отваряте ]------------------------------------------
#
language/lang_languagename/lang_main.php
#
#----[ намирате ]------------------------------------------
#
?>
#
#----[ преди него добавяте ]------------------------------------------
#
$lang['minimum_posts_newthread'] = 'Минимум мнения за пускане на нова тема';
$lang['minimum_posts_newthread_error'] = 'Извиняваме се за неудопството , но вие трябва да имате поне <b>%d</b> мнения за да можете да пустнете нова тема.';
#
#-----[ отваряте ]------------------------------------------
#
templates/templatename/admin/forum_edit_body.tpl
#
#----[ намирате ]------------------------------------------
#
<tr>
<td class="row1">{L_FORUM_STATUS}</td>
<td class="row2"><select name="forumstatus">{S_STATUS_LIST}</select></td>
</tr>
#
#----[ след него добавяте ]------------------------------------------
#<tr>
<td class="row1">{L_minimum_posts_newthread}</td>
<td class="row2"><input type="text" name="minimum_posts_newthread" value="{minimum_posts_newthread}" size="10" maxlength="8" /></td>
</tr>

