Вход Регистрация
Файл: weblog_posting.php
Строк: 873
<?php
/***************************************************************************
 *                            weblog_posting.php
 *                         ------------------------
 *   Anv@r.all 2010
 *   (C) apwa.ru
 *
 ***************************************************************************/


define('IN_PHPBB'true);
$phpbb_root_path './';
include(
$phpbb_root_path 'extension.inc');
include(
$phpbb_root_path 'common.'.$phpEx);
include(
$phpbb_root_path 'includes/bbcode.'.$phpEx);
include(
$phpbb_root_path 'includes/functions_post.'.$phpEx);
include(
$phpbb_root_path 'includes/weblogs_common.'.$phpEx);
include(
$phpbb_root_path 'includes/functions_weblog.'.$phpEx);

if ( isset(
$HTTP_POST_VARS[POST_REPLY_URL]) || isset($HTTP_GET_VARS[POST_REPLY_URL]) )
{
    
$reply_id = ( isset($HTTP_POST_VARS[POST_REPLY_URL]) ) ? $HTTP_POST_VARS[POST_REPLY_URL] : $HTTP_GET_VARS[POST_REPLY_URL];
    
$reply_id intval($reply_id);
}
else
{
    
$reply_id 0;
}

if ( isset(
$HTTP_POST_VARS[POST_ENTRY_URL]) || isset($HTTP_GET_VARS[POST_ENTRY_URL]) )
{
    
$entry_id = ( isset($HTTP_POST_VARS[POST_ENTRY_URL]) ) ? $HTTP_POST_VARS[POST_ENTRY_URL] : $HTTP_GET_VARS[POST_ENTRY_URL];
    
$entry_id intval($entry_id);
}
else
{
    
$entry_id 0;
}

if ( isset(
$HTTP_POST_VARS[POST_WEBLOG_URL]) || isset($HTTP_GET_VARS[POST_WEBLOG_URL]) )
{
    
$weblog_id = ( isset($HTTP_POST_VARS[POST_WEBLOG_URL]) ) ? $HTTP_POST_VARS[POST_WEBLOG_URL] : $HTTP_GET_VARS[POST_WEBLOG_URL];
    
$weblog_id intval($weblog_id);
}
else
{
    
$weblog_id 0;
}

if ( isset(
$HTTP_GET_VARS['popup']) || isset($HTTP_POST_VARS['popup']))
{
    
$popup = ( isset($HTTP_GET_VARS['popup']) ) ? intval($HTTP_GET_VARS['popup']) : intval($HTTP_POST_VARS['popup']);
}

if ( isset(
$HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
    
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
    
$mode '';
}

$confirm = ( $HTTP_POST_VARS['confirm'] ) ? TRUE 0;

//
// Text based parameters
//
$params = array('username' => 'username''subject' => 'subject');
while( list(
$var$param) = @each($params) )
{
    if ( !empty(
$HTTP_POST_VARS[$param]) )
    {
        $
$var trim($HTTP_POST_VARS[$param]);
    }
    else
    {
        $
$var '';
    }
}

//
// Integer parameters
//
$mood = -1;
$params = array('entry_access' => 'entry_access''mood' => 'mood''action' => 'action''year' => 'year''month' => 'month''day' => 'day');
while( list(
$var$param) = @each($params) )
{
    if ( !empty(
$HTTP_POST_VARS[$param]) )
    {
        $
$var intval($HTTP_POST_VARS[$param]);
    }
    else if ( 
$var != 'mood' )
    {
        $
$var 0;
    }
}

//
// Parameters with only on or off
//
$params = array('memorable' => 'memorable''disable_replies' => 'disable_replies''disable_html' => 'disable_html''disable_bbcode' => 'disable_bbcode''disable_smilies' => 'disable_smilies''attach_sig' => 'attach_sig');
while( list(
$var$param) = @each($params) )
{
    if ( !empty(
$HTTP_POST_VARS[$param]) )
    {
        $
$var = ( !empty($HTTP_POST_VARS[$param]) ) ? 0;
    }
    else
    {
        $
$var 0;
    }
}

//
// Start session management
//
$userdata session_pagestart($user_ipPAGE_POSTING);
init_userprefs($userdata);
//
// End session management
//

$hidden_form_fields '';

if ( 
$reply_id )
{
    
$reply_data '';
    
$sql "SELECT * FROM " WEBLOG_REPLIES_TABLE " WHERE reply_id = $reply_id";
    if ( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR'Error getting reply information'''__LINE____FILE__$sql);
    }

    
$reply_data = array();
    if ( 
$row $db->sql_fetchrow($result) )
    {
        
$reply_data $row;
    }
    else
    {
        
message_die(GENERAL_ERROR$lang['Reply_not_exist']);
    }

    
// Also get the entry data
    
$sql "SELECT * FROM " WEBLOG_ENTRIES_TABLE " WHERE entry_id = " $reply_data['entry_id'];
    if ( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR'Error getting reply information'''__LINE____FILE__$sql);
    }

    
$entry_data = array();
    if ( 
$row $db->sql_fetchrow($result) )
    {
        
$entry_data $row;
    }
    else
    {
        
message_die(GENERAL_ERROR$lang['Entry_not_exist']);
    }

    
$sql "SELECT w.*, u.user_id FROM " WEBLOGS_TABLE " w, " USERS_TABLE " u
            WHERE w.weblog_id = " 
$entry_data['weblog_id'] . "
                AND w.weblog_id = u.user_weblog"
;
    if ( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR'Error retrieving the reply's weblog', '', __LINE__, __FILE__, $sql);
    }

    $weblog_data = array();
    if ( $row = $db->sql_fetchrow($result) )
    {
        $weblog_data = $row;
    }
    else
    {
        // If a reply doesn'
t belong to a weblog or an entryit doesn't exist.
        message_die(GENERAL_ERROR, $lang['
Weblog_not_exist']);
    }

    $entry_id = $reply_data['
entry_id'];
    $weblog_id = $weblog_data['
weblog_id'];
}
else if ( $entry_id )
{
    $entry_data = '';
    $sql = "SELECT * FROM " . WEBLOG_ENTRIES_TABLE . " WHERE entry_id = $entry_id";
    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, '
Error getting entry information', '', __LINE__, __FILE__, $sql);
    }

    if ( $row = $db->sql_fetchrow($result) )
    {
        $entry_data = $row;
    }
    else
    {
        message_die(GENERAL_ERROR, $lang['
Entry_not_exist']);
    }

    $sql = "SELECT w.*, u.user_id FROM " . WEBLOGS_TABLE . " w, " . USERS_TABLE . " u
            WHERE w.weblog_id = " . $entry_data['
weblog_id'] . "
                AND w.weblog_id = u.user_weblog";
    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, '
Error retrieving the entry's weblog'''__LINE____FILE__$sql);
    }

    if ( 
$row $db->sql_fetchrow($result) )
    {
        
$weblog_data $row;
    }
    else
    {
        
// If an entry does not belong to a weblog, it doesn't exist
        
message_die(GENERAL_ERROR$lang['Weblog_not_exist']);
    }
    
$weblog_id $weblog_data['weblog_id'];

}
else if ( 
$weblog_id )
{
    
$weblog_data '';
    
$sql "SELECT w.*, u.* FROM " WEBLOGS_TABLE " w, " USERS_TABLE " u WHERE w.weblog_id = $weblog_id AND u.user_weblog = w.weblog_id";
    if ( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR'Error getting weblog information'''__LINE____FILE__$sql);
    }

    if ( 
$row $db->sql_fetchrow($result) )
    {
        
$weblog_data $row;
    }
    else
    {
        
message_die(GENERAL_ERROR$lang['Weblog_not_exist']);
    }
}

//
// Was cancel pressed? If so then redirect to the appropriate
// page, no point in continuing with any further checks
//
if ( isset($HTTP_POST_VARS['cancel']) )
{
    if ( 
$tb_id )
    {
        
$redirect "weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id&amp;tb=1";
        
$post_append "#$post_id";
    }
    else if ( 
$entry_id )
    {
        
$redirect "weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id";
        
$post_append '';
    }
    else if ( 
$weblog_id )
    {
        
$redirect "weblog.$phpEx?" POST_WEBLOG_URL "=$weblog_id";
        
$post_append '';
    }
    else
    {
        
$redirect "weblogs.$phpEx";
        
$post_append '';
    }

    
redirect(append_sid($redirecttrue) . $post_append);
}

if ( 
$weblog_data['deleted'] )
{
    
message_die(GENERAL_ERRORsprintf($lang['Weblog_deactivated'], $weblog_data['weblog_name']));
}

//
// Fetch Contributor data
//
$sql "SELECT * FROM " WEBLOG_CONTRIBUTORS_TABLE " WHERE weblog_id = $weblog_id AND user_id = " $userdata['user_id'];
if ( !(
$result $db->sql_query($sql)) )
{
    
message_die(GENERAL_ERROR'Error querying to find user weblog information'''__LINE____FILE__$sql);
}

$contributor FALSE;
if ( 
$row $db->sql_fetchrow($result) || $userdata['user_level'] == ADMIN )
{
    
$contributor TRUE;
}

$auth_level get_auth_level($weblog_data$contributor);

if ( !
$board_config['allow_html'] )
{
    
$disable_html 1;
}


if ( !
$board_config['allow_bbcode'] )
{
    
$disable_bbcode 1;
}

if ( !
$board_config['allow_smilies'] )
{
    
$disable_smilies 1;
}

if ( 
$disable_html )
{
    
$html_on 0;
}
else
{
    
$html_on 1;
}

if ( 
$disable_bbcode )
{
    
$bbcode_on 0;
}
else
{
    
$bbcode_on 1;
    
$bbcode_uid make_bbcode_uid();
}

if ( 
$disable_smilies )
{
    
$smilies_on 0;
}
else
{
    
$smilies_on 1;
}

//
// Handle Submissions (excluding image uploads)
//
if ( isset($HTTP_POST_VARS['submit']) )
{
    if ( !
$userdata['user_allowweblog'] )
    {
        
message_die(GENERAL_ERROR$lang['Owner_banned']);
    }
    
        
$target_date time();
    
// Always going to be a message that needs to be taken care of
    
$message = ( isset($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
    
$error_msg '';

    if ( empty(
$subject) && ($mode == 'newentry' || $mode == 'editentry') )
    {
        
$error_msg .= (!empty($error_msg)) ? '<br />' $lang['Subject_empty'] : $lang['Subject_empty'];
    }

        
// ADD ON category by willow
        
$category_id = ( isset($HTTP_POST_VARS['category_id']) ) ? intval($HTTP_POST_VARS['category_id']) : '0';

    if ( empty(
$message) )
    {
        if ( 
$mode == 'newentry' || $mode == 'editentry' )
        {
            
$error_msg .= (!empty($error_msg)) ? '<br />' $lang['Entry_empty'] : $lang['Entry_empty'];
        }
        else
        {
            
$error_msg .= (!empty($error_msg)) ? '<br />' $lang['Reply_empty'] : $lang['Reply_empty'];
        }

    }
    else
    {
        
$message prepare_message($message$html_on$bbcode_on$smilies_on$bbcode_uid);
    }

    
// Check username
    
if (!empty($username))
    {
        
$username trim(strip_tags($username));

        if (!
$userdata['session_logged_in'])
        {
            include(
$phpbb_root_path 'includes/functions_validate.'.$phpEx);

            
$result validate_username($username);
            if (
$result['error'])
            {
                
$error_msg .= (!empty($error_msg)) ? '<br />' $result['error_msg'] : $result['error_msg'];
            }
        }
        else
        {
            
$username '';
        }
    }

    if ( !empty(
$error_msg) )
    {
        
message_die (GENERAL_ERROR$error_msg '<br />' $lang['Try_again']);
    }

    if ( 
$mode == 'newentry' || $mode == 'editentry' )
    {
        
        
$maximum 0;

        
// First, get the maximum entry id
        
$sql "SELECT MAX(entry_id) AS maximum FROM " WEBLOG_ENTRIES_TABLE;
        if ( !(
$result $db->sql_query($sql)) )
        {
            
message_die(GENERAL_ERROR'Could not query maximum entry id in database'''__LINE____FILE__$sql);
        }

        if ( 
$row $db->sql_fetchrow($result) )
        {
            
$maximum $row['maximum'];
        }

        
$maximum++;

        
$tb_excerpt = ( isset($HTTP_POST_VARS['tb_excerpt']) ) ? stripslashes(strip_tags($HTTP_POST_VARS['tb_excerpt'])) : '';
        
$tb_urls = ( isset($HTTP_POST_VARS['tb_urls']) ) ? stripslashes($HTTP_POST_VARS['tb_urls']) : '';

        
$tb_result '';

        if ( 
$mode == 'newentry' )
        {
            if ( 
$weblog_data['weblog_id'] != $userdata['user_weblog'] && $userdata['user_level'] != ADMIN && !$contributor )
            {
                
message_die (GENERAL_ERROR$lang['No_add_entries']);
            }

            
$sql "INSERT INTO " WEBLOG_ENTRIES_TABLE " (entry_id, weblog_id, entry_access, entry_subject, entry_text, bbcode_uid, entry_mood, entry_currently, entry_time, enable_bbcode, enable_smilies, memorable, no_replies, entry_last_post_userid, entry_poster_id, category_id)
                    VALUES (
$maximum$weblog_id$entry_access, '" str_replace("'""''"$subject) . "', '" str_replace("'""''"$message) . "', '$bbcode_uid', $mood$action$target_date$bbcode_on$smilies_on$memorable$disable_replies, " $userdata['user_id'] . ", " $userdata['user_id'] . ", '" $category_id "')";
            if ( !(
$result $db->sql_query($sql)) )
            {
                
message_die(GENERAL_ERROR'Could not insert entry into database'''__LINE____FILE__$sql);
            }
            
// Sobytie
            
add_sobytie($maximum'weblog'''''''$userdata['user_id'], $userdata['username'], $subject$message$target_date);                        
                    
// Sobytie

            
$sql "UPDATE " WEBLOGS_TABLE "
                SET weblog_entries = weblog_entries + 1
                WHERE weblog_id = 
$weblog_id";
            if( !
$result $db->sql_query($sql) )
            {
                
message_die(GENERAL_ERROR"Couldn't update weblog entries information."""__LINE____FILE__$sql);
            }

            
// Set a cookie for this entry
            
$tracking_entries = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_e']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_e']) : array();
            
$tracking_weblogs = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_w']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_w']) : array();

            if ( 
count($tracking_entries) + count($tracking_weblogs) == 100 && empty($tracking_entries[$maximum]) )
            {
                
asort($tracking_entries);
                unset(
$tracking_entries[key($tracking_entries)]);
            }

            
$tracking_entries[$maximum] = time();

            
setcookie($board_config['cookie_name'] . '_e'serialize($tracking_entries), 0$board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
            
            
// Finish Up
            
$template->assign_vars(array(
                
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$maximum") . '">')
            );

            
message_die(GENERAL_MESSAGE$lang['Entry_submitted'] . $tb_result '<br />' sprintf($lang['Click_return_entry'], '<a href="' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$maximum") . '">''</a>') . '<br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
        }
        else if ( 
$mode == 'editentry' )
        {
            if ( 
$weblog_data['weblog_id'] != $userdata['user_weblog'] && $userdata['user_level'] != ADMIN && !$contributor )
            {
                
message_die(GENERAL_ERROR$lang['No_edit_entries']);
            }

            
$sql "UPDATE " WEBLOG_ENTRIES_TABLE " SET entry_access = $entry_access, entry_subject = '" str_replace("'""''"$subject) . "', entry_text = '" str_replace("'""''"$message) . "', bbcode_uid = '$bbcode_uid', entry_mood = $mood, entry_currently = $action, category_id = '" $category_id "', enable_bbcode = $bbcode_on, enable_smilies = $smilies_on, memorable = $memorable, no_replies = $disable_replies WHERE entry_id = $entry_id";
            if ( !(
$result $db->sql_query($sql)) )
            {
                
message_die(GENERAL_ERROR'Could not update entry in database'''__LINE____FILE__$sql);
            }

            
$template->assign_vars(array(
                
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">')
            );

            
message_die (GENERAL_MESSAGE$lang['Entry_updated'] . $tb_result '<br />' sprintf($lang['Click_return_entry'], '<a href="' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">''</a>') . '<br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
        }
    }
    else if ( 
$mode == 'editreply' || $mode == 'reply' )
    {
        if ( 
$mode == 'editreply' )
        {
            
// If the user isn't the original poster or a contributor or the weblog owner...
            
if ( $reply_data['poster_id'] != $userdata['user_id'] && !$contributor && $weblog_data['weblog_id'] != $userdata['user_id'] && $userdata['session_logged_in'] )
            {
                
message_die (GENERAL_ERROR$lang['No_edit_replies']);
            }

            
$sql "UPDATE " WEBLOG_REPLIES_TABLE " SET post_subject = '" str_replace("'""''"$subject) . "', reply_text = '" str_replace("'""''"$message) . "', bbcode_uid = '$bbcode_uid', enable_bbcode = $bbcode_on, enable_smilies = $smilies_on, post_username = '" str_replace("'""''"$username) . "' WHERE reply_id = $reply_id";
            if ( !(
$result $db->sql_query($sql)) )
            {
                
message_die(GENERAL_ERROR'Could not update reply in database'''__LINE____FILE__$sql);
            }

            
$template->assign_vars(array(
                
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">')
            );

            
message_die (GENERAL_MESSAGE$lang['Reply_updated'] . '<br />' sprintf($lang['Click_return_entry'], '<a href="' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">''</a>') . '<br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
        }
        else if ( 
$mode == 'reply' )
        {
            if ( 
$weblog_data['replies_auth'] > $auth_level || $entry_data['no_replies'] )
            {
                
message_die(GENERAL_ERROR$lang['Reply_no_auth']);
            }
            
// Get max reply id
            
$sql "SELECT MAX(reply_id) AS maximum FROM " WEBLOG_REPLIES_TABLE;
            if ( !(
$result $db->sql_query($sql)) )
            {
                
message_die(GENERAL_ERROR'Could not query maximum reply id in database'''__LINE____FILE__$sql);
            }

            
$maximum 0;
            if ( 
$row $db->sql_fetchrow($result) )
            {
                
$maximum $row['maximum'];
            }

            
$maximum++;

            
$sql "INSERT INTO " WEBLOG_REPLIES_TABLE " (reply_id, entry_id, poster_id, post_time, post_username, enable_bbcode, enable_smilies, enable_sig, reply_text, bbcode_uid)
                    VALUES (
$maximum$entry_id, " $userdata['user_id'] . ", " time() . ", '" str_replace("'""''"$username) . "', $bbcode_on$smilies_on$attach_sig, '" str_replace("'""''"$message) . "', '$bbcode_uid')";
            if ( !(
$result $db->sql_query($sql)) )
            {
                
message_die(GENERAL_ERROR'Could not insert reply into database'''__LINE____FILE__$sql);
            }
                        
// Sobytie
                        
add_sobytie($entry_id'weblog_comment'''''''$userdata['user_id'], $userdata['username'], $entry_id$messagetime());
                    
// Sobytie
                    
            // Also update the weblog entries' data
            
$sql "UPDATE " WEBLOG_ENTRIES_TABLE "
                SET entry_replies = entry_replies + 1, entry_last_post_id = 
$maximum, entry_last_post_userid = " $userdata['user_id'] . "
                WHERE entry_id = 
$entry_id";
            if( !
$result $db->sql_query($sql) )
            {
                
message_die(GENERAL_ERROR"Couldn't update entry information."""__LINE____FILE__$sql);
            }

            
// Set a cookie for this reply
            
$tracking_entries = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_e']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_e']) : array();
            
$tracking_weblogs = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_w']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_w']) : array();

            if ( 
count($tracking_entries) + count($tracking_weblogs) == 100 && empty($tracking_entries[$entry_id]) )
            {
                
asort($tracking_entries);
                unset(
$tracking_entries[key($tracking_entries)]);
            }

            
$tracking_entries[$entry_id] = time();

            
setcookie($board_config['cookie_name'] . '_e'serialize($tracking_entries), 0$board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);

            if ( 
$popup )
            {
                
//
                // Include page header
                //
                
include($phpbb_root_path 'includes/page_header.'.$phpEx);

                
$template->assign_vars(array(
                    
'MESSAGE_TITLE' => $lang['Information'],
                    
'MESSAGE_TEXT' => $lang['Reply_submitted'] . '<br /><a href="javascript:window.close();">' $lang['Close_window'] . '</a>')
                );

                
$template->set_filenames(array(
                    
'body' => 'message_body.tpl')
                );

                
$template->pparse('body');

                
// Script will exit here
                
include($phpbb_root_path 'includes/page_tail.'.$phpEx);
            }

            
$template->assign_vars(array(
                
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">')
            );

            
message_die (GENERAL_MESSAGE$lang['Reply_submitted'] . '<br />' sprintf($lang['Click_return_entry'], '<a href="' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=" $entry_id) . '">''</a>') . '<br /><br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
        }
    }

    
message_die(GENERAL_ERROR$lang['No_mode_specified']);
}
//
// Handle all other requests (e.g. deleting replies or entries, editing an entry/reply needs to replace variables)
//
if ( $mode == 'editentry' )
{
    if ( 
$weblog_data['weblog_id'] != $userdata['user_weblog'] && !$contributor )
    {
        
message_die (GENERAL_ERROR$lang['No_edit_entries']);
    }

    
$message $entry_data['entry_text'];

    
$message preg_replace('/:(([a-z0-9]:)?)' $entry_data['bbcode_uid'] . '/s'''$message);
    
$message str_replace('<''&lt;'$message);
    
$message str_replace('>''&gt;'$message);
    
$message str_replace('<br />'"n"$message);

    
$subject $entry_data['entry_subject'];
    
$mood $entry_data['entry_mood'];
    
$action $entry_data['entry_currently'];
    
    
$category_id $entry_data['category_id'];
    
    
$entry_access $entry_data['entry_access'];
    
$memorable $entry_data['memorable'];
    
$disable_replies $entry_data['no_replies'];
    
$bbcode_on $entry_data['enable_bbcode'];
    
$smilies_on $entry_data['enable_smilies'];
    
$title $lang['Edit_entry'];
    
$template->assign_block_vars('switch_post_entry', array());
}
else if ( 
$mode == 'editreply' )
{
    if ( 
$weblog_data['replies_auth'] > $auth_level )
    {
        
message_die(GENERAL_ERROR$lang['Reply_no_auth']);
    }

    
$message $reply_data['reply_text'];
    
$subject $reply_data['post_subject'];
    
$bbcode_on $reply_data['enable_bbcode'];
    
$smilies_on $reply_data['enable_smilies'];
    
$attach_sig $reply_data['enable_sig'];

    
$message preg_replace('/:(([a-z0-9]:)?)' $reply_data['bbcode_uid'] . '/s'''$message);
    
$message str_replace('<''&lt;'$message);
    
$message str_replace('>''&gt;'$message);
    
$message str_replace('<br />'"n"$message);

    
// Everything else okay
    
$template->assign_vars(array(
        
'S_POST_ACTION' => ( $popup ) ? append_sid("weblog_posting.$phpEx?mode=newentry&amp;" POST_WEBLOG_URL "=$weblog_id&amp;popup=1") : append_sid("weblog_posting.$phpEx?mode=newentry&amp;" POST_WEBLOG_URL "=$weblog_id"))
    );

    
$title $lang['Edit_reply'];

    
$template->assign_block_vars('switch_post_reply', array());
}
else if ( 
$mode == 'delete' )
{
    if ( 
$weblog_data['weblog_id'] == $userdata['user_weblog'] || $userdata['user_level'] == ADMIN )
    {
        if ( 
$confirm )
        {
            if ( 
$reply_id )
            {
                
// Delete the reply
                
$sql "DELETE FROM " WEBLOG_REPLIES_TABLE " WHERE reply_id = $reply_id";
                if ( !(
$result $db->sql_query($sql)) )
                {
                    
message_die(GENERAL_ERROR'Could not delete reply.'''__LINE____FILE__$sql);
                }

                
// Also find and set the new last reply id
                
$sql "SELECT * FROM " WEBLOG_REPLIES_TABLE " WHERE entry_id = " $entry_data['entry_id'] . " ORDER BY post_time DESC LIMIT 1";
                if( !
$result $db->sql_query($sql) )
                {
                    
message_die(GENERAL_ERROR"Couldn't query entry replies information."""__LINE____FILE__$sql);
                }

                if ( 
$row $db->sql_fetchrow($result) )
                {
                    
$last_reply_id $row['reply_id'];
                }
                else
                {
                    
$last_reply_id 0;
                }

                
// Successful, so decrement the replies count and set the new last reply id
                
$sql "UPDATE " WEBLOG_ENTRIES_TABLE "
                    SET entry_replies = entry_replies - 1, entry_last_post_id = 
$last_reply_id
                    WHERE entry_id = " 
$entry_data['entry_id'];
                if( !
$result $db->sql_query($sql) )
                {
                    
message_die(GENERAL_ERROR"Couldn't update weblog views information."""__LINE____FILE__$sql);
                }

                
$template->assign_vars(array(
                    
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id") . '">')
                );

                
message_die (GENERAL_MESSAGE$lang['Reply_deleted'] . '<br />' sprintf($lang['Click_return_entry'], '<a href="' append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=" $entry_data['entry_id']) . '">''</a>') . '<br /><br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
            }
            else if ( 
$entry_id )
            {
                
$sql "DELETE FROM " WEBLOG_ENTRIES_TABLE " WHERE entry_id = $entry_id";    
                if ( !(
$result $db->sql_query($sql)) )
                {
                    
message_die(GENERAL_ERROR'Could not delete entry.'''__LINE____FILE__$sql);
                }

                
// Also find and set the new last reply id
                
$sql "SELECT * FROM " WEBLOG_ENTRIES_TABLE " WHERE weblog_id = " $weblog_data['weblog_id'] . " ORDER BY entry_time DESC LIMIT 1";
                if( !
$result $db->sql_query($sql) )
                {
                    
message_die(GENERAL_ERROR"Couldn't query entries information."""__LINE____FILE__$sql);
                }

                
$last_entry_id 0;
                if ( 
$row $db->sql_fetchrow($result) )
                {
                    
$last_entry_id $row['entry_id'];
                }

                
// Successful, so decrement the entries count
                
$sql "UPDATE " WEBLOGS_TABLE "
                    SET weblog_entries = weblog_entries - 1
                    WHERE weblog_id = " 
$weblog_data['weblog_id'];
                if( !
$result $db->sql_query($sql) )
                {
                    
message_die(GENERAL_ERROR"Couldn't update weblog views information."""__LINE____FILE__$sql);
                }

                
$template->assign_vars(array(
                    
'META' => '<meta http-equiv="refresh" content="3;url=' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=$weblog_id") . '">')
                );

                
message_die (GENERAL_MESSAGE$lang['Entry_deleted'] . '<br />' sprintf($lang['Click_return_weblog'], '<a href="' append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']) . '">''</a>'$weblog_data['weblog_name']));
            }
            else
            {
                
message_die(GENERAL_MESSAGE$lang['Delete_not_specified']);
            }
        }
        else
        {
            
$hidden_fields '<input type="hidden" name="sid" value="' $userdata['session_id'] . '" /><input type="hidden" name="mode" value="' $mode '" />';

            if ( 
$reply_id )
            {
                
$hidden_fields .= '<input type="hidden" name="' POST_REPLY_URL '" value="' $reply_id '" />';
                
$lang_confirm_delete $lang['Confirm_delete_reply'];
            }
            else if ( 
$entry_id )
            {
                
$hidden_fields .= '<input type="hidden" name="' POST_ENTRY_URL '" value="' $entry_id '" />';
                
$lang_confirm_delete $lang['Confirm_delete_entry'];
            }

            
//
            // Include page header
            //
            
include($phpbb_root_path 'includes/page_header.'.$phpEx);
            
            
//
            // Set template files
            //
            
$template->set_filenames(array(
                
'body' => 'confirm_body.tpl')
            );

            
$template->assign_vars(array(
                
'MESSAGE_TITLE' => $lang['Confirm'],
                
'MESSAGE_TEXT' => $lang_confirm_delete,

                
'L_YES' => $lang['Yes'],
                
'L_NO' => $lang['No'],

                
'S_CONFIRM_ACTION' => append_sid("weblog_posting.$phpEx"),
                
'S_HIDDEN_FIELDS' => $hidden_fields)
            );

            
$template->pparse('body');

            
$template->assign_vars(array(
                
'L_POWERED_BY' => sprintf($lang['Weblog_powered_by'], WEBLOGS_MOD_VERSION))
            );

            include(
$phpbb_root_path 'includes/page_tail.'.$phpEx);

        }
    }
    else
    {
        
message_die (GENERAL_ERROR$lang['Delete_not_authed']);
    }
}
else if ( 
$mode == 'newentry' )
{
    if ( 
$weblog_data['weblog_id'] != $userdata['user_weblog'] && !$contributor )
    {
        
message_die (GENERAL_ERROR$lang['Entry_add_not_authed']);
    }
    
$title $lang['New_entry'];
    
$entry_access $weblog_data['weblog_auth'];

    
$template->assign_block_vars('switch_post_entry', array());
}
else if ( 
$mode == 'reply' )
{
    if ( 
$weblog_data['replies_auth'] > $auth_level || $entry_data['no_replies'] )
    {
        
message_die(GENERAL_ERROR$lang['Reply_no_auth']);
    }

    
$title $lang['Post_reply'];

    
$template->assign_block_vars('switch_post_reply', array());
}
else if ( 
$mode == 'quote' )
{
    if ( 
$weblog_data['replies_auth'] > $auth_level || $entry_data['no_replies'] )
    {
        
message_die(GENERAL_ERROR$lang['Reply_no_auth']);
    }

    
$title $lang['Post_reply'];

    
$message $reply_data['reply_text'];

    
$message preg_replace('/:(([a-z0-9]:)?)' $reply_data['bbcode_uid'] . '/s'''$message);
    
$message str_replace('<''&lt;'$message);
    
$message str_replace('>''&gt;'$message);
    
$message str_replace('<br />'"n"$message);

    
$sql "SELECT username FROM " USERS_TABLE " WHERE user_id = " $reply_data['poster_id'];
    if ( !(
$result $db->sql_query($sql)) )
    {
        
message_die(GENERAL_ERROR"Could not obtain user information"''__LINE____FILE__$sql);
    }

    if ( 
$row $db->sql_fetchrow($result) )
    {
        
$quote_user $row['username'];
    }

    
$message '[quote="' $quote_user '"]' $message '[/quote]';

    
$mode 'reply';

    
$template->assign_block_vars('switch_post_reply', array());

}
else
{
    
message_die(GENERAL_ERROR$lang['No_mode_specified']);
}


$sql "SELECT *
    FROM " 
WEBLOG_MOODS_TABLE "
    ORDER BY mood_text"
;
if( !
$result $db->sql_query($sql) )
{
    
message_die(GENERAL_ERROR"Couldn't obtain mood data from database"""__LINE____FILE__$sql);
}
$mood_data $db->sql_fetchrowset($result);


$sql "SELECT *
    FROM " 
WEBLOG_ACTIONS_TABLE "
    ORDER BY action_text"
;
if( !
$result $db->sql_query($sql) )
{
    
message_die(GENERAL_ERROR"Couldn't obtain action data from database"""__LINE____FILE__$sql);
}
$action_data $db->sql_fetchrowset($result);


$sql "SELECT * FROM " $table_prefix "blog_categories"
if ( !(
$result $db->sql_query($sql)) ) 

    
message_die(GENERAL_ERROR'Error getting category information'''__LINE____FILE__$sql); 

$category_data = array(); 
while ( 
$row $db->sql_fetchrow($result) ) 

      
$category_data[] = $row

//
// Signature toggle selection
//
if( !empty($userdata['user_sig']) && $userdata['user_weblog'] == $weblog_data['weblog_id'] || $contributor )
{
    
$template->assign_block_vars('switch_signature_checkbox', array());
}

//
// BBCode toggle selection
//
if ( $board_config['allow_bbcode'] )
{
    
$bbcode_status $lang['BBCode_is_ON'];
    
$template->assign_block_vars('switch_bbcode_checkbox', array());
}
else
{
    
$bbcode_status $lang['BBCode_is_OFF'];
}

//
// Smilies toggle selection
//
if ( $board_config['allow_smilies'] )
{
    
$smilies_status $lang['Smilies_are_ON'];
    
$template->assign_block_vars('switch_smilies_checkbox', array());
}
else
{
    
$smilies_status $lang['Smilies_are_OFF'];
}

if ( !
$popup )
{
    
$template->assign_block_vars('switch_not_popup', array());
}
else
{
    
$template->assign_block_vars('switch_is_popup', array());
}

if( !
$userdata['session_logged_in'] )
{
    
$template->assign_block_vars('switch_username_select', array());
}

if ( 
$popup )
{
    
$hidden_form_fields .= '<input type="hidden" name="popup" value="1" />';
}

$hidden_form_fields .= '<input type="hidden" name="mode" value="' $mode '" />';

if ( 
$mode == 'newentry' || $mode == 'editentry' )
{
    
//
    // Handle pictures that were already uploaded
    //

    
$script_name preg_replace('/^/?(.*?)/?$/''1'trim($board_config['script_path']));
    
$script_name = ( $script_name != '' ) ? $script_name '/' '';
    
$server_name trim($board_config['server_name']);
    
$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' 'http://';
    
$server_port = ( $board_config['server_port'] <> 80 ) ? ':' trim($board_config['server_port']) . '/' '/';

    
$server_url $server_protocol $server_name $server_port $script_name;

}

switch( 
$mode )
{
    case 
'newentry':
        
$page_title $weblog_data['weblog_name'] . ' :: ' $lang['New_entry'];
        
$hidden_form_fields .= '<input type="hidden" name="' POST_WEBLOG_URL '" value="' $weblog_id '" />';
        break;

    case 
'reply':
        
$page_title $weblog_data['weblog_name'] . ' :: ' $lang['Post_reply'];
        
$hidden_form_fields .= '<input type="hidden" name="' POST_ENTRY_URL '" value="' $entry_id '" />';
        break;

    case 
'editentry':
        
$page_title $weblog_data['weblog_name'] . ' :: ' $lang['Edit_entry'];
        
$hidden_form_fields .= '<input type="hidden" name="' POST_ENTRY_URL '" value="' $entry_id '" />';
        break;

    case 
'editreply':
        
$page_title $weblog_data['weblog_name'] . ' :: ' $lang['Edit_reply'];
        
$hidden_form_fields .= '<input type="hidden" name="' POST_REPLY_URL '" value="' $reply_id '" />';
        break;
}

// Generate smilies listing for page output

//
// Include page header
//
include($phpbb_root_path 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
    
'body' => 'blog/posting_body.tpl')
);

$mood find_mood ($mood);
$action find_action ($action);

//
// Output the data to the template
//
$template->assign_vars(array(
    
'ENTRY_SUBJECT' => strip_tags(htmlspecialchars($entry_subject)),
    
'ENTRY_TIME' => create_date($board_config['default_dateformat'], $entry_data['entry_time'], $board_config['board_timezone']),
    
'ENTRY' => $entry_message,
    
'USERNAME' => $username,
    
'SUBJECT' => $subject,
    
'MESSAGE' => $message,
    
'ENTRY_AUTH_SELECT' => make_weblog_auth_select $entry_access'entry_access' ),
    
'SELECT_MOOD' => make_mood_select$mood['mood_id'], 'mood'TRUE ),
    
'ACTION_SELECT' => make_action_select$action['action_id'], 'action'TRUE ),
    
'CATEGORY_SELECT' => make_category_select ($category_id'category_id'$category_data),
    
'MOOD_IMG' => ( $mood['mood_id'] > ) ? $mood['mood_url'] : 'mood_none.gif',
    
'ACTION_IMG' => ( $action['action_id'] > ) ? $action['action_url'] : 'action_none.gif',
    
'BBCODE_STATUS' => sprintf($bbcode_status'<a href="' append_sid("faq.$phpEx?mode=bbcode") . '" target="_phpbbcode">''</a>'), 
    
'SMILIES_STATUS' => $smilies_status
    
'MODE' => $title,
    
'MOD_VERSION' => $mod_version,
    
'WEBLOG_NAME' => strip_tags($weblog_data['weblog_name']),
    
'DATE_SELECT' => make_date_select($year$month$day),    
    
'CLOSE_WINDOW' => ( $popup ) ? ' onclick="window.close()"' '',
    
'U_WEBLOG' => append_sid("weblog.$phpEx?" POST_WEBLOG_URL "=" $weblog_data['weblog_id']),
    
'U_ENTRY' => append_sid("weblog_entry.$phpEx?" POST_ENTRY_URL "=$entry_id"),    
    
'L_FILENAME' => $lang['Filename'],
    
'L_BBCODE' => $lang['BBCode'],        
    
'L_ACTION' => $lang['Currently'],
    
'L_CATEGORY' => $lang['Category'],
    
'L_MOOD' => $lang['Mood'],
    
'L_DISABLE_REPLIES' => $lang['Disable_replies'],
    
'L_ENTRY_ACCESS' => $lang['Entry_auth'],
    
'L_SUBJECT' => $lang['Subject'],
    
'L_MESSAGE_BODY' => $lang['Message_body'],
    
'L_OPTIONS' => $lang['Options'],
    
'L_PREVIEW' => $lang['Preview'],
    
'L_SPELLCHECK' => $lang['Spellcheck'],
    
'L_SUBMIT' => $lang['Submit'],
    
'L_CANCEL' => $lang['Cancel'], 
    
'L_DISABLE_BBCODE' => $lang['Disable_BBCode_post'], 
    
'L_DISABLE_SMILIES' => $lang['Disable_Smilies_post'], 
    
'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], 
    
'L_NOTIFY_ON_REPLY' => $lang['Notify'], 
    
'L_MEMORABLE_ENTRY' => $lang['Memorable_entry'],
        
'L_ENTRY_NO_REPLIES' => $lang['Entry_no_replies'],
    
'L_REPLIES_DISABLED' => $lang['Replies_disabled'],
    
'L_GO' => $lang['Go'],
    
'L_AUTHOR' => $lang['Author'],
    
'L_MESSAGE' => $lang['Message'],         
    
'L_STYLES_TIP' => $lang['Styles_tip'], 
    
'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? 'checked="checked"' '',
    
'S_SMILIES_CHECKED' => ( !$smilies_on ) ? 'checked="checked"' '',
    
'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? 'checked="checked"' '',
    
'S_MEMORABLE_CHECKED' => ( $memorable ) ? 'checked="checked"' '',
    
'S_DISABLE_REPLIES_CHECKED' => ( $disable_replies ) ? 'checked="checked"' '',
    
'S_POST_ACTION' => append_sid("weblog_posting.$phpEx"),
    
'S_HIDDEN_FORM_FIELDS' => $hidden_form_fields)
);

$template->pparse('body');

include(
$phpbb_root_path 'includes/page_tail.'.$phpEx);

?>
Онлайн: 3
Реклама