Потребителите стартират с подпис по ваш избор
Автор: ProGame
С този урок потребителите стартират с подпис по ваш избор
Създаите един фаил db_update.php
<?php
/***************************************************************************
* score_install.php
* -------------------
* begin : Dec 19 2006
* copyright : ProGame
* forum : help.headoff.com
*
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$i = 0;
while ( !file_exists($phpbb_root_path . 'extension.inc') && ($i++ < 4) )
{
$phpbb_root_path .= '../';
}
if ( $i > 4 )
{
message_die(GENERAL_MESSAGE, 'Unable to find extension.inc, terminating. Please move this file into your main/"root" phpbb directory and try again.');
}
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'] )
{
redirect(append_sid("login.$phpEx?redirect=ds_install.$phpEx", true));
}
if( $userdata['user_level'] != ADMIN )
{
message_die(GENERAL_MESSAGE, 'You are not authorised to access this page');
}
$page_title = 'Installing Default Signature MOD - Tables';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$insert = "insert into {$table_prefix}config values('allow_default','1');";
$create = "create table {$table_prefix}default (sig_name varchar(255),sig_value text);";
$insert2 = "insert into {$table_prefix}default values('default_sig','Default Signature Installed');";
$execut = @mysql_query($insert);
$execut2 = @mysql_query($insert2);
$execut3 = @mysql_query($create);
$qtderro = 0;
if (!$execut || !$execut3)
{
$qtderro++;
$coderro=mysql_errno();
$erro = mysql_error();
message_die(GENERAL_MESSAGE, " <font color=red>Colunm default_signature and/or allow default already exist.</font> ");
}
if (!$execut3)
{
$qtderro++;
$coderro=mysql_errno();
$erro = mysql_error();
message_die(GENERAL_MESSAGE, " <font color=red>Table {$table_prefix}default already exists.</font> ");
}
$forum_url = append_sid($phpbb_root_path . "index.$phpEx");
print<<<DELIM
<table width="100%" cellspacing="1" cellpadding="2" border="0" class="forumline">
<th class="thHead"><font color="green"><strong>SQL Installation complete</strong></font></th>
</tr>
<tr>
<td align="center">
<span class="genmed">Please delete this file default_sig_install.php.<br />
If you have any problems, please visit <a href="http://www.rpgwitchschools.net/phpBB2" target="_new">Oficial Support to Default Signature MOD v 0.0.1</a> and ask for help.</span>
</td>
</tr>
<tr>
<td class="catBottom" height="28" align="center">
<span class="genmed"><a href="{$forum_url}">Click Here to return to your forum.</a>
</span>
</td>
</tr>
</table>
DELIM;
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>Пуснете фаила и го изтриите след това!
#
#------[ Отворете ]--------------------------------------------------
#
admin_board.php
#
#-----[ Намерете ]---------------------------------------------------
#
message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql);
}
}
}
#
#------[ След него добавете ]----------------------------------------------
#
$sql = "SELECT *
FROM " . DEFAULT_TABLE;
if(!$result = $db->sql_query($sql))
{
message_die(CRITICAL_ERROR, "Could not query config information in admin_board", "", __LINE__, __FILE__, $sql);
}
else
{
while( $row = $db->sql_fetchrow($result) )
{
$sig_name = $row['sig_name'];
$sig_value = $row['sig_value'];
$sig_default[$sig_name] = isset($HTTP_POST_VARS['submit']) ? str_replace("'", "\'", $sig_value) : $sig_value;
$new2[$sig_name] = ( isset($HTTP_POST_VARS[$sig_name]) ) ? $HTTP_POST_VARS[$sig_name] : $sig_default[$sig_name];
if( isset($HTTP_POST_VARS['submit']) )
{
$sql = "UPDATE " . DEFAULT_TABLE . " SET
sig_value = '" . str_replace("\'", "''", $new2[$sig_name]) . "'
WHERE sig_name = '$sig_name'";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Failed to update general configuration for $sig_name", "", __LINE__, __FILE__, $sql);
}
}
}
}
#
#-----[ Намерете ]---------------------------------------------------
#
$sig_no = ( !$new['allow_sig'] ) ? "checked=\"checked\"" : "";
#
#-----[ След него добавете ]----------------------------------------------
#
$default_sig_yes = ( $new['allow_default'] ) ? "checked=\"checked\"" : "";
$default_sig_no = ( !$new['allow_default'] ) ? "checked=\"checked\"" : "";
#
#-----[ Намерете ]---------------------------------------------------
#
"L_ALLOW_SIG" => $lang['Allow_sig'],
#
#-----[ След него добавете ]----------------------------------------------
#
"L_ALLOW_SIG_DEFAULT" => $lang['Allow_default_sig'],
"L_DEFAULT_SIG" => $lang['Default_sig'],
"L_DEFAULT_SIG_EXPLAIN" => $lang['Default_sig_explain'],
#
#-----[ Намерете ]---------------------------------------------------
#
"SIG_NO" => $sig_no,
#
#-----[ След него добавете ]----------------------------------------------
#
"DEFAULT_SIG_YES" => $default_sig_yes,
"DEFAULT_SIG_NO" => $default_sig_no,
"DEFAULT_SIG" => $new2['default_sig'],
#
#-----[ Отворете ]---------------------------------------------------
#
includes/constants.php
#
#-----[ Намерете ]---------------------------------------------------
#
define('CONFIG_TABLE', $table_prefix.'config');
#
#-----[ След него добавете ]----------------------------------------------
#
define('DEFAULT_TABLE', $table_prefix.'default');
#
#-----[ Отворете ]---------------------------------------------------
#
includes/usercp_register.php
#
#-----[ Намерете ]---------------------------------------------------
#
if ( $signature != '' )
{
if ( strlen($signature) > $board_config['max_sig_chars'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Signature_too_long'];
}
if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
{
$signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : '';
}
$signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
}
#
#-----[ Заместете го с това ]-------------------------------------------
#
if ( $signature != '' )
{
$allow_default_signature = 0;
if ( strlen($signature) > $board_config['max_sig_chars'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Signature_too_long'];
}
if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
{
$signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : '';
}
$signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
} else
{
$signature = $default_sig['default_sig'];
$allow_default_signature = 1;
if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )
{
$signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : '';
}
$signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);
}
#
#-----[ Намерете ]---------------------------------------------------
#
user_viewemail = $viewemail,
#
#-----[ На линията след него добавете ]--------------------------------------
#
allow_default = $allow_default_signature,
#
#-----[ Намерете ]---------------------------------------------------
#
user_viewemail,
#
#-----[ На линията след него добавете ]--------------------------------------
#
allow_default,
#
#-----[ Намерете ]---------------------------------------------------
#
$viewemail,
#
#-----[ На линията след него добавете ]--------------------------------------
#
$allow_default_signature,
#
#-----[ Отворете ]---------------------------------------------------
#
language/lang_*/lang_admin.php
#
#-----[ Намерете ]---------------------------------------------------
#
$lang['Allow_sig'] = 'Allow Signatures';
#
#-----[ След него добавете ]----------------------------------------------
#
$lang['Allow_default_sig'] = 'Allow Default Signature';
$lang['Default_sig'] = 'Default Signature';
$lang['Default_sig_explain'] = 'Default signature to users who don\'t have signature. bbCode Allowed.
#
#-----[ Отворете ]---------------------------------------------------
#
templates/*/admin/board_config_body.tpl
#
#-----[ Намерете ]---------------------------------------------------
#
<tr>
<td class="row1">{L_ALLOW_SIG}</td>
<td class="row2"><input type="radio" name="allow_sig" value="1" {SIG_YES} /> {L_YES} <input type="radio" name="allow_sig" value="0" {SIG_NO} /> {L_NO}</td>
</tr>
#
#-----[ След него добавете ]----------------------------------------------
#
<tr>
<td class="row1">{L_ALLOW_SIG_DEFAULT}</td>
<td class="row2"><input type="radio" name="allow_default" value="1" {DEFAULT_SIG_YES} /> {L_YES} <input type="radio" name="allow_default" value="0" {DEFAULT_SIG_NO} /> {L_NO}</td>
</tr>
<tr>
<td class="row1">{L_DEFAULT_SIG}<br /><span class="gensmall">{L_DEFAULT_SIG_EXPLAIN}</span></td>
<td class="row2"><textarea name="default_sig" rows="5" cols="30" wrap="yes">{DEFAULT_SIG}</textarea></td>
</tr>
#
#-----[ Отворете ]---------------------------------------------------
#
commom.php
#
#-----[ Намерете ]---------------------------------------------------
#
$board_config = array();
#
#-----[ След него добавете ]----------------------------------------------
#
$default_sig = array();
#
#-----[ Намерете ]---------------------------------------------------
#
while ( $row = $db->sql_fetchrow($result) )
{
$board_config[$row['config_name'> = $row['config_value'];
}
#
#-----[ След него добавете ]----------------------------------------------
#
$sql = "SELECT *
FROM " . DEFAULT_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, "Could not query default signature information", "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$default_sig[$row['sig_name'] ] = $row['sig_value'];
}
#
#-----[ Отворете ]---------------------------------------------------
#
index.php
#
#-----[ Намерете ]---------------------------------------------------
#
else
{
$l_total_user_s = $lang['Registered_users_total'];
}
#
#-----[ След него добавете ]----------------------------------------------
#
$sql = "SELECT * FROM " . USERS_TABLE . " WHERE allow_default = 1";
$result = $db->sql_query($sql);
$numrows = $db->sql_fetchrowset($result);
$rows = $db->sql_numrows($result);
for ($i=-1;$i < $rows; $i++)
{
$id = $numrows[$i]['user_id'];
$uid = $numrows[$i]['user_sig_bbcode_uid'];
if ($uid == '' )
{
$signature_bbcode_uid = make_bbcode_uid();
$sql = "UPDATE " . USERS_TABLE . " SET user_sig_bbcode_uid = '" . $signature_bbcode_uid . "' WHERE user_id = " .$id;
$result = $db->sql_query($sql);
}
$signature = $default_sig['default_sig'];
$signature_bbcode_uid = $uid;
$signature = htmlspecialchars(stripslashes($signature));
$signature = bbencode_first_pass($signature, $signature_bbcode_uid);
$signature = str_replace("<a href=\"", "[url=", $signature);
$signature = str_replace("\" target=\"_blank\" class=\"postlink\">", "]", $signature);
$signature = str_replace("</a>", "[/url]", $signature);
$sql = "UPDATE " . USERS_TABLE . " SET user_sig = '" . $signature . "' WHERE user_id = " .$id;
$result = $db->sql_query($sql);
}
#
#-----[ Отворете ]---------------------------------------------------
#
login.php
#
#-----[ Намерете ]---------------------------------------------------
#
else
{
$sid = '';
}
#
#-----[ След него добавете ]----------------------------------------------
#
if ($userdata['allow_default'] == 1 && $board_config['allow_default'] == 1)
{
$signature = $default_sig['default_sig'];
$signature_bbcode_uid = $userdata['user_sig_bbcode_uid'];
$signature = htmlspecialchars(stripslashes($signature));
$signature = bbencode_first_pass($signature, $signature_bbcode_uid);
$signature = str_replace("<a href=\"", "[url=", $signature);
$signature = str_replace("\" target=\"_blank\" class=\"postlink\">", "]", $signature);
$signature = str_replace("</a>", "[/url]", $signature);
$sql = "UPDATE " . USERS_TABLE . " SET user_sig = '" . $signature . "' WHERE user_id = " .$userdata['user_id'];
$result = $db->sql_query($sql);
}
#
#------[ Готови сте ;) ]-------------------------------
#
Нагласяте с какъв подпис да стартират потребителите от:
Админ панела > Обща конфигурация


