Webmaster общности: Predpriemach.com | SearchEngines.bg

    Размяна на банери

    Автор: 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> 

    Оставете коментар