}
}
$rules_id = request_var('rules_id', '');
$uid = $bitfield = $options = '';
$allow_bbcode = $allow_smilies = $allow_urls = true;
$sql_ary = array('SELECT' => 'r.rules_id, r.rules_title, r.rules_text, r.display_rules, r.must_agree, r.display_as_link', 'FROM' => array(CLASSIFIEDS_RULES_TABLE => 'r'), 'WHERE' => 'r.rules_id = ' . $rules_id, 'ORDER_BY' => 'r.rules_id ASC');
if (!is_numeric($rules_id) || $rules_id > 3 || $rules_id < 1) {
    $sql_ary['WHERE'] = '';
}
$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
    generate_text_for_storage($row['rules_text'], $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
    $row['rules_text'] = generate_text_for_display($row['rules_text'], $uid, $bitfield, $options);
    $template->assign_block_vars('rules', array('S_RULES_DISPLAY' => $row['display_rules'] && !empty($row['rules_text']) ? true : false, 'S_RULES_TITLE' => $row['rules_title'], 'S_RULES_TEXT' => $row['rules_text']));
}
$db->sql_freeresult($result);
if ($config['allow_classifieds_feeds']) {
    $feeds_mode = 'active';
    $template->assign_vars(array('L_CL_CLASSIFIEDS_RSS' => $user->lang('CL_CLASSIFIEDS_RSS', !empty($cat) ? $user->lang['CL_FOR_CAT'] . get_ad_category($cat) : $user->lang['CL_FOR_ALL_ACTIVE_ADS'])));
    $allow_feeds = true;
}
load_prefixes();
load_locations();
user_total_ads($user->data['user_id'], 'left_bar');
$template->assign_block_vars('navlinks', array('FORUM_NAME' => $user->lang['CL_CLASSIFIEDS'], 'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/index.{$phpEx}")));
$template->assign_block_vars('navlinks', array('FORUM_NAME' => empty($row['rules_title']) ? $user->lang['CL_RULES'] : $row['rules_title'], 'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/rules.{$phpEx}", "rules_id={$rules_id}")));
$template->assign_vars(array('S_IN_CLASSIFIEDS_RULES' => true, 'CATEGORIES' => build_categories(), 'U_VIEW_REPORTED_LINK' => $auth->acl_get('a_') || $auth->acl_get('m_report_classifieds') ? append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/index.{$phpEx}", 'mode=reported') : '', 'U_SEARCH_ADS' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/index.{$phpEx}", 'mode=search'), 'U_CLASSIFIEDS_RSS' => $allow_feeds ? append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/feeds.{$phpEx}", "mode={$feeds_mode}") : ''));
page_header($user->lang('CL_RULES'));
$template->set_filenames(array('body' => 'classifieds_rules_body.html'));
page_footer();
Exemple #2
0
} elseif ($act == 'del_ad') {
    $id = $_REQUEST['id'];
    check_token();
    if (empty($id)) {
        adminmsg("请选择项目!", 0);
    }
    if ($num = del_ad($id)) {
        adminmsg("删除成功!共删除" . $num . "行", 2);
    } else {
        adminmsg("删除失败!" . $num, 1);
    }
} elseif ($act == 'ad_category') {
    check_permissions($_SESSION['admin_purview'], "ad_category");
    $smarty->assign('act', $act);
    //标签ID
    $smarty->assign('list', get_ad_category());
    $smarty->assign('pageheader', "广告管理");
    get_token();
    $smarty->display('ads/admin_ad_category.htm');
} elseif ($act == 'ad_category_add') {
    get_token();
    check_permissions($_SESSION['admin_purview'], "ad_category");
    $smarty->assign('pageheader', "添加广告位");
    $smarty->display('ads/admin_ad_category_add.htm');
} elseif ($act == 'ad_category_add_save') {
    check_permissions($_SESSION['admin_purview'], "ad_category");
    check_token();
    $link[0]['text'] = "返回上一页";
    $link[0]['href'] = "?act=ad_category";
    $setsqlarr['categoryname'] = $_POST['categoryname'] ? trim($_POST['categoryname']) : adminmsg('您没有广告位名称!', 1);
    $setsqlarr['alias'] = $_POST['alias'] ? trim($_POST['alias']) : adminmsg('您没有填写调用名称!', 1);
    function main($id, $mode)
    {
        global $db, $user, $auth, $template, $cache;
        global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
        include $phpbb_root_path . CL_DIRECTORY . '/includes/functions_buysell.' . $phpEx;
        include $phpbb_root_path . 'includes/functions_messenger.' . $phpEx;
        include $phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx;
        switch ($mode) {
            case 'index':
                $this->page_title = 'ACP_CLASSIFIEDS';
                $this->tpl_name = 'acp_classifieds';
                $submit = isset($_POST['submit']) ? true : false;
                if ($submit) {
                    set_config('enable_classifieds', request_var('enable_classifieds', 0));
                    set_config('disable_message', utf8_normalize_nfc(request_var('disable_message', '', true)));
                    set_config('number_expire', request_var('number_expire', 0));
                    set_config('allow_users_set_expiration', request_var('allow_users_set_expiration', 0));
                    set_config('min_expiration_by_user', request_var('min_expiration_by_user', 0));
                    set_config('max_expiration_by_user', request_var('max_expiration_by_user', 0));
                    set_config('allow_comments', request_var('allow_comments', 0));
                    set_config('enable_watch_cat', request_var('enable_watch_cat', 0));
                    set_config('allow_classifieds_feeds', request_var('allow_classifieds_feeds', 0));
                    set_config('number_ad_feeds', request_var('number_ad_feeds', 0));
                    set_config('allow_upload', request_var('allow_upload', 0));
                    set_config('max_img_size', request_var('max_img_size', 0) * 1024);
                    set_config('required_posts_to_create', request_var('required_posts_to_create', 0));
                    set_config('required_posts_to_view', request_var('required_posts_to_view', 0));
                    set_config('mandatory_phone', request_var('mandatory_phone', 0));
                    set_config('sold_color', request_var('sold_color', ''));
                    set_config('closed_color', request_var('closed_color', ''));
                    set_config('number_ads', request_var('number_ads', 0));
                    set_config('allow_addthis_button', request_var('allow_addthis_button', ''));
                    set_config('email_ad', request_var('email_ad', 0));
                    set_config('email_expire', request_var('email_expire', 0));
                    set_config('max_images_per_ad', request_var('max_images_per_ad', 0));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }
                $template->assign_vars(array('U_ACTION' => $this->u_action, 'ENABLE_CLASSIFIEDS' => $config['enable_classifieds'], 'DISABLE_MESSAGE' => $config['disable_message'], 'ALLOW_ADDTHIS_BUTTON' => $config['allow_addthis_button'], 'MANDATORY_PHONE' => $config['mandatory_phone'], 'NUMBER_ADS' => $config['number_ads'], 'NUMBER_EXPIRE' => $config['number_expire'], 'ALLOW_USERS_SET_EXPIRATION' => $config['allow_users_set_expiration'], 'MIN_EXPIRATION_BY_USER' => $config['min_expiration_by_user'], 'MAX_EXPIRATION_BY_USER' => $config['max_expiration_by_user'], 'EMAIL_AD' => $config['email_ad'], 'EMAIL_EXPIRE' => $config['email_expire'], 'CLOSED_COLOR' => $config['closed_color'], 'SOLD_COLOR' => $config['sold_color'], 'ALLOW_COMMENTS' => $config['allow_comments'], 'ENABLE_WATCH_CAT' => $config['enable_watch_cat'], 'ALLOW_CLASSIFIEDS_FEEDS' => $config['allow_classifieds_feeds'], 'NUMBER_AD_FEEDS' => $config['number_ad_feeds'], 'ALLOW_UPLOAD' => $config['allow_upload'], 'MAX_IMG_SIZE' => $config['max_img_size'] / 1024, 'REQUIRED_POSTS_TO_CREATE' => $config['required_posts_to_create'], 'REQUIRED_POSTS_TO_VIEW' => $config['required_posts_to_view'], 'MAX_IMAGES_PER_AD' => $config['max_images_per_ad']));
                break;
            case 'blocks':
                $this->page_title = 'ACP_CLASSIFIEDS_BLOCKS_TITLE';
                $this->tpl_name = 'acp_classifieds_blocks';
                $submit = isset($_POST['submit']) ? true : false;
                if ($submit) {
                    set_config('display_ads_on_index', request_var('display_ads_on_index', 0));
                    set_config('recent_ads_place', request_var('recent_ads_place', 0));
                    set_config('ad_num_display_on_index', request_var('ad_num_display_on_index', 0));
                    set_config('display_rand_ads_on_index', request_var('display_rand_ads_on_index', 0));
                    set_config('rand_ads_place', request_var('rand_ads_place', 0));
                    set_config('rand_ad_num_display_on_index', request_var('rand_ad_num_display_on_index', 0));
                    set_config('display_rand_miniblock', request_var('display_rand_miniblock', 0));
                    set_config('rand_miniblock_place', request_var('rand_miniblock_place', 0));
                    set_config('rand_miniblock_num_ads', request_var('rand_miniblock_num_ads', 0));
                    set_config('display_advertisers_ads', request_var('display_advertisers_ads', 0));
                    set_config('advertisers_block_place', request_var('advertisers_block_place', 0));
                    set_config('advertisers_ads_num', request_var('advertisers_ads_num', 0));
                    set_config('display_hot_ads', request_var('display_hot_ads', 0));
                    set_config('hot_block_place', request_var('hot_block_place', 0));
                    set_config('hot_ads_num', request_var('hot_ads_num', 0));
                    set_config('display_profile_last_ads', request_var('display_profile_last_ads', 0));
                    set_config('profile_num_last_ads', request_var('profile_num_last_ads', 0));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }
                $template->assign_vars(array('U_ACTION' => $this->u_action, 'DISPLAY_ADS_ON_INDEX' => $config['display_ads_on_index'], 'RECENT_ADS_PLACE' => $config['recent_ads_place'], 'AD_NUM_DISPLAY_ON_INDEX' => $config['ad_num_display_on_index'], 'DISPLAY_RAND_ADS_ON_INDEX' => $config['display_rand_ads_on_index'], 'RAND_ADS_PLACE' => $config['rand_ads_place'], 'RAND_AD_NUM_DISPLAY_ON_INDEX' => $config['rand_ad_num_display_on_index'], 'DISPLAY_RAND_MINIBLOCK' => $config['display_rand_miniblock'], 'RAND_MINIBLOCK_PLACE' => $config['rand_miniblock_place'], 'RAND_MINIBLOCK_NUM_ADS' => $config['rand_miniblock_num_ads'], 'DISPLAY_ADVERTISERS_ADS' => $config['display_advertisers_ads'], 'ADVERTISERS_BLOCK_PLACE' => $config['advertisers_block_place'], 'ADVERTISERS_ADS_NUM' => $config['advertisers_ads_num'], 'DISPLAY_HOT_ADS' => $config['display_hot_ads'], 'HOT_BLOCK_PLACE' => $config['hot_block_place'], 'HOT_ADS_NUM' => $config['hot_ads_num'], 'DISPLAY_PROFILE_LAST_ADS' => $config['display_profile_last_ads'], 'PROFILE_LAST_ADS_NUM' => $config['profile_num_last_ads']));
                break;
            case 'manage':
                $this->page_title = 'ACP_CLASSIFIEDS_MANAGE_TITLE';
                $this->tpl_name = 'acp_classifieds_manage';
                $action = request_var('action', '');
                $status = request_var('status', '');
                $id = request_var('id', 0);
                $ad_id = request_var('ad_id', 0);
                $profile_user = request_var('u', 0);
                $add_days = request_var('add_days', '');
                $limit = 20;
                $start = request_var('start', 0);
                switch ($action) {
                    case "delete":
                        if (confirm_box(true)) {
                            $sql = 'DELETE FROM ' . CLASSIFIEDS_TABLE . '
							 				  WHERE ad_id = ' . $ad_id;
                            $db->sql_query($sql);
                            // select images from deleted ad
                            $sql = 'SELECT *
												FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
												  WHERE ad_id = ' . $ad_id;
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // remove images from FTP and DB
                                @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row['image_name']);
                                $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $ad_id . '
														AND image_name = "' . $row['image_name'] . '"';
                                $result2 = $db->sql_query($sql);
                            }
                            redirect(append_sid("{$this->u_action}", "status=active"));
                        } else {
                            confirm_box(false, $user->lang['DELETE_CONFIRM']);
                            redirect(append_sid("{$this->u_action}", "status=active"));
                        }
                        break;
                    case "add_days":
                        if (confirm_box(true)) {
                            $days = '+' . $add_days . 'days';
                            $now = time();
                            $expire = strtotime($days, $now);
                            $sql_ary = array('ad_expire' => $expire, 'ad_date' => $now, 'expire_email' => 0);
                            $sql = 'UPDATE ' . CLASSIFIEDS_TABLE . '
												SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
												  WHERE ad_id = ' . $ad_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}", "status=expired"));
                        } else {
                            confirm_box(false, $user->lang['EXTEND_CONFIRM'], build_hidden_fields(array('add_days' => $add_days)));
                            redirect(append_sid("{$this->u_action}", "status=expired"));
                        }
                        break;
                }
                if ($status != '') {
                    $pagination_url = $status == 'viewuser' ? $this->u_action . "&amp;status={$status}&amp;u={$profile_user}" : $this->u_action . "&amp;status={$status}";
                } else {
                    $pagination_url = $this->u_action;
                }
                $template->assign_vars(array('STATUS' => $status, 'VIEW_ALL_ACTIVE' => append_sid("{$this->u_action}", "status=active"), 'VIEW_ALL_CLOSED' => append_sid("{$this->u_action}", "status=closed"), 'VIEW_ALL_SOLD' => append_sid("{$this->u_action}", "status=sold"), 'VIEW_ALL_EXPIRED' => append_sid("{$this->u_action}", "status=expired")));
                if (!empty($status)) {
                    $ad_ary = array('SELECT' => 'a.* , u.user_id, u.username, u.user_colour', 'FROM' => array(CLASSIFIEDS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.ad_poster_id')), 'WHERE' => 'a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . time(), 'ORDER_BY' => 'a.ad_date DESC');
                    switch ($status) {
                        case "active":
                            $ad_ary['WHERE'] = 'a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . time();
                            break;
                        case "closed":
                            $ad_ary['WHERE'] = 'a.ad_status = ' . CLOSED . ' AND a.ad_expire > ' . time();
                            break;
                        case "sold":
                            $ad_ary['WHERE'] = 'a.ad_status = ' . SOLD . ' AND a.ad_expire > ' . time();
                            break;
                        case "expired":
                            $ad_ary['WHERE'] = 'a.ad_expire <' . time();
                            break;
                        case "viewuser":
                            $ad_ary['WHERE'] = 'a.ad_poster_id = "' . $profile_user . '"';
                            break;
                    }
                    $sql = $db->sql_build_query('SELECT', $ad_ary);
                    $result = $db->sql_query_limit($sql, $limit, $start);
                    $username = '';
                    while ($row = $db->sql_fetchrow($result)) {
                        $template->assign_block_vars('ad', array('AD_ID' => $row['ad_id'], 'AD_TITLE' => $row['ad_title'], 'AD_LINK' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/single_ad.{$phpEx}", "ad_id={$row['ad_id']}"), 'AD_DATE' => $user->format_date($row['ad_date']), 'AD_CATEGORY' => get_ad_category($row['cat_id']), 'AD_POSTER' => $row['username'], 'AD_POSTER_COLOR' => $row['user_colour'], 'AD_STATUS' => $row['ad_status'], 'DELETE_LINK' => $this->u_action . '&amp;action=delete&amp;ad_id= ' . $row['ad_id'], 'AD_EXPIRE' => $user->format_date($row['ad_expire']), 'EXPIRE' => $row['ad_expire'], 'EDIT_EXPIRE' => $this->u_action . '&amp;action=add_days&amp;ad_id=' . $row['ad_id']));
                        $username = $row['username'];
                    }
                    $ad_ary['SELECT'] = 'COUNT(a.ad_id) as total_ads';
                    $sql = $db->sql_build_query('SELECT', $ad_ary);
                    $result = $db->sql_query($sql);
                    $total_ads = $db->sql_fetchfield('total_ads');
                    $db->sql_freeresult($result);
                    $template->assign_vars(array('USERS_ADS' => $username . '\'s ' . $user->lang['ADS'], 'PAGINATION' => generate_pagination($pagination_url, $total_ads, $limit, $start), 'PAGE_NUMBER' => on_page($total_ads, $limit, $start), 'TOTAL_ADS' => sprintf($user->lang['TOTAL_ADS'], $total_ads)));
                }
                break;
            case 'purge':
                $this->page_title = 'ACP_CLASSIFIEDS_PURGE_TITLE';
                $this->tpl_name = 'acp_classifieds_purge';
                if ((int) $user->data['user_type'] !== USER_FOUNDER) {
                    trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
                }
                $action = request_var('action', '');
                switch ($action) {
                    case 'purge_expired_sold_closed':
                        if (!confirm_box(true)) {
                            $confirm = true;
                            $confirm_lang = 'PURGE_EXPIRED_SOLD_CLOSED_ADS_CONFIRM';
                            if ($confirm) {
                                confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array('i' => $id, 'mode' => $mode, 'action' => $action)));
                            }
                        } else {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ad_expire < " . time() . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ad_status != 0";
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ad_expire < " . time() . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ad_status != 0";
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        }
                        break;
                    case 'purge_closed':
                        if (!confirm_box(true)) {
                            $confirm = true;
                            $confirm_lang = 'PURGE_CLOSED_ADS_CONFIRM';
                            if ($confirm) {
                                confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array('i' => $id, 'mode' => $mode, 'action' => $action)));
                            }
                        } else {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n            \t\t\t\t\t\tWHERE ad_status = 2";
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ad_status = 2";
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        }
                        break;
                    case 'purge_sold':
                        if (!confirm_box(true)) {
                            $confirm = true;
                            $confirm_lang = 'PURGE_SOLD_ADS_CONFIRM';
                            if ($confirm) {
                                confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array('i' => $id, 'mode' => $mode, 'action' => $action)));
                            }
                        } else {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n            \t\t\t\t\t\tWHERE ad_status = 1";
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ad_status = 1";
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        }
                        break;
                    case 'purge_expired':
                        if (!confirm_box(true)) {
                            $confirm = true;
                            $confirm_lang = 'PURGE_EXPIRED_ADS_CONFIRM';
                            if ($confirm) {
                                confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array('i' => $id, 'mode' => $mode, 'action' => $action)));
                            }
                        } else {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ad_expire < " . time();
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tad_expire < " . time();
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        }
                        break;
                    case 'purge_active':
                        if (!confirm_box(true)) {
                            $confirm = true;
                            $confirm_lang = 'PURGE_ACTIVE_ADS_CONFIRM';
                            if ($confirm) {
                                confirm_box(false, $user->lang[$confirm_lang], build_hidden_fields(array('i' => $id, 'mode' => $mode, 'action' => $action)));
                            }
                        } else {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n            \t\t\t\t\t\tWHERE ad_status = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ad_expire > " . time();
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ad_status = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ad_expire > " . time();
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        }
                        break;
                }
                $template->assign_vars(array('U_PURGE_EXPIRED_SOLD_CLOSED' => $this->u_action . '&amp;action=purge_expired_sold_closed', 'U_PURGE_CLOSED' => $this->u_action . '&amp;action=purge_closed', 'U_PURGE_SOLD' => $this->u_action . '&amp;action=purge_sold', 'U_PURGE_EXPIRED' => $this->u_action . '&amp;action=purge_expired', 'U_PURGE_ACTIVE' => $this->u_action . '&amp;action=purge_active', 'S_FOUNDER' => $user->data['user_type'] == USER_FOUNDER ? true : false));
                break;
            case 'cats':
                $this->page_title = 'ACP_CLASSIFIEDS_CATS_TITLE';
                $this->tpl_name = 'acp_classifieds_cats';
                $action = request_var('action', '');
                $id = request_var('id', 0);
                $name = request_var('name', '', true);
                $delete_cat = request_var('delete_cat', '');
                $delete_parent = request_var('delete_parent', '');
                $sql_ary = array('name' => $name, 'parent' => request_var('parent', 0), 'parent_id' => request_var('parent_id', 0));
                switch ($action) {
                    case 'move_up':
                    case 'move_down':
                        if (!$id) {
                            trigger_error($user->lang['NO_CATEGORY'] . adm_back_link($this->u_action), E_USER_WARNING);
                        }
                        $sql = 'SELECT *
										FROM ' . CLASSIFIEDS_CATEGORY_TABLE . "\n\t\t\t\t\t\t\t\t\t\tWHERE id = {$id}";
                        $result = $db->sql_query($sql);
                        $row = $db->sql_fetchrow($result);
                        $db->sql_freeresult($result);
                        if (!$row) {
                            trigger_error($user->lang['NO_CATEGORY'] . adm_back_link($this->u_action), E_USER_WARNING);
                        }
                        $move_category_name = move_category_by($row, $action);
                        if ($move_category_name !== false) {
                            $cache->destroy('sql', CLASSIFIEDS_CATEGORY_TABLE);
                        }
                        break;
                    case "newcat":
                        $sql = 'SELECT MAX(right_id) AS right_id
											FROM ' . CLASSIFIEDS_CATEGORY_TABLE;
                        $result = $db->sql_query($sql);
                        $row = $db->sql_fetchrow($result);
                        $db->sql_freeresult($result);
                        $sql_ary['left_id'] = $row['right_id'] + 1;
                        $sql_ary['right_id'] = $row['right_id'] + 2;
                        $sql = 'INSERT INTO ' . CLASSIFIEDS_CATEGORY_TABLE . $db->sql_build_array('INSERT', $sql_ary);
                        $db->sql_query($sql);
                        break;
                    case "editcat":
                        $sql = 'UPDATE ' . CLASSIFIEDS_CATEGORY_TABLE . '
											SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
											WHERE id = ' . $id;
                        $db->sql_query($sql);
                        break;
                    case "purgecat":
                        if (confirm_box(true)) {
                            // select ad_id of all ads, which will be purged
                            $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE cat_id = " . $id;
                            $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result)) {
                                // select images from deleted ad
                                $sql = 'SELECT ad_id, image_name
													FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
													WHERE ad_id = ' . $row['ad_id'];
                                $result2 = $db->sql_query($sql);
                                while ($row2 = $db->sql_fetchrow($result2)) {
                                    // remove images from FTP and DB
                                    @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                    $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row2['ad_id'] . '
																AND image_name = "' . $row2['image_name'] . '"';
                                    $result3 = $db->sql_query($sql);
                                }
                            }
                            $sql = "DELETE FROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE cat_id = " . $id;
                            $result = $db->sql_query($sql);
                            trigger_error($user->lang['PURGED_SUCCESFULLY'] . adm_back_link($this->u_action));
                        } else {
                            confirm_box(false, $user->lang['PURGE_CAT_CONFIRM']);
                        }
                        break;
                    case "deletecat":
                        if (confirm_box(true)) {
                            if ($delete_parent == '') {
                                // Now if there are ads under the deleted category they need to be moved to another category or deleted
                                if (empty($delete_cat) || $delete_cat == '0') {
                                    // select ad_id of all ads, which will be purged
                                    $sql = "SELECT ad_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . CLASSIFIEDS_TABLE . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE cat_id = " . $id;
                                    $result = $db->sql_query($sql);
                                    while ($row = $db->sql_fetchrow($result)) {
                                        // select images from deleted ad
                                        $sql = 'SELECT ad_id, image_name
															FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
															WHERE ad_id = ' . $row['ad_id'];
                                        $result2 = $db->sql_query($sql);
                                        while ($row2 = $db->sql_fetchrow($result2)) {
                                            // remove images from FTP and DB
                                            @unlink("{$phpbb_root_path}" . CL_DIRECTORY . "/images/" . $row2['image_name']);
                                            $sql = 'DELETE FROM  ' . CLASSIFIEDS_IMAGES_TABLE . '
																	WHERE ad_id = ' . $row2['ad_id'] . '
																		AND image_name = "' . $row2['image_name'] . '"';
                                            $result3 = $db->sql_query($sql);
                                        }
                                    }
                                    $sql = 'DELETE FROM ' . CLASSIFIEDS_TABLE . '
														WHERE cat_id = ' . $id;
                                    $db->sql_query($sql);
                                } else {
                                    $sql = 'UPDATE ' . CLASSIFIEDS_TABLE . '
														SET cat_id = ' . $delete_cat . '
														WHERE cat_id= ' . $id;
                                    $db->sql_query($sql);
                                }
                            } else {
                                $sql = 'UPDATE ' . CLASSIFIEDS_CATEGORY_TABLE . '
													SET parent_id = 0
													WHERE parent_id = ' . $id;
                                $db->sql_query($sql);
                            }
                            $sql = 'DELETE FROM ' . CLASSIFIEDS_CATEGORY_TABLE . '
												WHERE id = ' . $id;
                            $db->sql_query($sql);
                        } else {
                            confirm_box(false, $user->lang['DELETE_CAT_CONFIRM'], build_hidden_fields(array('delete_cat' => $delete_cat)));
                        }
                        break;
                }
                $sql = 'SELECT *
								FROM ' . CLASSIFIEDS_CATEGORY_TABLE . '
									ORDER BY left_id ASC';
                $result = $db->sql_query($sql);
                while ($row = $db->sql_fetchrow($result)) {
                    $url = $this->u_action . "&amp;id={$row['id']}";
                    $template->assign_block_vars('cat', array('NAME' => $row['name'], 'ID' => $row['id'], 'EDIT_CAT' => $this->u_action . '&amp;action=editcat&amp;id=' . $row['id'], 'PURGE_CAT' => $this->u_action . '&amp;action=purgecat&amp;id=' . $row['id'], 'DELETE_PARENT_CAT' => $this->u_action . '&amp;action=deletecat&amp;id=' . $row['id'] . '&amp;delete_parent=1', 'DELETE_CAT' => $this->u_action . '&amp;action=deletecat&amp;id=' . $row['id'] . '&amp;delete_cat=' . $delete_cat, 'U_MOVE_UP' => $url . '&amp;action=move_up', 'U_MOVE_DOWN' => $url . '&amp;action=move_down', 'PARENT' => $row['parent'], 'PARENT_ID' => $row['parent_id'], 'PARENT_CAT' => get_category_parent($row['parent_id'])));
                }
                $template->assign_vars(array('U_NEW_CAT' => $this->u_action . '&amp;action=newcat'));
                break;
            case 'rules':
                $this->page_title = 'ACP_CLASSIFIEDS_RULES_TITLE';
                $this->tpl_name = 'acp_classifieds_rules';
                $user->add_lang('posting');
                include $phpbb_root_path . 'includes/functions_display.' . $phpEx;
                include $phpbb_root_path . 'includes/message_parser.' . $phpEx;
                $rules = request_var('rules', '');
                $template->assign_vars(array('RULES' => $rules, 'GENERAL_RULES' => append_sid($this->u_action, "rules=general"), 'BUYER_RULES' => append_sid($this->u_action, "rules=buyer"), 'SELLER_RULES' => append_sid($this->u_action, "rules=seller")));
                if (!empty($rules)) {
                    if ($rules == 'general') {
                        $id = 1;
                    } elseif ($rules == 'buyer') {
                        $id = 2;
                    } elseif ($rules == 'seller') {
                        $id = 3;
                    }
                    // select rules data
                    $sql = 'SELECT *
                    FROM ' . CLASSIFIEDS_RULES_TABLE . '
                      WHERE rules_id = ' . $id . '
										    ORDER BY rules_id ASC';
                    $result = $db->sql_query($sql);
                    $row = $db->sql_fetchrow($result);
                    $template->assign_vars(array('RULES_ID' => $row['rules_id'], 'RULES_TITLE' => $row['rules_title'], 'RULES_TEXT' => $row['rules_text'], 'DISPLAY_RULES' => $row['display_rules'], 'MUST_AGREE' => $row['must_agree'], 'DISPLAY_AS_LINK' => $row['display_as_link'], 'L_ACP_CLASSIFIEDS_RULES' => $user->lang('ACP_CLASSIFIEDS_RULES' . $id), 'L_RULES_TITLE' => $user->lang('RULES_TITLE' . $id), 'L_RULES_DISPLAY' => $user->lang('RULES_DISPLAY' . $id), 'L_MUST_AGREE' => $user->lang('MUST_AGREE' . $id), 'L_MUST_AGREE_EXPLAIN' => $user->lang('MUST_AGREE_EXPLAIN' . $id), 'L_DISPLAY_AS_LINK' => $user->lang('DISPLAY_AS_LINK' . $id), 'L_DISPLAY_AS_LINK_EXPLAIN' => $user->lang('DISPLAY_AS_LINK_EXPLAIN' . $id)));
                    $db->sql_freeresult($result);
                    display_custom_bbcodes();
                    $submit = isset($_POST['submit']) ? true : false;
                    $preview = isset($_POST['preview']) ? true : false;
                    if ($submit) {
                        $rules_id = request_var('rules_id', 0);
                        $rules_title = utf8_normalize_nfc(request_var('rules_title', '', true));
                        $display_rules = request_var('display_rules', 0);
                        $must_agree = request_var('must_agree', 0);
                        $rules_text = utf8_normalize_nfc(request_var('rules_text', '', true));
                        $display_as_link = request_var('display_as_link', 0);
                        $sql_ary = array('rules_id' => $rules_id, 'rules_title' => $rules_title, 'display_rules' => $display_rules, 'must_agree' => $must_agree, 'rules_text' => $rules_text, 'display_as_link' => $display_as_link);
                        $sql = 'UPDATE ' . CLASSIFIEDS_RULES_TABLE . '
											SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
											WHERE rules_id = ' . $rules_id;
                        $db->sql_query($sql);
                        trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action . '&amp;rules=' . $rules));
                    }
                    if ($preview == true) {
                        $rules_text = utf8_normalize_nfc(request_var('rules_text', '', true));
                        $rules_text2 = $rules_text;
                        $uid = $bitfield = $options = '';
                        $allow_bbcode = $allow_smilies = $allow_urls = true;
                        generate_text_for_storage($rules_text, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
                        $preview_text = generate_text_for_display($rules_text, $uid, $bitfield, $options);
                        $template->assign_vars(array('RULES_TEXT' => $rules_text2));
                    }
                    $template->assign_vars(array('U_ACTION' => $this->u_action . '&amp;rules=' . $rules, 'S_BBCODE_ALLOWED' => true, 'S_BBCODE_QUOTE' => true, 'S_BBCODE_IMG' => true, 'S_LINKS_ALLOWED' => true, 'S_BBCODE_FLASH' => false, 'PREVIEW_TEXT' => $preview ? $preview_text : '', 'S_PREVIEW' => $preview));
                }
                break;
            case 'prefixes':
                $this->page_title = 'ACP_CLASSIFIEDS_PREFIXES_TITLE';
                $this->tpl_name = 'acp_classifieds_prefixes';
                $action = request_var('action', '');
                $prefix_id = request_var('prefix_id', '');
                $prefix_short = request_var('prefix_short', '');
                $prefix_name = request_var('prefix_name', '', true);
                $prefix_color = request_var('prefix_color', '');
                switch ($action) {
                    case "delete_prefix":
                        if (confirm_box(true)) {
                            $sql = 'DELETE FROM ' . CLASSIFIEDS_PREFIXES_TABLE . '
							 				WHERE prefix_id = ' . $prefix_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['DELETE_PREFIX_CONFIRM']);
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                    case "add_prefix":
                        $sql = 'INSERT INTO ' . CLASSIFIEDS_PREFIXES_TABLE . ' (prefix_short, prefix_name, prefix_color)
                      VALUES ("' . $prefix_short . '", "' . $prefix_name . '", "' . $prefix_color . '")';
                        $db->sql_query($sql);
                        redirect(append_sid("{$this->u_action}"));
                        break;
                    case "edit_prefix":
                        if (confirm_box(true)) {
                            $sql_ary = array('prefix_name' => $prefix_name, 'prefix_short' => $prefix_short, 'prefix_color' => $prefix_color);
                            $sql = 'UPDATE ' . CLASSIFIEDS_PREFIXES_TABLE . '
  											SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
                          WHERE prefix_id = ' . $prefix_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['EDIT_PREFIX_CONFIRM'], build_hidden_fields(array('prefix_name' => $prefix_name, 'prefix_short' => $prefix_short, 'prefix_color' => $prefix_color)));
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                }
                $submit = isset($_POST['submit']) ? true : false;
                if ($submit) {
                    set_config('mandatory_ad_prefix', request_var('mandatory_ad_prefix', 0));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }
                $sql = 'SELECT *
                  FROM ' . CLASSIFIEDS_PREFIXES_TABLE;
                $result = $db->sql_query($sql);
                while ($row = $db->sql_fetchrow($result)) {
                    $template->assign_block_vars('prefixes', array('ID' => $row['prefix_id'], 'NAME' => $row['prefix_name'], 'SHORT' => $row['prefix_short'], 'COLOR' => $row['prefix_color'], 'L_SEARCH_PREFIX' => sprintf($user->lang['SEARCH_PREFIX'], $row['prefix_short']), 'U_SEARCH' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/index.{$phpEx}", "mode=search&amp;sprefix={$row['prefix_id']}"), 'U_DELETE' => $this->u_action . '&amp;action=delete_prefix&amp;prefix_id= ' . $row['prefix_id'], 'U_EDIT' => $this->u_action . '&amp;action=edit_prefix&amp;prefix_id=' . $row['prefix_id']));
                }
                $template->assign_vars(array('U_ADD_PREFIX' => $this->u_action . '&amp;action=add_prefix', 'U_ACTION' => $this->u_action, 'MANDATORY_AD_PREFIX' => $config['mandatory_ad_prefix']));
                break;
            case 'locations':
                $this->page_title = 'ACP_CLASSIFIEDS_LOCATIONS_TITLE';
                $this->tpl_name = 'acp_classifieds_locations';
                $action = request_var('action', '');
                $location_id = request_var('location_id', '');
                $location_name = utf8_normalize_nfc(request_var('location_name', '', true));
                switch ($action) {
                    case "delete_location":
                        if (confirm_box(true)) {
                            $sql = 'DELETE FROM ' . CLASSIFIEDS_LOCATIONS_TABLE . '
							 				WHERE location_id = ' . $location_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['DELETE_LOCATION_CONFIRM']);
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                    case "add_location":
                        $location_list = explode("\n", $location_name);
                        if (empty($location_name)) {
                            trigger_error($user->lang['NO_LOCATION'] . adm_back_link($this->u_action), E_USER_WARNING);
                        } else {
                            $sql_ary = array();
                            foreach ($location_list as $location_entry) {
                                $sql_ary[] = array('location_name' => (string) $location_entry);
                            }
                            $db->sql_multi_insert(CLASSIFIEDS_LOCATIONS_TABLE, $sql_ary);
                        }
                        redirect(append_sid("{$this->u_action}"));
                        break;
                    case "edit_location":
                        if (confirm_box(true)) {
                            $sql_ary = array('location_name' => $location_name);
                            $sql = 'UPDATE ' . CLASSIFIEDS_LOCATIONS_TABLE . '
  											SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
                          WHERE location_id = ' . $location_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['EDIT_LOCATION_CONFIRM'], build_hidden_fields(array('location_name' => $location_name)));
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                }
                $submit = isset($_POST['submit']) ? true : false;
                if ($submit) {
                    set_config('mandatory_ad_location', request_var('mandatory_ad_location', 0));
                    set_config('fill_location_to_trade', request_var('fill_location_to_trade', 0));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }
                $sql = 'SELECT *
                  FROM ' . CLASSIFIEDS_LOCATIONS_TABLE . '
                    ORDER BY location_name ASC';
                $result = $db->sql_query($sql);
                while ($row = $db->sql_fetchrow($result)) {
                    $template->assign_block_vars('locations', array('ID' => $row['location_id'], 'NAME' => $row['location_name'], 'L_SEARCH_LOCATION' => sprintf($user->lang['SEARCH_LOCATION'], $row['location_name']), 'U_SEARCH' => append_sid("{$phpbb_root_path}" . CL_DIRECTORY . "/index.{$phpEx}", "mode=search&amp;slocation={$row['location_id']}"), 'U_DELETE' => $this->u_action . '&amp;action=delete_location&amp;location_id= ' . $row['location_id'], 'U_EDIT' => $this->u_action . '&amp;action=edit_location&amp;location_id=' . $row['location_id']));
                }
                $template->assign_vars(array('U_ADD_LOCATION' => $this->u_action . '&amp;action=add_location', 'U_ACTION' => $this->u_action, 'MANDATORY_AD_LOCATION' => $config['mandatory_ad_location'], 'FILL_LOCATION_TO_TRADE' => $config['fill_location_to_trade']));
                break;
            case 'currency':
                $this->page_title = 'ACP_CLASSIFIEDS_CURRENCY_TITLE';
                $this->tpl_name = 'acp_classifieds_currency';
                $action = request_var('action', '');
                $currency_id = request_var('currency_id', '');
                $currency_short = request_var('short', '', true);
                $currency_name = request_var('name', '', true);
                switch ($action) {
                    case "delete_currency":
                        if (confirm_box(true)) {
                            $sql = 'DELETE FROM ' . CLASSIFIEDS_CURRENCY_TABLE . '
							 				WHERE id = ' . $currency_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['DELETE_CURRENCY_CONFIRM']);
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                    case "add_currency":
                        $sql = 'INSERT INTO ' . CLASSIFIEDS_CURRENCY_TABLE . ' (short, name)
                      VALUES ("' . $currency_short . '", "' . $currency_name . '")';
                        $db->sql_query($sql);
                        redirect(append_sid("{$this->u_action}"));
                        break;
                    case "edit_currency":
                        if (confirm_box(true)) {
                            $sql_ary = array('name' => $currency_name, 'short' => $currency_short);
                            $sql = 'UPDATE ' . CLASSIFIEDS_CURRENCY_TABLE . '
  											SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
                          WHERE id = ' . $currency_id;
                            $db->sql_query($sql);
                            redirect(append_sid("{$this->u_action}"));
                        } else {
                            confirm_box(false, $user->lang['EDIT_CURRENCY_CONFIRM'], build_hidden_fields(array('name' => $currency_name, 'short' => $currency_short)));
                            redirect(append_sid("{$this->u_action}"));
                        }
                        break;
                }
                $submit = isset($_POST['submit']) ? true : false;
                if ($submit) {
                    set_config('default_currency', request_var('default_currency', ''));
                    trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
                }
                $sql = 'SELECT *
                  FROM ' . CLASSIFIEDS_CURRENCY_TABLE;
                $result = $db->sql_query($sql);
                while ($row = $db->sql_fetchrow($result)) {
                    $template->assign_block_vars('currency', array('ID' => $row['id'], 'NAME' => $row['name'], 'SHORT' => $row['short'], 'U_DELETE' => $this->u_action . '&amp;action=delete_currency&amp;currency_id= ' . $row['id'], 'U_EDIT' => $this->u_action . '&amp;action=edit_currency&amp;currency_id=' . $row['id']));
                }
                $template->assign_vars(array('U_ADD_CURRENCY' => $this->u_action . '&amp;action=add_currency', 'U_ACTION' => $this->u_action, 'DEFAULT_CURRENCY' => $config['default_currency']));
                break;
        }
    }
$now = time();
$feed_link = generate_board_url() . "/" . CL_DIRECTORY . "/feeds.{$phpEx}" . "?mode=" . $mode;
// Common feed header part
$rdf = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\"\nxmlns:atom=\"http://www.w3.org/2005/Atom\"\nxmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n\t<channel>\n\t\t<atom:link href=\"{$feed_link}\" rel=\"self\" type=\"application/rss+xml\" />\n\t\t<title>" . strip_tags($config['sitename']) . "</title>\n\t\t<description>" . strip_tags($config['site_desc']) . "</description>\n\t\t<link>" . generate_board_url() . "</link>\n\t\t<lastBuildDate>" . format_date($now) . "</lastBuildDate>";
$sql_ary = array('SELECT' => 'a.ad_id, a.ad_date, a.ad_title, a.short_desc, a.cat_id, u.username, p.prefix_short', 'FROM' => array(CLASSIFIEDS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.ad_poster_id'), array('FROM' => array(CLASSIFIEDS_PREFIXES_TABLE => 'p'), 'ON' => 'a.ad_prefix_id = p.prefix_id')), 'WHERE' => 'a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . $now, 'ORDER_BY' => 'a.ad_date DESC');
if (is_numeric($mode)) {
    $sql_ary['FROM'] = array(CLASSIFIEDS_TABLE => 'a', CLASSIFIEDS_CATEGORY_TABLE => 'c');
    $sql_ary['WHERE'] = 'a.ad_poster_id = u.user_id AND c.id = a.cat_id and c.id = ' . $mode . ' AND a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . $now;
}
$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query_limit($sql, $config['number_ad_feeds']);
while ($row = $db->sql_fetchrow($result)) {
    $author = $row['username'];
    $time = format_date($row['ad_date']);
    $link = generate_board_url() . "/" . CL_DIRECTORY . "/single_ad.{$phpEx}" . "?" . 'ad_id=' . $row['ad_id'];
    $title = $row['prefix_short'] ? '[' . $row['prefix_short'] . '] ' . censor_text($row['ad_title']) : censor_text($row['ad_title']);
    $category = $user->lang['CL_IN_CAT'] . ' ' . get_ad_category($row['cat_id']);
    $text = censor_text($row['short_desc']);
    $rdf .= "\n\t\t<item>\n\t\t\t<dc:creator>{$author}</dc:creator>\n\t\t\t<pubDate>{$time}</pubDate>\n\t\t\t<guid>{$link}</guid>\n\t\t\t<link>{$link}</link>\n\t\t\t<title>{$title} {$category}</title>\n\t\t\t<description>{$text}</description>\n\t\t</item>";
}
// Gzip compression
if ($config['gzip_compress']) {
    if (@extension_loaded('zlib') && !headers_sent()) {
        ob_start('ob_gzhandler');
    }
}
// RSS feed footer
$rdf .= "\n\t</channel>\n</rss>";
header('Content-Type: application/rss+xml; charset=UTF-8');
// Output the feed
echo $rdf;
}
if ($user->data['user_posts'] < $config['required_posts_to_view'] && !$user->data['is_bot']) {
    trigger_error('CL_NOT_ENOUGH_POSTS_TO_VIEW');
}
$now = time();
$start = request_var('start', 0);
$cat = request_var('id', 0);
$mode = request_var('mode', '');
$subscribe_cat = request_var('subscribe', '');
$user_search = request_var('user', 0);
$sql_ary = array('SELECT' => 'a.ad_id, a.ad_title, a.ad_poster_id, a.ad_price, a.ad_price_text, a.ad_date, a.ad_status, a.paypal_currency, a.short_desc, a.reported, a.cat_id, a.ad_views, a.ad_expire, a.thumb, u.username, u.user_colour, p.prefix_short, p.prefix_color, c.name, c.parent, c.parent_id', 'FROM' => array(CLASSIFIEDS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(USERS_TABLE => 'u'), 'ON' => 'u.user_id = a.ad_poster_id'), array('FROM' => array(CLASSIFIEDS_PREFIXES_TABLE => 'p'), 'ON' => 'a.ad_prefix_id = p.prefix_id'), array('FROM' => array(CLASSIFIEDS_CATEGORY_TABLE => 'c'), 'ON' => 'c.id = a.cat_id')), 'ORDER_BY' => 'a.ad_date DESC');
switch ($mode) {
    case "cat":
        $sql_ary['WHERE'] = 'a.cat_id= ' . $cat . ' AND a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . $now;
        $pagination_url = append_sid($phpbb_root_path . CL_DIRECTORY . '/index.' . $phpEx . '?mode=cat&amp;id=' . $cat);
        $classifieds_title = get_ad_category($cat);
        break;
    case "view_own_active":
        $sql_ary['WHERE'] = 'a.ad_poster_id = ' . $db->sql_escape($user->data['user_id']) . ' AND a.ad_status = ' . ACTIVE . ' AND a.ad_expire > ' . $now;
        $pagination_url = append_sid($phpbb_root_path . CL_DIRECTORY . '/index.' . $phpEx . '?mode=view_own_active');
        $classifieds_title = $user->lang['CL_VIEW_OWN_MY'] . $user->lang['CL_ACTIVE_ADS'];
        break;
    case "view_own_expired":
        $sql_ary['WHERE'] = 'a.ad_poster_id = ' . $db->sql_escape($user->data['user_id']) . ' AND ad_status <> ' . SOLD . ' AND ad_status <> ' . CLOSED . ' AND a.ad_expire < ' . $now;
        $pagination_url = append_sid($phpbb_root_path . CL_DIRECTORY . '/index.' . $phpEx . '?mode=view_own_expired');
        $classifieds_title = $user->lang['CL_VIEW_OWN_MY'] . $user->lang['CL_EXPIRED_ADS'];
        break;
    case "view_own_sold":
        $sql_ary['WHERE'] = 'a.ad_poster_id = ' . $db->sql_escape($user->data['user_id']) . ' AND a.ad_status = ' . SOLD;
        $pagination_url = append_sid($phpbb_root_path . CL_DIRECTORY . '/index.' . $phpEx . '?mode=view_own_sold');
        $classifieds_title = $user->lang['CL_VIEW_OWN_MY'] . $user->lang['CL_SOLD_ADS'];