[討論]song chart mod

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
jikey
星球公民
星球公民
文章: 90
註冊時間: 2003-09-18 00:49

[討論]song chart mod

文章 jikey »

song chart mod
請各位大大幫忙測試一下.
然後大家一起修改. :lol:

代碼: 選擇全部

#################################################################
## Mod Title: Chart mod
## Mod Version: 0.7 (beta)
## Author: dzidzius - dzidzius@forumbest.now.pl (send all sugestions to
## help improving that mod)
##
## Description:
##
## This mod add chart to your forum. It's based on users votes. User can rate song
## using hot-not notation. Position on list is based on diffrence beetrwens number of hot
## and not rates. During one week user can rate every song only one time, next
## week he can vote again. Admin can end week using administration panel, there can
## also delete or modify song. New song can be added by every user. I thin thats all of
## features of that mod. I will be very gratfull everyone who send me some suggestions
## about everything (idea, functions, abilities, visualisations) to help improving that mod.
## Two language version are included: Polish & English
##
## Installation Level: easy
## Installation Time: 5
## Files To Edit:
##
##   templates\subSilver\overall_header.tpl,
##   includes\constants.php
## Included Files: 
##
##   charts.php, 
##   admin_charts.php, 
##   charts_aedit_body.tpl, 
##   charts_alist_body.tpl, 
##   charts_list_body.tpl, 
##   charts_new_body.tpl, 
##   language\lang_polish\lang_charts.php, 
##   language\lang_english\lang_charts.php, 
##
#################################################################
## This MOD is released under the GPL License.
## Intellectual Property is retained by the MOD Author(s) listed above
#################################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
#################################################################
##
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#################################################################
##
## History:
## ---------
##
## v0.7 - first release
##
#################################################################
#-----[ SQL ]------------------------------------------
#
 CREATE TABLE phpbb_charts (
 chart_id mediumint(8) NOT NULL auto_increment,
 chart_song_name varchar(80) NOT NULL,
 chart_artist varchar(80) NOT NULL,
 chart_album varchar(80) default '',
 chart_poster_id varchar(80) NOT NULL,
 chart_hot mediumint(8) default '0',
 chart_not mediumint(8) default '0',
 chart_curr_pos mediumint(8) default '0',
 chart_last_pos mediumint(8) default '0',
 chart_best_pos mediumint(8) default '0',
 PRIMARY KEY (chart_id)
 ) TYPE=MyISAM;
#
#-----[ SQL ]------------------------------------------
#
 CREATE TABLE phpbb_charts_voters (
 vote_id mediumint(8) NOT NULL auto_increment,
 vote_user_id mediumint(8) NOT NULL,
 vote_chart_id mediumint(8) NOT NULL,
 vote_rate smallint(2) NOT NULL,
 PRIMARY KEY (vote_id),
 FOREIGN KEY (vote_chart_id) REFERENCES phpbb_charts(chart_id)
 ) TYPE=MyISAM;
#
#-----[ SQL ]------------------------------------------
#
 INSERT INTO phpbb_config VALUES('charts_week_num','1');
#

#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\charts.php
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\admin\admin_charts.php
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\templates\subSilver\admin\charts_aedit_body.tpl
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\templates\subSilver\admin\charts_alist_body.tpl
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\templates\subSilver\charts_list_body.tpl
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\templates\subSilver\charts_new_body.tpl
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\language\lang_polish\lang_charts.php //if needed
#
#-----[ COPY ]------------------------------------------
#
# Included
#
# phpBB2\language\lang_english\lang_charts.php //if needed
#
#-----[ OPEN ]------------------------------------------
#
# templates\subSilver\overall_header.tpl
#
#-----[ FIND ]------------------------------------------
#
# {L_LOGIN_LOGOUT}</a> 
#
#-----[ AFTER, ADD ]------------------------------------------
#
  <a href="charts.php?action=all_list" class="mainmenu"><img
 src="templates/subSilver/images/icon_mini_members.gif"
 width="12" height="13" border="0" alt="Chart" hspace="3"
 />Chart</a> 
#
#-----[ OPEN ]------------------------------------------
#
# includes\constants.php
#
#-----[ FIND ]------------------------------------------
#
# ?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
 define('CHARTS_TABLE', $table_prefix.'charts');
 define('CHARTS_VOTERS_TABLE', $table_prefix.'charts_voters');
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

lang_charts.php

代碼: 選擇全部

<?php
/*
* Charts Mod - english language file
*
*/
$lang['Title'] = 'Charts';
$lang['All_Charts'] = 'Show All Songs';
$lang['Top_Ten'] = 'Show Top Ten';
$lang['New_Song'] = 'Add new song';
$lang['Chart_Sql_Error'] = 'Could not execute query.';
$lang['Chart_Sql_Base_Error'] = 'Could not modify database.';
$lang['Chart_Hot'] = 'Hot';
$lang['Chart_Not'] = 'Not';
$lang['Chart_New_Song'] = 'New Song';
$lang['Chart_Best_Pos'] = 'Best';
$lang['Chart_Week'] = 'Week';
$lang['Chart_Name'] = 'Forum Best Charts';
$lang['Chart_Curr_Pos'] = 'Position';
$lang['Chart_Last_Pos'] = 'Last Week';
$lang['Chart_Song_Artist'] ='Song(Artist)';
$lang['Chart_Song_Name'] = 'Title';
$lang['Chart_Artist_Name'] = 'Artist';
$lang['Chart_Album_Name'] = 'Album';
$lang['Chart_Added_By'] = 'Added by:';
$lang['Chart_Info'] = 'Info';
$lang['Chart_Rate'] = 'Rate';
$lang['Chart_vote_add'] = 'You vote has been added.';
$lang['Chart_click_link'] = 'Click %sHere%s to go back to Charts.';
$lang['Chart_Rate_Err'] = 'You have already rate this song.';
$lang['Chart_Login_Err'] = 'You must log in to vote.';
$lang['Chart_Vote_Err'] = 'You must rate song.';
$lang['Chart_Choose_Err'] = 'You must choose song.';
$lang['Chart_VLogin_Err'] = 'You must log in to add song.';
$lang['Chart_Fields_Err'] = 'You must enter Song Name and Artist.';
$lang['Chart_Song_Err'] = 'Cannot add song.';
$lang['Chart_Song_Add'] = 'Song have been added.';
$lang['Chart_SLog_Err'] = 'You must log in to add chart.';
$lang['Chart_No_Arguments'] = 'Parameters are missing';

//Administrations language constants
$lang['Chart_Page_Desc'] = 'Here you can delete or modify songs.';
$lang['Chart_Page_Title'] = 'Chart Administration';
$lang['Chart_Edit'] = 'Song edit';
$lang['Chart_DBase_Ok'] = 'Database updated succesfully.';
$lang['Chart_Click_Return'] = 'Click %sHere%s to return to Chart Administration';
$lang['Chart_SQL_Del'] = 'Cannot delete rows.';
$lang['Chart_End_Week'] = 'End Week';
$lang['Chart_Ask_Week'] ='Are you sure you want to end week?';

?>
最後由 jikey 於 2004-02-04 14:41 編輯,總共編輯了 1 次。
jikey
星球公民
星球公民
文章: 90
註冊時間: 2003-09-18 00:49

文章 jikey »

admin_charts.php

代碼: 選擇全部

<?php
/***************************************************************************
 *                             admin_charts.php
 *                            ------------------
 *
 *   copyright            : (C) 2003 dzidzius
 *   email                : dzidzius@forumbest.now.pl <http://www.forumbest.now.pl>
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   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', 1);
if( !empty($setmodules) )
{
   $file = basename(__FILE__);
   $module['General']['Charts mod'] = $file;
   return;
}


//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
//require($phpbb_root_path . 'common.'.$phpEx);
require('./pagestart.' . $phpEx);
include($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_charts.'.$phpEx);

if( isset($HTTP_GET_VARS['action']) || isset($HTTP_POST_VARS['action']) )
{
	$mode = ($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : $HTTP_POST_VARS['action'];
}
else
{
	if( isset($HTTP_POST_VARS['end_week']) )
	{
		$mode = "end_week";
	}
	else if( isset($HTTP_POST_VARS['save']) )
	{
		$mode = "save";
	}
	else if( isset($HTTP_POST_VARS['reset']) )
	{
		$mode = "reset";
	}
	else
	{
		$mode = "";
	}
}

if( $mode != "" )
{
	if( $mode == "edit" )
	{
		$chart_id = ( isset($HTTP_GET_VARS['id']) ) ? $HTTP_GET_VARS['id'] : 0;

		$template->set_filenames(array(
			"body" => "admin/charts_aedit_body.tpl")
		);

		$s_hidden_fields = '';

		if( $mode == "edit" )
		{
			if( $chart_id )
			{
				$sql = "SELECT *
					FROM ".CHARTS_TABLE."
					WHERE chart_id = $chart_id";
				if(!$result = $db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, $lang['Chart_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
				}

				$chart_info = $db->sql_fetchrow($result);
				$s_hidden_fields .= '<input type="hidden" name="id" value="' . $chart_id . '" />';
			}
			else
			{
				message_die(GENERAL_MESSAGE, $lang['Chart_Choose_Err']);
			}
		}

		$template->assign_vars(array(
                        "L_PAGE_DESC" => $lang['Chart_Page_Desc'],
             	        "L_PAGE_TITLE" => $lang['Chart_Page_Title'],
                        "L_ADDING_TITLE" => $lang['Chart_Edit'],
                        "L_ARTIST" => $lang['Chart_Artist_Name'],
                        "L_SONG_NAME" => $lang['Chart_Song_Name'],
                        "L_ALBUM" => $lang['Chart_Album_Name'],
			"SONG_NAME" => $chart_info['chart_song_name'],
			"ALBUM_NAME" => $chart_info['chart_album'],
			"ARTIST_NAME" => $chart_info['chart_artist'],
                        "L_SAVE" => "Save",
			"S_CHARTS_ACTION" => append_sid("admin_charts.$phpEx"),
			"S_HIDDEN_FIELDS" => $s_hidden_fields)
		);

		$template->pparse("body");

		include('./page_footer_admin.'.$phpEx);
	}
	else if( $mode == "save" )
	{
		$chart_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
        	$song_name = ( isset($HTTP_POST_VARS['song_name']) ) ? trim($HTTP_POST_VARS['song_name']) : "";
        	$artist_name = ( isset($HTTP_POST_VARS['artist_name']) ) ? trim($HTTP_POST_VARS['artist_name']) : "";
        	$album_name = ( isset($HTTP_POST_VARS['album_name']) ) ? trim($HTTP_POST_VARS['album_name']) : "";

		if($song_name == "" || $artist_name == "" )
		{
			message_die(GENERAL_MESSAGE, $lang['Chart_Fields_Err']);
		}

		if( $chart_id )
		{
			$sql = "UPDATE ".CHARTS_TABLE."
				SET chart_song_name = '" . str_replace("\'", "''", $song_name) . "', chart_artist = '" . str_replace("\'", "''", $artist_name) . "', chart_album = '" . str_replace("\'", "''", $album_name) . "'
				WHERE chart_id = $chart_id";
			$message = $lang['Chart_DBase_Ok'];
		}
		else
		{
			message_die(GENERAL_MESSAGE, $lang['Chart_Choose_Err']);
		}

		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, $lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
		}

		$message .= "<br /><br />" . sprintf($lang['Chart_Click_Return'], "<a href=\"" . append_sid("admin_charts.$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']) )
		{
			$chart_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
		}
		else
		{
			$chart_id = 0;
		}

		if( $chart_id )
		{
			$sql = "DELETE FROM ".CHARTS_VOTERS_TABLE."
				WHERE vote_chart_id = $chart_id";

			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, $lang['Chart_SQL_Del'], $lang['Error'], __LINE__, __FILE__, $sql);
			}

			$sql = "DELETE FROM ".CHARTS_TABLE."
				WHERE chart_id = $chart_id";

			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, $lang['Chart_SQL_Del'], $lang['Error'], __LINE__, __FILE__, $sql);
			}

			$message = "Chart deleted" . "<br /><br />" . sprintf($lang['Chart_Click_Return'], "<a href=\"" . append_sid("admin_charts.$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, $lang['Chart_Choose_Err']);
		}
	}
	else if( $mode == "end_week" )
	{
		message_die(GENERAL_MESSAGE, "<form method=\"post\" action=\"admin_charts.$phpEx\">".$lang['Chart_Ask_Week']."<br><br><input type=\"submit\" name=\"reset\" value=\"".$lang['Yes']."\" class=\"mainoption\" /> <input type=\"submit\" name=\"\" value=\"".$lang['No']."\" class=\"mainoption\" /></form>");
	}
	else if( $mode == "reset" )
        {
        	$sql = 'SELECT * FROM '.CHARTS_TABLE.' ORDER BY (chart_hot-chart_not) DESC, chart_artist';
		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, $lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
		}
		$rowset = $db->sql_fetchrowset($result);
		$db->sql_freeresult($result);
		$chart_count = count($rowset);
		for($i = 0; $i<$chart_count; $i++)
		{
			if($i+1 < $rowset[$i]['chart_best_pos'] || $rowset[$i]['chart_best_pos']==0)
			      $add = ', chart_best_pos = ' . ($i+1);
			else
			      $add = '';
			$sql = 'UPDATE '.CHARTS_TABLE.'
			        SET chart_last_pos = '. ($i+1) . $add . '
			        WHERE chart_id = ' . $rowset[$i]['chart_id'];
			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, $lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
			}
		}
		$sql = 'UPDATE '.CONFIG_TABLE.'
			SET config_value = config_value+1
			WHERE config_name = "charts_week_num"';
		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR,$lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
		}
		$sql = 'DELETE FROM '.CHARTS_VOTERS_TABLE;
		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, $lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
		}
		$redirect_page = append_sid("admin_charts.$phpEx");
		$message .= $lang['Chart_DBase_Ok']."<br><br>";
		$message .= sprintf($lang['Chart_Click_Return'], '<a href="' . $redirect_page . '">', '</a>');
		message_die(GENERAL_MESSAGE,$message);
        }
}
else
{
	$template->set_filenames(array(
		"body" => "admin/charts_alist_body.tpl")
	);

	$sql = 'SELECT chart_id, chart_song_name, chart_artist, chart_album
		FROM '.CHARTS_TABLE;
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, $lang['Chart_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
	}

	$template->assign_vars(array(
                "L_PAGE_DESC" => $lang['Chart_Page_Desc'],
             	"L_PAGE_TITLE" => $lang['Chart_Page_Title'],
                "L_ARTIST" => $lang['Chart_Artist_Name'],
                "L_TITLE" => $lang['Chart_Song_Name'],
                "L_ALBUM" => $lang['Chart_Album_Name'],
		"L_EDIT" => $lang['Edit'],
		"L_DELETE" => $lang['Delete'],
		"L_ACTION" => $lang['Action'],
		"S_CHARTS_ACTION" => append_sid("admin_charts.$phpEx"),
		"L_END_WEEK" => $lang['Chart_End_Week'],
		"S_HIDDEN_FIELDS" => '')
	);
	while($row = $db->sql_fetchrow($result))
	{
                $i++;
		$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$template->assign_block_vars('charts', array(
			"ROW_COLOR" => "#" . $row_color,
			"ROW_CLASS" => $row_class,
			"V_ARTIST" => $row['chart_artist'],
			"V_TITLE" => $row['chart_song_name'],
			"V_ALBUM" => $row['chart_album'],

			"U_CHART_EDIT" => append_sid("admin_charts.$phpEx?action=edit&id=".$row['chart_id']),
			"U_CHART_DELETE" => append_sid("admin_charts.$phpEx?action=delete&id=".$row['chart_id']))
		);
	}
}

$template->pparse("body");

include('./page_footer_admin.'.$phpEx);

?>
charts.php

代碼: 選擇全部

<?php
/***************************************************************************
 *                                  charts.php
 *                            -------------------
 *
 *   copyright            : (C) 2003 dzidzius
 *   email                : dzidzius@forumbest.now.pl <http://www.forumbest.now.pl>
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   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 = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_PROFILE);
init_userprefs($userdata);
//
// End session management
//

include($phpbb_root_path.'language/lang_' . $board_config['default_lang'] . '/lang_charts.'.$phpEx);

if( isset($HTTP_GET_VARS['action']) || isset($HTTP_POST_VARS['action']) )
{
	$mode = ($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : $HTTP_POST_VARS['action'];
}
else
{
	//
	// These could be entered via a form button
	//
	if( isset($HTTP_POST_VARS['save']) )
	{
		$mode = "save";
	}
	else
	{
		$mode = "";
	}
}

if( $mode != "" )
{
        if( $mode == "list" || $mode == "all_list" )
        {
                $page_title = $lang['Title'];
                include($phpbb_root_path . 'includes/page_header.'.$phpEx);
                $list_type = ($mode=="list")?"all_list":"list";

		$template->set_filenames(array(
			"body" => "charts_list_body.tpl")
		);
        	$v_num = ($mode == "list")?10:30;
\r
                $template->assign_vars(array(
                        "V_WEEK_NUM" => $board_config['charts_week_num'],
                        "U_SHOW_LIST" => append_sid("charts.$phpEx?action=".$list_type),
                        "L_SHOW_LIST" => ($mode == "list")?$lang['All_Charts']:$lang['Top_Ten'],
                        "U_ADD_CHART" => append_sid("charts.$phpEx?action=new"),
                        "L_WEEK" => $lang['Chart_Week'],
                        "L_CHART_NAME" => $lang['Chart_Name'],
                        "L_POSITION" => $lang['Chart_Curr_Pos'],
                        "L_LAST_WEEK" => $lang['Chart_Last_Pos'],
                        "L_SONG_ARTIST" => $lang['Chart_Song_Artist'],
                        "L_ALBUM" => $lang['Chart_Album_Name'],
                        "L_ADDED" => $lang['Chart_Added_By'],
                        "L_INFO" => $lang['Chart_Info'],
                        "L_RATE" => $lang['Chart_Rate'],
                        "L_ADD_CHART" => $lang['New_Song']
                        )
                );
                $db->sql_freeresult($result);

               	$sql = 'SELECT chart_id, chart_hot, chart_not, chart_song_name, chart_artist, chart_album, chart_last_pos, chart_best_pos, username FROM '.CHARTS_TABLE.', '.USERS_TABLE.' WHERE chart_poster_id=user_id ORDER BY (chart_hot-chart_not) DESC, chart_artist LIMIT 0,'.$v_num;
                if( !$result = $db->sql_query($sql) )
                   	message_die(GENERAL_ERROR, $lang['Chart_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
                while($row = $db->sql_fetchrow($result))
                {
                	$chart_counter++;
	                $template->assign_block_vars('chart_block', array(
  	                        "CHART_SONG" => $row['chart_song_name'],
		                "CHART_ARTIST" => $row['chart_artist'],\r
		                "CHART_ALBUM" => ($row['chart_album']=="NULL")?"":$row['chart_album'],
		                "CHART_POSTER" => $row['username'],
                                "CHART_LAST" => ($row['chart_last_pos']==0)?($lang['Chart_New_Song']):"#".$row['chart_last_pos']."<br>(".$lang['Chart_Best_Pos'].": #".$row['chart_best_pos'].")",
                                "CHART_HOT_NOT" => "(".$lang['Chart_Hot'].": ".$row['chart_hot']." - ".$lang['Chart_Not'].": ".$row['chart_not'].")",
                                "L_CHART_HOT" => $lang['Chart_Hot'],
                                "L_CHART_NOT" => $lang['Chart_Not'],
                                "U_CHART_HOT" => append_sid("charts.$phpEx?action=vote&rate=1&id=".$row['chart_id']),
                                "U_CHART_NOT" => append_sid("charts.$phpEx?action=vote&rate=2&id=".$row['chart_id']),
		                "CHART_POS" => $chart_counter
                                )
                        );
                }
                $db->sql_freeresult($result);
                $template->pparse('body');
                include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

        }
        else if( $mode == "vote" )
        {
                $page_title = $lang['Title'];
                include($phpbb_root_path . 'includes/page_header.'.$phpEx);

        	if( isset($HTTP_POST_VARS['id']) ||  isset($HTTP_GET_VARS['id']) )
        	{
        		$chart_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
        	}
		else
		{
			$chart_id = 0;
		}
		if($chart_id)
		{
                        if( isset($HTTP_POST_VARS['rate']) ||  isset($HTTP_GET_VARS['rate']) )
                        {
                        	$rate = ( isset($HTTP_POST_VARS['rate']) ) ? $HTTP_POST_VARS['rate'] : $HTTP_GET_VARS['rate'];
\n                        }
                        else
                        {
                        	$rate = 0;
                        }
                        if($rate==1||$rate==2)
                        {
                                if($userdata['session_logged_in'])
                                {
                                        $sql = 'SELECT count(*) as counter FROM '.CHARTS_VOTERS_TABLE.' WHERE vote_chart_id = '.$chart_id.' AND vote_user_id = '.$userdata['user_id'];
                                        if( !$result = $db->sql_query($sql) )
                   	                    message_die(GENERAL_ERROR, $lang['Chart_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
                                        $row = $db->sql_fetchrow($result);
                                        $db->sql_freeresult($result);
                                        if(!$row['counter'])
                                        {
                                        	$sql = 'INSERT INTO '.CHARTS_VOTERS_TABLE.'(vote_user_id, vote_chart_id, vote_rate)
                                        	        VALUES('.$userdata['user_id'].','.$chart_id.','.$rate.')';
                                  		if(!$result = $db->sql_query($sql))
                                    		{
                                      			message_die(GENERAL_ERROR, $lang['Chart_Sql_Base_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
                                        	}
                                        	if($rate==1)
                                        	        $sql = 'UPDATE '.CHARTS_TABLE.'
                                        	                SET chart_hot=chart_hot+1
                                                                WHERE chart_id = '.$chart_id;
                                        	else
                                        	        $sql = 'UPDATE '.CHARTS_TABLE.'
                                        	                SET chart_not=chart_not+1
                                                                WHERE chart_id = '.$chart_id;
                                  		if(!$result = $db->sql_query($sql))
                                    		{
                                      			message_die(GENERAL_ERROR, $lang['Chart_Sql_Error'], $lang['Error'], __LINE__, __FILE__, $sql);
                                        	}

                                                $message = $lang['Chart_vote_add'];
                                                $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=all_list") . "\">", "</a>") . "<br /><br />";
                                                message_die(GENERAL_MESSAGE, $message);
                                        }
                                        else
                                        {
                                        	$message = $lang['Chart_Rate_Err'];
                                                $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=all_list") . "\">", "</a>") . "<br /><br />";
                                                message_die(GENERAL_MESSAGE, $message);
                                        }
                                }
                                else
                                {
                                	$message = $lang['Chart_Login_Err'];
                                	$message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=all_list") . "\">", "</a>") . "<br /><br />";
                                	message_die(GENERAL_MESSAGE, $message);\r
                                }
                        }
                        else
                        {
                        	$message = $lang['Chart_Vote_Err'];
                        	$message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=all_list") . "\">", "</a>") . "<br /><br />";
                        	message_die(GENERAL_MESSAGE, $message);
                        }
		}
                else
                {
                	$message = $lang['Chart_Choose_Err'];
                	$message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=all_list") . "\">", "</a>") . "<br /><br />";
                        message_die(GENERAL_MESSAGE, $message);
                }
        }
        else if( $mode == "new" )
        {
        	if($userdata['session_logged_in'])
        	{
                        $page_title = $lang['Title']." :: ". $lang['New_Song'];
                        include($phpbb_root_path . 'includes/page_header.'.$phpEx);
                        $s_hidden_fields = '';
		        $template->set_filenames(array(
			        "body" => "charts_new_body.tpl")
		        );
                        $template->assign_vars(array(
                                "L_ADDING_TITLE" => $lang['New_Song'],
                                "L_SONG_NAME" => $lang['Chart_Song_Name'],
                                "L_ARTIST" => $lang['Chart_Artist_Name'],
                                "L_ALBUM" => $lang['Chart_Album_Name'],
                                "L_ADD_SONG" => $lang['New_Song'],
                                "S_HIDDEN_FIELDS" => $s_hidden_fields,
                                "S_CHART_ACTION" => append_sid("charts.$phpEx"),
                                "L_SHOW_LIST" => $lang['Title'],
                                "U_SHOW_LIST" => append_sid("charts.$phpEx?action=list")
                                )
                        );
                        $template->pparse('body');
                        include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
        	}
                else
                {
                        $message = $lang['Chart_VLogin_Err'];
                        $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />";
                        message_die(GENERAL_MESSAGE, $message);
                }
        }
        else if( $mode == "save" )
        {
        	if($userdata['session_logged_in'])
        	{
        		$song_name = ( isset($HTTP_POST_VARS['song_name']) ) ? trim($HTTP_POST_VARS['song_name']) : "";
        		$artist_name = ( isset($HTTP_POST_VARS['artist_name']) ) ? trim($HTTP_POST_VARS['artist_name']) : "";
        		$album_name = ( isset($HTTP_POST_VARS['album_name']) ) ? trim($HTTP_POST_VARS['album_name']) : "";

                        if( $artist_name == "" || $song_name == "")
                        {
                                $message = $lang['Chart_Fields_Err'];
                                $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />";
                                message_die(GENERAL_MESSAGE, $message);
                        }

                        $sql = "INSERT INTO ".CHARTS_TABLE."(chart_song_name, chart_artist, chart_album, chart_poster_id)
                                VALUES('".$song_name."','".$artist_name."','".$album_name."',".$userdata['user_id'].")";
                        if(!$result = $db->sql_query($sql))
                        {
                                $message = $lang['Chart_Song_Err'];
                                $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />";
                                message_die(GENERAL_ERROR, $message);
                        }
                        $message = $lang['Chart_Song_Add'];
                        $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />";
                        message_die(GENERAL_MESSAGE, $message);
        	}
                else
                {
                        $message = $lang['Chart_SLog_Err'];
                        $message .= "<br /><br />" . sprintf($lang['Chart_click_link'], "<a href=\"" . append_sid("charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />";
                        message_die(GENERAL_MESSAGE, $message);
                }
        }
}
else
{
$page_title = $lang['Title'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
message_die(GENERAL_MESSAGE, $lang['Chart_No_Arguments']);
}

?>
jikey
星球公民
星球公民
文章: 90
註冊時間: 2003-09-18 00:49

文章 jikey »

charts_aedit_body.tpl

代碼: 選擇全部

<h1>{L_PAGE_TITLE}</h1>

<P>{L_PAGE_DESC}</p>
<br>

<form method="post" action="{S_CHARTS_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
	<tr>
		<th colspan="2" class="catHead">{L_ADDING_TITLE}</th>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_SONG_NAME}</span></td>
		<td class="row2"><input type="text" name="song_name" value="{SONG_NAME}" /></td>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_ARTIST}</span></td>
		<td class="row2"><input type="text" name="artist_name" value="{ARTIST_NAME}" /></td>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_ALBUM}</span></td>
		<td class="row2"><input type="text" name="album_name" value="{ALBUM_NAME}" /></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="save" value="{L_SAVE}" class="mainoption" /></td>
	</tr>
</table></form>
charts_alist_body.tpl

代碼: 選擇全部

<h1>{L_PAGE_TITLE}</h1>

<P>{L_PAGE_DESC}</p>
<br>

<form method="post" action="{S_CHARTS_ACTION}"><table cellspacing="1" cellpadding="5" border="0" align="center" class="forumline">
	<tr>
		<th class="thCornerL">{L_ARTIST}</th>
		<th class="thTop">{L_TITLE}</th>
		<th class="thTop">{L_ALBUM}</th>
		<th colspan="2" class="thCornerR">{L_ACTION}</th>
	</tr>
	<!-- BEGIN charts -->
	<tr>
		<td class="{charts.ROW_CLASS}" align="center">{charts.V_ARTIST}</td>
		<td class="{charts.ROW_CLASS}" align="center">{charts.V_TITLE}</td>
		<td class="{charts.ROW_CLASS}" align="center">{charts.V_ALBUM}</td>
		<td class="{charts.ROW_CLASS}"><a href="{charts.U_CHART_EDIT}">{L_EDIT}</a></td>
		<td class="{charts.ROW_CLASS}"><a href="{charts.U_CHART_DELETE}">{L_DELETE}</a></td>
	</tr>
	<!-- END charts -->
	<tr>
		<td colspan="6" align="center" class="catBottom">{S_HIDDEN_FIELDS}<input type="submit" name="end_week" value="{L_END_WEEK}" class="mainoption" /></td>
	</tr>
</table></form>
charts_list_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>
<br>
<center><b>{L_CHART_NAME} - 第{V_WEEK_NUM}{L_WEEK}</b></center><br>
<table width="98%" cellspacing="1" cellpadding="3" border="0" align="center" class="forumline">
<td class="cat" width="8%" align="center"><span class="mainmenu">{L_POSITION}</span></td>
<td class="cat" width="16%" align="center"><span class="mainmenu">{L_LAST_WEEK}</span></td>
<td class="cat" width="28%" align="center"><span class="mainmenu">{L_SONG_ARTIST}</span></td>
<td class="cat" width="28%" align="center"><span class="mainmenu">{L_INFO}</span></td>
<td class="cat" width="20%" align="center"><span class="mainmenu">{L_RATE}</span></td>
<!-- BEGIN chart_block -->
<tr>
<td class="row1" align="center" width="8%"><span class="mainmenu">#{chart_block.CHART_POS}</span></td>
<td class="row1" align="center" width="16%"><span class="mainmenu">{chart_block.CHART_LAST}</span></td>
<td class="row1" align="center" width="28%"><span class="mainmenu">{chart_block.CHART_SONG}<br>({chart_block.CHART_ARTIST})</span></td>
<td class="row1" align="center" width="28%"><span class="mainmenu">{L_ALBUM}: {chart_block.CHART_ALBUM}<br>{L_ADDED}: {chart_block.CHART_POSTER}</span></td>
<td class="row1" align="center" width="20%"><span class="cattitle"><a href="{chart_block.U_CHART_HOT}">{chart_block.L_CHART_HOT}</a> - <a href="{chart_block.U_CHART_NOT}">{chart_block.L_CHART_NOT}</a></span><span class="mainmenu"><br>{chart_block.CHART_HOT_NOT}</span></td>
</tr>
<!-- END chart_block -->
<td colspan=5 class="cat" width="100%" align="center"><span class="mainmenu">:: <a href="{U_ADD_CHART}">{L_ADD_CHART}</a> ::</span>
&nbsp|&nbsp<span class="mainmenu">:: <a href="{U_SHOW_LIST}">{L_SHOW_LIST}</a> ::</span></td>
</table>
charts_new_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> -> <a href="{U_SHOW_LIST}" class="nav">{L_SHOW_LIST}</a></td>
	</tr>
</table>
<form method="post" action="{S_CHART_ACTION}"><table cellspacing="1" cellpadding="4" border="0" align="center" class="forumline">
	<tr>
		<th colspan="2" class="catHead">{L_ADDING_TITLE}</th>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_SONG_NAME}</span></td>
		<td class="row2"><input type="text" name="song_name" value="{SONG_NAME}" /></td>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_ARTIST}</span></td>
		<td class="row2"><input type="text" name="artist_name" value="{ARTIST_NAME}" /></td>
	</tr>
	<tr>
		<td class="row1"><span class="mainmenu">{L_ALBUM}</span></td>
		<td class="row2"><input type="text" name="album_name" value="{ALBUM_NAME}" /></td>
	</tr>
	<tr>
		<td class="catBottom" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="save" value="{L_ADD_SONG}" class="mainoption" /></td>
	</tr>
</table></form>
<table width="100%" cellspacing="2" border="0" align="center">
	<tr>
		<td align="right" valign="middle" nowrap="nowrap"><span class="gensmall">{S_TIMEZONE}</span><br /></td>
	</tr>
</table>
主題已鎖定

回到「外掛問題討論」