آموزش نصب مد مربوط به انتخاب قالب مورد نظر در صفحه اول انجمن( Demo style)

S4DEGH

Well-Known Member
سلام :wink:
ديدم بچه ها اين كد رو مي خواهند . در نتيجه گفتم آن را آموزش بدم.
خيلي آسونه .

مشخصات مد :
نام : سيستم انتخاب قالب توسط كاربر در صفحه اول انجمن
زبان :‌خودش فارسي ميشه !
امكانات : هر شخص به محض ورود به انجمن مي تواند هر قالبي كه دوست دارد را در صفحه اول انجمن انتخاب كند و هر وقت كه خسته شد قالب رو عوض كند.
مشكلات : اگر قالب زياد داشته باشيد (‌ بعد از آموزش مي فهميد ) وقتتان زياد مي گيره. وگرنه مشكل نداره!
زمان نصب : 5 دقيقه !

آموزش :

اول از همه اين فايل را دانلود كرده و در پوشه اصلي انجمنتان بگذاريد.
دانلود

خب ابتدا به سراغ فايل هاي زير در انجمنتان برويد و آنهارا روي كامپيوترتان دانلود كرده و اين ويرايش هارا انجام دهيد . ( توجه داشته باشيد فقط يك بار اين ويرايش انجام مي شود‌)
includes/constants.php
اين را باز كنيد :
اين كد را پيدا كنيد.
کد:
define('POST_GROUPS_URL', 'g');
بعد از آن اين كد را به آن اضافه كنيد .
کد:
define('STYLE_URL', 's');

includes/functions.php
اين را باز كرده .
اين كد را پيدا كنيد .
کد:
function init_userprefs($userdata)
{
بعد از آن اين كد را به آن اضافه كنيد .
کد:
global $db, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;
در همين فايل دوباره كد زير را پيدا كرده
کد:
//
	// Set up style
	//
	if ( !$board_config['override_user_style'] )
	{
بعد از آن اين كد را به آن اضافه كنيد .
کد:
if ( isset($HTTP_GET_VARS[STYLE_URL]) )
		{
			$style = urldecode( $HTTP_GET_VARS[STYLE_URL] );
			if ( $theme = setup_style($style) )
			{
				if ( $userdata['user_id'] != ANONYMOUS )
				{
					// user logged in --> save new style ID in user profile
					$sql = "UPDATE " . USERS_TABLE . " 
						SET user_style = " . $theme['themes_id'] . "
						WHERE user_id = " . $userdata['user_id'];
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error updating user style', '', __LINE__, __FILE__, $sql);
					}

					$userdata['user_style'] = $theme['themes_id'];
				} else {
					// user not logged in --> save new style ID in cookie
					setcookie($board_config['cookie_name'] . '_style', $style, time() + 31536000, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
				}
				return;
			}
		}


		if ( $userdata['user_id'] == ANONYMOUS && isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_style']) )
		{
			$style = $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_style'];
			if ( $theme = setup_style($style) )
			{
				return;
			}
		}
دوباره اين كد را پيدا كرده
کد:
function setup_style($style)
{
	global $db, $board_config, $template, $images, $phpbb_root_path;
اين كد را بعد از آن اضافه كنيد .
کد:
if ( intval($style) == 0 )
	{
		$sql = "SELECT *
			FROM " . THEMES_TABLE . "
			WHERE style_name = '$style'";
	}
	else
	{
اين كد را پيدا كنيد .
کد:
$sql = "SELECT *
		FROM " . THEMES_TABLE . "
		WHERE themes_id = $style";
و اين كد را بعد از آن اضافه كنيد .
کد:
}
كد زير را پيدا كرده :
کد:
message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]");
و اين كد بالا را پاك كنيد و جاي آن اين كد را وارد كنيد .
کد:
message_die(CRITICAL_ERROR, "Could not get theme data for " . (intval($style) == 0 ? "style_name" : "themes_id") . " [$style]");


فايل زير را باز كنيد .
includes/page_header.php
كد زير را در آن پيدا كرده :
کد:
'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'),
و بعد از آن كد زير را قرار دهيد.
کد:
'L_BOARD_STYLE' => $lang['Board_style'],

خب حالا به اصل كار مي رسيم.
اول بگم در پوشه قالب فايل : overall_header.tpl

ببينيد شما هر چند قالبي كه داريد خب داريد ديگه !
بايد كد زير را در قبل از
کد:
			</tr>
		</table>
در قالب هايتان قرار دهيد .

اين كد به اين صورت است :
کد:
<td valign="top">
					<table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
						<tr><td style="font-size: 11px" align="center">
							<nobr>{L_BOARD_STYLE}:</nobr><br/>
							<a href="changestyle.php?s=XX" class="mainmenu">XX</a><br/>
						</td></tr>
					</table>
				</td>
كه جاي xx بايد نام قالب نوشته شود.
يعني مي خواهم اين رابگويم كه مثلا شما 3 قالب داريد بايد سه كد
کد:
<a href="changestyle.php?s=XX" class="mainmenu">XX</a><br/>
را زير هم در زير خود كد بالا قرار دهيد .
كه جاي xx همان نام قالب است.
مثلا من قالب subSilver و subGreen را دارم به اين صورت عمل مي كنم.
کد:
<td valign="top">
					<table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
						<tr><td style="font-size: 11px" align="center">
							<nobr>{L_BOARD_STYLE}:</nobr><br/>
							<a href="changestyle.php?s=subSilver" class="mainmenu">subSilver</a><br/>
							<a href="changestyle.php?s=subGreen" class="mainmenu">subGreen</a><br/>
						</td></tr>
					</table>
				</td>

خب حالا بعد از اين كار كد بالا را در هردو قالبم جايي كه گفتم مي ريزم.
درواقع در همه قالب هايي كه مي خواهيد اين مد نصب بشه بايد كد را در جاييكه گفتم وارد كنيد.

اگر مشكلي داشتيد به من خبر دهيد.
 

Ghamnevis

Well-Known Member
مرسي صادق جان..

حقيقتش من برم خيلي سخته بخوام اين مراحلي را كه نوشتي بخونم !

اگر مد اصلي انگيليسي را بزاري ممنون ميشم..

آخه معمولا مد ها نيازي به آموزش ندارند..

ممنون ميشم فايل تكست انگيليسيش را بزاري..


ممنون باز هم..

راستي من از امروز بهت ليست ميدم و تا آخر هفته فارسي ميكنيم..

مخلصم
سايان
 

S4DEGH

Well-Known Member
اينم براي آن دسته عزيزاني كه حوصله خوندن مقاله مارو ندارن ( شوخي !) .
فايل متن آموزش بصورت انگليسي و لي براي تازه كارها اين را پيشنهاد نمي كنم از آموزش استفاده كنن بهتره !
يادتان نره كه فايل بالا را دانلود كنيد..
کد:
################################################################# 
## Mod Title:   Change Style 
## Mod Version: 0.9.5
## Author: Karl Tauber < [email][email protected][/email] > - [url]www.ktauber.com[/url] 
## Description: Displays a "Board Style" box in the top right corner
##              of each page that allows all users (registered and
##              guests) to change the board style (Normally
##              a user must be registered to change the board style).
##
##              It instroduces a new URL parameter: s=<style>
##              where <style> can be a style ID or a style name.
##              Example: [url]www.yoursite.com/phpBB2/index.php?s=subGreen[/url]
## 
##              It the user is logged in, then the MOD updates the style
##              in the user's profile. Otherwise it sets a cookie.
## 
## Installation Level: moderate 
## Installation Time: 5-10 Minutes 
## Files To Edit:  includes/constants.php
##                 includes/functions.php
##                 includes/page_header.php
##                 templates/subSilver/overall_header.tpl
## Included Files: changestyle.php 
################################################################# 
## Security Disclaimer: This MOD Cannot Be Posted To Or Added At Any Non-Official phpBB Sites 
################################################################# 
## 
## Installation Note:
##   - Copy changestyle.php to your phpBB2 root directory.
##   - Follow the instructions below.
## 
## Or if you use a clean (not modified) phpBB 2.0.x:
##   - Copy the files from the included phpBB2.0.x directory
##     to your phpBB installation directory.
## 
## History:
##  0.9.5 (2003-09-28)
##   - Added moded phpBB 2.0.6 files (simplifies the installation).
##  0.9.4 (2003-06-29)
##   - Fixed a URL redirection bug in changestyle.php
##     (thanks to SHS for reporting).
##   - Error message in setup_style() improved.
##   - Added moded phpBB 2.0.5 files (simplifies the installation).
##  0.9.3 (2003-01-18)
##   - Added moded phpBB 2.0.4 files (simplifies the installation).
##  0.9.2 beta (2002-10-30)
##   - Added moded phpBB 2.0.3 files (simplifies the installation).
##  0.9.1 beta (2002-09-06)
##   - Fixed a bug in init_userprefs() ($db added to globals).
##  0.9.0 beta (2002-09-03)
##   - Update the profile if a registered user changes the style.
##  0.8.0 beta (2002-05-08)
##   - First public beta
## 
## TODO:
##   - Use a combobox and automatically fill it with all styles installed.
##
## $Id: change_style.txt,v 1.8 2003/09/28 13:27:03 charly Exp $
##
################################################################# 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
################################################################# 

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/constants.php

# 
#-----[ FIND ]------------------------------------------ 
# 

define('POST_GROUPS_URL', 'g');

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

define('STYLE_URL', 's');

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/functions.php

# 
#-----[ FIND ]------------------------------------------ 
# 

function init_userprefs($userdata)
{


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	global $db, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;

# 
#-----[ FIND ]------------------------------------------ 
# 

	//
	// Set up style
	//
	if ( !$board_config['override_user_style'] )
	{

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

		if ( isset($HTTP_GET_VARS[STYLE_URL]) )
		{
			$style = urldecode( $HTTP_GET_VARS[STYLE_URL] );
			if ( $theme = setup_style($style) )
			{
				if ( $userdata['user_id'] != ANONYMOUS )
				{
					// user logged in --> save new style ID in user profile
					$sql = "UPDATE " . USERS_TABLE . " 
						SET user_style = " . $theme['themes_id'] . "
						WHERE user_id = " . $userdata['user_id'];
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error updating user style', '', __LINE__, __FILE__, $sql);
					}

					$userdata['user_style'] = $theme['themes_id'];
				} else {
					// user not logged in --> save new style ID in cookie
					setcookie($board_config['cookie_name'] . '_style', $style, time() + 31536000, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
				}
				return;
			}
		}


		if ( $userdata['user_id'] == ANONYMOUS && isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_style']) )
		{
			$style = $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_style'];
			if ( $theme = setup_style($style) )
			{
				return;
			}
		}

# 
#-----[ FIND ]------------------------------------------ 
# 

function setup_style($style)
{
	global $db, $board_config, $template, $images, $phpbb_root_path;


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	if ( intval($style) == 0 )
	{
		$sql = "SELECT *
			FROM " . THEMES_TABLE . "
			WHERE style_name = '$style'";
	}
	else
	{


# 
#-----[ FIND ]------------------------------------------ 
# 

	$sql = "SELECT *
		FROM " . THEMES_TABLE . "
		WHERE themes_id = $style";

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	}

# 
#-----[ FIND ]------------------------------------------ 
# 

		message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]");

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

		message_die(CRITICAL_ERROR, "Could not get theme data for " . (intval($style) == 0 ? "style_name" : "themes_id") . " [$style]");

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
# 

	'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'),

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

	'L_BOARD_STYLE' => $lang['Board_style'],

# 
#-----[ OPEN ]------------------------------------------ 
# 
# 
# --- NOTE: You will have to make this change to ALL themes you have        --- 
# ---        installed.  I use "subSilver" as an example.                   --- 
#

templates/subSilver/overall_header.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 

			</tr>
		</table>

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
# 
# --- NOTE: You will have to add a link for each style that should appear     ----
# ---       in the "Board Style" box.                                         ----
# ---       I use "subSilver" and "subGreen" as an example.                   ----
#

				<td valign="top">
					<table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
						<tr><td style="font-size: 11px" align="center">
							<nobr>{L_BOARD_STYLE}:</nobr><br/>
							<a href="changestyle.php?s=subSilver" class="mainmenu">subSilver</a><br/>
							<a href="changestyle.php?s=subGreen" class="mainmenu">subGreen</a><br/>
						</td></tr>
					</table>
				</td>

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM


همين.
 

جدیدترین ارسال ها

بالا