Code: Alles auswählen
<?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']) ) ? str_replace("\'", "''", $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']) ) ? str_replace("\'", "''", 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']) ) ? str_replace("\'", "''", $HTTP_POST_VARS['button_name']) : '';
$button_image = ( isset($HTTP_POST_VARS['button_image']) ) ? str_replace("\'", "''", 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']) ) ? str_replace("\'", "''", $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']) ) ? str_replace("\'", "''", 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']) ) ? str_replace("\'", "''", $HTTP_POST_VARS['button_name']) : '';
$button_image = ( isset($HTTP_POST_VARS['button_image']) ) ? str_replace("\'", "''", 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);
}
?>