Als ik dan naar /portal.php ga, zegt ie dat ie niet geinstalleerd is (dat klopt, er zijn geen tabellen aangemaakt). Als ik dan op installeren druk, gaat ie naar de index terug.
Kan iemand een stappenplan maken van portal.php?
Code: Selecteer alles
<?php
/***************************************************************************
* admin_portal.php
* -------------------
* begin : Sunday 2nd November 2003
* copyright : (C) 2003 Robert Laverick
* email : robert@scabserver.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', 1);
if( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Forums']['Portal'] = $filename;
return;
}
//
// Load default header
//
$no_page_header = TRUE;
$phpbb_root_path = './../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
//
// function to test if nutport is installed
//
function is_installed()
{
global $board_config;
if(isset($board_config['nutport_installed']))
{
return true;
}
else
{
return false;
}
}
function do_install()
{
global $db;
if(!defined('PORTAL_TABLE'))
{
message_die(GENERAL_ERROR, "You need to complete the modifications to the php files before install can proceed (constants.php)", "", __LINE__, __FILE__);
}
$sql = 'CREATE TABLE IF NOT EXISTS ' . PORTAL_TABLE . ' (
portal_id mediumint(8) NOT NULL auto_increment,
portal_order mediumint(8) NOT NULL default \'0\',
portal_title varchar(60) NOT NULL default \'\',
portal_description text,
portal_bbcode_id varchar(10) NOT NULL default \'\',
portal_use_url tinyint(1) default NULL,
portal_forum smallint(5) NOT NULL default \'0\',
portal_url varchar(250) NOT NULL default \'\',
portal_list_limit mediumint(8) NOT NULL default \'0\',
portal_ascending tinyint(1) default NULL,
portal_nodate tinyint(1) default NULL,
portal_button_name varchar(100) NOT NULL default \'\',
portal_button_image varchar(100) NOT NULL default \'\',
portal_navbar tinyint(1) default NULL,
portal_login tinyint(1) default NULL,
portal_online tinyint(1) default NULL,
portal_latest text default NULL,
portal_poll smallint(5) default NULL,
PRIMARY KEY (portal_id)
)';
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't create NutPort tables", "", __LINE__, __FILE__, $sql);
}
$sql = "SELECT MIN(forum_id) as Min_Forum FROM " . FORUMS_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Getting Minimum Forum ID", "", __LINE__, __FILE__, $sql);
}
$defaults = $db->sql_fetchrow($result);
$sql = "SELECT forum_id FROM " . FORUMS_TABLE . " WHERE auth_read = 0";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't populate NutPort tables", "", __LINE__, __FILE__, $sql);
}
$default_latest_forums = array();
while ($forum = $db->sql_fetchrow($result))
{
$default_latest_forums[] = intval($forum['forum_id']);
}
$sql = 'INSERT INTO `' . PORTAL_TABLE . '` (`portal_id`, `portal_order`, `portal_title`, `portal_description`,
`portal_bbcode_id`, `portal_use_url`, `portal_forum`, `portal_url`, `portal_list_limit`, `portal_ascending`,
`portal_nodate`, `portal_button_name`, `portal_button_image`, `portal_navbar`, `portal_login`, `portal_online`,
`portal_latest`, `portal_poll`)
VALUES (\'1\', \'1\', \'My Nutport\', \'Example page created by NutPort Install, You can change this text via the admin page\', \'0\', NULL, \'' . $defaults['Min_Forum'] . '\', \'\',
\'5\', \'1\', NULL, \'My Page\', \'\', \'1\', \'1\', \'1\', \'' . implode($default_latest_forums, ',') . '\', \'0\');';
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't populate NutPort tables", "", __LINE__, __FILE__, $sql);
}
$sql = 'INSERT INTO ' . CONFIG_TABLE . ' (config_name, config_value) VALUES (\'nutport_installed\',\'1\')';
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't complete NutPort install", "", __LINE__, __FILE__, $sql);
}
$uid = 1234567;
$message = 'NutPort Install is now complete. <br /><br />Click <a href="' . append_sid('../portal.php') . '" target="_top">'.
'Here</a> to view your portal page<br /><br />Click <a href="' . append_sid('portal_admin.php') . '">Here</a> to go to portal Administration'.
'<br /><br />Click <a href="http://www.scabserver.com/php">Here</a> to check for Nutport information and update at d-Ark Developments';
message_die(GENERAL_MESSAGE, bbencode_second_pass($message, $uid), "", __FILE__, __LINE__);
}
// function to generate a combo box style list
// returns as string
// by Robert Laverick
// robert@scabserver.com
function get_list($mode, $id, $select)
{
global $db;
switch($mode)
{
case 'pages':
$table = PORTAL_TABLE;
$idfield = 'portal_id';
$namefield = 'portal_title';
break;
case 'forums':
$table = FORUMS_TABLE;
$idfield = 'forum_id';
$namefield = 'forum_name';
break;
default:
message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__);
break;
}
$sql = "SELECT *
FROM $table";
if( $select == 0 )
{
$sql .= " WHERE $idfield <> $id";
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't get list of $mode", "", __LINE__, __FILE__, $sql);
}
$list = "";
while( $row = $db->sql_fetchrow($result) )
{
$s = "";
if ($row[$idfield] == $id)
{
$s = " selected=\"selected\"";
}
$list .= "<option value=\"$row[$idfield]\"$s>" . $row[$namefield] . "</option>\n";
}
return($list);
}
// function to generate a check box group
// returns as string
// by Robert Laverick
// robert@scabserver.com
function get_grp($mode, $id, $select, $name)
{
global $db;
switch($mode)
{
case 'pages':
$table = PORTAL_TABLE;
$idfield = 'portal_id';
$namefield = 'portal_title';
break;
case 'forums':
$table = FORUMS_TABLE;
$idfield = 'forum_id';
$namefield = 'forum_name';
break;
default:
message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__);
break;
}
$sql = "SELECT *
FROM $table";
if( $select == 0 && count($id) > 0)
{
$sql .= " WHERE not $idfield in (" . implode($id, ", ") . ")";
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't get list of $mode", "", __LINE__, __FILE__, $sql);
}
$list = "";
while( $row = $db->sql_fetchrow($result) )
{
$s = "";
if (in_array($row[$idfield], $id))
{
$s = " checked=\"checked\"";
}
$list .= "<label><input type=\"checkbox\" name=\"" . $name . "[]\" value=\"" . $row[$idfield] . "\"$s /> " . $row[$namefield] . "</label>\n";
}
return($list);
}
//function
//// NOTE: This function is straight from includes/functions_post.php, I just changes the path to the smiley images
//
// Fill smiley templates (or just the variables) with smileys
// Either in a window or inline
//
function generate_smilies2($mode, $page_id)
{
global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
global $user_ip, $session_length, $starttime;
global $userdata;
$inline_columns = 4;
$inline_rows = 5;
$window_columns = 8;
if ( $mode == 'window' )
{
$userdata = session_pagestart($user_ip, $page_id);
init_userprefs($userdata);
$gen_simple_header = TRUE;
$page_title = $lang['Review_topic'] . " - $topic_title";
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'smiliesbody' => 'posting_smilies.tpl')
);
}
$sql = "SELECT emoticon, code, smile_url
FROM " . SMILIES_TABLE . "
ORDER BY smilies_id";
if ( $result = $db->sql_query($sql) )
{
$num_smilies = 0;
$rowset = array();
while ( $row = $db->sql_fetchrow($result) )
{
if ( empty($rowset[$row['smile_url']]) )
{
$rowset[$row['smile_url']]['code'] = str_replace('\\', '\\\\', str_replace("'", "\\'", $row['code']));
$rowset[$row['smile_url']]['emoticon'] = $row['emoticon'];
$num_smilies++;
}
}
if ( $num_smilies )
{
$smilies_count = ( $mode == 'inline' ) ? min(19, $num_smilies) : $num_smilies;
$smilies_split_row = ( $mode == 'inline' ) ? $inline_columns - 1 : $window_columns - 1;
$s_colspan = 0;
$row = 0;
$col = 0;
while ( list($smile_url, $data) = @each($rowset) )
{
if ( !$col )
{
$template->assign_block_vars('smilies_row', array());
}
$template->assign_block_vars('smilies_row.smilies_col', array(
'SMILEY_CODE' => $data['code'],
// NUTTZY - changed the path to the smilely images
// 'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url,
'SMILEY_IMG' => '../' . $board_config['smilies_path'] . '/' . $smile_url,
'SMILEY_DESC' => $data['emoticon'])
);
$s_colspan = max($s_colspan, $col + 1);
if ( $col == $smilies_split_row )
{
if ( $mode == 'inline' && $row == $inline_rows - 1 )
{
break;
}
$col = 0;
$row++;
}
else
{
$col++;
}
}
if ( $mode == 'inline' && $num_smilies > $inline_rows * $inline_columns )
{
$template->assign_block_vars('switch_smilies_extra', array());
$template->assign_vars(array(
'L_MORE_SMILIES' => $lang['More_emoticons'],
// 'U_MORE_SMILIES' => append_sid("../posting.$phpEx?mode=smilies"))
'U_MORE_SMILIES' => append_sid("admin_portal.$phpEx?mode=smilies"))
);
}
$template->assign_vars(array(
'L_EMOTICONS' => $lang['Emoticons'],
'L_CLOSE_WINDOW' => $lang['Close_window'],
'S_SMILIES_COLSPAN' => $s_colspan)
);
}
}
if ( $mode == 'window' )
{
$template->pparse('smiliesbody');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
}
function generate_help($mode, $page_id)
{
global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
global $user_ip, $session_length, $starttime;
global $userdata;
$userdata = session_pagestart($user_ip, $page_id);
init_userprefs($userdata);
$gen_simple_header = TRUE;
$page_title = $lang['Review_topic'] . " - $topic_title";
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'helpbody' => 'admin/portal_help.tpl')
);
$template->assign_vars(array(
'L_PORTAL_HELP' => $lang['Portal_Help'])
);
$i = 0 ;
$params = array(
$lang['Page_Name'] => $lang['Page_Name_Help'],
$lang['Description_body'] => $lang['Description_body_Help'],
$lang['Portal_Destination'] => $lang['Portal_Destination_Help'],
$lang['List_Limit'] => $lang['List_Limit_Help'],
$lang['Posts_Order'] => $lang['Posts_Order_Help'],
$lang['Display_Date'] => $lang['Display_Date_Help'],
$lang['Button_Name'] => $lang['Button_Name_Help'],
$lang['Button_Image'] => $lang['Button_Image_Help'],
$lang['Show_Navbar'] => $lang['Show_Navbar_Help'],
$lang['Show_Login'] => $lang['Show_Login_Help'],
$lang['Show_Online'] => $lang['Show_Online_Help'],
$lang['Show_Latest'] => $lang['Show_Latest_Help'],
$lang['Show_Poll'] => $lang['Show_Poll_Help']
);
$i = 0;
foreach( $params as $question => $answer )
{
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars('help_row', array(
'ROW_CLASS' => $row_class,
'HELP_QUESTION' => $question,
'HELP_ANSWER' => $answer )
);
$i++ ;
}
$template->pparse('helpbody');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
function renumber_order()
{
global $db;
$table = PORTAL_TABLE;
$idfield = 'portal_id';
$orderfield = 'portal_order';
$sql = "SELECT * FROM $table";
$sql .= " ORDER BY $orderfield ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql);
}
$i = 10;
$inc = 10;
while( $row = $db->sql_fetchrow($result) )
{
$sql = "UPDATE $table
SET $orderfield = $i
WHERE $idfield = " . $row[$idfield];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update order fields", "", __LINE__, __FILE__, $sql);
}
$i += $inc;
}
}
//
// Start program proper
//
if(isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']))
{
$mode = (isset($HTTP_POST_VARS['mode'])) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
$mode = '';
}
if(!is_installed() && $mode != 'install')
{
message_die(GENERAL_MESSAGE, "Would you like to install nutport?<br /><br /><a href=\"" . append_sid("./admin_portal.$phpEx?mode=install") . "\">Yes</a> <a href=\"../index.php\" target=\"_top\">No</a>");
}
else
{
if(isset($HTTP_GET_VARS['portal']) || isset($HTTP_POST_VARS['portal']))
{
$portal_id = intval((isset($HTTP_POST_VARS['portal'])) ? $HTTP_POST_VARS['portal'] : $HTTP_GET_VARS['portal']);
}
else
{
$portal_id = 0;
}
switch($mode)
{
case 'install':
do_install();
break;
case 'editportal':
$mode = 'edit';
// Generate smilies listing for page output
generate_smilies2('inline', PAGE_POSTING);
//
// Output the authorisation details if an id was
// specified
//
$template->set_filenames(array(
'body' => 'admin/portal_edit.tpl')
);
$sql = "SELECT n.*
FROM " . PORTAL_TABLE . " n
WHERE portal_id = $portal_id
ORDER BY n.portal_order ASC " ;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't obtain portal list", "", __LINE__, __FILE__, $sql);
}
$portal_rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
$message = $portal_rows[0]['portal_description'] ;
if ( $portal_rows[0]['portal_bbcode_id'] != '' )
{
$message = preg_replace('/\:(([a-z0-9]:)?)' . $portal_rows[0]['portal_bbcode_id'] . '/s', '', $message);
}
$message = str_replace('<', '<', $message);
$message = str_replace('>', '>', $message);
$message = str_replace('<br />', "\n", $message);
$use_url = $portal_rows[0]['portal_use_url'] ;
$forum_id = $portal_rows[0]['portal_forum'] ;
$portal_url = str_replace('"', '\"', urldecode($portal_rows[0]['portal_url']));
$portal_title = $portal_rows[0]['portal_title'] ;
$list_limit = $portal_rows[0]['portal_list_limit'] ;
$order_asc = $portal_rows[0]['portal_ascending'] ;
$display_date = $portal_rows[0]['portal_nodate'] ;
$button_name = $portal_rows[0]['portal_button_name'] ;
$button_image = $portal_rows[0]['portal_button_image'] ;
$show_navbar = $portal_rows[0]['portal_navbar'] ;
$show_login = $portal_rows[0]['portal_login'] ;
$show_online = $portal_rows[0]['portal_online'] ;
$show_latest = explode(',', $portal_rows[0]['portal_latest']) ;
$show_poll = $portal_rows[0]['portal_poll'] ;
$template->assign_vars(array(
'PAGE_NAME' => $portal_title,
'MESSAGE' => $message,
'FORUM_SELECT' => $select_list,
'LIST_LIMIT' => $list_limit,
'USE_URL' => ( $use_url == 1 ) ? 'checked="checked"' : '',
'USE_FORUM' => ( $use_url == 0) ? 'checked="checked"' : '',
'PORTAL_URL' => $portal_url,
'POSTS_ORDER_ASC' => ( $order_asc ) ? 'checked="checked"' : '',
'POSTS_ORDER_DSC' => ( !$order_asc ) ? 'checked="checked"' : '',
'DISPLAY_DATE_YES' => ( !$display_date ) ? 'checked="checked"' : '',
'DISPLAY_DATE_NO' => ( $display_date ) ? 'checked="checked"' : '',
'BUTTON_NAME' => $button_name,
'BUTTON_IMAGE' => $button_image,
'SHOW_NAVBAR_YES' => ( $show_navbar ) ? 'checked="checked"' : '',
'SHOW_NAVBAR_NO' => ( !$show_navbar ) ? 'checked="checked"' : '',
'SHOW_LOGIN_YES' => ( $show_login ) ? 'checked="checked"' : '',
'SHOW_LOGIN_NO' => ( !$show_login ) ? 'checked="checked"' : '',
'SHOW_ONLINE_YES' => ( $show_online ) ? 'checked="checked"' : '',
'SHOW_ONLINE_NO' => ( !$show_online ) ? 'checked="checked"' : '',
'GRP_LATEST_SELECT' => get_grp('forums',$show_latest, 1, 'latest'),
'POLL_SELECT' => get_list('forums', $show_poll, 1),
'FORUM_SELECT' => get_list('forums', $forum_id, 1),
'L_PORTAL_A' => $lang['Edit_Portal'],
'L_OPTIONS' => $lang['Options'],
'L_SUBMIT' => $lang['Submit'],
'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'L_DEST_FORUM' => $lang['Dest_Forum'],
'L_DEST_URL' => $lang['Dest_URL'],
'L_ASC' => $lang['Ascending'],
'L_DSC' => $lang['Desending'],
'L_OPTION_INFO' => $lang['Options_Info'],
'A_OPTION_INFO' => append_sid("admin_portal.$phpEx?mode=help"),
'L_PAGE_NAME' => $lang['Page_Name'],
'L_DESCRIPTION' => $lang['Description_body'],
'L_PORTAL_DESTINATION' => $lang['Portal_Destination'], // NOTE: need to select set one
'L_LIST_LIMIT' => $lang['List_Limit'],
'L_POSTS_ORDER' => $lang['Posts_Order'],
'L_DISPLAY_DATE' => $lang['Display_Date'],
'L_BUTTON_NAME' => $lang['Button_Name'],
'L_BUTTON_IMAGE' => $lang['Button_Image'],
'L_SHOW_NAVBAR' => $lang['Show_Navbar'],
'L_SHOW_LOGIN' => $lang['Show_Login'],
'L_SHOW_ONLINE' => $lang['Show_Online'],
'L_SHOW_LATEST' => $lang['Show_Latest'],
'L_SHOW_POLL' => $lang['Show_Poll'],
'L_POLL_NONE' => $lang['No_Poll'],
'L_BBCODE_B_HELP' => $lang['bbcode_b_help'],
'L_BBCODE_I_HELP' => $lang['bbcode_i_help'],
'L_BBCODE_U_HELP' => $lang['bbcode_u_help'],
'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'],
'L_BBCODE_C_HELP' => $lang['bbcode_c_help'],
'L_BBCODE_L_HELP' => $lang['bbcode_l_help'],
'L_BBCODE_O_HELP' => $lang['bbcode_o_help'],
'L_BBCODE_P_HELP' => $lang['bbcode_p_help'],
'L_BBCODE_W_HELP' => $lang['bbcode_w_help'],
'L_BBCODE_A_HELP' => $lang['bbcode_a_help'],
'L_BBCODE_S_HELP' => $lang['bbcode_s_help'],
'L_BBCODE_F_HELP' => $lang['bbcode_f_help'],
'L_EMPTY_MESSAGE' => $lang['Empty_message'],
'L_FONT_COLOR' => $lang['Font_color'],
'L_COLOR_DEFAULT' => $lang['color_default'],
'L_COLOR_DARK_RED' => $lang['color_dark_red'],
'L_COLOR_RED' => $lang['color_red'],
'L_COLOR_ORANGE' => $lang['color_orange'],
'L_COLOR_BROWN' => $lang['color_brown'],
'L_COLOR_YELLOW' => $lang['color_yellow'],
'L_COLOR_GREEN' => $lang['color_green'],
'L_COLOR_OLIVE' => $lang['color_olive'],
'L_COLOR_CYAN' => $lang['color_cyan'],
'L_COLOR_BLUE' => $lang['color_blue'],
'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'],
'L_COLOR_INDIGO' => $lang['color_indigo'],
'L_COLOR_VIOLET' => $lang['color_violet'],
'L_COLOR_WHITE' => $lang['color_white'],
'L_COLOR_BLACK' => $lang['color_black'],
'L_FONT_SIZE' => $lang['Font_size'],
'L_FONT_TINY' => $lang['font_tiny'],
'L_FONT_SMALL' => $lang['font_small'],
'L_FONT_NORMAL' => $lang['font_normal'],
'L_FONT_LARGE' => $lang['font_large'],
'L_FONT_HUGE' => $lang['font_huge'],
'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'],
'L_STYLES_TIP' => $lang['Styles_tip'],
'S_POST_ACTION' => append_sid("admin_portal.$phpEx"),
'S_HIDDEN_FORM_FIELDS' => $s_hidden_fields,
'S_MODE' => 'save_editportal',
'S_PORTAL_ID' => $portal_id)
);
break;
case 'newportal':
$mode = 'new';
// Generate smilies listing for page output
generate_smilies2('inline', PAGE_POSTING);
//
// Output the authorisation details if an id was
// specified
//
$template->set_filenames(array(
'body' => 'admin/portal_edit.tpl')
);
$message = 'Body text for the title to this page' ;
$use_url = 0 ;
$forum_id = 999 ;
$portal_title = (isset($HTTP_POST_VARS['newpagename'])) ? htmlspecialchars($HTTP_POST_VARS['newpagename']) : 'Page Title' ;
$list_limit = 5 ;
$order_asc = true ;
$display_date = false ;
$button_name = (isset($HTTP_POST_VARS['newpagename'])) ? htmlspecialchars($HTTP_POST_VARS['newpagename']) : 'New Button' ;
$button_image = '' ;
$show_navbar = true ;
$show_login = true ;
$show_online = true ;
$template->assign_vars(array(
'PAGE_NAME' => $portal_title,
'MESSAGE' => $message,
'FORUM_SELECT' => $select_list,
'LIST_LIMIT' => $list_limit,
'USE_URL' => ( $use_url == 1 ) ? 'checked="checked"' : '',
'USE_FORUM' => ( $use_url == 0 ) ? 'checked="checked"' : '',
'POSTS_ORDER_ASC' => ( $order_asc ) ? 'checked="checked"' : '',
'POSTS_ORDER_DSC' => ( !$order_asc ) ? 'checked="checked"' : '',
'DISPLAY_DATE_YES' => ( !$display_date ) ? 'checked="checked"' : '',
'DISPLAY_DATE_NO' => ( $display_date ) ? 'checked="checked"' : '',
'BUTTON_NAME' => $button_name,
'BUTTON_IMAGE' => $button_image,
'SHOW_NAVBAR_YES' => ( $show_navbar ) ? 'checked="checked"' : '',
'SHOW_NAVBAR_NO' => ( !$show_navbar ) ? 'checked="checked"' : '',
'SHOW_LOGIN_YES' => ( $show_login ) ? 'checked="checked"' : '',
'SHOW_LOGIN_NO' => ( !$show_login ) ? 'checked="checked"' : '',
'SHOW_ONLINE_YES' => ( $show_online ) ? 'checked="checked"' : '',
'SHOW_ONLINE_NO' => ( !$show_online ) ? 'checked="checked"' : '',
'GRP_LATEST_SELECT' => get_grp('forums',array(), 1, 'latest'),
'POLL_SELECT' => get_list('forums',0,1),
'FORUM_SELECT' => get_list('forums',1,1),
'L_PORTAL_A' => $lang['Edit_Portal'],
'L_OPTIONS' => $lang['Options'],
'L_SUBMIT' => $lang['Submit'],
'L_YES' => $lang['Yes'],
'L_NO' => $lang['No'],
'L_DEST_FORUM' => $lang['Dest_Forum'],
'L_DEST_URL' => $lang['Dest_URL'],
'L_ASC' => $lang['Ascending'],
'L_DSC' => $lang['Desending'],
'L_OPTION_INFO' => $lang['Options_Info'],
'A_OPTION_INFO' => append_sid("admin_portal.$phpEx?mode=help"),
'L_PAGE_NAME' => $lang['Page_Name'],
'L_DESCRIPTION' => $lang['Description_body'],
'L_PORTAL_DESTINATION' => $lang['Portal_Destination'], // NOTE: need to select set one
'L_LIST_LIMIT' => $lang['List_Limit'],
'L_POSTS_ORDER' => $lang['Posts_Order'],
'L_DISPLAY_DATE' => $lang['Display_Date'],
'L_BUTTON_NAME' => $lang['Button_Name'],
'L_BUTTON_IMAGE' => $lang['Button_Image'],
'L_SHOW_NAVBAR' => $lang['Show_Navbar'],
'L_SHOW_LOGIN' => $lang['Show_Login'],
'L_SHOW_ONLINE' => $lang['Show_Online'],
'L_SHOW_LATEST' => $lang['Show_Latest'],
'L_SHOW_POLL' => $lang['Show_Poll'],
'L_POLL_NONE' => $lang['No_Poll'],
'L_BBCODE_B_HELP' => $lang['bbcode_b_help'],
'L_BBCODE_I_HELP' => $lang['bbcode_i_help'],
'L_BBCODE_U_HELP' => $lang['bbcode_u_help'],
'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'],
'L_BBCODE_C_HELP' => $lang['bbcode_c_help'],
'L_BBCODE_L_HELP' => $lang['bbcode_l_help'],
'L_BBCODE_O_HELP' => $lang['bbcode_o_help'],
'L_BBCODE_P_HELP' => $lang['bbcode_p_help'],
'L_BBCODE_W_HELP' => $lang['bbcode_w_help'],
'L_BBCODE_A_HELP' => $lang['bbcode_a_help'],
'L_BBCODE_S_HELP' => $lang['bbcode_s_help'],
'L_BBCODE_F_HELP' => $lang['bbcode_f_help'],
'L_EMPTY_MESSAGE' => $lang['Empty_message'],
'L_FONT_COLOR' => $lang['Font_color'],
'L_COLOR_DEFAULT' => $lang['color_default'],
'L_COLOR_DARK_RED' => $lang['color_dark_red'],
'L_COLOR_RED' => $lang['color_red'],
'L_COLOR_ORANGE' => $lang['color_orange'],
'L_COLOR_BROWN' => $lang['color_brown'],
'L_COLOR_YELLOW' => $lang['color_yellow'],
'L_COLOR_GREEN' => $lang['color_green'],
'L_COLOR_OLIVE' => $lang['color_olive'],
'L_COLOR_CYAN' => $lang['color_cyan'],
'L_COLOR_BLUE' => $lang['color_blue'],
'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'],
'L_COLOR_INDIGO' => $lang['color_indigo'],
'L_COLOR_VIOLET' => $lang['color_violet'],
'L_COLOR_WHITE' => $lang['color_white'],
'L_COLOR_BLACK' => $lang['color_black'],
'L_FONT_SIZE' => $lang['Font_size'],
'L_FONT_TINY' => $lang['font_tiny'],
'L_FONT_SMALL' => $lang['font_small'],
'L_FONT_NORMAL' => $lang['font_normal'],
'L_FONT_LARGE' => $lang['font_large'],
'L_FONT_HUGE' => $lang['font_huge'],
'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'],
'L_STYLES_TIP' => $lang['Styles_tip'],
'S_POST_ACTION' => append_sid("admin_portal.$phpEx"),
'S_HIDDEN_FORM_FIELDS' => $s_hidden_fields,
'S_MODE' => 'save_newportal')
);
break;
case 'save_editportal':
$mode = 'edit_save';
$page_title = ( isset($HTTP_POST_VARS['page_title']) ) ? mysql_escape_string($HTTP_POST_VARS['page_title']) : '';
$use_url = ( isset($HTTP_POST_VARS['use_url']) ) ? ( ($HTTP_POST_VARS['use_url'] == 0) ? 0 : 1 ) : 0;
$forum_select = ( isset($HTTP_POST_VARS['forum_select']) ) ? intval($HTTP_POST_VARS['forum_select']) : 0;
$portal_url = ( isset($HTTP_POST_VARS['portal_url']) ) ? mysql_escape_string(urlencode($HTTP_POST_VARS['portal_url'])) : '';
$list_limit = ( isset($HTTP_POST_VARS['list_limit']) ) ? intval($HTTP_POST_VARS['list_limit']) : 0;
$posts_order = ( isset($HTTP_POST_VARS['posts_order']) ) ? ( ($HTTP_POST_VARS['posts_order']) ? 1 : 0 ) : 0;
$display_date = ( isset($HTTP_POST_VARS['display_date']) ) ? ( ($HTTP_POST_VARS['display_date']) ? 0 : 1 ) : 1;
$button_name = ( !empty($HTTP_POST_VARS['button_name']) ) ? mysql_escape_string($HTTP_POST_VARS['button_name']) : '';
$button_image = ( isset($HTTP_POST_VARS['button_image']) ) ? mysql_escape_string(urlencode($HTTP_POST_VARS['button_image'])) : '';
$show_navbar = ( isset($HTTP_POST_VARS['show_navbar']) ) ? ( ($HTTP_POST_VARS['show_navbar']) ? 1 : 0 ) : 0;
$show_login = ( isset($HTTP_POST_VARS['show_login']) ) ? ( ($HTTP_POST_VARS['show_login']) ? 1 : 0 ) : 0;
$show_online = ( isset($HTTP_POST_VARS['show_online']) ) ? ( ($HTTP_POST_VARS['show_online']) ? 1 : 0 ) : 0;
$show_poll = (isset($HTTP_POST_VARS['show_poll']) ? intval($HTTP_POST_VARS['show_poll']) : 1);
$show_latest = (isset($HTTP_POST_VARS['latest']) ? $HTTP_POST_VARS['latest'] : array());
if(!is_array($show_latest))
{
$show_latest = array($show_latest);
}
foreach($show_latest as $k => $v)
{
$show_latest[$k] = intval($v);
}
// settings for message and bbcode
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$bbcode_uid = '';
// Check message
if ( !empty($message) )
{
$bbcode_uid = make_bbcode_uid();
$message = prepare_message(trim($message), 1, 1, 1, $bbcode_uid);
$message = str_replace("\'", "''", $message);
}
$sql = "UPDATE " . PORTAL_TABLE . "
SET portal_title = '$page_title',
portal_description = '$message',
portal_bbcode_id = '$bbcode_uid',
portal_use_url = $use_url,
portal_forum = $forum_select,
portal_url = '$portal_url',
portal_list_limit = $list_limit,
portal_ascending = $posts_order,
portal_nodate = $display_date,
portal_button_name = '$button_name',
portal_button_image = '$button_image',
portal_navbar = $show_navbar,
portal_login = $show_login,
portal_online = $show_online,
portal_latest = '" . implode($show_latest, ',') . "',
portal_poll = $show_poll
WHERE portal_id = $portal_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
}
$message = $lang['Portal_added'];
$message .= '<br /><br />' . sprintf($lang['Click_return_portal'], '<a href="' . append_sid("admin_portal.$phpEx") . '">', "</a>");
message_die(GENERAL_MESSAGE, $message);
break;
case 'save_newportal':
$mode = 'new_save';
$page_title = ( isset($HTTP_POST_VARS['page_title']) ) ? mysql_escape_string($HTTP_POST_VARS['page_title']) : '';
$use_url = ( isset($HTTP_POST_VARS['use_url']) ) ? ( ($HTTP_POST_VARS['use_url'] == 0) ? 0 : 1 ) : 0;
$forum_select = ( isset($HTTP_POST_VARS['forum_select']) ) ? intval($HTTP_POST_VARS['forum_select']) : 0;
$portal_url = ( isset($HTTP_POST_VARS['portal_url']) ) ? mysql_escape_string(urlencode($HTTP_POST_VARS['portal_url'])) : '';
$list_limit = ( isset($HTTP_POST_VARS['list_limit']) ) ? intval($HTTP_POST_VARS['list_limit']) : 0;
$posts_order = ( isset($HTTP_POST_VARS['posts_order']) ) ? ( ($HTTP_POST_VARS['posts_order']) ? 1 : 0 ) : 0;
$display_date = ( isset($HTTP_POST_VARS['display_date']) ) ? ( ($HTTP_POST_VARS['display_date']) ? 0 : 1 ) : 1;
$button_name = ( !empty($HTTP_POST_VARS['button_name']) ) ? mysql_escape_string($HTTP_POST_VARS['button_name']) : '';
$button_image = ( isset($HTTP_POST_VARS['button_image']) ) ? mysql_escape_string(urlencode($HTTP_POST_VARS['button_image'])) : '';
$show_navbar = ( isset($HTTP_POST_VARS['show_navbar']) ) ? ( ($HTTP_POST_VARS['show_navbar']) ? 1 : 0 ) : 0;
$show_login = ( isset($HTTP_POST_VARS['show_login']) ) ? ( ($HTTP_POST_VARS['show_login']) ? 1 : 0 ) : 0;
$show_online = ( isset($HTTP_POST_VARS['show_online']) ) ? ( ($HTTP_POST_VARS['show_online']) ? 1 : 0 ) : 0;
$show_poll = (isset($HTTP_POST_VARS['show_poll']) ? intval($HTTP_POST_VARS['show_poll']) : 1);
$show_latest = (isset($HTTP_POST_VARS['latest']) ? $HTTP_POST_VARS['latest'] : array());
if(!is_array($show_latest))
{
$show_latest = array($show_latest);
}
foreach($show_latest as $k => $v)
{
$show_latest[$k] = intval($v);
}
// settings for message and bbcode
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$bbcode_uid = '';
// Check message
if ( !empty($message) )
{
$bbcode_uid = make_bbcode_uid();
$message = prepare_message(trim($message), 1, 1, 1, $bbcode_uid);
$message = str_replace("\'", "''", $message);
}
$sql = "SELECT MAX(portal_order) AS max_order
FROM " . PORTAL_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't get order number from categories table", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$next_order = $row['max_order'] + 10;
$sql = "INSERT INTO " . PORTAL_TABLE . "
(portal_title, portal_description, portal_bbcode_id, portal_use_url, portal_forum,
portal_url, portal_list_limit, portal_ascending, portal_nodate, portal_button_name,
portal_button_image, portal_navbar, portal_login, portal_online, portal_latest,
portal_poll, portal_order)
VALUES ('$page_title', '$message', '$bbcode_uid', $use_url, $forum_select, '$portal_url',
$list_limit, $posts_order, $display_date, '$button_name', '$button_image',
$show_navbar, $show_login, $show_online, '" . implode($show_latest, ',') . "',
$show_poll, $next_order)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
}
$message = $lang['Portal_added'];
$message .= '<br /><br />' . sprintf($lang['Click_return_portal'], '<a href="' . append_sid("admin_portal.$phpEx") . '">', "</a>");
message_die(GENERAL_MESSAGE, $message);
break;
case 'smilies':
generate_smilies2('window', PAGE_POSTING);
exit;
break;
case 'help':
generate_help('window', PAGE_POSTING);
exit;
break;
case 'deleteportal':
$mode = 'delete';
$sql = "DELETE FROM " . PORTAL_TABLE . "
WHERE portal_id = $portal_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't change portal order", "", __LINE__, __FILE__, $sql);
}
renumber_order();
redirect(append_sid("$site_root/admin/admin_portal.$phpEx", true));
break;
case 'moveupportal':
$mode = 'moveup';
$sql = "UPDATE " . PORTAL_TABLE . "
SET portal_order = portal_order - 15
WHERE portal_id = $portal_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't change portal order", "", __LINE__, __FILE__, $sql);
}
renumber_order();
redirect(append_sid("$site_root/admin/admin_portal.$phpEx", true));
break;
case 'movedownportal':
$mode = 'movedown';
$sql = "UPDATE " . PORTAL_TABLE . "
SET portal_order = portal_order + 15
WHERE portal_id = $portal_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't change portal order", "", __LINE__, __FILE__, $sql);
}
renumber_order();
redirect(append_sid("$site_root/admin/admin_portal.$phpEx", true));
break;
case 'view':
default:
$mode = 'view';
$sql = "SELECT n.*
FROM " . PORTAL_TABLE . " n
ORDER BY n.portal_order ASC ";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't obtain portal list", "", __LINE__, __FILE__, $sql);
}
$portal_rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
//
// Output the selection table if no forum id was
// specified
//
$template->set_filenames(array(
'body' => 'admin/portal_admin_body.tpl')
);
for($i = 0; $i < count($portal_rows); $i++)
{
$template->assign_block_vars('portalrow', array(
'U_VIEWPORTAL' => append_sid("../portal.$phpEx?page=" . $portal_rows[$i]['portal_id']),
'PORTAL_NAME' => $portal_rows[$i]['portal_title'],
'U_PORTAL_EDIT' => append_sid("admin_portal.$phpEx?mode=editportal&portal=" . $portal_rows[$i]['portal_id']),
'U_PORTAL_DELETE' => append_sid("admin_portal.$phpEx?mode=deleteportal&portal=" . $portal_rows[$i]['portal_id']),
'U_PORTAL_MOVE_UP' => append_sid("admin_portal.$phpEx?mode=moveupportal&portal=" . $portal_rows[$i]['portal_id']),
'U_PORTAL_MOVE_DOWN' => append_sid("admin_portal.$phpEx?mode=movedownportal&portal=" . $portal_rows[$i]['portal_id'])
));
}
$template->assign_vars(array(
'L_PORTAL_TITLE' => $lang['Portal_Control'],
'L_PORTAL_EXPLAIN' => $lang['Portal_explain'],
'L_PORTAL_SELECT' => $lang['Select_a_Portal'],
'L_LOOK_UP' => $lang['Look_up_Portal'],
'L_EDIT' => $lang['Edit'],
'L_DELETE' => $lang['Delete'],
'L_MOVE_UP' => $lang['Move_up'],
'L_MOVE_DOWN' => $lang['Move_down'],
'L_CREATE_PAGE' => $lang['New_Portal_Page'],
'S_PORTAL_ACTION' => append_sid("admin_portal.$phpEx"),
'S_PORTAL_SELECT' => $select_list)
);
break;
}
include('./page_header_admin.'.$phpEx);
$template->pparse('body');
include('./page_footer_admin.'.$phpEx);
}
?>