Размяна на банери
Автор: djvato
Здравейте … това е урок който прави отделна страница в която вие от админ панела ще слагате банери с приятели Winking мисля , че ще ви е от полза урочето и затова го пускам …
първо трябва да създаден една база в която ще се записват банерите :
SQL
DROP TABLE IF EXISTS phpbb_banners;
CREATE TABLE phpbb_banners (
banner_id mediumint(8) NOT NULL auto_increment,
banner_pos mediumint(8) NOT NULL default '0',
banner_link varchar(100) default 'NULL',
banner_description varchar(100) default 'NULL',
banner_www varchar(100) default 'NULL',
PRIMARY KEY (banner_id)
) TYPE=MyISAM;след което трябва да направим няколко файла :
admin_linkb.php този файл го качете в деректорията на форума / admin
<?php
define('IN_PHPBB', 1);
if( !empty($setmodules) )
{
$file = basename(__FILE__);
$module['General']['Banners'] = $file;
return;
}
//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
//require($phpbb_root_path . 'common.'.$phpEx);
require('./pagestart.' . $phpEx);
//$phpbb_root_path = './';
//include($phpbb_root_path . 'extension.inc');
//include($phpbb_root_path . 'common.'.$phpEx);
if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
}
else
{
//
// These could be entered via a form button
//
if( isset($HTTP_POST_VARS['add']) )
{
$mode = "add";
}
else if( isset($HTTP_POST_VARS['save']) )
{
$mode = "save";
}
else
{
$mode = "";
}
}
if( $mode != "" )
{
if( $mode == "edit" || $mode == "add" )
{
$baner_id = ( isset($HTTP_GET_VARS['id']) ) ? $HTTP_GET_VARS['id'] : 0;
$template->set_filenames(array(
"body" => "admin/baners_edit_body.tpl")
);
$s_hidden_fields = '';
if( $mode == "edit" )
{
if( $baner_id )
{
$sql = "SELECT *
FROM phpbb_banners
WHERE banner_id = $baner_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query database.", "Error", __LINE__, __FILE__, $sql);
}
$baner_info = $db->sql_fetchrow($result);
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $baner_id . '" />';
}
else
{
message_die(GENERAL_MESSAGE, "You must choose banner.");
}
}
$template->assign_vars(array(
"BANER_POS" => $baner_info['banner_pos'],
"BANER_LINK" => $baner_info['banner_link'],
"BANER_DESC" => $baner_info['banner_description'],
"BANER_WWW" => $baner_info['banner_www'],
"S_WORDS_ACTION" => append_sid("admin_linkb.$phpEx"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
);
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
}
else if( $mode == "save" )
{
$baner_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
$baner_pos = ( isset($HTTP_POST_VARS['baner_pos']) ) ? $HTTP_POST_VARS['baner_pos'] : 1;
$baner_link = ( isset($HTTP_POST_VARS['baner_link']) ) ? trim($HTTP_POST_VARS['baner_link']) : "";
$baner_desc = ( isset($HTTP_POST_VARS['baner_desc']) ) ? trim($HTTP_POST_VARS['baner_desc']) : "";
$baner_www = ( isset($HTTP_POST_VARS['baner_www']) ) ? trim($HTTP_POST_VARS['baner_www']) : "";
if($baner_link == "" || $baner_pos == "" || $baner_link == "" || $baner_desc == "" || $baner_www == "")
{
message_die(GENERAL_MESSAGE, "You must entry all fields.");
}
if( $baner_id )
{
$sql = "UPDATE phpbb_banners
SET banner_pos = " . $baner_pos . ", banner_link = '" . str_replace("\'", "''", $baner_link) . "', banner_description = '" . str_replace("\'", "''", $baner_desc) . "', banner_www = '" . str_replace("\'", "''", $baner_www) . "'
WHERE banner_id = $baner_id";
$message = "Info in database upgraded.";
}
else
{
$sql = "INSERT INTO phpbb_banners ( banner_pos, banner_link, banner_description, banner_www)
VALUES (" . $baner_pos . ", '" . str_replace("\'", "''", $baner_link) . "', '" . str_replace("\'", "''", $baner_desc) . "', '" . str_replace("\'", "''", $baner_www) . "')";
$message = "Info added to database.";
}
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not add info to database.", $lang['Error'], __LINE__, __FILE__, $sql);
}
$message .= "<br /><br />" . sprintf("Click %sHere%s to back to Banner Administration", "<a href=\"" . append_sid("admin_linkb.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else if( $mode == "delete" )
{
if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )
{
$baner_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
}
else
{
$baner_id = 0;
}
if( $baner_id )
{
$sql = "DELETE FROM phpbb_banners
WHERE banner_id = $baner_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not delete info from database.", $lang['Error'], __LINE__, __FILE__, $sql);
}
$message = "Info deleted" . "<br /><br />" . sprintf("Click %sHere%s to go back to Banner Administration ", "<a href=\"" . append_sid("admin_linkb.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
}
else
{
message_die(GENERAL_MESSAGE, "You must choose banner.");
}
}
}
else
{
$template->set_filenames(array(
"body" => "admin/baners_list_body.tpl")
);
$sql = "SELECT *
FROM phpbb_banners
ORDER BY banner_pos ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not query database.", $lang['Error'], __LINE__, __FILE__, $sql);
}
$baner_rows = $db->sql_fetchrowset($result);
$baner_count = count($baner_rows);
$template->assign_vars(array(
"L_EDIT" => $lang['Edit'],
"L_DELETE" => $lang['Delete'],
"L_ACTION" => $lang['Action'],
"L_ILE" => $baner_count,
"S_WORDS_ACTION" => append_sid("admin_linkb.$phpEx"),
"S_HIDDEN_FIELDS" => '')
);
for($i = 0; $i < $baner_count; $i++)
{
$baner_pos = $baner_rows[$i]['banner_pos'];
$baner_link = $baner_rows[$i]['banner_link'];
$baner_desc = $baner_rows[$i]['banner_description'];
$baner_www = $baner_rows[$i]['banner_www'];
$baner_id = $baner_rows[$i]['banner_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars("baners", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"BANER_POS" => $baner_pos,
"BANER_DESC" => $baner_desc,
"BANER_WWW" => $baner_www,
"BANER_LINK" => $baner_link,
"U_BANER_EDIT" => append_sid("admin_linkb.$phpEx?mode=edit&id=$baner_id"),
"U_BANER_DELETE" => append_sid("admin_linkb.$phpEx?mode=delete&id=$baner_id"))
);
}
}
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
?>следващия е baners_edit_body.tpl него го качете в директорията на форума / templates / вашия темплейт / admin
<h1>Baners adding</h1>
<P>You can add here records to database connected with banners.<br>
Short description of fields:
Position - position on page with banners, lower value is equal higher position,
Image - internet addres where banner is available,
Desc - description which will be shown when you put cursor above banner,
Link - page addres</p>
<form method="post" action="{S_WORDS_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
<tr>
<th colspan="2" class="thHead">Banner adding</th>
</tr>
<tr>
<td class="row1">Position</td>
<td class="row2"><input type="text" name="baner_pos" value="{BANER_POS}" /></td>
</tr>
<tr>
<td class="row1">Image</td>
<td class="row2"><input type="text" name="baner_link" value="{BANER_LINK}" /></td>
</tr>
<tr>
<td class="row1">Desc</td>
<td class="row2"><input type="text" name="baner_desc" value="{BANER_DESC}" /></td>
</tr>
<tr>
<td class="row1">Link</td>
<td class="row2"><input type="text" name="baner_www" value="{BANER_WWW}" /></td>
</tr>
<tr>
<td class="catBottom" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="save" value="Save" class="mainoption" /></td>
</tr>
</table></form>следващия baners_list_body.tpl него го качете като предвия в директорията на форума / темплейти / вашия темплейт / админ
<h1>Baners adding</h1>
<P>You can add here records to database connected with banners.<br>
Short description of fields:
Position - position on page with banners, lower value is equal higher position,
Image - internet addres where banner is available,
Desc - description which will be shown when you put cursor above banner,
Link - page addres</p>
<form method="post" action="{S_WORDS_ACTION}"><table cellspacing="1" cellpadding="6" border="0" align="center" class="forumline">
<tr>
<th class="thCornerL">Position</th>
<th class="thTop">Image</th>
<th class="thTop">Desc</th>
<th class="thTop">Link</th>
<th colspan="2" class="thCornerR">{L_ACTION}</th>
</tr>
<!-- BEGIN baners -->
<tr>
<td class="{baners.ROW_CLASS}" align="center">{baners.BANER_POS}</td>
<td class="{baners.ROW_CLASS}" align="center">{baners.BANER_LINK}</td>
<td class="{baners.ROW_CLASS}" align="center">{baners.BANER_DESC}</td>
<td class="{baners.ROW_CLASS}" align="center">{baners.BANER_WWW}</td>
<td class="{baners.ROW_CLASS}"><a href="{baners.U_BANER_EDIT}">{L_EDIT}</a></td>
<td class="{baners.ROW_CLASS}"><a href="{baners.U_BANER_DELETE}">{L_DELETE}</a></td>
</tr>
<!-- END baners -->
<tr>
<td colspan="6" align="center" class="catBottom">{S_HIDDEN_FIELDS}<input type="submit" name="add" value="Add new banner" class="mainoption" /></td>
</tr>
</table></form>следващия предпоследен файл е linkb.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_FAQ);
init_userprefs($userdata);
//
// End session management
//
$sql = 'SELECT count(*) as ile FROM phpbb_banners';
if( !$result = $db->sql_query($sql) )
message_die(GENERAL_ERROR, "Could not query database.", "", __LINE__, __FILE__, $sql);
$row = $db->sql_fetchrow($result);
$banner_count = $row['ile'];
$db->sql_freeresult($result);
$sql = 'SELECT banner_link, banner_description, banner_www FROM phpbb_banners ORDER BY banner_pos ASC';
if( !$result = $db->sql_query($sql) )
message_die(GENERAL_ERROR, "Could not query database.", "", __LINE__, __FILE__, $sql);
for($i=1; $i<=$banner_count; $i++)
{
$banner_line[$i] = $db->sql_fetchrow($result);
}
$db->sql_freeresult($result);
$page_title = "Banners";
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'linkb_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx, $forum_id);
$template->assign_vars(array(
'L_ILE' => $banner_count)
);
for($i=1; $i<=$banner_count; $i++)
{
$template->assign_block_vars('link_block', array(
'BANNER_DESCRIPTION' => $banner_line[$i]['banner_description'],
'BANNER_LINK' => $banner_line[$i]['banner_link'],
'BANNER_ADD' => $banner_line[$i]['banner_www']
)
);
}
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>и последния файл linkb_body.tpl него го качвате в главната директория на темплейта ви !
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></td>
</tr>
</table>
<!-- BEGIN link_block -->
<center>
<a href="{link_block.BANNER_ADD}" alt="{link_block.BANNER_DESCRIPTION}" target="blank"> <img src="{link_block.BANNER_LINK}" border=0 alt="{link_block.BANNER_DESCRIPTION}"> </a>
</center>
<!-- END link_block -->
<br><br><span class="mainmenu">If you are interested in putting your banner here write to us.</span><br><br>
<table width="100%" cellspacing="2" border="0" align="center">
<tr>
<td align="right" valign="middle" nowrap="nowrap"><span class="gensmall">{S_TIMEZONE}</span><br /><br />{JUMPBOX}</td>
</tr>
</table>така вече всичко работи , но трябва да направим линк към самата страница с банерите
ще дам само пример за SubSilver защото всеки е със сигурност с различен темплейт и немога да дам за всички видове … вие си го нагласете :
отваряте overal_header.tpl и намирате {L_LOGIN_LOGOUT} след него слагате
това
<a href="linkb.php" class="mainmenu"><img src="templates/subSilver/images/icon_mini_members.gif" width="12" height="13" border="0" alt="Приятели" hspace="3" />Приятели</a> 






