public static function renderTemplateAreaNoCaption($templateArea, $listingID) { // renders all the elements in a given template area on the listing pages // this time without the corresponding captions global $conn, $config, $lang; require_once $config['basepath'] . '/include/misc.inc.php'; $misc = new misc(); require_once $config['basepath'] . '/include/login.inc.php'; $listingID = $misc->make_db_extra_safe($listingID); $templateArea = $misc->make_db_extra_safe($templateArea); $sql = "SELECT listingsdbelements_field_value, listingsformelements_field_type, listingsformelements_field_caption, listingsformelements_display_priv FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsformelements WHERE ((" . $config['table_prefix'] . "listingsdbelements.listingsdb_id = {$listingID}) AND (listingsformelements_field_name = listingsdbelements_field_name) AND (listingsformelements_location = {$templateArea})) ORDER BY listingsformelements_rank ASC"; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } $display = ''; while (!$recordSet->EOF) { $field_value = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $field_type = $misc->make_db_unsafe($recordSet->fields['listingsformelements_field_type']); $field_caption = $misc->make_db_unsafe($recordSet->fields['listingsformelements_field_caption']); $display_priv = $misc->make_db_unsafe($recordSet->fields['listingsformelements_display_priv']); $display_status = false; if ($display_priv == 1) { $display_status = login::loginCheck('Member', true); } elseif ($display_priv == 2) { $display_status = login::loginCheck('Agent', true); } elseif ($display_priv == 3) { $display_status = login::loginCheck('Admin', true); } else { $display_status = true; } if ($display_status === true) { if ($field_value != "") { if ($field_type == "select-multiple" or $field_type == "option" or $field_type == "checkbox") { // handle field types with multiple options $feature_index_list = explode("||", $field_value); sort($feature_index_list); $list_count = count($feature_index_list); $l = 1; foreach ($feature_index_list as $feature_list_item) { if ($l < $list_count) { $display .= $feature_list_item; $display .= $config['feature_list_separator']; $l++; } else { $display .= $feature_list_item; } } // end while } elseif ($field_type == "price") { $money_amount = $misc->international_num_format($field_value, $config['number_decimals_price_fields']); $display .= "<strong>{$field_caption}</strong>: " . $misc->money_formats($money_amount); } elseif ($field_type == "number") { $display .= "<strong>{$field_caption}</strong>: " . $misc->international_num_format($field_value, $config['number_decimals_number_fields']); } elseif ($field_type == "url") { $display .= "<a href=\"{$field_value}\" onclick=\"window.open(this.href,'_blank','location=1,resizable=1,status=1,scrollbars=1,toolbar=1,menubar=1');return false\">{$field_value}</a>"; } elseif ($field_type == "email") { $display .= "<a href=\"mailto:{$field_value}\">{$field_value}</a>"; } elseif ($field_type == "text" or $field_type == "textarea") { if ($config['add_linefeeds'] === "1") { $field_value = nl2br($field_value); //replace returns with <br /> } // end if $display .= "{$field_value}"; } elseif ($field_type == "Date") { if ($config['date_format'] == 1) { $format = "m/d/Y"; } elseif ($config['date_format'] == 2) { $format = "Y/d/m"; } elseif ($config['date_format'] == 3) { $format = "d/m/Y"; } $field_value = date($format, $field_value); $display .= "{$field_value}"; } else { $display .= "{$field_value}"; } // end else $display .= '<br />'; } else { if ($field_type == "price" && $config["zero_price"] == "1") { $display .= $lang['call_for_price'] . '<br />'; } // end if } // end else } $recordSet->MoveNext(); } // end while return $display; }
function searchbox_render($browse_caption, $browse_field_name, $pclass, $searchbox_type) { // builds a searchbox for any given item you want // to let users search by global $conn, $config, $lang; $display = ''; require_once $config['basepath'] . '/include/misc.inc.php'; $misc = new misc(); $time = $misc->getmicrotime(); $class_sql = ''; if (!empty($_GET['pclass'])) { $pclass = $_GET['pclass']; } if (!empty($pclass)) { //$classes = array(); //$classes = explode('|', $_GET['pclass']); foreach ($pclass as $class) { // Ignore non numberic values if (is_numeric($class)) { if (!empty($class_sql)) { $class_sql .= ' OR '; } $class_sql .= $config['table_prefix_no_lang'] . "classlistingsdb.class_id = {$class}"; } } if (!empty($class_sql)) { $class_sql = ' AND (' . $class_sql . ')'; } } //Lookup Field Type $sql_browse_field_name = $misc->make_db_safe($browse_field_name); $sql = "SELECT listingsformelements_field_type FROM " . $config['table_prefix'] . "listingsformelements WHERE listingsformelements_field_name = {$sql_browse_field_name}"; $rsStepLookup = $conn->Execute($sql); if (!$rsStepLookup) { $misc->log_error($sql); } $field_type = $rsStepLookup->fields['listingsformelements_field_type']; unset($rsStepLookup); $sortby = ''; $dateFormat = FALSE; if ($field_type == 'date') { $dateFormat = TRUE; } switch ($field_type) { case 'decimal': $sortby = 'ORDER BY listingsdbelements_field_value+0 ASC'; break; case 'number': global $db_type; if ($db_type == 'mysql') { $sortby = 'ORDER BY CAST(listingsdbelements_field_value as signed) ASC'; } else { $sortby = 'ORDER BY CAST(listingsdbelements_field_value as int4) ASC'; } break; default: $sortby = 'ORDER BY listingsdbelements_field_value ASC'; break; } if (!empty($class_sql)) { if ($config['configured_show_count'] == 1) { $sql = "SELECT listingsdbelements_field_value, count(listingsdbelements_field_value) AS num_type FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb," . $config['table_prefix_no_lang'] . "classlistingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND " . $config['table_prefix'] . "listingsdb.listingsdb_id = " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id {$class_sql}"; } else { $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb," . $config['table_prefix_no_lang'] . "classlistingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND " . $config['table_prefix'] . "listingsdb.listingsdb_id = " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id {$class_sql}"; } } else { if ($config['configured_show_count'] == 1) { $sql = "SELECT listingsdbelements_field_value, count(listingsdbelements_field_value) AS num_type FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id "; } else { $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE listingsdbelements_field_name = '{$browse_field_name}' AND listingsdb_active = 'yes' AND listingsdbelements_field_value <> '' AND " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id "; } } if ($config['use_expiration'] === "1") { $sql .= " AND listingsdb_expiration > " . $conn->DBDate(time()); } $sql .= "GROUP BY " . $config['table_prefix'] . "listingsdbelements.listingsdbelements_field_value {$sortby} "; // echo $sql.'<br />'; $recordSet = $conn->Execute($sql); if (!$recordSet) { $misc->log_error($sql); } //Get Date Format Settins if ($config['date_format'] == 1) { $format = "m/d/Y"; } elseif ($config['date_format'] == 2) { $format = "Y/d/m"; } elseif ($config['date_format'] == 3) { $format = "d/m/Y"; } switch ($searchbox_type) { case 'ptext': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><input name="' . $browse_field_name . '[]" type="text"'; if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] != '') { $f = htmlspecialchars($_GET[$browse_field_name], ENT_COMPAT, $config['charset']); $display .= 'value="' . $f . '"'; } $display .= ' />'; $display .= '</td></tr>'; break; case 'pulldown': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><select name="' . $browse_field_name . '"><option value="">' . $lang['all'] . '</option>'; // if ($rental == "yes") while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $field_output) { $selected = 'selected="selected"'; } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>'; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>'; } else { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>'; } } $recordSet->MoveNext(); } // end while $display .= '</select></td></tr>'; break; case 'null_checkbox': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = '(' . $num_type . ')'; } $setvalue = ''; if (isset($_GET[$browse_field_name . '-NULL']) && $_GET[$browse_field_name . '-NULL'] == 1) { $setvalue = 'checked="checked"'; } $display .= '<input type="checkbox" name="' . $browse_field_name . '-NULL" ' . $setvalue . ' value="1" />' . $browse_field_name . ' ' . $lang['null_search'] . ' ' . $num_type . '<br />'; $display .= '</td></tr>'; break; case 'notnull_checkbox': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } $setvalue = ''; if (isset($_GET[$browse_field_name . '-NOTNULL']) && $_GET[$browse_field_name . '-NOTNULL'] == 1) { $setvalue = 'checked="checked"'; } $display .= '<input type="checkbox" name="' . $browse_field_name . '-NOTNULL" ' . $setvalue . ' value="1" />' . $browse_field_name . ' ' . $lang['notnull_search'] . ' ' . $num_type . '<br />'; $display .= '</td></tr>'; break; case 'select': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><select name="' . $browse_field_name . '[]" size="5" multiple="multiple">'; $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array('', $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $display .= '<option value="" ' . $selected . '>' . $lang['all'] . '</option>'; while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($field_output, $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>'; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>'; } else { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>'; } } $recordSet->MoveNext(); } // end while $display .= '</select></td></tr>'; break; case 'select_or': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><select name="' . $browse_field_name . '_or[]" size="5" multiple="multiple">'; $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array('', $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $display .= '<option value="" ' . $selected . '>' . $lang['all'] . '</option>'; while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($field_output, $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . date($format, $field_output) . ' ' . $num_type . '</option>'; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_display . ' ' . $num_type . '</option>'; } else { $display .= '<option value="' . $field_output . '" ' . $selected . '>' . $field_output . ' ' . $num_type . '</option>'; } } $recordSet->MoveNext(); } // end while $display .= '</select></td></tr>'; break; case 'checkbox': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($field_output, $_GET[$browse_field_name])) { $selected = 'checked="checked"'; } } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } } $recordSet->MoveNext(); } // end while $display .= '</td></tr>'; break; case 'checkbox_or': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($field_output, $_GET[$browse_field_name])) { $selected = 'checked="checked"'; } } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } } $recordSet->MoveNext(); } // end while $display .= '</td></tr>'; break; case 'option': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; while (!$recordSet->EOF) { $field_output = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $selected = ''; if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $field_output) { $selected = 'checked="checked"'; } $num_type = ''; if ($config['configured_show_count'] == 1) { $num_type = $recordSet->fields['num_type']; $num_type = "({$num_type})"; } if ($dateFormat == TRUE) { $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . date($format, $field_output) . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { if ($field_type == 'number') { $field_display = $misc->international_num_format($field_output, $config['number_decimals_number_fields']); $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . $field_display . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } else { $display .= '<input type="radio" name="' . $browse_field_name . '" value="' . $field_output . '" ' . $selected . ' />' . $field_output . ' ' . $num_type . ''; $display .= $config['search_list_separator']; } } $recordSet->MoveNext(); } // end while $display .= '</td></tr>'; break; case 'optionlist': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><select name="' . $browse_field_name . '[]" multiple="multiple" size="6">'; $r = $conn->execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'"); $r = $r->fields['listingsformelements_field_elements']; $r = explode('||', $r); sort($r); foreach ($r as $f) { $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($f, $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']); $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>'; } $display .= '</select></td></tr>'; break; case 'optionlist_or': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left"><select name="' . $browse_field_name . '_or[]" multiple="multiple" size="6">'; $r = $conn->execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'"); $r = $r->fields['listingsformelements_field_elements']; $r = explode('||', $r); sort($r); foreach ($r as $f) { $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($f, $_GET[$browse_field_name])) { $selected = 'selected="selected"'; } } $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']); $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>'; } $display .= '</select></td></tr>'; break; case 'fcheckbox': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'"); $r = $r->fields['listingsformelements_field_elements']; $r = explode('||', $r); sort($r); foreach ($r as $f) { $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($f, $_GET[$browse_field_name])) { $selected = 'checked="checked"'; } } $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']); $display .= '<input type="checkbox" name="' . $browse_field_name . '[]" value="' . $f . '" ' . $selected . ' />' . $f . ''; $display .= $config['search_list_separator']; } $display .= '</td></tr>'; break; case 'fcheckbox_or': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'"); $r = $r->fields['listingsformelements_field_elements']; $r = explode('||', $r); sort($r); foreach ($r as $f) { $selected = ''; if (isset($_GET[$browse_field_name]) && is_array($_GET[$browse_field_name])) { if (in_array($f, $_GET[$browse_field_name])) { $selected = 'checked="checked"'; } } $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']); $display .= '<input type="checkbox" name="' . $browse_field_name . '_or[]" value="' . $f . '" ' . $selected . ' />' . $f . ''; $display .= $config['search_list_separator']; } $display .= '</td></tr>'; break; case 'fpulldown': $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td>'; $display .= '<td align="left">'; $display .= '<select name="' . $browse_field_name . '"><option value="">' . $lang['all'] . '</option>'; $r = $conn->Execute("select listingsformelements_field_elements from " . $config['table_prefix'] . "listingsformelements where listingsformelements_field_name = '{$browse_field_name}'"); $r = $r->fields['listingsformelements_field_elements']; $r = explode('||', $r); sort($r); foreach ($r as $f) { $selected = ''; if (isset($_GET[$browse_field_name]) && $_GET[$browse_field_name] == $f) { $selected = 'selected="selected"'; } $f = htmlspecialchars($f, ENT_COMPAT, $config['charset']); $display .= '<option value="' . $f . '" ' . $selected . '>' . $f . '</option>'; } $display .= '</select></td></tr>'; break; case 'daterange': static $js_added; $display = ''; if (!$js_added) { // add date $display .= '<script type="text/javascript" src="' . $config['baseurl'] . '/dateformat.js"></script>' . "\r\n"; $js_added = true; } $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">'; $setvalue = ''; if (isset($_GET[$browse_field_name . '-mindate']) && $_GET[$browse_field_name . '-mindate'] != '') { $f = htmlspecialchars($_GET[$browse_field_name . '-mindate'], ENT_COMPAT, $config['charset']); $setvalue = 'value="' . $f . '"'; } $display .= $lang['from'] . ' <input type="text" name="' . $browse_field_name . '-mindate" ' . $setvalue . ' onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')<br />'; $setvalue = ''; if (isset($_GET[$browse_field_name . '-maxdate']) && $_GET[$browse_field_name . '-maxdate'] != '') { $f = htmlspecialchars($_GET[$browse_field_name . '-maxdate'], ENT_COMPAT, $config['charset']); $setvalue = 'value="' . $f . '"'; } $display .= $lang['to'] . '<input type="text" name="' . $browse_field_name . '-maxdate" ' . $setvalue . ' onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')'; $display .= '</td></tr>'; break; case 'singledate': static $js_added; $display = ''; if (!$js_added) { // add date $display .= '<script type="text/javascript" src="' . $config['baseurl'] . '/dateformat.js"></script>' . "\r\n"; $js_added = true; } $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">'; $setvalue = ''; if (isset($_GET[$browse_field_name . '-date']) && $_GET[$browse_field_name . '-date'] != '') { $f = htmlspecialchars($_GET[$browse_field_name . '-date'], ENT_COMPAT, $config['charset']); $setvalue = 'value="' . $f . '"'; } $display .= ' <input type="text" name="' . $browse_field_name . '-date" ' . $setvalue . ' onFocus="javascript:vDateType=\'' . $config['date_format'] . '\'" onKeyUp="DateFormat(this,this.value,event,false,\'' . $config['date_format'] . '\')" onBlur="DateFormat(this,this.value,event,true,\'' . $config['date_format'] . '\')" /> (' . $config["date_format_long"] . ')'; $display .= '</td></tr>'; break; case 'minmax': $display = ''; $display .= '<tr><td class="searchpage_field_caption">' . $browse_caption . '</td><td align="left">'; $sql = "SELECT listingsformelements_field_type, listingsformelements_search_step FROM " . $config['table_prefix'] . "listingsformelements WHERE listingsformelements_field_name = '{$browse_field_name}'"; $rsStepLookup = $conn->Execute($sql); if (!$rsStepLookup) { $misc->log_error($sql); } // Get max, min and step $step = $rsStepLookup->fields['listingsformelements_search_step']; $field_type = $rsStepLookup->fields['listingsformelements_field_type']; unset($rsStepLookup); //Manual Step Values if (strpos($step, '|') !== FALSE) { $step_array = explode('|', $step); if (!isset($step_array[0]) || !isset($step_array[1])) { //Bad Step Array Fail exit; } $min = intval($step_array[0]); $max = intval($step_array[1]); if (isset($step_array[2])) { $step = intval($step_array[2]); } else { $step = 0; } } else { if (empty($class_sql)) { $field_list = $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb WHERE\n\t\t\t\t\t\t\t" . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id"; } else { $field_list = $config['table_prefix'] . "listingsdbelements, " . $config['table_prefix'] . "listingsdb, " . $config['table_prefix_no_lang'] . "classlistingsdb\n\t\t\t\t\t\t\t WHERE " . $config['table_prefix'] . "listingsdbelements.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id AND\n\t\t\t\t\t\t\t " . $config['table_prefix_no_lang'] . "classlistingsdb.listingsdb_id = " . $config['table_prefix'] . "listingsdb.listingsdb_id"; } global $db_type; if ($db_type == 'mysql') { if ($field_type == 'decimal') { $max = $conn->Execute("select max(listingsdbelements_field_value+0) as max FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $max = $max->fields['max']; $min = $conn->Execute("select min(listingsdbelements_field_value+0) as min FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $min = $min->fields['min']; } else { $max = $conn->Execute("select max(CAST(listingsdbelements_field_value as signed)) as max FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $max = $max->fields['max']; $min = $conn->Execute("select min(CAST(listingsdbelements_field_value as signed)) as min FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $min = $min->fields['min']; if ($field_type == 'price') { $min = substr_replace($min, '000', -3); } } } else { if ($field_type == 'decimal') { $max = $conn->Execute("select max(listingsdbelements_field_value+0) as max FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $max = $max->fields['max']; $min = $conn->Execute("select min(listingsdbelements_field_value+0) as min FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $min = $min->fields['min']; } else { $max = $conn->Execute("select max(CAST(listingsdbelements_field_value as int4)) as max FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $max = $max->fields['max']; $min = $conn->Execute("select min(CAST(listingsdbelements_field_value as int4)) as min FROM {$field_list} AND listingsdbelements_field_name = '{$browse_field_name}'" . $class_sql); $min = $min->fields['min']; if ($field_type == 'price') { $min = substr_replace($min, '000', -3); } } } } if ($step == 0) { if ($max > $min) { $step = ceil(($max - $min) / 10); } else { $step = ceil($max / 10); } } if ($config["search_step_max"] >= '1') { $step_val = ($max - $min) / $config["search_step_max"]; if ($step_val > $step) { $step = $step_val; } } $display .= '<select name="' . $browse_field_name . '-min">' . "\n"; $options = '<option value="">' . $lang['all'] . '</option>' . "\n"; if ($field_type == 'price') { $i = $min; while ($i < $max) { $z = $misc->international_num_format($i, $config['number_decimals_price_fields']); $z = $misc->money_formats($z); $selected = ''; if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) { $selected = 'selected="selected"'; } $options .= '<option value="' . $i . '" ' . $selected . '>' . $z . '</option>'; $i += $step; } $z = $misc->international_num_format($max, $config['number_decimals_price_fields']); $z = $misc->money_formats($z); $selected = ''; if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) { $selected = 'selected="selected"'; } $options .= '<option value="' . $max . '" ' . $selected . '>' . $z . '</option>'; } else { $i = $min; while ($i < $max) { $selected = ''; if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $i) { $selected = 'selected="selected"'; } $options .= '<option ' . $selected . '>' . $i . '</option>'; $i += $step; } $selected = ''; if (isset($_GET[$browse_field_name . '-min']) && $_GET[$browse_field_name . '-min'] == $max) { $selected = 'selected="selected"'; } $options .= '<option ' . $selected . '>' . $max . '</option>'; } $options .= '</select>'; $display .= $options . ' ' . $lang['to'] . '<br />'; $options = '<option value="">' . $lang['all'] . '</option>' . "\n"; if ($field_type == 'price') { $i = $min; while ($i < $max) { $z = $misc->international_num_format($i, $config['number_decimals_price_fields']); $z = $misc->money_formats($z); $selected = ''; if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) { $selected = 'selected="selected"'; } $options .= '<option value="' . $i . '" ' . $selected . '>' . $z . '</option>'; $i += $step; } $z = $misc->international_num_format($max, $config['number_decimals_price_fields']); $z = $misc->money_formats($z); $selected = ''; if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) { $selected = 'selected="selected"'; } $options .= '<option value="' . $max . '" ' . $selected . '>' . $z . '</option>'; } else { $i = $min; while ($i < $max) { $selected = ''; if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $i) { $selected = 'selected="selected"'; } $options .= '<option ' . $selected . '>' . $i . '</option>'; $i += $step; } $selected = ''; if (isset($_GET[$browse_field_name . '-max']) && $_GET[$browse_field_name . '-max'] == $max) { $selected = 'selected="selected"'; } $options .= '<option ' . $selected . '>' . $max . '</option>'; } $options .= '</select>'; $display .= '<select name="' . $browse_field_name . '-max">' . $options . '</td></tr>'; break; } // End switch ($searchbox_type) $time2 = $misc->getmicrotime(); $render_time = sprintf('%.3f', $time2 - $time); $display .= "\r\n" . '<!--Search Box ' . $browse_field_name . ' Render Time ' . $render_time . ' -->' . "\r\n"; return $display; }
function renderSingleListingItem($userID, $name, $display_type = 'both') { // Display_type - Sets what should be returned. // both - Displays both the caption and the formated value // value - Displays just the formated value // rawvalue - Displays just the raw value // caption - Displays only the captions global $conn, $config; require_once $config['basepath'] . '/include/misc.inc.php'; $misc = new misc(); $display = ''; $formDB = user::determine_user_formtype($userID); $userID = $misc->make_db_safe($userID); $name = $misc->make_db_safe($name); $sql = "SELECT userdbelements_field_value, " . $formDB . "_id, " . $formDB . "_field_type,\n\t\t\t" . $formDB . "_field_caption FROM " . $config['table_prefix'] . "userdbelements, " . $config['table_prefix'] . $formDB . " WHERE ((userdb_id = {$userID}) AND\n\t\t\t(" . $formDB . "_field_name = userdbelements_field_name) AND (userdbelements_field_name = {$name}))"; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } while (!$recordSet->EOF) { $field_value = $misc->make_db_unsafe($recordSet->fields['userdbelements_field_value']); $field_type = $misc->make_db_unsafe($recordSet->fields[$formDB . '_field_type']); $form_elements_id = $misc->make_db_unsafe($recordSet->fields[$formDB . '_id']); if (!isset($_SESSION["users_lang"])) { // Hold empty string for translation fields, as we are workgin with teh default lang $field_caption = $misc->make_db_unsafe($recordSet->fields[$formDB . '_field_caption']); } else { $lang_sql = "SELECT " . $formDB . "_field_caption FROM " . $config['lang_table_prefix'] . $formDB . " WHERE " . $formDB . "_id = {$form_elements_id}"; $lang_recordSet = $conn->Execute($lang_sql); if ($lang_recordSet === false) { $misc->log_error($lang_sql); } $field_caption = $misc->make_db_unsafe($lang_recordSet->fields[$formDB . '_field_caption']); } if ($field_value != "") { if ($display_type === 'both' || $display_type === 'caption') { $display .= '<span class="field_caption">' . $field_caption . '</span>'; } if ($display_type == 'both') { $display .= ': '; } if ($display_type === 'both' || $display_type === 'value') { if ($field_type == "select-multiple" or $field_type == "option" or $field_type == "checkbox") { // handle field types with multiple options // $display .= "<br /><b>$field_caption</b>"; $feature_index_list = explode("||", $field_value); sort($feature_index_list); foreach ($feature_index_list as $feature_list_item) { $display .= "<br />{$feature_list_item}"; } // end while } elseif ($field_type == "price") { $money_amount = $misc->international_num_format($field_value, $config['number_decimals_price_fields']); $display .= $misc->money_formats($money_amount); } elseif ($field_type == "number") { $display .= $misc->international_num_format($field_value, $config['number_decimals_number_fields']); } elseif ($field_type == "url") { $display .= "<a href=\"{$field_value}\" onclick=\"window.open(this.href,'_blank','location=1,resizable=1,status=1,scrollbars=1,toolbar=1,menubar=1');return false\">{$field_value}</a>"; } elseif ($field_type == "email") { $display .= "<a href=\"mailto:{$field_value}\">{$field_value}</a>"; } elseif ($field_type == "text" or $field_type == "textarea") { if ($config['add_linefeeds'] === "1") { $field_value = nl2br($field_value); //replace returns with <br /> } // end if $display .= $field_value; } elseif ($field_type == "date") { if ($config['date_format'] == 1) { $format = "m/d/Y"; } elseif ($config['date_format'] == 2) { $format = "Y/d/m"; } elseif ($config['date_format'] == 3) { $format = "d/m/Y"; } $field_value = date($format, "{$field_value}"); $display .= $field_value; } else { $display .= $field_value; } // end else } if ($display_type === 'rawvalue') { $display .= $field_value; } } // end if ($field_value != "") $recordSet->MoveNext(); } // end while return $display; }
function init_map2() { // Need access to common path information, javascript variable, and current connection global $config, $lang, $conn, $jscript; // Get access to database functions require_once $config['basepath'] . '/include/misc.inc.php'; $misc = new misc(); $listingID = 6; // Set standard map control arrays $map_type_[1] = 'NORMAL_MAP'; $map_type_[2] = 'SATELLITE_MAP'; $map_type_[3] = 'HYBRID_MAP'; $map_control_[1] = 'none'; $map_control_[2] = 'LargeMapControl'; $map_control_[3] = 'SmallMapControl'; $map_control_[4] = 'SmallZoomControl'; $map_anchor[1] = 'TOP_LEFT'; $map_anchor[2] = 'TOP_RIGHT'; $map_anchor[3] = 'BOTTOM_LEFT'; $map_anchor[4] = 'BOTTOM_RIGHT'; $type_control_[1] = 'none'; $type_control_[2] = 'MapTypeControl'; $scale_control_[1] = 'none'; $scale_control_[2] = 'ScaleControl'; $overview_control_[1] = 'none'; $overview_control_[2] = 'OverviewMapControl'; // Set addon vars from database $sql = 'SELECT * FROM ' . $config['table_prefix_no_lang'] . 'addon_googlemap'; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } $api_version = $misc->make_db_unsafe($recordSet->fields['api_version']); $api_key = $misc->make_db_unsafe($recordSet->fields['api_key']); $popup = $misc->make_db_unsafe($recordSet->fields['popup']); $search_dist = $misc->make_db_unsafe($recordSet->fields['search_dist']); $initial_zoom_level = '13'; $map_type = $misc->make_db_unsafe($recordSet->fields['map_type']); $map_height = $misc->make_db_unsafe($recordSet->fields['map_height']); $map_width = $misc->make_db_unsafe($recordSet->fields['map_width']); $info_bubble_template = $misc->make_db_unsafe($recordSet->fields['info_bubble_template']); $icon_image = $misc->make_db_unsafe($recordSet->fields['icon_image']); $icon_image_other = $misc->make_db_unsafe($recordSet->fields['icon_image_other']); $icon_shadow = $misc->make_db_unsafe($recordSet->fields['icon_shadow']); $icon_iconSize_x = $misc->make_db_unsafe($recordSet->fields['icon_iconSize_x']); $icon_iconSize_y = $misc->make_db_unsafe($recordSet->fields['icon_iconSize_y']); $icon_shadowSize_x = $misc->make_db_unsafe($recordSet->fields['icon_shadowSize_x']); $icon_shadowSize_y = $misc->make_db_unsafe($recordSet->fields['icon_shadowSize_y']); $icon_iconAnchor_x = $misc->make_db_unsafe($recordSet->fields['icon_iconAnchor_x']); $icon_iconAnchor_y = $misc->make_db_unsafe($recordSet->fields['icon_iconAnchor_y']); $icon_infoWindowAnchor_x = $misc->make_db_unsafe($recordSet->fields['icon_infoWindowAnchor_x']); $icon_infoWindowAnchor_y = $misc->make_db_unsafe($recordSet->fields['icon_infoWindowAnchor_y']); $map_control_type = $misc->make_db_unsafe($recordSet->fields['map_control_type']); $map_control_anchor = $misc->make_db_unsafe($recordSet->fields['map_control_anchor']); $map_control_padding_x = $misc->make_db_unsafe($recordSet->fields['map_control_padding_x']); $map_control_padding_y = $misc->make_db_unsafe($recordSet->fields['map_control_padding_y']); $type_control = $misc->make_db_unsafe($recordSet->fields['type_control']); $type_control_anchor = $misc->make_db_unsafe($recordSet->fields['type_control_anchor']); $type_padding_x = $misc->make_db_unsafe($recordSet->fields['type_padding_x']); $type_padding_y = $misc->make_db_unsafe($recordSet->fields['type_padding_y']); $scale_control = $misc->make_db_unsafe($recordSet->fields['scale_control']); $scale_control_anchor = $misc->make_db_unsafe($recordSet->fields['scale_control_anchor']); $scale_padding_x = $misc->make_db_unsafe($recordSet->fields['scale_padding_x']); $scale_padding_y = $misc->make_db_unsafe($recordSet->fields['scale_padding_y']); $overview_control = $misc->make_db_unsafe($recordSet->fields['overview_control']); $overview_control_anchor = $misc->make_db_unsafe($recordSet->fields['overview_control_anchor']); $overview_padding_x = $misc->make_db_unsafe($recordSet->fields['overview_padding_x']); $overview_padding_y = $misc->make_db_unsafe($recordSet->fields['overview_padding_y']); // grab latitude of current listing $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE (listingsdb_id = {$listingID} AND listingsdbelements_field_name = 'latitude')"; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($ssql); } $latitude = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); // grab longitude of current listing $sql = "SELECT listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE (listingsdb_id = {$listingID} AND listingsdbelements_field_name = 'longitude')"; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } $longitude = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $lat_dist = $search_dist / 69.0; $long_dist = $search_dist / abs(cos($latitude) * 69.17); // select all active listings whose latitude is within the search distance of the current listing's latitude $listingsdb = $config['table_prefix'] . "listingsdb"; $listingsdbelements = $config['table_prefix'] . "listingsdbelements"; $sql = "SELECT " . $listingsdbelements . ".* FROM {$listingsdbelements}, {$listingsdb} WHERE " . $listingsdb . ".listingsdb_id = " . $listingsdbelements . ".listingsdb_id AND " . $listingsdb . ".listingsdb_active = 'yes' AND (" . $listingsdbelements . ".listingsdbelements_field_name = 'latitude' AND ABS(" . $listingsdbelements . ".listingsdbelements_field_value - {$latitude}) < {$lat_dist})"; // don't select expired listings if we're filtering expired listings. if ($config['use_expiration'] == 1) { $sql .= " AND (" . $listingsdb . ".listingsdb_expiration > " . $conn->DBDate(time()) . ")"; } $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } // If there are any properties within dist of listing latitude if ($recordSet != false) { $count = 0; // Loop through the entire set of properties found while (!$recordSet->EOF()) { $pid = $misc->make_db_unsafe($recordSet->fields['listingsdb_id']); // If the current property is the current listing, handle it separately // in order to center map on it. if ($pid == $listingID) { // Get the listing's thumbnail image. $irec = $conn->Execute("SELECT listingsimages_thumb_file_name FROM " . $config['table_prefix'] . "listingsimages WHERE listingsdb_id = {$pid} AND listingsimages_rank = 1"); $fn = $misc->make_db_unsafe($irec->fields['listingsimages_thumb_file_name']); $ilink = $config['baseurl'] . "/images/listing_photos/" . $fn; // Gather the listing elements fields that will be used to generate // the html for the pop-up bubble $pinfo = $conn->Execute("SELECT listingsdbelements_field_name, listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name IN ('address','city','state','zip','price') AND listingsdb_id = {$pid}"); // Take the field information from the result set. // This is kind of kludgy - need to try to find either a better way // of doing this, or use individual db calls to get fields. // Need to determine whether db calls are faster than php. while (!$pinfo->EOF()) { switch ($pinfo->fields['listingsdbelements_field_name']) { case 'address': $address = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'city': $city = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'state': $state = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'zip': $zip = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'price': $price = $misc->money_formats($misc->international_num_format($misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']), $config['number_decimals_price_fields'])); break; } // switch $pinfo->MoveNext(); } // while // Grab the listing title for the pop-up bubble $pinfo2 = $conn->Execute("SELECT listingsdb_title FROM " . $config['table_prefix'] . "listingsdb WHERE listingsdb_id = {$pid}"); $title = $misc->make_db_unsafe($pinfo2->fields['listingsdb_title']); // Generate the html for the Google Map pop-up information bubble for this property. // *** Change this to code that pulls the html from a template file. *** $link = '<a href="' . $config['baseurl'] . '/index.php?action=listingview&listingID=' . $pid . '">'; $gmhtml = "'" . '<table><tr><td align="center"><b>' . $link . $title . ' </a></b></td></tr><tr><td>'; $gmhtml .= $link . '<img src="' . $ilink . '" altd="no image"></img></a>'; $gmhtml .= '</td><td><b>Listing Price: ' . $price . '<br><br>Property Address:</b><br>' . $address . '<br>' . $city . ', ' . $state . ' ' . $zip . '</td></tr></table>' . "'"; // Save the coordinates and html for the center point on the map $centerpoint['latitude'] = $latitude; $centerpoint['longitude'] = $longitude; $centerpoint['html'] = $gmhtml; } else { // Get the coordinates of this data point $py = $misc->make_db_unsafe($recordSet->fields['listingsdbelements_field_value']); $prec = $conn->Execute("SELECT * FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name = 'longitude' AND listingsdb_id = {$pid}"); $px = $misc->make_db_unsafe($prec->fields['listingsdbelements_field_value']); // Add this property if its longitude is less than the search distance from // the current listing's. if (abs($px - $longitude) < $long_dist) { // Get the listing's thumbnail image. $irec = $conn->Execute("SELECT listingsimages_thumb_file_name FROM " . $config['table_prefix'] . "listingsimages WHERE listingsdb_id = {$pid} AND listingsimages_rank = 1"); $fn = $misc->make_db_unsafe($irec->fields['listingsimages_thumb_file_name']); $ilink = $config['baseurl'] . "/images/listing_photos/" . $fn; // Gather the listing elements fields that will be used to generate // the html for the pop-up bubble $pinfo = $conn->Execute("SELECT listingsdbelements_field_name, listingsdbelements_field_value FROM " . $config['table_prefix'] . "listingsdbelements WHERE listingsdbelements_field_name IN ('address','city','state','zip','price') AND listingsdb_id = {$pid}"); // Take the field information from the result set. // This is kind of kludgy - need to try to find either a better way // of doing this, or use individual db calls to get fields. // Need to determine whether db calls are faster than php. while (!$pinfo->EOF()) { switch ($pinfo->fields['listingsdbelements_field_name']) { case 'address': $address = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'city': $city = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'state': $state = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'zip': $zip = $misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']); break; case 'price': $price = $misc->money_formats($misc->international_num_format($misc->make_db_unsafe($pinfo->fields['listingsdbelements_field_value']), $config['number_decimals_price_fields'])); break; } //switch $pinfo->MoveNext(); } // while // Grab the listing title for the pop-up bubble $pinfo2 = $conn->Execute("SELECT listingsdb_title FROM " . $config['table_prefix'] . "listingsdb WHERE listingsdb_id = {$pid}"); $title = $misc->make_db_unsafe($pinfo2->fields['listingsdb_title']); // Generate the html for the Google Map pop-up information bubble for this property. // *** Change this to code that pulls the html from a template file. *** $link = '<a href="' . $config['baseurl'] . '/index.php?action=listingview&listingID=' . $pid . '">'; $gmhtml = "'" . '<table cellpadding="5"><tr><td align="center"><b>' . $link . $title . ' </a></b></td></tr>'; $gmhtml .= '<tr><td><div class="thumbnail">' . $link . '<img src="' . $ilink . '" alt="no image"></img></a></div></td>'; $gmhtml .= '<td><b>Listing Price: ' . $price . '<br><br>Property Address:</b><br>' . $address . '<br>' . $city . ', ' . $state . ' ' . $zip . '</td></tr></table>' . "'"; // Save the coordinates and html for this data point in an array $otherpoint[$count]['latitude'] = $py; $otherpoint[$count]['longitude'] = $px; $otherpoint[$count++]['html'] = $gmhtml; } // if } // else $recordSet->MoveNext(); } // while } // end If there are any properties within dist of listing latitude // Generate the javascript for the map page. // This all goes in the header block $gscript .= '<style type="text/css">' . "\n"; $gscript .= ' v\\:* {' . "\n"; $gscript .= ' behavior:url(#default#VML);' . "\n"; $gscript .= ' }' . "\n"; $gscript .= '</style>' . "\n"; // Set the script source and api key // Note that we use v=2 even if the api_version is set to 1. The // Google API documentation states that backward compatibility should // be maintained in v2, but using v=1 may break at any time. Setting // api_version to 1 will use the old GMap class and associated methods. $gscript .= '<script src="http://maps.google.com/maps?file=api&v=2&key=' . $api_key . '" type="text/javascript"></script>' . "\n"; $gscript .= '<script type="text/javascript">' . "\n"; // Set the basic map properties $gscript .= '//<![CDATA[' . "\n" . "\n"; $gscript .= 'function onLoad() {' . "\n"; $gscript .= ' // The Basics' . "\n"; $gscript .= ' //' . "\n"; $gscript .= ' // Taken more or less from the google API examples and modified to fit' . "\n"; $gscript .= ' var icon = new GIcon();' . "\n"; $gscript .= ' icon.image = "' . $config["baseurl"] . '/' . $icon_image_other . '";' . "\n"; $gscript .= ' icon.shadow = "' . $config["baseurl"] . '/' . $icon_shadow . '";' . "\n"; $gscript .= ' icon.iconSize = new GSize(' . $icon_iconSize_x . ', ' . $icon_iconSize_y . ');' . "\n"; $gscript .= ' icon.shadowSize = new GSize(' . $icon_shadowSize_x . ', ' . $icon_shadowSize_y . ');' . "\n"; $gscript .= ' icon.iconAnchor = new GPoint(' . $icon_iconAnchor_x . ', ' . $icon_iconAnchor_y . ');' . "\n"; $gscript .= ' icon.infoWindowAnchor = new GPoint(' . $icon_infoWindowAnchor_x . ', ' . $icon_infoWindowAnchor_y . ');' . "\n"; $gscript .= ' var cicon = new GIcon();' . "\n"; $gscript .= ' cicon.image = "' . $config["baseurl"] . '/' . $icon_image . '";' . "\n"; $gscript .= ' cicon.shadow = "' . $config["baseurl"] . '/' . $icon_shadow . '";' . "\n"; $gscript .= ' cicon.iconSize = new GSize(' . $icon_iconSize_x . ', ' . $icon_iconSize_y . ');' . "\n"; $gscript .= ' cicon.shadowSize = new GSize(' . $icon_shadowSize_x . ', ' . $icon_shadowSize_y . ');' . "\n"; $gscript .= ' cicon.iconAnchor = new GPoint(' . $icon_iconAnchor_x . ', ' . $icon_iconAnchor_y . ');' . "\n"; $gscript .= ' cicon.infoWindowAnchor = new GPoint(' . $icon_infoWindowAnchor_x . ', ' . $icon_infoWindowAnchor_y . ');' . "\n"; if ($api_version == 1) { $gscript .= ' var map = new GMap(document.getElementById("map"));' . "\n"; $gscript .= ' map.setMapType(G_' . $map_type_[$map_type] . ');' . "\n"; $gscript .= ' map.centerAndZoom(new GPoint(' . $centerpoint['longitude'] . ',' . $centerpoint['latitude'] . '),' . $initial_zoom_level . ');' . "\n"; } else { $gscript .= ' var map = new GMap2(document.getElementById("map"));' . "\n"; $gscript .= ' map.setCenter(new GLatLng(' . $centerpoint['latitude'] . ',' . $centerpoint['longitude'] . '),' . $initial_zoom_level . ', G_' . $map_type_[$map_type] . ');' . "\n"; } if ($map_control_[$map_control_type] != 'none') { if ($api_version == 1) { $gscript .= ' map.addControl(new G' . $map_control_[$map_control_type] . '());' . "\n"; } else { $gscript .= ' map.addControl(new G' . $map_control_[$map_control_type] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$map_control_anchor] . ', new GSize(' . $map_control_padding_x . ', ' . $map_control_padding_y . ')));' . "\n"; } } if ($type_control_[$type_control] != 'none') { if ($api_version == 1) { $gscript .= ' map.addControl(new G' . $type_control_[$type_control] . '());' . "\n"; } else { $gscript .= ' map.addControl(new G' . $type_control_[$type_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$type_control_anchor] . ', new GSize(' . $type_padding_x . ', ' . $type_padding_y . ')));' . "\n"; } } if ($scale_control_[$scale_control] != 'none') { if ($api_version == 1) { $gscript .= ' map.addControl(new G' . $scale_control_[$scale_control] . '());' . "\n"; } else { $gscript .= ' map.addControl(new G' . $scale_control_[$scale_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$scale_control_anchor] . ', new GSize(' . $scale_padding_x . ', ' . $scale_padding_y . ')));' . "\n"; } } if ($overview_control_[$overview_control] != 'none') { if ($api_version == 1) { } else { $gscript .= ' map.addControl(new G' . $overview_control_[$overview_control] . '(), new GControlPosition(G_ANCHOR_' . $map_anchor[$overview_control_anchor] . ', new GSize(' . $overview_padding_x . ', ' . $overview_padding_y . ')));' . "\n"; } } $gscript .= "\n"; $gscript .= ' // Add the current listing to the map and center the map on that location.' . "\n"; if ($api_version == 1) { $gscript .= ' var cpoint = new GPoint(' . $centerpoint['longitude'] . ',' . $centerpoint['latitude'] . ');' . "\n"; } else { $gscript .= ' var cpoint = new GLatLng(' . $centerpoint['latitude'] . ',' . $centerpoint['longitude'] . ');' . "\n"; } $gscript .= ' var cmarker = new GMarker(cpoint, cicon);' . "\n"; $gscript .= ' GEvent.addListener(cmarker,' . "'click'" . ', function() {' . "\n"; $gscript .= ' cmarker.openInfoWindowHtml(' . $centerpoint['html'] . ');' . "\n"; $gscript .= ' });' . "\n"; $gscript .= ' map.addOverlay(cmarker);' . "\n" . "\n"; $gscript .= ' // Add other properties to the map' . "\n"; // Loop through the array and add all the other properties found within // our set distance. for ($i = 0; $i < $count; $i++) { $gscript .= "\n"; if ($api_version == 1) { $gscript .= ' var point' . $i . ' = new GPoint(' . $otherpoint[$i]['longitude'] . ',' . $otherpoint[$i]['latitude'] . ');' . "\n"; } else { $gscript .= ' var point' . $i . ' = new GLatLng(' . $otherpoint[$i]['latitude'] . ',' . $otherpoint[$i]['longitude'] . ');' . "\n"; } $gscript .= ' var marker' . $i . ' = new GMarker(point' . $i . ', icon);' . "\n"; $gscript .= ' GEvent.addListener(marker' . $i . ',' . "'click'" . ', function() {' . "\n"; $gscript .= ' marker' . $i . '.openInfoWindowHtml(' . $otherpoint[$i]['html'] . ');' . "\n"; $gscript .= ' });' . "\n"; $gscript .= ' map.addOverlay(marker' . $i . ');' . "\n"; } // End the map javascript $gscript .= ' }' . "\n" . '//]]>' . "\n" . '</script>' . "\n"; if ($popup == 1) { $display = "<html>\n<head>\n"; $display .= $gscript; $display .= "</head>"; if ($api_version == 1) { $display .= '<body onload="onLoad()">'; } else { $display .= '<body onload="onLoad()" onunload="GUnload()">'; } $display .= '<div id="map" style="width: ' . $map_width . '; height: ' . $map_height . '"></div></body>'; $display .= "</body>"; } else { // This is the code that allows the map to be shown in the main browser window, instead // of in a pop-up. $jscript = $gscript; $display = ''; if ($api_version == 1) { $display .= '<body onload="onLoad()">'; } else { $display .= '<body onload="onLoad()" onunload="GUnload()">'; } $display .= '<div id="map" style="width: ' . $map_width . '; height: ' . $map_height . '"></div></body>'; } return $display; }