sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not obtain user info.", "", __LINE__, __FILE__, $sql); } if ( ($row = $db->sql_fetchrow($result)) ) { $userid = $row['user_id']; } else { message_die(GENERAL_ERROR, "No users match that username."); } // if we are adding a new newsfeed if ( $mode == 'add' ) { // check to see if the newsfeed url is already being used in the chosen forum $sql = "SELECT feed_id from " . NEWSFEEDS_TABLE . " WHERE forum_id=$forum_id AND news_url='$newsfeed_url'"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not obtain newsfeed info.", "", __LINE__, __FILE__, $sql); } // insert the new newsfeed details if ( !($row = $db->sql_fetchrow($result)) ) { $sql = "INSERT INTO " . NEWSFEEDS_TABLE . " (forum_id, user_id, news_url, news_name, news_limit, include_channel, include_image) VALUES ($forum_id, $userid, '$newsfeed_url', '$newsfeed_name', $newsfeed_limit, $newsfeed_inc_channel, $newsfeed_inc_image)"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not insert row in newsfeeds table.", "", __LINE__, __FILE__, $sql); } } else { message_die(GENERAL_ERROR, "The URL entered already exists for this forum."); } } // we are saving the changes made to an existing newsfeed else { // initialise the feed id $feed_id = ( (isset($HTTP_POST_VARS['save_feed_id']) ) ? intval($HTTP_POST_VARS['save_feed_id']) : ( (isset($HTTP_GET_VARS['save_feed_id']) ) ? intval($HTTP_GET_VARS['save_feed_id']) : 0 )); // if it's a valid newsfeed id, go ahead and do the update if ( $feed_id > 0 ) { $sql = "UPDATE " . NEWSFEEDS_TABLE . " SET forum_id = $forum_id, user_id = $userid, news_url = '$newsfeed_url', news_name = '$newsfeed_name', news_limit = $newsfeed_limit, include_channel = $newsfeed_inc_channel, include_image = $newsfeed_inc_image WHERE feed_id = $feed_id"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not update info in newsfeeds table.", "", __LINE__, __FILE__, $sql); } } } } // are we deleting an existing newsfeed? elseif ( $mode == 'delete' ) { // could be more than 1, get the list of feed ids to delete $feeds = ( isset($HTTP_POST_VARS['feed_id_list']) ) ? $HTTP_POST_VARS['feed_id_list'] : array(); $feed_id_sql = ''; // if we've got some feed ids, then go ahead and delete them if ( count($feeds) > 0 ) { for($i = 0; $i < count($feeds); $i++) { $feed_id_sql .= ( ( $feed_id_sql != '' ) ? ', ' : 'IN (' ) . $feeds[$i]; } $feed_id_sql .= ( $feed_id_sql != '' ) ? ')' : ''; $sql = "DELETE FROM " . NEWSFEEDS_TABLE . " WHERE feed_id $feed_id_sql"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not delete from newsfeeds table.", "", __LINE__, __FILE__, $sql); } } else { message_die(GENERAL_ERROR, "None selected."); } } // are manaually gatheing the news? elseif ( $mode == 'execute' ) { // call the news gathering function in functions_news.php include_once($phpbb_root_path . 'mods/netclectic/find_input/includes/functions_news.php'); $feeds = ( isset($HTTP_POST_VARS['feed_id_list']) ) ? implode(',', $HTTP_POST_VARS['feed_id_list']) : ''; $message = retrieve_rss_content($feeds, true); message_die(GENERAL_MESSAGE, $message); } // are we about to edit a newsfeed? elseif ( $mode == 'edit' ) { // initialise the feed id $feed_id = ( (isset($HTTP_POST_VARS[POST_NEWSFEED_URL]) ) ? intval($HTTP_POST_VARS[POST_NEWSFEED_URL]) : (isset($HTTP_GET_VARS[POST_NEWSFEED_URL]) ) ? intval($HTTP_GET_VARS[POST_NEWSFEED_URL]) : 0 ); // if we have a valid feed id then get and output the feed details if ( $feed_id > 0 ) { $sql = 'SELECT n.*, u.username FROM ' . NEWSFEEDS_TABLE . ' n, ' . USERS_TABLE . ' u WHERE u.user_id = n.user_id AND feed_id = ' . $feed_id; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not retrieve info from newsfeeds table.", "", __LINE__, __FILE__, $sql); } if ( $row = $db->sql_fetchrow($result) ) { $template->assign_vars(array( 'EDIT_NEWSFEED_ID' => $row['feed_id'], 'EDIT_NEWSFEED_FORUM_ID' => $row['forum_id'], 'EDIT_NEWSFEED_NAME' => $row['news_name'], 'EDIT_NEWSFEED_URL' => $row['news_url'], 'EDIT_NEWS_USER' => $row['username'], 'EDIT_NEWS_LIMIT' => $row['news_limit'], 'EDIT_NEWS_INCLUDE_CHANNEL' => ($row['include_channel']) ? 'checked=checked' : '', 'EDIT_NEWS_INCLUDE_IMAGE' => ($row['include_image']) ? 'checked=checked' : '', ) ); } } } // start the page output $template->set_filenames(array( 'body' => 'admin/newsfeeds_body.tpl') ); // get the list of forums and catgories $sql = "SELECT f.* FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c WHERE c.cat_id = f.cat_id ORDER BY c.cat_order ASC, f.forum_order ASC"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Couldn't obtain forum list", "", __LINE__, __FILE__, $sql); } $forum_rows = $db->sql_fetchrowset($result); $db->sql_freeresult($result); // build a drop down select list of forums $select_list = ''; // assign some variables $template->assign_vars(array( 'L_FIND_EXPLAIN' => $lang['FIND_Explain'], 'L_FORUM_NAME' => $lang['Forum_name'], 'L_NEWSFEED_NAME' => $lang['News_Feed_Name'], 'L_NEWSFEED_NAME_EXPLAIN' => $lang['News_Feed_Name_Explain'], 'L_NEWSFEED_URL' => $lang['News_Feed_URL'], 'L_NEWSFEED_URL_EXPLAIN' => $lang['News_URL_Explain'], 'L_NEWSFEEDS_TITLE' => $lang['News_Feeds'], 'L_NEWSFEEDS_EXPLAIN' => $lang['News_Feeds_Explain'], 'L_ADD_EDIT_NEWSFEED' => ($mode != 'edit') ? $lang['Add_Feed'] : $lang['Edit_Feed'], 'L_EDIT_NEWSFEED' => $lang['Edit_Feed'], 'L_NEWS_FORUMS_EXPLAIN' => $lang['News_Forums_Explain'], 'L_UPDATE_NEWS_CONFIG' => $lang['Update_News_Config'], 'L_NEWS_CONFIG' => $lang['News_Config'], 'L_NEWS_USER' => $lang['News_Username'], 'L_NEWS_USERNAME_EXPLAIN' => $lang['News_Username_Explain'], 'L_NEWS_LIMIT' => $lang['News_Limit'], 'L_NEWS_LIMIT_EXPLAIN' => $lang['News_Limit_Explain'], 'L_DELETE' => $lang['Delete'], 'L_GET_NEWS_NOW' => $lang['Get_News_Now'], 'L_NEWS_INC_CHANNEL' => $lang['News_Include_Channel'], 'L_NEWS_INC_CHANNEL_EXPLAIN' => $lang['News_Include_Channel_Explain'], 'L_NEWS_INC_IMAGE' => $lang['News_Include_Image'], 'L_NEWS_INC_IMAGE_EXPLAIN' => $lang['News_Include_Image_Explain'], 'L_CHECK_ALL' => $lang['Check_All'], 'L_UNCHECK_ALL' => $lang['UnCheck_All'], 'POST_NEWSFEED_URL' => POST_NEWSFEED_URL, 'S_FORM_ACTION' => append_sid("admin_newsfeeds.$phpEx"), 'S_FORUM_SELECT' => $select_list, 'S_ADD_EDIT_NEWSFEED' => ($mode != 'edit') ? 'add_newsfeed' : 'edit_newsfeed', ) ); // get the list of newsfeeds and related info $sql = 'SELECT f.forum_name, n.*, c.cat_id, c.cat_title, u.user_id, u.username FROM ' . NEWSFEEDS_TABLE . ' n, ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c, ' . USERS_TABLE . ' u WHERE f.forum_id = n.forum_id AND c.cat_id = f.cat_id AND u.user_id = n.user_id ORDER BY c.cat_order ASC, f.forum_order ASC, n.news_name ASC'; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Couldn't obtain newsfeeds list", "", __LINE__, __FILE__, $sql); } // loop through the newsfeeds $cat_id = -1; $newsfeed_rows = $db->sql_fetchrowset($result); for($i = 0; $i < count($newsfeed_rows); $i++) { // is this the start of a new category if ( $newsfeed_rows[$i]['cat_id'] != $cat_id ) { $template->assign_block_vars('cat_row', array( 'CAT_TITLE' => $newsfeed_rows[$i]['cat_title'] ) ); $cat_id = $newsfeed_rows[$i]['cat_id']; } // assign the various newsfeed variables $newsfeed_url = ( $newsfeed_rows[$i]['news_name'] != "" ) ? '' . $newsfeed_rows[$i]['news_name'] . '' : '' . $newsfeed_rows[$i]['news_url'] . ''; $template->assign_block_vars('cat_row.newsfeed_row', array( 'NEWSFEED_ID' => $newsfeed_rows[$i]['feed_id'], 'FORUM_ID' => $newsfeed_rows[$i]['forum_id'], 'USER_ID' => $newsfeed_rows[$i]['user_id'], 'S_FORUM_NAME' => $newsfeed_rows[$i]['forum_name'], 'S_NEWSFEED_USERNAME' => $newsfeed_rows[$i]['username'], 'S_NEWSFEED_URL' => $newsfeed_url, 'S_NEWSFEED_LIMIT' => $newsfeed_rows[$i]['news_limit'], 'S_NEWSFEED_INC_CHANNEL' => ($newsfeed_rows[$i]['include_channel']) ? $lang['Yes'] : $lang['No'], 'S_NEWSFEED_INC_IMAGE' => ($newsfeed_rows[$i]['include_image']) ? $lang['Yes'] : $lang['No'], 'U_NEWS_USER' => append_sid("admin_users.$phpEx" . '?mode=edit&' . POST_USERS_URL . '=' . $newsfeed_rows[$i]['user_id']), 'U_EDITFEED' => append_sid("admin_newsfeeds.$phpEx" . '?mode=edit&' . POST_NEWSFEED_URL . '=' . $newsfeed_rows[$i]['feed_id']), ) ); } $db->sql_freeresult($result); // now lets ouput the whole shebang include('./page_header_admin.'.$phpEx); $template->pparse('body'); include('./page_footer_admin.'.$phpEx); ?>