Code: Alles auswählen
<?php
define('IN_PHPBB', 1);
if( !empty($setmodules) )
{
$file = basename(__FILE__);
$module['General']['Board_News'] = "$file";
return;
}
//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
}
else
{
//
// These could be entered via a form button
//
if( isset($HTTP_POST_VARS['add']) )
{
$mode = "add";
}
else if( isset($HTTP_POST_VARS['save']) )
{
$mode = "save";
}
else
{
$mode = "";
}
}
if( $mode != "" )
{
if( $mode == "edit" || $mode == "add" )
{
$group_id = ( isset($HTTP_GET_VARS['id']) ) ? $HTTP_GET_VARS['id'] : 0;
$template->set_filenames(array(
"body" => "admin/board_news_edit_body.tpl")
);
$s_hidden_fields = '';
if( $mode == "edit" )
{
if( $group_id )
{
$sql = "SELECT *
FROM " . BOARD_NEWS_TABLE . "
WHERE group_id = $group_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query board news table", "Error", __LINE__, __FILE__, $sql);
}
$group_info = $db->sql_fetchrow($result);
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $group_id . '" />';
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_news_selected']);
}
}
$sql = "SELECT group_id, group_name
FROM " . GROUPS_TABLE . "
WHERE group_single_user <> " . TRUE . "
ORDER BY group_name";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
}
$select_list = '';
if ( $row = $db->sql_fetchrow($result) )
{
$select_list .= "<select name='group'><option value='*'>Alle Benutzer</option>";
do
{
if ( $row['group_id'] == $group_info['group'] ) $select_list .= '<option value="' . $row['group_id'] . '" selected>' . $row['group_name'] . '</option>';
else $select_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
}
while ( $row = $db->sql_fetchrow($result) );
$select_list .= "</select>";
}
$group_form = $select_list;
$template->assign_vars(array(
"NEWS_GROUP" => $group_form,
"BOARD_NEWS" => $group_info['news'],
"L_NEWS_TITLE" => $lang['News_title'],
"L_NEWS_TEXT" => $lang['News_text'],
"L_NEWS_CENSOR" => $lang['Edit_news'],
"L_NEWS_GROUP" => $lang['News_group'],
"L_BOARD_NEWS" => $lang['Board_news'],
"L_SUBMIT" => $lang['Submit'],
"S_NEWS_ACTION" => append_sid("admin_board_news.$phpEx"),
"S_HIDDEN_FIELDS" => $s_hidden_fields)
);
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
}
else if( $mode == "save" )
{
$group_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
$group = ( isset($HTTP_POST_VARS['group']) ) ? trim($HTTP_POST_VARS['group']) : "";
$news = ( isset($HTTP_POST_VARS['news']) ) ? trim($HTTP_POST_VARS['news']) : "";
if($group == "" || $news == "")
{
message_die(GENERAL_MESSAGE, $lang['Must_enter_news']);
}
if( $group_id )
{
$sql = "UPDATE " . BOARD_NEWS_TABLE . "
SET group = '" . str_replace("\'", "''", $group) . "', news = '" . str_replace("\'", "''", $news) . "'
WHERE group_id = $group_id";
$message = $lang['News_updated'];
}
else
{
$sql = "INSERT INTO " . BOARD_NEWS_TABLE . " (group, news)
VALUES ('" . str_replace("\'", "''", $group) . "', '" . str_replace("\'", "''", $news) . "')";
$message = $lang['News_added'];
}
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not insert data into board news table ", $lang['Error'], __LINE__, __FILE__, $sql);
}
$message .= "<br /><br />" . sprintf($lang['Click_return_newsadmin'], "<a href=\"" . append_sid("admin_board_news.$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']) )
{
$group_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
}
else
{
$group_id = 0;
}
if( $group_id )
{
$sql = "DELETE FROM " . BOARD_NEWS_TABLE . "
WHERE group_id = $group_id";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not remove data from board news table", $lang['Error'], __LINE__, __FILE__, $sql);
}
$message = $lang['News_removed'] . "<br /><br />" . sprintf($lang['Click_return_newsadmin'], "<a href=\"" . append_sid("admin_board_news.$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['No_news_selected']);
}
}
}
else
{
$template->set_filenames(array(
"body" => "admin/board_news_body.tpl")
);
$sql = "SELECT *
FROM " . BOARD_NEWS_TABLE ;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not query board news table", $lang['Error'], __LINE__, __FILE__, $sql);
}
$group_rows = $db->sql_fetchrowset($result);
$group_count = count($group_rows);
$template->assign_vars(array(
"L_NEWS_TITLE" => $lang['News_title'],
"L_NEWS_TEXT" => $lang['News_text'],
"L_NEWS_GROUP" => $lang['News_group'],
"L_BOARD_NEWS" => $lang['Board_news'],
"L_EDIT" => $lang['Edit'],
"L_DELETE" => $lang['Delete'],
"L_ADD_NEWS" => $lang['Add_news'],
"L_ACTION" => $lang['Action'],
"S_NEWS_ACTION" => append_sid("admin_board_news.$phpEx"),
"S_HIDDEN_FIELDS" => '')
);
for($i = 0; $i < $group_count; $i++)
{
$group = $group_rows[$i]['group'];
$sql = "SELECT group_id, group_name
FROM " . GROUPS_TABLE . "
WHERE group_single_user <> " . TRUE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
do
{
if ($row['group_id'] == $group) $group_name = $row['group_name'];
if ($group == "*") $group_name = "Alle Benutzer";
}
while ( $row = $db->sql_fetchrow($result) );
}
$news = $group_rows[$i]['news'];
$group_id = $group_rows[$i]['group_id'];
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars("news", array(
"ROW_COLOR" => "#" . $row_color,
"ROW_CLASS" => $row_class,
"GROUP" => $group_name,
"NEWS" => preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $news),
"U_NEWS_EDIT" => append_sid("admin_board_news.$phpEx?mode=edit&id=$group_id"),
"U_NEWS_DELETE" => append_sid("admin_board_news.$phpEx?mode=delete&id=$group_id"))
);
}
}
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
?>