/** * Draws inquiry form * @param $params * @param $draw */ public static function DrawInquiryForm($params, $draw = true) { $output = ''; $inquiry_category = isset($params['inquiry_category']) ? prepare_input($params['inquiry_category']) : ''; $widget = isset($params['widget']) ? prepare_input($params['widget']) : ''; $widget_host = isset($params['widget_host']) ? prepare_input($params['widget_host']) : ''; $widget_key = isset($params['widget_key']) ? prepare_input($params['widget_key']) : ''; // prepare categories array $objCategories = Categories::Instance(); $total_categories = $objCategories->GetAllExistingCategories(); $arr_categories = array(); foreach ($total_categories as $key => $val) { if ($val['level'] == '1') { $arr_categories[$val['id']] = $val['name']; } else { if ($val['level'] == '2') { $arr_categories[$val['id']] = ' • ' . $val['name']; } else { if ($val['level'] == '3') { $arr_categories[$val['id']] = ' :: ' . $val['name']; } } } } if ($widget) { $output .= '<form id="frmInquiryForm" action="' . APPHP_BASE . 'index.php?host=' . $widget_host . '&key=' . $widget_key . '" method="post">'; } else { $output .= '<form id="frmInquiryForm" action="index.php?page=inquiry_form" method="post">'; } $output .= draw_token_field(false); $output .= draw_hidden_field('act', 'send', false, 'id_act'); $output .= draw_hidden_field('inquiry_type', '0', false); $output .= '<div class="inquiry_wrapper">'; $output .= _WHAT_DO_YOU_NEED . '<br>'; $output .= '<select id="inquiry_category" name="inquiry_category">'; $output .= '<option value="">-- ' . _SELECT . ' --</option>'; foreach ($arr_categories as $key => $val) { $output .= '<option value="' . $key . '"' . ($inquiry_category == $key ? ' selected="selected"' : '') . '>' . $val . '</option>'; } $output .= '</select><br><br>'; $output .= self::DrawInquirySubForm($params, false); $output .= '</div>'; $output .= '</form>'; if ($draw) { echo $output; } else { return $output; } }
<?php /** * @project ApPHP Business Directory * @copyright (c) 2011 ApPHP * @author ApPHP <*****@*****.**> * @license http://www.gnu.org/licenses/ */ // *** Make sure the file isn't accessed directly defined('APPHP_EXEC') or die('Restricted Access'); //-------------------------------------------------------------------------- $objCategory = Categories::Instance(); $objListings = Listings::Instance(); $category_info = $objCategory->GetLevelsInfo(Application::Get('category_id')); $button = ''; if (Modules::IsModuleInstalled('inquiries')) { $listings_locations = isset($_REQUEST['listings_locations']) ? (int) $_REQUEST['listings_locations'] : ''; $listings_sub_locations = isset($_REQUEST['listings_sub_locations']) ? (int) $_REQUEST['listings_sub_locations'] : ''; if (!empty($category_info['first']['id'])) { $button = '<input type="button" class="form_button" value="' . _SUBMIT_INQUIRY . '" onclick="appGoToPage(\'index.php?page=inquiry_form\',\'&inquiry_category=' . $category_info['first']['id'] . '&visitor_locations=' . $listings_locations . '&visitor_sub_locations=' . $listings_sub_locations . '\',\'post\')">'; } } draw_title_bar(prepare_breadcrumbs(array(_CATEGORIES => prepare_link('categories', '', '', 'all', _SEE_ALL, '', '', true), $category_info['third']['name'] => $category_info['third']['link'], $category_info['second']['name'] => $category_info['second']['link'], $category_info['first']['name'] => '')), $button); $objCategory->DrawSubCategories(Application::Get('category_id'), 'listings'); $objListings->DrawListings(Application::Get('category_id'));
function __construct($listing_id = 0, $account_type = '') { parent::__construct(); $this->params = array(); ## for standard fields if (isset($_POST['category_id'])) { $this->params['category_id'] = prepare_input($_POST['category_id']); } if (isset($_POST['listing_id'])) { $this->params['listing_id'] = prepare_input($_POST['listing_id']); } $this->listingId = (int) $listing_id; $this->selectedCategoryId = ''; //$this->params['language_id'] = MicroGrid::GetParameter('language_id'); //$this->uPrefix = 'prefix_'; $this->primaryKey = 'id'; $this->tableName = TABLE_LISTINGS_CATEGORIES; $this->dataSet = array(); $this->error = ''; if ($account_type == 'me') { $this->formActionURL = 'index.php?customer=listings_categories&listing_id=' . (int) $listing_id; } else { $this->formActionURL = 'index.php?admin=mod_listings_categories&listing_id=' . (int) $listing_id; } $this->actions = array('add' => true, 'edit' => false, 'details' => false, 'delete' => true); $this->actionIcons = true; $this->allowRefresh = true; $this->allowTopButtons = false; $this->alertOnDelete = ''; // leave empty to use default alerts $this->allowLanguages = false; $this->languageId = ''; //($this->params['language_id'] != '') ? $this->params['language_id'] : Languages::GetDefaultLang(); $this->WHERE_CLAUSE = ''; // WHERE .... / 'WHERE language_id = ''.$this->languageId.'''; $this->ORDER_CLAUSE = 'ORDER BY cd.name ASC'; $this->isAlterColorsAllowed = true; $this->isPagingAllowed = true; $this->pageSize = 20; $this->isSortingAllowed = true; $this->isExportingAllowed = false; $this->arrExportingTypes = array('csv' => false); $this->isFilteringAllowed = false; // define filtering fields $this->arrFilteringFields = array(); ///$date_format = get_date_format('view'); ///$date_format_edit = get_date_format('edit'); ///$currency_format = get_currency_format(); // prepare categories array // existing categories $added_categories = self::GetCategoriesForListing($this->listingId); $arr_added_categories = array(); foreach ($added_categories[0] as $key => $val) { $arr_added_categories[] = $val['category_id']; } // subtruct existing categories from all $objCategories = Categories::Instance(); $total_categories = $objCategories->GetAllExistingCategories(); $arr_categories = array(); foreach ($total_categories as $key => $val) { if (!in_array($val['id'], $arr_added_categories)) { if ($val['level'] == '1') { $arr_categories[$val['id']] = $val['name']; } else { if ($val['level'] == '2') { $arr_categories[$val['id']] = ' • ' . $val['name']; } else { if ($val['level'] == '3') { $arr_categories[$val['id']] = ' :: ' . $val['name']; } } } } } //---------------------------------------------------------------------- // VIEW MODE // format: strip_tags // format: nl2br // format: 'format'=>'date', 'format_parameter'=>'M d, Y, g:i A'' // format: 'format'=>'currency', 'format_parameter'=>'european|2' or 'format_parameter'=>'american|4' //---------------------------------------------------------------------- $this->VIEW_MODE_SQL = 'SELECT lc.' . $this->primaryKey . ', cd.name, cd.description FROM ' . $this->tableName . ' lc INNER JOIN ' . TABLE_CATEGORIES_DESCRIPTION . ' cd ON lc.category_id = cd.category_id INNER JOIN ' . TABLE_LISTINGS . ' l ON lc.listing_id = l.id WHERE cd.language_id = \'' . Application::Get('lang') . '\' AND lc.listing_id = ' . $listing_id; // define view mode fields $this->arrViewModeFields = array('name' => array('title' => _NAME, 'type' => 'label', 'align' => 'left', 'width' => '25%', 'sortable' => true, 'nowrap' => '', 'visible' => '', 'tooltip' => '', 'maxlength' => '40', 'format' => '', 'format_parameter' => ''), 'description' => array('title' => _DESCRIPTION, 'type' => 'label', 'align' => 'left', 'width' => '', 'sortable' => true, 'nowrap' => '', 'visible' => '', 'tooltip' => '', 'maxlength' => '100', 'format' => '', 'format_parameter' => '')); //---------------------------------------------------------------------- // ADD MODE // - Validation Type: alpha|numeric|float|alpha_numeric|text|email|ip_address|password|date // Validation Sub-Type: positive (for numeric and float) // Ex.: 'validation_type'=>'numeric', 'validation_type'=>'numeric|positive' // - Validation Max Length: 12, 255... Ex.: 'validation_maxlength'=>'255' // - Validation Min Length: 4, 6... Ex.: 'validation_minlength'=>'4' // - Validation Max Value: 12, 255... Ex.: 'validation_maximum'=>'99.99' //---------------------------------------------------------------------- // define add mode fields $this->arrAddModeFields = array('category_id' => array('title' => _CATEGORY, 'type' => 'enum', 'width' => '', 'required' => true, 'readonly' => false, 'default' => '', 'source' => $arr_categories, 'default_option' => '', 'unique' => false, 'javascript_event' => ''), 'listing_id' => array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => $listing_id)); //---------------------------------------------------------------------- // EDIT MODE // - Validation Type: alpha|numeric|float|alpha_numeric|text|email|ip_address|password|date // Validation Sub-Type: positive (for numeric and float) // Ex.: 'validation_type'=>'numeric', 'validation_type'=>'numeric|positive' // - Validation Max Length: 12, 255... Ex.: 'validation_maxlength'=>'255' // - Validation Min Length: 4, 6... Ex.: 'validation_minlength'=>'4' // - Validation Max Value: 12, 255... Ex.: 'validation_maximum'=>'99.99' //---------------------------------------------------------------------- $this->EDIT_MODE_SQL = 'SELECT lc.' . $this->primaryKey . ', lc.listing_id, lc.category_id, cd.name as category_name, cd.description as category_description FROM ' . $this->tableName . ' lc INNER JOIN ' . TABLE_CATEGORIES_DESCRIPTION . ' cd ON lc.category_id = cd.category_id WHERE lc.' . $this->primaryKey . ' = _RID_'; // define edit mode fields $this->arrEditModeFields = array('category_name' => array('title' => _CATEGORY, 'type' => 'label'), 'listing_id' => array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => $listing_id)); //---------------------------------------------------------------------- // DETAILS MODE //---------------------------------------------------------------------- $this->DETAILS_MODE_SQL = $this->EDIT_MODE_SQL; $this->arrDetailsModeFields = array('category_name' => array('title' => _CATEGORY, 'type' => 'label'), 'category_description' => array('title' => _DESCRIPTION, 'type' => 'label')); }
private function __construct_all() { global $objLogin; $this->params = array(); if (isset($_POST['website_url'])) { $website_url = prepare_input($_POST['website_url'], false, 'medium'); if (preg_match('/www./i', $website_url) && !preg_match('/http:/i', $website_url)) { $website_url = 'http://' . $website_url; } $this->params['website_url'] = $website_url; } if (isset($_POST['listing_location_id'])) { $this->params['listing_location_id'] = prepare_input($_POST['listing_location_id']); } if (isset($_POST['listing_sub_location_id'])) { $this->params['listing_sub_location_id'] = prepare_input($_POST['listing_sub_location_id']); } if (isset($_POST['business_email'])) { $this->params['business_email'] = prepare_input($_POST['business_email']); } if (isset($_POST['business_phone'])) { $this->params['business_phone'] = prepare_input($_POST['business_phone']); } if (isset($_POST['business_fax'])) { $this->params['business_fax'] = prepare_input($_POST['business_fax']); } if (isset($_POST['priority_order'])) { $this->params['priority_order'] = prepare_input($_POST['priority_order']); } if (isset($_POST['is_featured'])) { $this->params['is_featured'] = (int) $_POST['is_featured']; } else { $this->params['is_featured'] = '0'; } if (isset($_POST['is_published'])) { $this->params['is_published'] = (int) $_POST['is_published']; } else { $this->params['is_published'] = '0'; } if (isset($_POST['is_approved'])) { $this->params['is_approved'] = prepare_input($_POST['is_approved']); } if (isset($_POST['access_level'])) { $this->params['access_level'] = prepare_input($_POST['access_level']); } if (isset($_POST['date_published'])) { $this->params['date_published'] = prepare_input($_POST['date_published']); } if (isset($_POST['customer_id'])) { $this->params['customer_id'] = (int) $_POST['customer_id']; } if (isset($_POST['map_code'])) { $this->params['map_code'] = prepare_input($_POST['map_code'], false, 'low'); } if (isset($_POST['video_url'])) { $this->params['video_url'] = prepare_input($_POST['video_url'], false, 'low'); } if (isset($_POST['keywords'])) { $this->params['keywords'] = implode(',', array_map('trim', explode(',', prepare_input($_POST['keywords'])))); } if (isset($_POST['advertise_plan_id'])) { $this->params['advertise_plan_id'] = prepare_input($_POST['advertise_plan_id']); } ///$this->params['language_id'] = MicroGrid::GetParameter('language_id'); $rid = MicroGrid::GetParameter('rid'); $action = MicroGrid::GetParameter('action'); $operation = MicroGrid::GetParameter('operation'); $filter_by_cid = MicroGrid::GetParameter('filter_by_cid', false); $payments_module = Modules::IsModuleInstalled('payments') && ModulesSettings::Get('payments', 'is_active') == 'yes' ? true : false; $watermark = ModulesSettings::Get('listings', 'watermark') == 'yes' ? true : false; $watermark_text = ModulesSettings::Get('listings', 'watermark_text'); if ($action != 'view') { $listings_info = self::GetListingInfo($rid); } ## for images if (isset($_POST['image_file'])) { $this->params['image_file'] = prepare_input($_POST['image_file']); } else { if (isset($_FILES['image_file']['name']) && $_FILES['image_file']['name'] != '') { // nothing } else { if (self::GetParameter('action') == 'create') { $this->params['image_file'] = ''; } } } if ($payments_module) { $listings_count = $objLogin->GetAvailableListings(); } else { $listings_count = -1; } $this->primaryKey = 'id'; $this->tableName = TABLE_LISTINGS; $this->dataSet = array(); $this->error = ''; $this->formActionURL = 'index.php?' . ($objLogin->GetLoggedType() == 'customer' ? 'customer=my_listings' : 'admin=mod_listings_management'); $categoriesActionURL = 'index.php?' . ($objLogin->GetLoggedType() == 'customer' ? 'customer=listings_categories' : 'admin=mod_listings_categories'); $this->actions = array('add' => $objLogin->GetLoggedType() == 'customer' && $listings_count == 0 ? false : true, 'edit' => true, 'details' => true, 'delete' => true); $this->actionIcons = true; $this->allowRefresh = true; $this->allowTopButtons = true; $this->advertisePlanID = '0'; $this->accessLevel = ''; $this->isApproved = 0; $this->allowLanguages = false; //$this->languageId = ''; $default_lang = $objLogin->GetLoggedType() == 'customer' ? Languages::GetDefaultLang() : $objLogin->GetPreferredLang(); $is_expired = false; if ($action == 'edit' && $action == 'details') { $is_expired = $listings_info['finish_publishing'] == '0000-00-00 00:00:00' || $listings_info['finish_publishing'] > date('Y-m-d H:i:s') ? false : true; } $this->WHERE_CLAUSE = 'WHERE ld.language_id = \'' . $default_lang . '\''; if ($operation != 'reset_filtering' && !empty($filter_by_cid)) { $this->WHERE_CLAUSE .= ' AND l.id IN (SELECT lc.listing_id FROM ' . TABLE_LISTINGS_CATEGORIES . ' lc WHERE lc.category_id = ' . (int) $filter_by_cid . ')'; } $this->ORDER_CLAUSE = 'ORDER BY l.date_published ASC'; $this->isAlterColorsAllowed = true; $this->isPagingAllowed = true; $this->pageSize = 20; $this->isSortingAllowed = true; $this->isExportingAllowed = $objLogin->IsLoggedInAsAdmin() ? true : false; $this->arrExportingTypes = array('csv' => true); // prepare access levels array $arr_access_levels = array('public' => _PUBLIC, 'registered' => _REGISTERED); // prepare featured array $arr_featured = array('0' => _NO, '1' => _YES); // prepare published array $arr_published = array('0' => _NO, '1' => _YES); // prepare advertise plans array $arr_advertise_plans = array(); $total_plans = AdvertisePlans::GetAllPlans(); foreach ($total_plans[0] as $key => $val) { $arr_advertise_plans[$val['id']] = $val['plan_name']; } if ($payments_module) { $arr_customer_advertise_plans = array(); if ($objLogin->IsLoggedInAsCustomer()) { $plans = $objLogin->GetCustomerPlans(); foreach ($plans as $key => $val) { $arr_customer_advertise_plans[$val['id']] = $val['name'] . ' (' . $val['count'] . ' ' . _LISTINGS . ')'; } } } // prepare categories array $objCategories = Categories::Instance(); $total_categories = $objCategories->GetAllExistingCategories(); $arr_categories = array(); foreach ($total_categories as $key => $val) { if ($val['level'] == '1') { $arr_categories[$val['id']] = $val['name']; } else { if ($val['level'] == '2') { $arr_categories[$val['id']] = ' • ' . $val['name']; } else { if ($val['level'] == '3') { $arr_categories[$val['id']] = ' :: ' . $val['name']; } } } } $datetime_format = get_datetime_format(); $date_format = get_date_format(); $arr_locations = array(); $arr_sub_locations = array(); if ($action != 'view') { // prepare array for location $total_locations = ListingsLocations::GetAllLocations('name ASC'); foreach ($total_locations[0] as $key => $val) { $arr_locations[$val['id']] = $val['name']; } if ($action != 'edit' && $action != 'details') { // prepare array for sub-location $listing_location_id = (int) MicroGrid::GetParameter('listing_location_id', false); $total_sub_locations = ListingsSubLocations::GetAllSubLocations($listing_location_id, 'name ASC'); foreach ($total_sub_locations[0] as $key => $val) { $arr_sub_locations[$val['id']] = $val['name']; } } } // define filtering fields $this->isFilteringAllowed = true; $this->arrFilteringFields = array(_NAME => array('table' => 'ld', 'field' => 'business_name', 'type' => 'text', 'sign' => 'like%', 'width' => '110px'), _CATEGORY => array('table' => 'c', 'field' => 'id', 'type' => 'dropdownlist', 'source' => $arr_categories, 'sign' => '=', 'width' => '', 'visible' => $objLogin->IsLoggedInAsAdmin() ? true : false, 'custom_handler' => true), _FEATURED => array('table' => 'l', 'field' => 'is_featured', 'type' => 'dropdownlist', 'source' => $arr_featured, 'sign' => '=', 'width' => '', 'visible' => $objLogin->IsLoggedInAsAdmin() ? true : false), _PUBLISHED => array('table' => 'l', 'field' => 'is_published', 'type' => 'dropdownlist', 'source' => $arr_published, 'sign' => '=', 'width' => '')); // retrieve pre-moderation settings $pre_moderation_allow = ModulesSettings::Get('listings', 'pre_moderation_allow') == 'yes' ? true : false; /////////////////////////////////////////////////////////////////////////////// // 1. prepare translation fields array $this->arrTranslations = $this->PrepareTranslateFields(array('business_name', 'business_address', 'business_description')); /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // 2. prepare translations array for edit/detail modes $sql_translation_description = $this->PrepareTranslateSql(TABLE_LISTINGS_DESCRIPTION, 'listing_id', array('business_name', 'business_address', 'business_description')); /////////////////////////////////////////////////////////////////////////////// // retrieve default priority order for new record $default_priority_order = ''; if (self::GetParameter('action') == 'add') { $default_priority_order = $this->GetMaxOrder('priority_order', 9999); } // get plan features $advertise_plan_id = ''; if ($action == 'add' || $action == 'create') { $advertise_plan_id = MicroGrid::GetParameter('advertise_plan_id', false); } else { if (in_array($action, array('details', 'edit', 'update'))) { // 1st time if (MicroGrid::GetParameter('advertise_plan_id', false)) { $advertise_plan_id = MicroGrid::GetParameter('advertise_plan_id', false); } else { $advertise_plan_id = $listings_info['advertise_plan_id']; } } } if (empty($advertise_plan_id)) { $advertise_plan_id = 1; } $advertise_plan_info = AdvertisePlans::GetPlanInfo($advertise_plan_id); // print_r($advertise_plan_info); $bpf_business_name = $advertise_plan_info[0]['business_name']; $bpf_business_description = $advertise_plan_info[0]['business_description']; $bpf_address = $advertise_plan_info[0]['address']; $bpf_logo = $advertise_plan_info[0]['logo']; $bpf_images_count = $advertise_plan_info[0]['images_count']; $bpf_phone = $advertise_plan_info[0]['phone']; $bpf_map = $advertise_plan_info[0]['map']; $bpf_video_link = $advertise_plan_info[0]['video_link']; $this->bpf_keywords_count = (int) $advertise_plan_info[0]['keywords_count']; // not needed to be inserted: inquiries_count, inquiries_count/per month, rating_button //---------------------------------------------------------------------- // VIEW MODE //---------------------------------------------------------------------- $this->VIEW_MODE_SQL = 'SELECT l.' . $this->primaryKey . ', l.customer_id, l.image_file, l.image_file_thumb, l.website_url, l.business_email, l.business_phone, l.business_fax, l.priority_order, l.access_level, l.is_featured, l.advertise_plan_id, IF( l.finish_publishing = "0000-00-00 00:00:00", "- ' . _NEVER . ' -", IF(l.finish_publishing < \'' . date('Y-m-d H:i:s') . '\', "<span class=no>' . _EXPIRED . '</span>", l.finish_publishing) ) as finish_publishing, CONCAT("<img src=\\"images/", IF(l.is_published, "published_g.gif", "published_x.gif"), "\\" alt=\\"\\" />") as mod_is_published, CONCAT("<img src=\\"images/", IF(l.is_approved, "published_g.gif", "waiting.gif"), "\\" alt=\\"\\" />") as mod_is_approved, ld.business_name, IF(l.customer_id = 0, \'Admin\', cust.user_name) as customer_username, CONCAT("[ ' . _CATEGORIES . ' ]", " (", (SELECT COUNT(*) FROM ' . TABLE_LISTINGS_CATEGORIES . ' lc WHERE lc.listing_id = l.id), ")") as link_categories FROM ' . $this->tableName . ' l ' . ($objLogin->GetLoggedType() == 'customer' ? 'INNER JOIN ' . TABLE_CUSTOMERS . ' cust ON (l.customer_id = cust.id AND l.customer_id=' . (int) $objLogin->GetLoggedID() . ')' : 'LEFT OUTER JOIN ' . TABLE_CUSTOMERS . ' cust ON (l.customer_id = cust.id)') . ' LEFT OUTER JOIN ' . TABLE_LISTINGS_DESCRIPTION . ' ld ON (l.id = ld.listing_id AND ld.language_id = \'' . $default_lang . '\')'; // define view mode fields $this->arrViewModeFields = array('image_file_thumb' => array('title' => _IMAGE, 'type' => 'image', 'sortable' => false, 'align' => 'left', 'width' => '64px', 'image_width' => '50px', 'image_height' => '30px', 'target' => 'images/listings/', 'no_image' => 'no_image.png'), 'business_name' => array('title' => _NAME, 'type' => $objLogin->GetLoggedType() == 'customer' ? 'link' : 'label', 'align' => 'left', 'width' => '200px', 'sortable' => true, 'nowrap' => '', 'visible' => true, 'tooltip' => '', 'maxlength' => '45', 'format' => '', 'format_parameter' => '', 'href' => 'index.php?page=listing&lid={id}', 'target' => '_new'), 'advertise_plan_id' => array('title' => _ADVERTISE_PLAN, 'type' => 'enum', 'align' => 'center', 'width' => '90px', 'sortable' => true, 'nowrap' => '', 'visible' => true, 'source' => $arr_advertise_plans), 'customer_username' => array('title' => _CUSTOMER, 'type' => 'label', 'align' => 'center', 'width' => '', 'visible' => $objLogin->IsLoggedInAsAdmin() ? true : false), 'access_level' => array('title' => _ACCESS, 'type' => 'enum', 'align' => 'center', 'width' => '70px', 'sortable' => true, 'nowrap' => '', 'source' => $arr_access_levels, 'visible' => $objLogin->IsLoggedInAsAdmin() ? true : false), 'mod_is_published' => array('title' => _PUBLISHED, 'type' => 'label', 'align' => 'center', 'width' => '70px', 'visible' => $objLogin->IsLoggedInAsAdmin()), 'mod_is_approved' => array('title' => _STATUS, 'type' => 'label', 'align' => 'center', 'width' => '80px', 'visible' => $objLogin->IsLoggedInAsCustomer()), 'finish_publishing' => array('title' => _FINISH_PUBLISHING, 'type' => 'label', 'align' => 'center', 'width' => '90px', 'sortable' => true, 'nowrap' => '', 'visible' => true, 'tooltip' => '', 'maxlength' => '', 'format' => 'date', 'format_parameter' => $date_format), 'link_categories' => array('title' => '', 'type' => 'link', 'align' => 'center', 'width' => '115px', 'sortable' => true, 'nowrap' => '', 'visible' => '', 'tooltip' => '', 'maxlength' => '', 'format' => '', 'format_parameter' => '', 'href' => $categoriesActionURL . '&listing_id={id}', 'target' => ''), 'priority_order' => array('title' => _ORDER, 'type' => 'label', 'align' => 'center', 'width' => '60px', 'movable' => true, 'visible' => $objLogin->IsLoggedInAsAdmin() ? true : false), 'id' => array('title' => 'ID', 'type' => 'label', 'align' => 'center', 'width' => '50px')); //---------------------------------------------------------------------- // ADD MODE //---------------------------------------------------------------------- // define add mode fields $this->arrAddModeFields = array('separator_general' => array('separator_info' => array('legend' => _GENERAL), 'advertise_plan_id' => array('title' => _ADVERTISE_PLAN, 'type' => 'enum', 'width' => '', 'required' => true, 'readonly' => false, 'default' => '', 'source' => $objLogin->IsLoggedInAsAdmin() ? $arr_advertise_plans : $arr_customer_advertise_plans, 'default_option' => '', 'unique' => false, 'javascript_event' => 'onchange="appChangePlan(\'' . $this->tableName . '\')"', 'visible' => $payments_module), 'listing_location_id' => array('title' => _LOCATION, 'type' => 'enum', 'width' => '', 'source' => $arr_locations, 'required' => true, 'default' => '', 'javascript_event' => 'onchange="appRefillLocations(\'' . $this->tableName . '\')"'), 'listing_sub_location_id' => array('title' => _SUB_LOCATION, 'type' => 'enum', 'width' => '', 'source' => $arr_sub_locations, 'required' => true, 'default' => ''), 'website_url' => array('title' => _WEBSITE_URL . ' (http://)', 'type' => 'textbox', 'width' => '270px', 'required' => false, 'readonly' => false, 'validation_type' => 'text', 'maxlength' => '255'), 'business_email' => array('title' => _EMAIL_ADDRESS, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => 'email', 'maxlength' => '75'), 'date_published' => array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => $pre_moderation_allow && $objLogin->GetLoggedType() == 'customer' ? '0000-00-00 00:00:00' : date('Y-m-d H:i:s')), 'customer_id' => array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => $objLogin->GetLoggedType() == 'customer' ? $objLogin->GetLoggedID() : '0'))); if ($bpf_phone) { $this->arrAddModeFields['separator_general']['business_phone'] = array('title' => _PHONE, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); $this->arrAddModeFields['separator_general']['business_fax'] = array('title' => _FAX, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); } if ($bpf_video_link) { $this->arrAddModeFields['separator_general']['video_url'] = array('title' => _VIDEO, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); } if ($this->bpf_keywords_count) { $this->arrAddModeFields['separator_general']['keywords'] = array('title' => _KEYWORDS, 'type' => 'textarea', 'required' => false, 'width' => '480px', 'height' => '58px', 'editor_type' => 'simple', 'readonly' => false, 'default' => '', 'validation_type' => '', 'validation_maxlength' => '1024', 'unique' => false); } else { $this->arrAddModeFields['separator_general']['keywords'] = array('title' => '', 'type' => 'hidden', 'required' => false, 'readonly' => false, 'default' => ''); } if ($bpf_logo) { $this->arrAddModeFields['separator_gallery']['separator_info'] = array('legend' => _GALLERY); $this->arrAddModeFields['separator_gallery']['image_file'] = array('title' => _LOGO, 'type' => 'image', 'width' => '210px', 'required' => false, 'readonly' => false, 'target' => 'images/listings/', 'no_image' => '', 'image_width' => '150px', 'image_height' => '120px', 'random_name' => 'true', 'unique' => false, 'thumbnail_create' => true, 'thumbnail_field' => 'image_file_thumb', 'thumbnail_width' => '150px', 'thumbnail_height' => '120px', 'file_maxsize' => '200k'); for ($i = 1; $i <= $bpf_images_count; $i++) { $this->arrAddModeFields['separator_gallery']['image_' . $i] = array('title' => _IMAGE . ' #' . $i, 'type' => 'image', 'width' => '210px', 'required' => false, 'readonly' => false, 'target' => 'images/listings/', 'no_image' => '', 'image_width' => '150px', 'image_height' => '120px', 'random_name' => 'true', 'unique' => false, 'thumbnail_create' => true, 'thumbnail_field' => 'image_' . $i . '_thumb', 'thumbnail_width' => '150px', 'thumbnail_height' => '120px', 'file_maxsize' => '500k', 'watermark' => $watermark, 'watermark_text' => $watermark_text); } } if ($bpf_map) { $this->arrAddModeFields['separator_map']['separator_info'] = array('legend' => _MAP_CODE); $this->arrAddModeFields['separator_map']['map_code'] = array('title' => _MAP_CODE, 'type' => 'textarea', 'required' => false, 'width' => '480px', 'height' => '100px', 'editor_type' => 'simple', 'readonly' => false, 'default' => '', 'validation_type' => '', 'validation_maxlength' => '1024', 'unique' => false); } else { $this->arrAddModeFields['separator_general']['map_code'] = array('title' => '', 'type' => 'hidden', 'required' => false, 'readonly' => false, 'default' => ''); } if ($objLogin->IsLoggedInAsAdmin()) { $this->arrAddModeFields['separator_general']['is_published'] = array('title' => _PUBLISHED, 'type' => 'checkbox', 'readonly' => false, 'default' => '1', 'true_value' => '1', 'false_value' => '0'); $this->arrAddModeFields['separator_general']['is_approved'] = array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => '1'); $this->arrAddModeFields['separator_general']['priority_order'] = array('title' => _ORDER, 'type' => 'textbox', 'width' => '50px', 'required' => true, 'default' => $default_priority_order, 'readonly' => false, 'validation_type' => 'numeric|positive', 'maxlength' => '4'); $this->arrAddModeFields['separator_general']['is_featured'] = array('title' => _FEATURED, 'type' => 'checkbox', 'readonly' => false, 'default' => '1', 'true_value' => '1', 'false_value' => '0'); $this->arrAddModeFields['separator_general']['access_level'] = array('title' => _ACCESSIBLE_BY, 'type' => 'enum', 'width' => '', 'required' => true, 'readonly' => false, 'default' => 'public', 'source' => $arr_access_levels, 'default_option' => '', 'unique' => false, 'javascript_event' => ''); } else { if ($pre_moderation_allow) { $this->arrAddModeFields['separator_general']['is_published'] = array('type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => '0'); $this->arrAddModeFields['separator_general']['is_approved'] = array('type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => '0'); $this->arrAddModeFields['separator_general']['access_level'] = array('type' => 'hidden', 'required' => true, 'default' => 'public'); } else { $this->arrAddModeFields['separator_general']['is_published'] = array('type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => '1'); $this->arrAddModeFields['separator_general']['is_approved'] = array('type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => '1'); } } //---------------------------------------------------------------------- // EDIT MODE //---------------------------------------------------------------------- // define edit mode fields $this->EDIT_MODE_SQL = 'SELECT l.*, ' . $sql_translation_description . ' IF( l.finish_publishing = \'0000-00-00 00:00:00\', "- ' . _NEVER . ' -", IF(l.finish_publishing < \'' . date('Y-m-d H:i:s') . '\', \'<span class=no>' . _EXPIRED . '</span>\', l.finish_publishing) ) as finish_publishing, CONCAT("<img src=\\"images/listings/", l.image_file_thumb, "\\" alt=\\"\\" width=\\"40px\\ height=\\"30px\\" />") as my_image_file, IF(l.is_featured, \'' . _YES . '\', \'' . _NO . '\') as mod_is_featured, IF(l.is_published, "<span class=yes>' . _YES . '</span>", "<span class=no>' . _NO . '</span>") as mod_is_published, IF(l.is_approved, "<span class=yes>' . _APPROVED . '</span>", "<span class=no>' . _PENDING . '</span>") as mod_is_approved FROM ' . $this->tableName . ' l ' . ($objLogin->GetLoggedType() == 'customer' ? 'INNER JOIN ' . TABLE_CUSTOMERS . ' cust ON (l.customer_id = cust.id AND l.customer_id=' . (int) $objLogin->GetLoggedID() . ')' : '') . ' WHERE l.' . $this->primaryKey . ' = _RID_'; // define edit mode fields $this->arrEditModeFields = array('separator_general' => array('separator_info' => array('legend' => _GENERAL), 'advertise_plan_id' => array('title' => _ADVERTISE_PLAN, 'type' => 'enum', 'width' => '', 'required' => true, 'readonly' => $objLogin->IsLoggedInAsAdmin() ? $is_expired ? true : false : true, 'default' => '', 'source' => $arr_advertise_plans, 'default_option' => '', 'unique' => false, 'javascript_event' => 'onchange="appChangePlan(\'' . $this->tableName . '\')"', 'visible' => $payments_module), 'listing_location_id' => array('title' => _LOCATION, 'type' => 'enum', 'width' => '', 'source' => $arr_locations, 'required' => true, 'javascript_event' => 'onchange="appRefillLocations(\'' . $this->tableName . '\')"'), 'listing_sub_location_id' => array('title' => _SUB_LOCATION, 'type' => 'enum', 'width' => '', 'source' => $arr_sub_locations, 'required' => true), 'website_url' => array('title' => _WEBSITE_URL . ' (http://)', 'type' => 'textbox', 'width' => '270px', 'required' => false, 'readonly' => false, 'validation_type' => 'text', 'maxlength' => '255'), 'business_email' => array('title' => _EMAIL_ADDRESS, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => 'email', 'maxlength' => '75'))); if ($bpf_phone) { $this->arrEditModeFields['separator_general']['business_phone'] = array('title' => _PHONE, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); $this->arrEditModeFields['separator_general']['business_fax'] = array('title' => _FAX, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); } if ($bpf_video_link) { $this->arrEditModeFields['separator_general']['video_url'] = array('title' => _VIDEO, 'type' => 'textbox', 'width' => '210px', 'required' => false, 'default' => '', 'readonly' => false, 'validation_type' => '', 'maxlength' => '32'); } if ($this->bpf_keywords_count) { $this->arrEditModeFields['separator_general']['keywords'] = array('title' => _KEYWORDS, 'type' => 'textarea', 'required' => false, 'width' => '480px', 'height' => '58px', 'editor_type' => 'simple', 'readonly' => false, 'default' => '', 'validation_type' => '', 'validation_maxlength' => '1024', 'unique' => false); } if ($bpf_logo) { $this->arrEditModeFields['separator_gallery']['separator_info'] = array('legend' => _GALLERY); $this->arrEditModeFields['separator_gallery']['image_file'] = array('title' => _LOGO, 'type' => 'image', 'width' => '210px', 'required' => false, 'readonly' => false, 'target' => 'images/listings/', 'no_image' => '', 'image_width' => '150px', 'image_height' => '120px', 'random_name' => 'true', 'unique' => false, 'thumbnail_create' => true, 'thumbnail_field' => 'image_file_thumb', 'thumbnail_width' => '150px', 'thumbnail_height' => '120px', 'file_maxsize' => '200k'); for ($i = 1; $i <= $bpf_images_count; $i++) { $this->arrEditModeFields['separator_gallery']['image_' . $i] = array('title' => _IMAGE . ' #' . $i, 'type' => 'image', 'width' => '210px', 'required' => false, 'readonly' => false, 'target' => 'images/listings/', 'no_image' => '', 'image_width' => '150px', 'image_height' => '120px', 'random_name' => 'true', 'unique' => false, 'thumbnail_create' => true, 'thumbnail_field' => 'image_' . $i . '_thumb', 'thumbnail_width' => '150px', 'thumbnail_height' => '120px', 'file_maxsize' => '500k', 'watermark' => $watermark, 'watermark_text' => $watermark_text); } } if ($bpf_map) { $this->arrEditModeFields['separator_map']['separator_info'] = array('legend' => _MAP_CODE); $this->arrEditModeFields['separator_map']['map_code'] = array('title' => _MAP_CODE, 'type' => 'textarea', 'required' => false, 'width' => '480px', 'height' => '100px', 'editor_type' => 'simple', 'readonly' => false, 'default' => '', 'validation_type' => '', 'validation_maxlength' => '1024', 'unique' => false); } $this->arrEditModeFields['separator_general']['mod_is_approved'] = array('title' => _STATUS, 'type' => 'label'); if ($objLogin->IsLoggedInAsAdmin()) { $this->arrEditModeFields['separator_general']['priority_order'] = array('title' => _ORDER, 'type' => 'textbox', 'width' => '50px', 'required' => true, 'readonly' => false, 'validation_type' => 'numeric|positive', 'maxlength' => '4'); $this->arrEditModeFields['separator_general']['is_featured'] = array('title' => _FEATURED, 'type' => 'checkbox', 'readonly' => $is_expired ? true : false, 'true_value' => '1', 'false_value' => '0'); ///$this->arrEditModeFields['separator_general']['date_published'] = array('title'=>_DATE_PUBLISHED, 'type'=>'hidden', 'required'=>true, 'readonly'=>false, 'default'=>date('Y-m-d H:i:s')); $this->arrEditModeFields['separator_general']['is_published'] = array('title' => _PUBLISHED, 'type' => 'checkbox', 'readonly' => $is_expired ? true : false, 'visible' => $is_expired ? false : true, 'true_value' => '1', 'false_value' => '0'); $this->arrEditModeFields['separator_general']['access_level'] = array('title' => _ACCESSIBLE_BY, 'type' => 'enum', 'width' => '', 'required' => true, 'readonly' => $is_expired ? true : false, 'default' => 'public', 'source' => $arr_access_levels, 'default_option' => '', 'unique' => false, 'javascript_event' => ''); } $this->arrEditModeFields['separator_general']['finish_publishing'] = array('title' => _FINISH_PUBLISHING, 'type' => 'label', 'format' => 'date', 'format_parameter' => $date_format); $this->arrEditModeFields['separator_general']['customer_id'] = array('title' => '', 'type' => 'hidden', 'required' => true, 'readonly' => false, 'default' => ''); //---------------------------------------------------------------------- // DETAILS MODE //---------------------------------------------------------------------- $this->DETAILS_MODE_SQL = $this->EDIT_MODE_SQL; $this->arrDetailsModeFields = array('separator_general' => array('separator_info' => array('legend' => _GENERAL), 'advertise_plan_id' => array('title' => _ADVERTISE_PLAN, 'type' => 'enum', 'source' => $arr_advertise_plans, 'visible' => $payments_module), 'listing_location_id' => array('title' => _LOCATION, 'type' => 'enum', 'source' => $arr_locations), 'listing_sub_location_id' => array('title' => _SUB_LOCATION, 'type' => 'enum', 'source' => $arr_sub_locations), 'website_url' => array('title' => _WEBSITE_URL, 'type' => 'label'), 'business_email' => array('title' => _EMAIL_ADDRESS, 'type' => 'label'), 'mod_is_approved' => array('title' => _STATUS, 'type' => 'label'), 'mod_is_published' => array('title' => _PUBLISHED, 'type' => 'label'), 'date_published' => array('title' => _DATE_PUBLISHED, 'type' => 'datetime', 'format' => 'datetime', 'format_parameter' => $datetime_format))); if ($bpf_phone) { $this->arrDetailsModeFields['separator_general']['business_phone'] = array('title' => _PHONE, 'type' => 'label'); $this->arrDetailsModeFields['separator_general']['business_fax'] = array('title' => _FAX, 'type' => 'label'); } if ($bpf_video_link) { $this->arrDetailsModeFields['separator_general']['video_url'] = array('title' => _VIDEO, 'type' => 'label'); } if ($this->bpf_keywords_count) { $this->arrDetailsModeFields['separator_general']['keywords'] = array('title' => _KEYWORDS, 'type' => 'label'); } if ($bpf_logo) { $this->arrDetailsModeFields['separator_gallery']['separator_info'] = array('legend' => _GALLERY); $this->arrDetailsModeFields['separator_gallery']['image_file'] = array('title' => _LOGO, 'type' => 'image', 'target' => 'images/listings/', 'image_width' => '90px', 'image_height' => '80px', 'no_image' => 'no_image.png'); for ($i = 1; $i <= $bpf_images_count; $i++) { $this->arrDetailsModeFields['separator_gallery']['image_' . $i] = array('title' => _IMAGE . ' #' . $i, 'type' => 'image', 'target' => 'images/listings/', 'image_width' => '90px', 'image_height' => '80px', 'no_image' => 'no_image.png'); } } if ($bpf_map) { $this->arrDetailsModeFields['separator_map']['separator_info'] = array('legend' => _MAP_CODE); $this->arrDetailsModeFields['separator_map']['map_code'] = array('title' => _MAP_CODE, 'type' => 'html'); } if ($objLogin->IsLoggedInAsAdmin()) { $this->arrDetailsModeFields['separator_general']['priority_order'] = array('title' => _ORDER, 'type' => 'label'); $this->arrDetailsModeFields['separator_general']['mod_is_featured'] = array('title' => _FEATURED, 'type' => 'label'); $this->arrDetailsModeFields['separator_general']['access_level'] = array('title' => _ACCESSIBLE_BY, 'type' => 'enum', 'source' => $arr_access_levels); } $this->arrDetailsModeFields['separator_general']['finish_publishing'] = array('title' => _FINISH_PUBLISHING, 'type' => 'label', 'format' => 'date', 'format_parameter' => $date_format); /////////////////////////////////////////////////////////////////////////////// // 3. add translation fields to all modes $arrTranslations = array(); if ($bpf_business_name) { $arrTranslations['business_name'] = array('title' => _NAME, 'type' => 'textbox', 'required' => true, 'width' => '410px', 'maxlength' => '125'); } if ($bpf_address) { $arrTranslations['business_address'] = array('title' => _ADDRESS, 'type' => 'textarea', 'required' => false, 'width' => '410px', 'height' => '50px', 'maxlength' => '255'); } if ($bpf_business_description) { $arrTranslations['business_description'] = array('title' => _DESCRIPTION, 'type' => 'textarea', 'required' => false, 'width' => '410px', 'height' => '90px', 'maxlength' => '1024'); } $this->AddTranslateToModes($this->arrTranslations, $arrTranslations); /////////////////////////////////////////////////////////////////////////////// }
/** * Draws advanced search form * @param $draw */ public static function DrawAdvancedSearch($draw = true) { $keyword = isset($_POST['keyword']) ? trim(prepare_input($_POST['keyword'])) : ''; $keyword = str_replace('"', '"', $keyword); $keyword = str_replace("'", ''', $keyword); $search_in = Application::Get('search_in'); $sel_categories = isset($_POST['sel_categories']) ? (int) $_POST['sel_categories'] : ''; $sel_listings_locations = isset($_POST['sel_listings_locations']) ? prepare_input($_POST['sel_listings_locations']) : ''; $sel_listings_sub_locations = isset($_POST['sel_listings_sub_locations']) ? prepare_input($_POST['sel_listings_sub_locations']) : ''; $sel_view = isset($_POST['sel_view']) ? prepare_input($_POST['sel_view']) : ''; $sel_sortby = isset($_POST['sel_sortby']) ? prepare_input($_POST['sel_sortby']) : ''; $sel_orderby = isset($_POST['sel_orderby']) ? prepare_input($_POST['sel_orderby']) : ''; $chk_with_images = isset($_POST['chk_with_images']) ? prepare_input($_POST['chk_with_images']) : ''; // prepare categories array $objCategories = Categories::Instance(); $total_categories = $objCategories->GetAllExistingCategories(); $total_countries = Countries::GetAllCountries('priority_order DESC, name ASC'); $output = '<form style="margin:10px" id="frmAdvSearch" name="frmAdvSearch" action="index.php?page=search_advanced" method="post"> ' . draw_hidden_field('task', 'advanced_search', false) . ' ' . draw_hidden_field('p', '1', false) . ' ' . draw_hidden_field('search_in', 'listings') . ' ' . draw_token_field(false) . ' <input type="text" name="keyword" value="' . $keyword . '" placeholder="' . _SEARCH_KEYWORDS . '..."> <span>' . _IN . '</span> <select name="sel_categories">'; $output .= '<option value="">-- ' . _ALL . ' --</option>'; foreach ($total_categories as $key => $val) { if ($val['level'] == '1') { $category_name = $val['name']; } else { if ($val['level'] == '2') { $category_name = ' • ' . $val['name']; } else { if ($val['level'] == '3') { $category_name = ' :: ' . $val['name']; } } } $output .= '<option ' . ($sel_categories == $val['id'] ? 'selected="selected"' : '') . ' value="' . $val['id'] . '">' . $category_name . '</option>'; } $output .= '</select> '; $output .= ListingsLocations::DrawAllLocations(array('tag_name' => 'sel_listings_locations', 'selected_value' => $sel_listings_locations, 'javascript_event' => 'onchange="jQuery(\'#frmAdvSearch\').submit();"'), false) . ' '; $output .= ListingsSubLocations::DrawAllSubLocations($sel_listings_locations, array('tag_name' => 'sel_listings_sub_locations', 'selected_value' => $sel_listings_sub_locations), false); $output .= '<span style="float:right;"> <input value="' . _SEARCH . '" class="form_button" type="submit"> </span> <div style="padding-top:4px;margin-left:-3px;"> <table><tbody><tr> <td>' . _VIEW . ': <select name="sel_view"> <option value="0" ' . ($sel_view == '0' ? ' selected="selected"' : '') . '>-- ' . _ALL . ' --</option> <option value="1" ' . ($sel_view == '1' ? ' selected="selected"' : '') . '>' . _TODAY . '</option> <option value="2" ' . ($sel_view == '2' ? ' selected="selected"' : '') . '>' . _YESTERDAY . '</option> <option value="3" ' . ($sel_view == '3' ? ' selected="selected"' : '') . '>' . _LAST_7_DAYS . '</option> </select> </td> <td>' . _SORT_BY . ': <select name="sel_sortby"> <option value="0" ' . ($sel_sortby == '0' ? ' selected="selected"' : '') . '>' . _DATE . '</option> <option value="1" ' . ($sel_sortby == '1' ? ' selected="selected"' : '') . '>' . _VIEW . '</option> </select> </td> <td>' . _ORDER_BY . ': <select name="sel_orderby"> <option value="ASC" ' . ($sel_orderby == 'ASC' ? ' selected="selected"' : '') . '>' . _ASCENDING . '</option> <option value="DESC" ' . ($sel_orderby == 'DESC' ? ' selected="selected"' : '') . '>' . _DESCENDING . '</option> </select> </td> <td style="padding-top:4px;"><input name="chk_with_images" type="checkbox" ' . ($chk_with_images == '1' ? ' checked="checked"' : '') . ' value="1">' . _WITH_IMAGES_ONLY . '</td> </tr> </tbody> </table> </div> </form>'; if ($draw) { echo $output; } else { return $output; } }