This file is a technical summary of changes in the Geodesic Solutions Classifieds and Auctions software. Each entry will link to the corresponding bug found in Bugzilla on our website (You will need current support contract to view, more info here).

Versions
Template Change "Diff" Method Choose method to show template changes:

7.0.0 (July 23, 2012)

[Enhancements]

480 - Change software product structure for GeoCore
106 - Combine countries, state/provinces, and geo nav sub-regions, and make them per language - Sponsored
180 - Combine mapping fields into single field
229 - Add option to "require" user to be verified user before allowing to place listings. - Sponsored
455 - Create master switches to easily turn on/off various groups of features.
458 - improvements to Select Language form
468 - further improvements to category nav sorting
481 - Add e-mail header to all e-mails sent by the system - Sponsored

[Security Fixes]

- No Security fixes or patches for this release.

[Fixes/Maintenance]

456 - fix category sorting for alpha-across-columns
459 - Having more than 11 active template sets causes template set order issues
471 - don't use security image during admin cart
479 - Search results do not use setting for default browse order
462 - category-specific fields to use display order selection missing "images first" option
473 - Paginate category specific pricing info displayed in my account information

[Template Changes]

Reference Purposes Only: Like the rest of this changelog, the template changes below are for reference purposes only, not (necessarily) a list of changes everyone needs to follow. Refer to the full update instructions to find if you need to make any template changes during an update.

Legend

Note the following about highlighted lines you will see in this section.

This is a line that has been Added
This is a line that has been Removed
This is a line that has not changed.
  1. In file external/css/system/order_items/offsite_videos/upload_videos.css

    Near line 10, FIND:
    	width: 250px;
    	border: 5px solid #EAEAEA;
    	margin: 5px;
    	padding: 5px;
    	background: white;
    }

    Replace With:
    	width: 250px;
    	border: 5px solid #EAEAEA;
    	margin: 5px;
    	padding: 5px 5px 12px 5px;
    	background: white;
    }
  2. In file external/css/theme_styles.css

    1. Near line 1181, FIND:
      
      /*  Social network links  */
      
      ul.social_links {
      	
      }

      Replace With:
      
      /*  Social network links  */
      
      #social_links {
      	float: right;
      }
      
      /*
      ul.social_links {
      	
      }
    2. Near line 1196, FIND:
      }
      
      ul.social_links li.element img {
      	/* Make category image line up good */
      	vertical-align: middle;
      }
      
      /* ######### LISTING RESULTS STYLES ######### */
      .row_header {

      Replace With:
      }
      
      ul.social_links li.element img {
      	vertical-align: middle;
      }
      */
      
      /* ######### LISTING RESULTS STYLES ######### */
      .row_header {
  3. In file external/js/main.js

    1. Near line 817, FIND:
      	slideshowPlaying : false,
      	_hideCallbacks : new Array(),
      	_showCallbacks : new Array(),
      	_slideshow : null,
      	
      	startSlideshow : function () {

      Replace With:
      	slideshowPlaying : false,
      	_hideCallbacks : new Array(),
      	_showCallbacks : new Array(),
      	_onCompleteCallbacks : new Array(),
      	_slideshow : null,
      	
      	startSlideshow : function () {
    2. Near line 866, FIND:
      			lightUpBox._showCallbacks[index] = showCallback;
      		}
      	},
      	_hiddenElems : new Array(),
      	
      	handleResponse : function (transport) {

      Replace With:
      			lightUpBox._showCallbacks[index] = showCallback;
      		}
      	},
      	
      	registerOnCompleteCallback : function (onCompleteCallback) {
      		if (typeof onCompleteCallback == 'function') {
      			var index = lightUpBox._onCompleteCallbacks.size();
      			lightUpBox._onCompleteCallbacks[index] = onCompleteCallback;
      		}
      	},
      	
      	_hiddenElems : new Array(),
      	
      	handleResponse : function (transport) {
    3. Near line 1020, FIND:
      			}
      		});
      		
      		//init calendar on anything inside
      		geoUtil.initCalendars();
      		

      Replace With:
      			}
      		});
      		
      		//go through and do all of the stuff...
      		lightUpBox._onCompleteCallbacks.each(function(f) {f();});
      		
      		//init calendar on anything inside
      		geoUtil.initCalendars();
      		
    4. Near line 1153, FIND:
      		});
      	},
      	
      	initBox : function () {
      		if (!$('lightUpBox')) {
      			//create the box

      Replace With:
      		});
      	},
      	
      	lightUpLinkManualPost : function (url, params) {
      		lightUpBox.initBox();
      		//alert('starting request now.');
      		//make ajax call to get contents of the linked page, to be shoved into
      		//the existing page somewhere.
      		new Ajax.Request (url, {
      			method: 'post',
      			parameters: params,
      			onSuccess: lightUpBox.handleResponse
      		});
      	},
      	
      	initBox : function () {
      		if (!$('lightUpBox')) {
      			//create the box
  4. In file main_page/front_page.tpl

    Near line 25, FIND:
    				</div>
    				<br />
    			{/if}
    			<div class="content_box">
    				<ul class="social_links">
    					<li class="element">
    						<img src="{external file='images/logos/logo_facebook.jpg'}" alt="" />	
    						<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;">Follow Us on Facebook</a>
    					</li>
    					<li class="element">
    						<img src="{external file='images/logos/logo_twitter.jpg'}" alt="" />	
    						<a href="http://business.twitter.com/twitter101/" onclick="window.open(this.href); return false;">Follow Us on Twitter</a>
    					</li>
    					<li class="element">
    						<img src="{external file='images/logos/logo_rss.jpg'}" alt="" />	
    						<a href="/wiki/tutorials/feeds/start" onclick="window.open(this.href); return false;">Subscribe to Our Feed</a>
    					</li>				  
    				</ul>
    				<div class="clear"><br /></div>
    			</div>
    		</div>
    		<!-- END LEFT COLUMN -->

    Replace With:
    				</div>
    				<br />
    			{/if}
    		</div>
    		<!-- END LEFT COLUMN -->
  5. In file main_page/header.tpl

    Near line 53, FIND:
    		<a href="index.php?a=4">My Account</a> | <a href="index.php?a=17">Logout</a>
    	{/if}
    	 )
    </div>
    <!-- END USER BAR -->

    Replace With:
    		<a href="index.php?a=4">My Account</a> | <a href="index.php?a=17">Logout</a>
    	{/if}
    	 )
    	 
    	 {addon author='geo_addons' addon='social_connect' tag='facebook_login_button'}
    	 
    	 <!-- START SOCIAL LINKS -->
    	<div id="social_links">
    		<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_facebook.jpg'}" alt="" /></a>
    		<a href="http://business.twitter.com/twitter101/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_twitter.jpg'}" alt="" /></a>
    		<a href="/wiki/tutorials/feeds/start" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_rss.jpg'}" alt="" /></a>
    	</div>
    	<!-- END SOCIAL LINKS -->
    	 
    </div>
    <!-- END USER BAR -->
    
    
  6. In file main_page/listing_classified.tpl

    Near line 335, FIND:
    	{/if}
    </div>
    
    
    <div class="center">
    	{$previous_ad_link}

    Replace With:
    	{/if}
    </div>
    
    <br />
    
    {addon author='geo_addons' addon='google_maps' tag='listing_map'}
    
    
    <div class="center">
    	{$previous_ad_link}
  7. In file module/module_state_filter_1.tpl

    Near line 9, FIND:
    				<option value="clear state">{$messages.2304}</option>
    			{/if}
    			{foreach from=$opts item=o}
    				<option {if $o.sel}selected="selected"{/if} value="{$o.abbr}">{$o.name}</option>
    			{/foreach}
    			{if $tpl_vars.clear_opt}
    				<option value="clear state">{$messages.2301}</option>

    Replace With:
    				<option value="clear state">{$messages.2304}</option>
    			{/if}
    			{foreach from=$opts item=o}
    				<option {if $o.sel}selected="selected"{/if} value="{$o.value}">{$o.name}</option>
    			{/foreach}
    			{if $tpl_vars.clear_opt}
    				<option value="clear state">{$messages.2301}</option>
  8. In file module/shared/browsing_pic.tpl

    Near line 104, FIND:
    										<br />
    									</span>
    								{/if}
    								{if $cfg.cols.state&&$l.state}
    									<span class="{$headers.state.css}">
    										<em>{$headers.state.text}</em>
    										{$l.state}
    										{if $headers.state.text}<br />{/if}
    									</span>
    								{/if}
    								{if $cfg.cols.zip&&$l.zip}
    									<span class="{$headers.state.css}">
    										<em>{$headers.state.text}</em>
    										{$l.zip}
    										{if $headers.state.text}<br />{/if}
    									</span>
    								{/if}
    								
    								{if $cfg.cols.country&&$l.country}
    									<span class="{$headers.country.css}">
    										<em>{$headers.country.text}</em>
    										{$l.country}
    										<br />
    									</span>
    								{/if}

    Replace With:
    										<br />
    									</span>
    								{/if}
    								
    								{for $level=1 to $cfg.maxLocationDepth}
    									{$col = "region_level_$level"}
    									{if $cfg.cols.$col}
    										<span class="{$headers.$col.css}">
    											<em>{$headers.$col.text}</em>
    											{$l.$col}
    											<br />
    									{/if}
    								{/for}
    								
    								{if $cfg.cols.zip&&$l.zip}
    									<span class="{$headers.zip.css}">
    										<em>{$headers.zip.text}</em>
    										{$l.zip}
    										{if $headers.zip.text}<br />{/if}
    									</span>
    								{/if}
    								
    								
    								
    								{if $cfg.cols.location_breadcrumb&&$l.location_breadcrumb}
    									<span class="{$headers.location_breadcrumb.css}">
    										<em>{$headers.location_breadcrumb.text}</em>
    										{$l.location_breadcrumb}
    										<br />
    									</span>
    								{/if}
  9. In file system/browsing/common/listing_set.tpl

    1. Near line 91, FIND:
      						{if $cfg.sort_links}</a>{/if}
      					</td>
      				{/if}
      				
      				{if $cfg.cols.state}
      					<td class="browse_table_column_header_city{if $cfg.sort_links && $headers.state.reorder != 37} sorted_by{/if}">
      						{if $cfg.sort_links}<a class="{$headers.state.css}" href="{$cfg.browse_url}{$headers.state.reorder}">{/if}
      							{$headers.state.text}
      						{if $cfg.sort_links}</a>{/if}
      					</td>
      				{/if}
      				
      				{if $cfg.cols.zip}
      					<td class="browse_table_column_header_zip{if $cfg.sort_links && $headers.zip.reorder != 41} sorted_by{/if}">
      						{if $cfg.sort_links}<a class="{$headers.zip.css}" href="{$cfg.browse_url}{$headers.zip.reorder}">{/if}

      Replace With:
      						{if $cfg.sort_links}</a>{/if}
      					</td>
      				{/if}
      							
      				{if $cfg.cols.zip}
      					<td class="browse_table_column_header_zip{if $cfg.sort_links && $headers.zip.reorder != 41} sorted_by{/if}">
      						{if $cfg.sort_links}<a class="{$headers.zip.css}" href="{$cfg.browse_url}{$headers.zip.reorder}">{/if}
    2. Near line 108, FIND:
      					</td>
      				{/if}
      				
      				{if $cfg.cols.country}
      					<td class="browse_table_column_header_country{if $cfg.sort_links && $headers.country.reorder != 39} sorted_by{/if}">
      						{if $cfg.sort_links}<a class="{$headers.country.css}" href="{$cfg.browse_url}{$headers.country.reorder}">{/if}
      							{$headers.country.text}
      						{if $cfg.sort_links}</a>{/if}
      					</td>
      				{/if}
      				

      Replace With:
      					</td>
      				{/if}
      				
      				
      				{for $level=1 to $cfg.maxLocationDepth}
      					{$col = "region_level_$level"}
      					{if $cfg.cols.$col}
      						<td class="browse_table_column_header_{$col}">
      								{$headers.{$col}.text}
      						</td>
      					{/if}
      				{/for}
      				
      				{if $cfg.cols.location_breadcrumb}
      					<td class="browse_table_column_header_location_breadcrumb">
      							{$headers.location_breadcrumb.text}
      					</td>
      				{/if}
      				
    3. Near line 256, FIND:
      					</td>
      				{/if}
      				
      				{if $cfg.cols.state}
      					<td class="center">
      						{if $l.state}{$l.state}{else}{$cfg.empty}{/if}
      					</td>
      				{/if}
      				
      				{if $cfg.cols.zip}
      					<td class="center">
      						{if $l.zip}{$l.zip}{else}{$cfg.empty}{/if}
      					</td>
      				{/if}
      				
      				{if $cfg.cols.country}
      					<td class="center nowrap">
      						{if $l.country}{$l.country}{else}{$cfg.empty}{/if}
      					</td>
      				{/if}

      Replace With:
      					</td>
      				{/if}
      				
      				{if $cfg.cols.zip}
      					<td class="center">
      						{if $l.zip}{$l.zip}{else}{$cfg.empty}{/if}
      					</td>
      				{/if}
      				
      				{for $level=1 to $cfg.maxLocationDepth}
      					{$col = "region_level_$level"}
      					{if $cfg.cols.$col}
      						<td class="center nowrap">
      								{if $l.$col}{$l.$col}{else}{$cfg.empty}{/if}
      						</td>
      					{/if}
      				{/for}
      				
      				
      				{if $cfg.cols.location_breadcrumb}
      					<td class="center nowrap">
      						{if $l.location_breadcrumb}{$l.location_breadcrumb}{else}{$cfg.empty}{/if}
      					</td>
      				{/if}
  10. In file system/cart/payment_choices/index.tpl

    Near line 47, FIND:
    				{$countries}
    			</div>
    			
    			<div class="row_even">
    				<label class="field_label">{$messages.500274}</label>
    				{$states}
    			</div>

    Replace With:
    				{$countries}
    			</div>
    			
    			<div class="row_even" id="billing_state_wrapper">
    				<label class="field_label">{$messages.500274}</label>
    				{$states}
    			</div>
  11. New file added: system/classes/Region/ajax_region_select.tpl
  12. New file added: system/classes/Region/ajax_region_select_main.tpl
  13. New file added: system/classes/Region/billing_country_selector.tpl
  14. New file added: system/classes/Region/billing_state_selector.tpl
  15. New file added: system/classes/Region/listing_region_breadcrumb.tpl
  16. In file system/order_items/shared/listing_collect_details.tpl

    1. Near line 502, FIND:
      			</div>
      		{/if}
      		
      		{if $fields->city->is_enabled && ($editCheck || $fields->city->can_edit)}
      			<div class="{if $error_msgs.city}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				<label for="city" class="field_label">{$messages.1129}</label>
      				{if $error_msgs.city}

      Replace With:
      			</div>
      		{/if}
      		
      		{if $region_selector && ($editCheck || $fields->region_level_1->can_edit)} {* allow editing based on "level 1" switch...for now... *}
      			<div class="{if $error_msgs.location}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				{if $error_msgs.location}
      					<span class="error_message">{$messages.501631}</span>
      				{/if}
      				{$region_selector}
      			</div>
      		{/if}
      		
      		{if $fields->city->is_enabled && ($editCheck || $fields->city->can_edit) && !$geographicOverrides.city}
      			<div class="{if $error_msgs.city}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				<label for="city" class="field_label">{$messages.1129}</label>
      				{if $error_msgs.city}
    2. Near line 520, FIND:
      		{/if}
      		
      		
      		{capture name="country_field" assign="country_field"}
      			{if $fields->country->is_enabled && ($editCheck || $fields->country->can_edit)}
      				<div class="{if $error_msgs.country}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="country" class="field_label">{$messages.115}</label>
      					{if $error_msgs.country}
      						<span class="error_message">{$messages.128}</span>
      					{/if}
      					{$country_html}
      				</div>
      			{/if}
      		{/capture}
      		
      		{if $country_field_isFancy}
      			{$country_field}
      		{/if}
      		
      		{if $fields->state->is_enabled && ($editCheck || $fields->state->can_edit)}
      			<div class="{if $error_msgs.state}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				<label for="state" class="field_label">{$messages.127}</label>
      				{if $error_msgs.state}
      					<span class="error_message">{$messages.117}</span>
      				{/if}
      				{$state_html}
      			</div>
      		{/if}
      		
      		{if $fields->zip->is_enabled}
      			<div class="{if $error_msgs.zip_code}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				<label for="zip_code" class="field_label">{$messages.121}</label>

      Replace With:
      		{/if}
      		
      		
      		{if $fields->zip->is_enabled}
      			<div class="{if $error_msgs.zip_code}field_error_row {/if}{cycle values='row_odd,row_even'}">
      				<label for="zip_code" class="field_label">{$messages.121}</label>
    3. Near line 566, FIND:
      			</div>
      		{/if}
      		
      		{if !$country_field_isFancy}
      			{$country_field}
      		{/if}
      	</div>
      	<br />
      

      Replace With:
      			</div>
      		{/if}
      		
      		
      	</div>
      	<br />
      
    4. Near line 722, FIND:
      		</div>
      	{/if}
      {********************************************}
      	{if $fields->mapping_address->is_enabled || $fields->mapping_city->is_enabled || 
      		$fields->mapping_state->is_enabled || $fields->mapping_country->is_enabled ||
      		$fields->mapping_zip->is_enabled}
      		<br />
      		<div class="content_box">
      			<h2 class="title">{$messages.1622}</h2>
      			<p class="page_instructions">{$messages.1623}</p>
      			
      			{if $fields->mapping_address->is_enabled}
      				<div class="{if $error_msgs.mapping_address}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="mapping_address" class="field_label">{$messages.1617}</label>
      					<input type="text" id="mapping_address" name="b[mapping_address]" value="{$session_variables.mapping_address}" class="field" />
      					{if $error_msgs.mapping_address}
      						<span class="error_message">{$messages.500100}</span>
      					{/if}
      				</div>
      			{/if}
      			{if $fields->mapping_city->is_enabled}
      				<div class="{if $error_msgs.mapping_city}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="mapping_city" class="field_label">{$messages.1618}</label>
      					<input type="text" id="mapping_city" name="b[mapping_city]" value="{$session_variables.mapping_city}" class="field" />
      					{if $error_msgs.mapping_city}
      						<span class="error_message">{$messages.500101}</span>
      					{/if}
      				</div>
      			{/if}
      			{capture name="mapping_country_field" assign="mapping_country_field"}
      				{if $fields->mapping_country->is_enabled}
      					<div class="{if $error_msgs.mapping_country}field_error_row {/if}{cycle values='row_odd,row_even'}">
      						<label for="mapping_country" class="field_label">{$messages.1620}</label>
      						{$mapping_country_dropdown}
      						{if $error_msgs.mapping_country}
      							<span class="error_message">{$messages.500103}</span>
      						{/if}
      					</div>
      				{/if}
      			{/capture}
      			{if $country_field_isFancy}
      				{$mapping_country_field}
      			{/if}
      			
      			{if $fields->mapping_state->is_enabled}
      				<div class="{if $error_msgs.mapping_state}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="mapping_state" class="field_label">{$messages.1619}</label>
      					{$mapping_state_dropdown}
      					{if $error_msgs.mapping_state}
      						<span class="error_message">{$messages.500102}</span>
      					{/if}
      				</div>
      			{/if}
      			{if $fields->mapping_zip->is_enabled}
      				<div class="{if $error_msgs.mapping_zip}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="mapping_state" class="field_label">{$messages.1621}</label>
      					<input type="text" id="mapping_zip" name="b[mapping_zip]" value="{$session_variables.mapping_zip}" class="field" />
      					{if $error_msgs.mapping_zip}
      						<span class="error_message">{$messages.500104}</span>
      					{/if}
      				</div>
      			{/if}
      			{if !$country_field_isFancy}
      				{$mapping_country_field}
      			{/if}
      		</div>
      	{/if}
      	{if $moreDetailsEnd}

      Replace With:
      		</div>
      	{/if}
      {********************************************}
      	{if $fields->mapping_location->is_enabled}
      		<br />
      		<div class="content_box">
      			<h2 class="title">{$messages.1622}</h2>
      			<p class="page_instructions">{$messages.1623}</p>
      			
      				<div class="{if $error_msgs.mapping_location}field_error_row {/if}{cycle values='row_odd,row_even'}">
      					<label for="mapping_location" class="field_label">{$messages.1617}</label>
      					<input type="text" id="mapping_location" name="b[mapping_location]" value="{$session_variables.mapping_location}" class="field" size="70" />
      					{if $error_msgs.mapping_location}
      						<span class="error_message">{$messages.500100}</span>
      					{/if}
      				</div>
      			
      		</div>
      	{/if}
      	{if $moreDetailsEnd}
  17. New file added: system/other/choose_language_form.tpl
  18. In file system/search_class/details_form.tpl

    1. Near line 42, FIND:
      					<input type='checkbox' id='search_descriptions' name='b[search_descriptions]' value='1' checked='checked' />
      				</div>
      			{/if}
      			{if $queryFields.price}
      				<h1 class="subtitle">{$messages.788}</h1>
      				<div class="{cycle values='row_odd,row_even'}">

      Replace With:
      					<input type='checkbox' id='search_descriptions' name='b[search_descriptions]' value='1' checked='checked' />
      				</div>
      			{/if}
      			
      			{if $queryFields.price}
      				<h1 class="subtitle">{$messages.788}</h1>
      				<div class="{cycle values='row_odd,row_even'}">
    2. Near line 129, FIND:
      	
      	<div class="clr"><br /></div>
      	
      	{if $use_zip_distance_calculator || $queryFields.state || $queryFields.city || $queryFields.country || $show_optionals || $addonCriteria}
      		{* only show this container if it's actually going to have something inside of it *}
      		
      		<div class="content_box">

      Replace With:
      	
      	<div class="clr"><br /></div>
      	
      	{if $region_selector || $use_zip_distance_calculator || $queryFields.state || $queryFields.city || $queryFields.country || $show_optionals || $addonCriteria}
      		{* only show this container if it's actually going to have something inside of it *}
      		
      		<div class="content_box">
    3. Near line 153, FIND:
      				</div>
      				<div class="divider"></div>
      			{/if}
      			{if $queryFields.state || $queryFields.city || $queryFields.country}
      				<h1 class="subtitle">{$messages.500809}</h1>
      			{/if}
      			{if $queryFields.state}
      				<div class="{cycle values='row_odd,row_even'}">
      					<label class="field_label">{$messages.582}</label> 
      					<select name='b[by_state]' class="field">
      						{foreach from=$states item=s}
      							<option value="{$s.value}" {if $s.selected}selected="selected"{/if}>{$s.label}</option>
      						{/foreach}
      					</select>
      					{$tooltip.4}
      				</div>
      			{/if}
      			{if $queryFields.city}

      Replace With:
      				</div>
      				<div class="divider"></div>
      			{/if}
      			{if $region_selector || $queryFields.city}
      				<h1 class="subtitle">{$messages.500809}</h1>
      			{/if}
      			{if $region_selector}
      				<div class="{cycle values='row_odd,row_even'}">
      					{$region_selector}
      				</div>
      			{/if}
      			{if $queryFields.city}
    4. Near line 173, FIND:
      					<input type="text" id="by_city" name="b[by_city]" maxlength="50" class="field" />
      				</div>
      			{/if}
      			{if $queryFields.country}
      				<div class="{cycle values='row_odd,row_even'}">
      					<label class="field_label">{$messages.578}</label> 
      					<select name='b[by_country]' class="field">
      						{foreach from=$countries item=c}
      							<option value="{$c.value}" {if $c.selected}selected="selected"{/if}>{$c.label}</option>
      						{/foreach}
      					</select>
      					{$tooltip.5}
      				</div>
      			{/if}
      			{if $show_optionals || $addonCriteria}
      				<h1 class="subtitle">{$messages.500807}</h1>
      			{/if}

      Replace With:
      					<input type="text" id="by_city" name="b[by_city]" maxlength="50" class="field" />
      				</div>
      			{/if}
      			
      			{if $show_optionals || $addonCriteria}
      				<h1 class="subtitle">{$messages.500807}</h1>
      			{/if}
  19. In file system/user_management/expired_ads/expired_ad_details.tpl

    Near line 58, FIND:
    	</div>
    	<div class="{cycle values='row_odd,row_even'}">
    		<label class="field_label">{$messages.454}</label>
    		{$ad->LOCATION_COUNTRY|fromDB} {$ad->LOCATION_STATE|fromDB} {$ad->LOCATION_ZIP|fromDB}
    	</div>
    	<div class="{cycle values='row_odd,row_even'}">
    		<label class="field_label">{$messages.453}</label>

    Replace With:
    	</div>
    	<div class="{cycle values='row_odd,row_even'}">
    		<label class="field_label">{$messages.454}</label>
    		{$ad->LOCATION_ZIP|fromDB}
    	</div>
    	<div class="{cycle values='row_odd,row_even'}">
    		<label class="field_label">{$messages.453}</label>
  20. In file system/user_management/information/edit_user_form.tpl

    1. Near line 91, FIND:
      				{if $error.address_2}<br /><span class="error_message">{$error.address_2}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_CITY_FIELD}
      			<div class="{if $error.city}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_CITY_FIELD}required{else}field_label{/if}">{$messages.526}{if $rc->REQUIRE_REGISTRATION_CITY_FIELD} *{/if}</label>
      				<input type="text" name="c[city]" class="field" value="{$info.city|fromDB}" />

      Replace With:
      				{if $error.address_2}<br /><span class="error_message">{$error.address_2}</span>{/if}
      			</div>
      		{/if}
      		
      		{if $regionSelector}
      			<div class="{if $error.city || $error.country || $error.state}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				{$regionSelector}
      				{if $showCheckboxes}<input type="checkbox" name="d[expose_city]" value="1"{if $show->EXPOSE_CITY || $show->EXPOSE_COUNTRY || $show->EXPOSE_STATE} checked="checked"{/if} /> {$messages.1574}{/if}
      			</div>
      		{/if}
      		
      		{if $rc->USE_REGISTRATION_CITY_FIELD && !$regionOverrides.city}
      			<div class="{if $error.city}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_CITY_FIELD}required{else}field_label{/if}">{$messages.526}{if $rc->REQUIRE_REGISTRATION_CITY_FIELD} *{/if}</label>
      				<input type="text" name="c[city]" class="field" value="{$info.city|fromDB}" />
    2. Near line 99, FIND:
      				{if $error.city}<br /><span class="error_message">{$error.city}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_COUNTRY_FIELD && $fancyRegion}
      			<div class="{if $error.country}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_COUNTRY_FIELD}required{else}field_label{/if}">{$messages.529}{if $rc->REQUIRE_REGISTRATION_COUNTRY_FIELD} *{/if}</label>
      				{$region}
      				{if $showCheckboxes}<input type="checkbox" name="d[expose_country]" value="1"{if $show->EXPOSE_COUNTRY} checked="checked"{/if} /> {$messages.1574}{/if}
      				{if $error.country}<br /><span class="error_message">{$error.country}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_STATE_FIELD}
      			<div class="{if $error.state}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_STATE_FIELD}required{else}field_label{/if}">{$messages.527}{if $rc->REQUIRE_REGISTRATION_STATE_FIELD} *{/if}</label>
      				{$subRegion}
      				{if $showCheckboxes}<input type="checkbox" name="d[expose_state]" value="1"{if $show->EXPOSE_STATE} checked="checked"{/if} /> {$messages.1574}{/if}
      				{if $error.state}<br /><span class="error_message">{$error.state}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_ZIP_FIELD}
      			<div class="{if $error.zip}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_ZIP_FIELD}required{else}field_label{/if}">{$messages.528}{if $rc->REQUIRE_REGISTRATION_ZIP_FIELD} *{/if}</label>

      Replace With:
      				{if $error.city}<br /><span class="error_message">{$error.city}</span>{/if}
      			</div>
      		{/if}
      		
      		{if $rc->USE_REGISTRATION_ZIP_FIELD}
      			<div class="{if $error.zip}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_ZIP_FIELD}required{else}field_label{/if}">{$messages.528}{if $rc->REQUIRE_REGISTRATION_ZIP_FIELD} *{/if}</label>
    3. Near line 123, FIND:
      				{if $error.zip}<br /><span class="error_message">{$error.zip}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_COUNTRY_FIELD && !$fancyRegion}
      			<div class="{if $error.country}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_COUNTRY_FIELD}required{else}field_label{/if}">{$messages.529}{if $rc->REQUIRE_REGISTRATION_COUNTRY_FIELD} *{/if}</label>
      				{$region}
      				{if $showCheckboxes}<input type="checkbox" name="d[expose_country]" value="1"{if $show->EXPOSE_COUNTRY} checked="checked"{/if} /> {$messages.1574}{/if}
      				{if $error.country}<br /><span class="error_message">{$error.country}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_PHONE_FIELD}
      			<div class="{if $error.phone}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_PHONE_FIELD}required{else}field_label{/if}">{$messages.530}{if $rc->REQUIRE_REGISTRATION_PHONE_FIELD} *{/if}</label>

      Replace With:
      				{if $error.zip}<br /><span class="error_message">{$error.zip}</span>{/if}
      			</div>
      		{/if}
      		{if $rc->USE_REGISTRATION_PHONE_FIELD}
      			<div class="{if $error.phone}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
      				<label class="{if $rc->REQUIRE_REGISTRATION_PHONE_FIELD}required{else}field_label{/if}">{$messages.530}{if $rc->REQUIRE_REGISTRATION_PHONE_FIELD} *{/if}</label>
  21. In file system/user_management/information/price_plan_info.tpl

    1. Near line 20, FIND:
      {if count($categories) > 0}
      	<br />
      	<div class="content_box">
      		<h2 class="title">{$messages.738}</h2>
      		<p class="page_instructions">{$messages.739}</p>
      		

      Replace With:
      {if count($categories) > 0}
      	<br />
      	<div class="content_box">
      		{if $pagination}<a name="plan{$plan}"></a>{/if}
      		<h2 class="title">{$messages.738}</h2>
      		<p class="page_instructions">{$messages.739}</p>
      		
    2. Near line 32, FIND:
      				</div>
      			{/foreach}
      		{/foreach}
      	</div>
      {/if}

      Replace With:
      				</div>
      			{/foreach}
      		{/foreach}
      		{if $pagination}{$pagination}{/if}
      	</div>
      {/if}

7.0.1 (August 28, 2012)

[Enhancements]

500 - extraneous Region select box appears in search module
504 - improve Fields to Use for Region fields
505 - Switch "mapping link" to use Google Maps instead of Mapquest
510 - Storefront: move "Display Storefront Link" setting to Fields to Use

[Security Fixes]

- No Security fixes or patches for this release.

[Fixes/Maintenance]

482 - Error when creating new categories
503 - Tax percentage is not used during checkout
487 - State Filter Module doesn't work
488 - Fatal Error in GeoNav's change_region_link popup
489 - allow location breadcrumb to display while individual levels are off
490 - hardcoded text in user_management_current_ads.php
492 - city field's "require" setting activating when it should be overridden by Region settings
493 - Storefront: fixed a rare 404 link
494 - just-in-time registration does not assign initial account balance to new users
496 - Fixed bugs with geographic "always show" level option
497 - don't error on required Region fields when they're not editable
499 - advanced search page shows all region search options when they're all turned off
501 - listing edit mangles location
502 - listing display missing state data
506 - Browsing modules do not show all classified/auction specific fields
507 - Regions data lost when using registration confirmation
508 - subscriptions created with a free subscription period on registration never expire
509 - missing string decode in region selector
511 - fixed a few instances of GeoNav showing disabled regions

[Template Changes]

Reference Purposes Only: Like the rest of this changelog, the template changes below are for reference purposes only, not (necessarily) a list of changes everyone needs to follow. Refer to the full update instructions to find if you need to make any template changes during an update.

Legend

Note the following about highlighted lines you will see in this section.

This is a line that has been Added
This is a line that has been Removed
This is a line that has not changed.
  1. In file main_page/header.tpl

    Near line 59, FIND:
    	 <!-- START SOCIAL LINKS -->
    	<div id="social_links">
    		<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_facebook.jpg'}" alt="" /></a>
    		<a href="http://business.twitter.com/twitter101/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_twitter.jpg'}" alt="" /></a>
    		<a href="/wiki/tutorials/feeds/start" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_rss.jpg'}" alt="" /></a>
    	</div>
    	<!-- END SOCIAL LINKS -->

    Replace With:
    	 <!-- START SOCIAL LINKS -->
    	<div id="social_links">
    		<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_facebook.jpg'}" alt="" /></a>
    		<a href="https://business.twitter.com/en/basics/what-is-twitter/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_twitter.jpg'}" alt="" /></a>
    		<a href="/wiki/tutorials/feeds/start" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_rss.jpg'}" alt="" /></a>
    	</div>
    	<!-- END SOCIAL LINKS -->
  2. In file module/shared/browsing_pic.tpl

    Near line 112, FIND:
    											<em>{$headers.$col.text}</em>
    											{$l.$col}
    											<br />
    									{/if}
    								{/for}

    Replace With:
    											<em>{$headers.$col.text}</em>
    											{$l.$col}
    											<br />
    										</span>
    									{/if}
    								{/for}
  3. In file system/classes/Region/ajax_region_select.tpl

    1. Near line 22, FIND:
      				onSuccess: function(ret) {
      					if(ret.responseText.length > 0) {
      						$('region_selector_wrapper').insert(ret.responseText);
      					}
      				}
      			});

      Replace With:
      				onSuccess: function(ret) {
      					if(ret.responseText.length > 0) {
      						$('region_selector_wrapper').insert(ret.responseText);
      						if($('region_fake_{$level.id + 1}')) {
      							{* if a fake box for the new level is present, remove it *}
      							$('region_fake_{$level.id + 1}').remove();
      						}
      					}
      				}
      			});
    2. Near line 45, FIND:
      					if($('region_wrapper_'+i)) {
      						$('region_wrapper_'+i).remove();
      					}
      				}
      				
      				if($('region_level_{$level.id}').value.length == 0) {

      Replace With:
      					if($('region_wrapper_'+i)) {
      						$('region_wrapper_'+i).remove();
      					}
      					if($('region_fake_'+i)) {
      						$('region_fake_'+i).remove();
      					}
      				}
      				
      				if($('region_level_{$level.id}').value.length == 0) {
  4. In file system/classes/Region/ajax_region_select_main.tpl

    Near line 1, FIND:
    {* @git-info@ *}
    <div class="region_selector_wrapper" id="region_selector_wrapper" style="width: 100%;">
    	
    	{include file='Region/ajax_region_select.tpl'}
    	
    	{foreach $fakeLevels as $fake}
    		<div class="region_selector" style="display: inline-block; margin: 0px 5px;" id="region_wrapper_{$fake.id}">
    			{if $fake.use_label}<label class="field_label" style="width: auto;">{$fake.label}</label>{/if}<br />
    			<select name="fake_region" class="field" disabled="disabled"><option value=""></option></select>
    		</div>
    	{/foreach}
    		
    </div>

    Replace With:
    {* @git-info@ *}
    <div class="region_selector_wrapper" id="region_selector_wrapper" style="display: inline-block;">
    	
    	{include file='Region/ajax_region_select.tpl'}
    		
    </div>
    <div id="region_selector_placeholders" {if !$buildDown}style="display: inline-block;"{/if}>
    	{foreach $fakeLevels as $fake}
    		{* capture the dropdown to make the javascript prettier... *}
    		{capture assign="fakeDDL"}{strip}
    			<div class="region_selector" style="display: inline-block; margin: 0px 5px;" id="region_fake_{$fake.id}">
    			{if $fake.use_label}<label class="field_label" style="width: auto;">{$fake.label}</label>{/if}<br />
    			<select name="fake_region" class="field" disabled="disabled"><option value=""></option></select></div>
    		{/strip}{/capture}
    		
    		{* check to see if the real box exists before adding its fake *}
    		<script type="text/javascript">
    			Event.observe(window,'load',function() {
    				if(!$('region_wrapper_{$fake.id}')) {
    					$('region_selector_placeholders').insert('{$fakeDDL}');
    				}
    			});
    		</script>
    	{/foreach}
    </div>
  5. In file system/registration/registration_form.tpl

    Near line 12, FIND:
    		
    		{foreach from=$fields item=f}
    			<div class="{if $f.error}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
    				<label for="{$f.name}" class="{if $f.required}required{else}field_label{/if}">{$f.label|fromDB}{if $f.required} *{/if}</label>
    				
    				{if $f.type == "text"}
    					<input type="text" id="{$f.name}" name="{$f.name}" value="{$f.value}" size="{if $f.size > 30}30{else}{$f.size}{/if}" maxlength="{if !$f.size}100{else}{$f.size}{/if}" class="field" />

    Replace With:
    		
    		{foreach from=$fields item=f}
    			<div class="{if $f.error}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
    				{if $f.label}<label for="{$f.name}" class="{if $f.required}required{else}field_label{/if}">{$f.label|fromDB}{if $f.required} *{/if}</label>{/if}
    				
    				{if $f.type == "text"}
    					<input type="text" id="{$f.name}" name="{$f.name}" value="{$f.value}" size="{if $f.size > 30}30{else}{$f.size}{/if}" maxlength="{if !$f.size}100{else}{$f.size}{/if}" class="field" />

7.0.2 (September 26, 2012)

[Enhancements]

516 - Make it skip entries that are just 1 character long in the geographic region mass add tool
518 - Speed optimizations for new Geographic Regions system
531 - make seller info available to dutch auction emails
533 - add a label for the Region Selector inputs
539 - Facilitate allowing any module setting to be over-ridden using module tag parameters in templates
556 - Improve display of Region levels containing only a single region
523 - Use thead and tbody for listing set (browsing listings), to make unique styling easier

[Security Fixes]

- No Security fixes or patches for this release.

[Fixes/Maintenance]

534 - missing database field for new installs
525 - populate "seller" template vars from new Regions system
529 - cannot clear Paypal ID email field
530 - sorting search results loses Region search terms
538 - city region override doesn't correctly ignore old "required" switch during registration
546 - Storefront: fix List Stores page to work with GeoCore Regions
550 - Geographic navigation "change location" link does not work if there is "action" parameter in URL
551 - in category navigation modules, "back to parent category" links don't go to the parent category
553 - let geoUser objects know about new Regions
555 - Require verified account does not always work, if something costs money in the cart
557 - Storefront: state and country do not appear on storefront browsing
558 - Location data missing when editing old listings
513 - Filter by language does not apply to searches
517 - Timeout issue causes same expiration e-mails to send over and over
526 - update admin list of tags available on listing details page to reflect changes to mapping links
536 - Pagination on categories not SEO re-written on categories with cat-specific fields
545 - Fix navigation_top tag in geographic navigation addon
559 - JS error on user groups edit default price plan attachments page

[Template Changes]

Reference Purposes Only: Like the rest of this changelog, the template changes below are for reference purposes only, not (necessarily) a list of changes everyone needs to follow. Refer to the full update instructions to find if you need to make any template changes during an update.

Legend

Note the following about highlighted lines you will see in this section.

This is a line that has been Added
This is a line that has been Removed
This is a line that has not changed.
  1. In file external/css/theme_styles.css

    Near line 2605, FIND:
    	color: #bbb;
    }
    

    Replace With:
    	color: #bbb;
    }
    
    /* ******* Region Selectors ******** */
    
    .region_selector {
    	display: inline-block;
    }
    
    .region_label {
    	width: auto;
    }
    
    .region_scalar_name {
    	height: 38px;
    	margin-top: 12px;
    	font-weight: bold;
    	display: inline-block;
    }
    
    .onlyRegionOnLevel,
    .field_label.region_scalar_label,
    .region_scalar_name,
    select.field.onlyRegionOnLevel,
    #breadcrumb li.onlyRegionOnLevel
    {
    	display: none;
    }
  2. In file module/shared/category_navigation.tpl

    1. Near line 25, FIND:
      			{/foreach}
      			{if $parent_category_text && $smarty.foreach.catlist.last}
      				<li class="element_highlight">
      					<a href="{$current_category_url}">{$parent_category_text}</a>
      				</li>
      			{/if}
      		</ul>

      Replace With:
      			{/foreach}
      			{if $parent_category_text && $smarty.foreach.catlist.last}
      				<li class="element_highlight">
      					<a href="{$parent_category_url}">{$parent_category_text}</a>
      				</li>
      			{/if}
      		</ul>
    2. Near line 41, FIND:
      				</li>
      				{if $parent_category_text}
      					<li class="element_highlight">
      						<a href="{$current_category_url}">{$parent_category_text}</a>
      					</li>
      				{/if}
      			</ul>

      Replace With:
      				</li>
      				{if $parent_category_text}
      					<li class="element_highlight">
      						<a href="{$parent_category_url}">{$parent_category_text}</a>
      					</li>
      				{/if}
      			</ul>
  3. In file system/browsing/common/listing_set.tpl

    Near line 8, FIND:
    	{* ---------BEGIN HEADER ROW--------- *}
    	<table cellpadding="3" cellspacing="2" class="listing_results">
    		{if !$hide_headers}
    			<tr class="results_column_header">
    			
    				{* in hopes of making things easy on anyone who would like to modify this template, 
    					this first column is intentionally over-commented *}
    		
    				{if $cfg.cols.type} 
    					{* $cfg.cols array holds whether or not a column is being used *}
    					
    					<td class="browse_table_column_header_type">
    						{* $headers.business_type.css holds the default css class for this header *}
    						
    						{* 
    							$cfg.browse_url points to the current page, and ends in "c="
    							$headers.business_type.reorder holds the value of "c", which tells the system how to re-sort the listings if this link is clicked
    							$headers.business_type.text is the text of this header, changeable in the Geodesic admin controls
    						*}
    						{if $cfg.sort_links}<a class="{$headers.type.css}" href="{$cfg.browse_url}{$headers.type.reorder}">{/if}
    							{$headers.type.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.business_type}
    					<td class="browse_table_column_header_business_type{if $cfg.sort_links && $headers.business_type.reorder != 43} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.business_type.css}" href="{$cfg.browse_url}{$headers.business_type.reorder}">{/if}
    							{$headers.business_type.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.image}
    					{* can't sort by image, so no link here *}
    					<td class="browse_table_column_image">{$headers.image.text}</td>
    				{/if}
    				
    				{if $cfg.cols.title}
    					<td class="{if $cfg.sort_links && $headers.title.reorder != 5}sorted_by {/if}{if $cfg.cols.description}half{else}title{/if}">
    						{if $cfg.sort_links}<a class="{$headers.title.css}" href="{$cfg.browse_url}{$headers.title.reorder}">{/if}
    							{$headers.title.text}
    						{if $cfg.sort_links}</a>{/if}
    						{if $cfg.description_under_title}<br />{$headers.description.text}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.description}
    					{* can't order by description, so no link here *}
    					<td class="half">{$headers.description.text}</td>
    				{/if}
    				
    				{if $cfg.cols.tags}
    					<td class="browse_table_column_header_tags">
    						{$headers.tags.text}
    					</td>
    				{/if}
    				
    				{if count($headers.optionals) > 0}
    					{foreach from=$headers.optionals item=optional_header key="fieldNum"}
    						{* $headers.optionals is indexed 1-20, so you could split this out of the loop if you really wanted to...
    							e.g.: $headers.optionals.1.text to get the header text for "optional field 1" *}
    							
    						<td class="browse_table_column_header_{$fieldNum}{if $cfg.sort_links && ($fieldNum <= 10 && (($optional_header.reorder-15)/2)+1 != $fieldNum) || ($fieldNum > 10 && (($optional_header.reorder-45)/2)+11 != $fieldNum)} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$optional_header.css}" href="{$cfg.browse_url}{$optional_header.reorder}">{/if}
    								{$optional_header.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/foreach}
    				{/if}
    				
    				{if $cfg.cols.address}
    					<td class="browse_table_column_header_address">
    						{if $cfg.sort_links}<a class="{$headers.address.css}" href="{$cfg.browse_url}{$headers.address.reorder}">{/if}
    							{$headers.address.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.city}
    					<td class="browse_table_column_header_city{if $cfg.sort_links && $headers.city.reorder != 35} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.city.css}" href="{$cfg.browse_url}{$headers.city.reorder}">{/if}
    							{$headers.city.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    							
    				{if $cfg.cols.zip}
    					<td class="browse_table_column_header_zip{if $cfg.sort_links && $headers.zip.reorder != 41} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.zip.css}" href="{$cfg.browse_url}{$headers.zip.reorder}">{/if}
    							{$headers.zip.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				
    				{for $level=1 to $cfg.maxLocationDepth}
    					{$col = "region_level_$level"}
    					{if $cfg.cols.$col}
    						<td class="browse_table_column_header_{$col}">
    								{$headers.{$col}.text}
    						</td>
    					{/if}
    				{/for}
    				
    				{if $cfg.cols.location_breadcrumb}
    					<td class="browse_table_column_header_location_breadcrumb">
    							{$headers.location_breadcrumb.text}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.num_bids}
    					<td class="browse_table_column_header_num_bids">
    						{if $cfg.sort_links}<a class="{$headers.num_bids.css}" href="{$cfg.browse_url}{$headers.num_bids.reorder}">{/if}
    							{$headers.num_bids.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.price}
    					<td class="browse_table_column_header_price{if $cfg.sort_links && $headers.price.reorder != 1} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.price.css}" href="{$cfg.browse_url}{$headers.price.reorder}">{/if}
    							{$headers.price.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.entry_date}
    					<td class="browse_table_column_header_entry_date{if $cfg.sort_links && $headers.entry_date.reorder != 68} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.entry_date.css}" href="{$cfg.browse_url}{$headers.entry_date.reorder}">{/if}
    							{$headers.entry_date.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.time_left}
    					<td class="browse_table_column_header_time_left{if $cfg.sort_links && $headers.time_left.reorder != 70} sorted_by{/if}">
    						{if $cfg.sort_links}<a class="{$headers.time_left.css}" href="{$cfg.browse_url}{$headers.time_left.reorder}">{/if}
    							{$headers.time_left.text}
    						{if $cfg.sort_links}</a>{/if}
    					</td>
    				{/if}
    				
    				{* allow Addons to add their own column headers here *}
    				{if $addonHeaders}
    					{foreach from=$addonHeaders item=addon}
    						{foreach from=$addon item=header}
    							<td{if $header.css} class="{$header.css}"{/if}>
    								{$header.text}
    							</td>
    						{/foreach}
    					{/foreach}
    				{/if}
    				
    				{if $cfg.cols.edit}
    					<td>{$headers.edit.text}</td>
    				{/if}
    				
    				{if $cfg.cols.delete}
    					<td>{$headers.delete.text}</td>
    				{/if}
    		
    			</tr>
    		{/if}
    			
    	{* ---------END HEADER ROW--------- *}
    					
    		{foreach from=$listings item=l key=id name=set}
    		
    			<tr class="{$l.css}">
    				
    				{if $cfg.cols.type}
    					<td class="center">
    						{$l.type}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.business_type}
    					<td class="center">
    						{$l.business_type}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.image}
    					<td class="center">
    						{if $l.full_image_tag}
    							{$l.image}
    						{else}
    							<a href="{$cfg.listing_url}{$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popup_height},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
    								<img src="{$l.image}" alt="" />
    							</a>
    						{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.title}
    					<td style="width: {if $cfg.cols.description}50{else}100{/if}%">
    						{* if description column is active, this and it share half width (class "half"). if not, this column gets max width (class "title") *}
    						
    						{if $l.icons.sold}<img src="{$cfg.icons.sold}" alt="" />{/if}
    						
    						<a href="{$cfg.listing_url}{$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popup_height},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
    							{$l.title}
    						</a>
    						{if $l.icons.verified}<img src="{$cfg.icons.verified}" alt="" />{/if}
    						{if $l.icons.buy_now}<img src="{$cfg.icons.buy_now}" alt="" />{/if}
    						{if $l.icons.reserve_met}<img src="{$cfg.icons.reserve_met}" alt="" />{/if}
    						{if $l.icons.no_reserve}<img src="{$cfg.icons.no_reserve}" alt="" />{/if}
    						
    						{if $l.icons.attention_getter}<img src="{$l.attention_getter_url}" alt="" />{/if}
    						
    						{if $cfg.description_under_title}<p class="listing_results_description">{$l.description}</p>{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.description}
    				 	{* this column is only shown alongside the title column, never by itself (but is sometimes not shown at all), so it gets a hard width of 50% *}
    					<td style="width: 50%;">
    						{$l.description}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.tags}
    					<td class="tag_list_data">
    						{if $l.tags}
    							{include file='common/listing_tags.tpl' listing_tags_array=$l.tags g_resource='browsing'}
    						{/if}
    					</td>
    				{/if}
    				
    				{section name=optionals start=1 loop=21}
    					{assign var='field' value=$smarty.section.optionals.index}
    					{if $cfg.cols.optionals.$field}
    						<td class="center">
    							{if $l.optionals.$field}{$l.optionals.$field}{else}-{/if}
    						</td>
    					{/if}
    				{/section}
    				
    				{if $cfg.cols.address}
    					<td class="center">
    						{if $l.address}{$l.address}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.city}
    					<td class="center">
    						{if $l.city}{$l.city}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.zip}
    					<td class="center">
    						{if $l.zip}{$l.zip}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{for $level=1 to $cfg.maxLocationDepth}
    					{$col = "region_level_$level"}
    					{if $cfg.cols.$col}
    						<td class="center nowrap">
    								{if $l.$col}{$l.$col}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    				{/for}
    				
    				
    				{if $cfg.cols.location_breadcrumb}
    					<td class="center nowrap">
    						{if $l.location_breadcrumb}{$l.location_breadcrumb}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.num_bids}
    					<td class="center nowrap">
    						{if $l.num_bids}{$l.num_bids}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.price}
    					<td class="center nowrap price">
    						{if $l.price}{$l.price}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.entry_date}
    					<td class="center nowrap">
    						{if $l.entry_date}{$l.entry_date}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $cfg.cols.time_left}
    					<td class="center nowrap">
    						{if $l.time_left}{$l.time_left}{else}{$cfg.empty}{/if}
    					</td>
    				{/if}
    				
    				{if $l.addonData}
    					{* let addons add columns if they want to *}
    					{foreach from=$l.addonData item=addonRows}
    						{foreach from=$addonRows item=addonText}
    							<td class="center nowrap">
    								{$addonText}
    							</td>
    						{/foreach}
    					{/foreach}
    				{/if}
    				
    				{if $cfg.cols.edit}
    					<td class="center">
    						<a href="{$classifieds_file_name}?a=cart&amp;action=new&amp;main_type=listing_edit&amp;listing_id={$id}"><img src="{external file='images/buttons/listing_edit.gif'}" alt="" /></a>
    					</td>
    				{/if}
    				
    				{if $cfg.cols.delete}
    					<td class="center">
    						<a onclick="if (!confirm('Are you sure you want to delete this?')) return false;" href="{$classifieds_file_name}?a=99&amp;b={$id}"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a>
    					</td>
    				{/if}
    				
    				
    			</tr>		
    		{/foreach}
    			
    			
    	</table>
    {/if}

    Replace With:
    	{* ---------BEGIN HEADER ROW--------- *}
    	<table cellpadding="3" cellspacing="2" class="listing_results">
    		{if !$hide_headers}
    			<thead>
    				<tr class="results_column_header">
    				
    					{* in hopes of making things easy on anyone who would like to modify this template, 
    						this first column is intentionally over-commented *}
    			
    					{if $cfg.cols.type} 
    						{* $cfg.cols array holds whether or not a column is being used *}
    						
    						<td class="browse_table_column_header_type">
    							{* $headers.business_type.css holds the default css class for this header *}
    							
    							{* 
    								$cfg.browse_url points to the current page, and ends in "c="
    								$headers.business_type.reorder holds the value of "c", which tells the system how to re-sort the listings if this link is clicked
    								$headers.business_type.text is the text of this header, changeable in the Geodesic admin controls
    							*}
    							{if $cfg.sort_links}<a class="{$headers.type.css}" href="{$cfg.browse_url}{$headers.type.reorder}">{/if}
    								{$headers.type.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.business_type}
    						<td class="browse_table_column_header_business_type{if $cfg.sort_links && $headers.business_type.reorder != 43} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.business_type.css}" href="{$cfg.browse_url}{$headers.business_type.reorder}">{/if}
    								{$headers.business_type.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.image}
    						{* can't sort by image, so no link here *}
    						<td class="browse_table_column_image">{$headers.image.text}</td>
    					{/if}
    					
    					{if $cfg.cols.title}
    						<td class="{if $cfg.sort_links && $headers.title.reorder != 5}sorted_by {/if}{if $cfg.cols.description}half{else}title{/if}">
    							{if $cfg.sort_links}<a class="{$headers.title.css}" href="{$cfg.browse_url}{$headers.title.reorder}">{/if}
    								{$headers.title.text}
    							{if $cfg.sort_links}</a>{/if}
    							{if $cfg.description_under_title}<br />{$headers.description.text}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.description}
    						{* can't order by description, so no link here *}
    						<td class="half">{$headers.description.text}</td>
    					{/if}
    					
    					{if $cfg.cols.tags}
    						<td class="browse_table_column_header_tags">
    							{$headers.tags.text}
    						</td>
    					{/if}
    					
    					{if count($headers.optionals) > 0}
    						{foreach from=$headers.optionals item=optional_header key="fieldNum"}
    							{* $headers.optionals is indexed 1-20, so you could split this out of the loop if you really wanted to...
    								e.g.: $headers.optionals.1.text to get the header text for "optional field 1" *}
    								
    							<td class="browse_table_column_header_{$fieldNum}{if $cfg.sort_links && ($fieldNum <= 10 && (($optional_header.reorder-15)/2)+1 != $fieldNum) || ($fieldNum > 10 && (($optional_header.reorder-45)/2)+11 != $fieldNum)} sorted_by{/if}">
    								{if $cfg.sort_links}<a class="{$optional_header.css}" href="{$cfg.browse_url}{$optional_header.reorder}">{/if}
    									{$optional_header.text}
    								{if $cfg.sort_links}</a>{/if}
    							</td>
    						{/foreach}
    					{/if}
    					
    					{if $cfg.cols.address}
    						<td class="browse_table_column_header_address">
    							{if $cfg.sort_links}<a class="{$headers.address.css}" href="{$cfg.browse_url}{$headers.address.reorder}">{/if}
    								{$headers.address.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.city}
    						<td class="browse_table_column_header_city{if $cfg.sort_links && $headers.city.reorder != 35} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.city.css}" href="{$cfg.browse_url}{$headers.city.reorder}">{/if}
    								{$headers.city.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    								
    					{if $cfg.cols.zip}
    						<td class="browse_table_column_header_zip{if $cfg.sort_links && $headers.zip.reorder != 41} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.zip.css}" href="{$cfg.browse_url}{$headers.zip.reorder}">{/if}
    								{$headers.zip.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					
    					{for $level=1 to $cfg.maxLocationDepth}
    						{$col = "region_level_$level"}
    						{if $cfg.cols.$col}
    							<td class="browse_table_column_header_{$col}">
    									{$headers.{$col}.text}
    							</td>
    						{/if}
    					{/for}
    					
    					{if $cfg.cols.location_breadcrumb}
    						<td class="browse_table_column_header_location_breadcrumb">
    								{$headers.location_breadcrumb.text}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.num_bids}
    						<td class="browse_table_column_header_num_bids">
    							{if $cfg.sort_links}<a class="{$headers.num_bids.css}" href="{$cfg.browse_url}{$headers.num_bids.reorder}">{/if}
    								{$headers.num_bids.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.price}
    						<td class="browse_table_column_header_price{if $cfg.sort_links && $headers.price.reorder != 1} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.price.css}" href="{$cfg.browse_url}{$headers.price.reorder}">{/if}
    								{$headers.price.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.entry_date}
    						<td class="browse_table_column_header_entry_date{if $cfg.sort_links && $headers.entry_date.reorder != 68} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.entry_date.css}" href="{$cfg.browse_url}{$headers.entry_date.reorder}">{/if}
    								{$headers.entry_date.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.time_left}
    						<td class="browse_table_column_header_time_left{if $cfg.sort_links && $headers.time_left.reorder != 70} sorted_by{/if}">
    							{if $cfg.sort_links}<a class="{$headers.time_left.css}" href="{$cfg.browse_url}{$headers.time_left.reorder}">{/if}
    								{$headers.time_left.text}
    							{if $cfg.sort_links}</a>{/if}
    						</td>
    					{/if}
    					
    					{* allow Addons to add their own column headers here *}
    					{if $addonHeaders}
    						{foreach from=$addonHeaders item=addon}
    							{foreach from=$addon item=header}
    								<td{if $header.css} class="{$header.css}"{/if}>
    									{$header.text}
    								</td>
    							{/foreach}
    						{/foreach}
    					{/if}
    					
    					{if $cfg.cols.edit}
    						<td>{$headers.edit.text}</td>
    					{/if}
    					
    					{if $cfg.cols.delete}
    						<td>{$headers.delete.text}</td>
    					{/if}
    			
    				</tr>
    			</thead>
    		{/if}
    			
    	{* ---------END HEADER ROW--------- *}
    		<tbody>
    			{foreach from=$listings item=l key=id name=set}
    			
    				<tr class="{$l.css}">
    					
    					{if $cfg.cols.type}
    						<td class="center">
    							{$l.type}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.business_type}
    						<td class="center">
    							{$l.business_type}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.image}
    						<td class="center">
    							{if $l.full_image_tag}
    								{$l.image}
    							{else}
    								<a href="{$cfg.listing_url}{$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popup_height},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
    									<img src="{$l.image}" alt="" />
    								</a>
    							{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.title}
    						<td style="width: {if $cfg.cols.description}50{else}100{/if}%">
    							{* if description column is active, this and it share half width (class "half"). if not, this column gets max width (class "title") *}
    							
    							{if $l.icons.sold}<img src="{$cfg.icons.sold}" alt="" />{/if}
    							
    							<a href="{$cfg.listing_url}{$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popup_height},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
    								{$l.title}
    							</a>
    							{if $l.icons.verified}<img src="{$cfg.icons.verified}" alt="" />{/if}
    							{if $l.icons.buy_now}<img src="{$cfg.icons.buy_now}" alt="" />{/if}
    							{if $l.icons.reserve_met}<img src="{$cfg.icons.reserve_met}" alt="" />{/if}
    							{if $l.icons.no_reserve}<img src="{$cfg.icons.no_reserve}" alt="" />{/if}
    							
    							{if $l.icons.attention_getter}<img src="{$l.attention_getter_url}" alt="" />{/if}
    							
    							{if $cfg.description_under_title}<p class="listing_results_description">{$l.description}</p>{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.description}
    					 	{* this column is only shown alongside the title column, never by itself (but is sometimes not shown at all), so it gets a hard width of 50% *}
    						<td style="width: 50%;">
    							{$l.description}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.tags}
    						<td class="tag_list_data">
    							{if $l.tags}
    								{include file='common/listing_tags.tpl' listing_tags_array=$l.tags g_resource='browsing'}
    							{/if}
    						</td>
    					{/if}
    					
    					{section name=optionals start=1 loop=21}
    						{assign var='field' value=$smarty.section.optionals.index}
    						{if $cfg.cols.optionals.$field}
    							<td class="center">
    								{if $l.optionals.$field}{$l.optionals.$field}{else}-{/if}
    							</td>
    						{/if}
    					{/section}
    					
    					{if $cfg.cols.address}
    						<td class="center">
    							{if $l.address}{$l.address}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.city}
    						<td class="center">
    							{if $l.city}{$l.city}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.zip}
    						<td class="center">
    							{if $l.zip}{$l.zip}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{for $level=1 to $cfg.maxLocationDepth}
    						{$col = "region_level_$level"}
    						{if $cfg.cols.$col}
    							<td class="center nowrap">
    									{if $l.$col}{$l.$col}{else}{$cfg.empty}{/if}
    							</td>
    						{/if}
    					{/for}
    					
    					
    					{if $cfg.cols.location_breadcrumb}
    						<td class="center nowrap">
    							{if $l.location_breadcrumb}{$l.location_breadcrumb}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.num_bids}
    						<td class="center nowrap">
    							{if $l.num_bids}{$l.num_bids}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.price}
    						<td class="center nowrap price">
    							{if $l.price}{$l.price}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.entry_date}
    						<td class="center nowrap">
    							{if $l.entry_date}{$l.entry_date}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $cfg.cols.time_left}
    						<td class="center nowrap">
    							{if $l.time_left}{$l.time_left}{else}{$cfg.empty}{/if}
    						</td>
    					{/if}
    					
    					{if $l.addonData}
    						{* let addons add columns if they want to *}
    						{foreach from=$l.addonData item=addonRows}
    							{foreach from=$addonRows item=addonText}
    								<td class="center nowrap">
    									{$addonText}
    								</td>
    							{/foreach}
    						{/foreach}
    					{/if}
    					
    					{if $cfg.cols.edit}
    						<td class="center">
    							<a href="{$classifieds_file_name}?a=cart&amp;action=new&amp;main_type=listing_edit&amp;listing_id={$id}"><img src="{external file='images/buttons/listing_edit.gif'}" alt="" /></a>
    						</td>
    					{/if}
    					
    					{if $cfg.cols.delete}
    						<td class="center">
    							<a onclick="if (!confirm('Are you sure you want to delete this?')) return false;" href="{$classifieds_file_name}?a=99&amp;b={$id}"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a>
    						</td>
    					{/if}
    					
    					
    				</tr>		
    			{/foreach}
    		</tbody>
    	</table>
    {/if}
  4. In file system/classes/Region/ajax_region_select.tpl

    Near line 1, FIND:
    {* @git-info@ *}
    <div class="region_selector" style="display: inline-block; margin: 0px 5px;" id="region_wrapper_{$level.id}">
    	{if $level.use_label}<label class="field_label" style="width: auto;">{$level.label}</label>{/if}<br />
    	
    	{if $isScalarLevel}
    		{* This is the only region on this level -- Print the region's name directly (and store its ID for form submission) *}
    		<span class="region_scalar_name_level_{$level.id}" style="height: 38px; margin-top: 12px; font-weight: bold; display: inline-block;">{$regions.0.name}</span>
    		<input type="hidden" name="{$fieldName}[{$level.id}]" value="{$regions.0.id}" />
    		
    		{* now go ahead and directly fire the ajax call to get the next level *}

    Replace With:
    {* @git-info@ *}
    <div class="region_selector" id="region_wrapper_{$level.id}">
    	{if $level.use_label}<label class="field_label region_label{if $isScalarLevel} region_scalar_label{/if}">{$level.label}</label>{/if}<br />
    	
    	{if $isScalarLevel}
    		{* This is the only region on this level -- Print the region's name directly (and store its ID for form submission) *}
    		<span class="region_scalar_name region_scalar_name_level_{$level.id}">{$regions.0.name}</span>
    		<input type="hidden" name="{$fieldName}[{$level.id}]" value="{$regions.0.id}" />
    		
    		{* now go ahead and directly fire the ajax call to get the next level *}
  5. In file system/classes/Region/ajax_region_select_main.tpl

    1. Near line 1, FIND:
      {* @git-info@ *}
      <div class="region_selector_wrapper" id="region_selector_wrapper" style="display: inline-block;">
      	
      	{include file='Region/ajax_region_select.tpl'}

      Replace With:
      {* @git-info@ *}
      <label class="field_label">{$regionsLabel}</label>
      <div class="region_selector_wrapper" id="region_selector_wrapper" style="display: inline-block;">
      	
      	{include file='Region/ajax_region_select.tpl'}
    2. Near line 8, FIND:
      	{foreach $fakeLevels as $fake}
      		{* capture the dropdown to make the javascript prettier... *}
      		{capture assign="fakeDDL"}{strip}
      			<div class="region_selector" style="display: inline-block; margin: 0px 5px;" id="region_fake_{$fake.id}">
      			{if $fake.use_label}<label class="field_label" style="width: auto;">{$fake.label}</label>{/if}<br />
      			<select name="fake_region" class="field" disabled="disabled"><option value=""></option></select></div>
      		{/strip}{/capture}

      Replace With:
      	{foreach $fakeLevels as $fake}
      		{* capture the dropdown to make the javascript prettier... *}
      		{capture assign="fakeDDL"}{strip}
      			<div class="region_selector" id="region_fake_{$fake.id}">
      			{if $fake.use_label}<label class="field_label region_label">{$fake.label}</label>{/if}<br />
      			<select name="fake_region" class="field" disabled="disabled"><option value=""></option></select></div>
      		{/strip}{/capture}
  6. In file system/payment_gateways/seller_buyer/paypal/user_details.tpl

    Near line 16, FIND:
    				geoUtil.addMessage(data.message);
    			}
    
    			if (data.email) {
    				element.update(data.email);
    			}
    			new Effect.Highlight(element, {startcolor: this.options.highlightColor});
    		}
    	};

    Replace With:
    				geoUtil.addMessage(data.message);
    			}
    
    			if (data.email && data.email.length > 0) {
    				element.update(data.email);
    			} else {
    				element.update('');
    			}
    
    			new Effect.Highlight(element, {startcolor: this.options.highlightColor});
    		}
    	};

7.0.3 (November 13, 2012)

[Enhancements]

567 - expand Revenue Reports to also display total number of listings affecting the report
568 - Add software hook filter_email to filter e-mail contents
578 - Improved support for bulk uploading remote images
587 - Anonymous Listings: add ability to force sellers to agree to the site's User Agreement - Sponsored
588 - Allow setting different default user groups for individual vs. business users - Sponsored
595 - New Hook to allow adjusting the SQL query to get category list during listing placement

[Security Fixes]

- No Security fixes or patches for this release.

[Fixes/Maintenance]

563 - restore broken category navigation modules
565 - when a Listing or User is removed from the database, remove corresponding Region data
569 - auction "final price" not logged when auction closes
570 - printable invoice needs meta charset tag
571 - Should not use Asterisk (*) or exclamation (!) in URL titles used by SEO addon
572 - security image doesn't play nice with Just-in-Time Registration
574 - JIT Complete email does not send in HTML
580 - Storefront: Stack Overflow error in IE
581 - category question "explanation" popups don't detect default language correctly
583 - ListingFeed doesn't handle state/country fields correctly
593 - Classified Price field "required" does not give error on non-numeric values
596 - missing "required" styling for Regions on registration page
597 - cannot renew listings when using always_use_user_price_plan_when_renewing BETA setting in with category-specific pricing
598 - My Account Home page doesn't report stats for Reverse Auctions
603 - fixed some cases where editing a listing could change values that were not editable
612 - Storefront: control panel save/cancel buttons can be hidden when wysiwyg is too big
617 - Fixed European-format numbers behaving oddly when editing or copying listings
626 - Message does not always include reply link when communication is private
560 - category creation admin page ignores its "listing type" switch
575 - The <base> tag incorrectly added after the HTML5 tag <header> automatically
576 - Password is set incorrectly in admin in certain circumstances
584 - Admin allowed to view admin home even if permission set to not show
592 - Make master switches admin more dynamic
594 - Category titles do not remove HTML tags in re-written URL and title module
619 - Allow a seller to view his own listings when a subscription is required to view listings but he is not subscribed
625 - Zip field not included in search without zip search addon
627 - Message reply link is not linked in e-mail messages
564 - swap Country and Zipcode order in Mapping Locations

[Template Changes]

Reference Purposes Only: Like the rest of this changelog, the template changes below are for reference purposes only, not (necessarily) a list of changes everyone needs to follow. Refer to the full update instructions to find if you need to make any template changes during an update.

Legend

Note the following about highlighted lines you will see in this section.

This is a line that has been Added
This is a line that has been Removed
This is a line that has not changed.
  1. In file main_page/front_page_old.tpl

    Near line 26, FIND:
    			<br />
    			<div>
    				<!-- EDIT THE FOLLOWING LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
    				<a href="/wiki/tutorials/using_a_banner_system/adsense" onclick="window.open(this.href); return false;"><img src="{external file='images/banners/banner1_adsense_200x200.jpg'}" alt="Banner Example" title="Banner Example" width="200" height="200" /></a>
    	            <!-- EDIT THE ABOVE LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
    			</div>
    		</div>

    Replace With:
    			<br />
    			<div>
    				<!-- EDIT THE FOLLOWING LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
    				<a href="http://geodesicsolutions.com/support/geocore-wiki/doku.php/id,tutorials;using_a_banner_system;adsense/" onclick="window.open(this.href); return false;"><img src="{external file='images/banners/banner1_adsense_200x200.jpg'}" alt="Banner Example" title="Banner Example" width="200" height="200" /></a>
    	            <!-- EDIT THE ABOVE LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
    			</div>
    		</div>
  2. In file main_page/header.tpl

    1. Near line 8, FIND:
      	</a>
      	<div id="top_banner">
      		<!-- EDIT THE FOLLOWING LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
      		<a href="/wiki/tutorials/using_a_banner_system/adsense" onclick="window.open(this.href); return false;"><img src="{external file='images/banners/banner1_adsense_468x60.jpg'}" alt="Banner Example" title="Banner Example" width="468" height="60" /></a>
      	    <!-- EDIT THE ABOVE LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
          </div>
      </div>

      Replace With:
      	</a>
      	<div id="top_banner">
      		<!-- EDIT THE FOLLOWING LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
      		<a href="http://geodesicsolutions.com/support/geocore-wiki/doku.php/id,tutorials;using_a_banner_system;adsense/" onclick="window.open(this.href); return false;"><img src="{external file='images/banners/banner1_adsense_468x60.jpg'}" alt="Banner Example" title="Banner Example" width="468" height="60" /></a>
      	    <!-- EDIT THE ABOVE LINE OF CODE WITH YOUR BANNER OR ADSENSE CODE -->
          </div>
      </div>
    2. Near line 60, FIND:
      	<div id="social_links">
      		<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_facebook.jpg'}" alt="" /></a>
      		<a href="https://business.twitter.com/en/basics/what-is-twitter/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_twitter.jpg'}" alt="" /></a>
      		<a href="/wiki/tutorials/feeds/start" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_rss.jpg'}" alt="" /></a>
      	</div>
      	<!-- END SOCIAL LINKS -->

      Replace With:
      	<div id="social_links">
      		<a href="http://www.facebook.com/help/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_facebook.jpg'}" alt="" /></a>
      		<a href="https://business.twitter.com/en/basics/what-is-twitter/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_twitter.jpg'}" alt="" /></a>
      		<a href="http://geodesicsolutions.com/support/geocore-wiki/doku.php/id,tutorials;feeds;start/" onclick="window.open(this.href); return false;"><img src="{external file='images/logos/logo_rss.jpg'}" alt="" /></a>
      	</div>
      	<!-- END SOCIAL LINKS -->
  3. In file module/module_title.tpl

    Near line 8, FIND:
    		NOTE: anecdotal evidence suggests having the listing title before the category name is better for SEO
    				To have the category name appear first, instead, simply swap their locations below
    		*}
    		{$titleOnly|fromDB} : {$category_name} 
    	{elseif $page_id == 2}
    		{$messages.2462}
    	{elseif $page_id == 3}
    		{* Viewing a category, display just the category name *}
    		{$category_title}
    	{elseif $page_id==84}
    		{* Full sized images display *}
    		{$messages.500767} {$category_name} : {$body_vars.title}
    	{elseif $page_id==10210}
    		{* Listing tags browse page *}
    		{$messages.500874} {$listing_tag|replace:'-':' '|capitalize|escape}

    Replace With:
    		NOTE: anecdotal evidence suggests having the listing title before the category name is better for SEO
    				To have the category name appear first, instead, simply swap their locations below
    		*}
    		{$titleOnly|fromDB} : {$category_name|strip_tags:false} 
    	{elseif $page_id == 2}
    		{$messages.2462}
    	{elseif $page_id == 3}
    		{* Viewing a category, display just the category name *}
    		{$category_title|strip_tags:false}
    	{elseif $page_id==84}
    		{* Full sized images display *}
    		{$messages.500767} {$category_name|strip_tags:false} : {$body_vars.title}
    	{elseif $page_id==10210}
    		{* Listing tags browse page *}
    		{$messages.500874} {$listing_tag|replace:'-':' '|capitalize|escape}
  4. In file system/classes/Region/ajax_region_select_main.tpl

    Near line 1, FIND:
    {* @git-info@ *}
    <label class="field_label">{$regionsLabel}</label>
    <div class="region_selector_wrapper" id="region_selector_wrapper" style="display: inline-block;">
    	
    	{include file='Region/ajax_region_select.tpl'}

    Replace With:
    {* @git-info@ *}
    <label class="field_label{if $required} required{/if}">{$regionsLabel}{if $required} *{/if}</label>
    <div class="region_selector_wrapper" id="region_selector_wrapper" style="display: inline-block;">
    	
    	{include file='Region/ajax_region_select.tpl'}
  5. In file system/emails/communication/notify_seller.tpl

    Near line 19, FIND:
    {if $replyLink}
    {$replyLinkInstructions}<br />
    <br />
    {$replyLink}<br />
    {/if}
    <br />
    {$senderIP} : {$senderHost}

    Replace With:
    {if $replyLink}
    {$replyLinkInstructions}<br />
    <br />
    <a href="{$replyLink}">{$replyLink}</a><br />
    {/if}
    <br />
    {$senderIP} : {$senderHost}
  6. In file system/emails/communication/user_message.tpl

    Near line 6, FIND:
    {if $showReplyLink}
    {$privateCommMessage}<br />
    <br />
    {$privateReplyLink}<br />
    {/if}
    <br />
    <br />

    Replace With:
    {if $showReplyLink}
    {$privateCommMessage}<br />
    <br />
    <a href="{$privateReplyLink}">{$privateReplyLink}</a><br />
    {/if}
    <br />
    <br />
  7. In file system/invoices/common/head.tpl

    Near line 2, FIND:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <head>
    	<title>{$messages.501152}{$invoice.invoice_id} {$messages.501153}{$invoice.order_id}</title>
    	<link href="{if $in_admin}../{/if}{external file='css/theme_styles.css'}" rel="stylesheet" type="text/css" />
    	<link href="{if $in_admin}../{/if}{external file='css/primary_theme_styles.css'}" rel="stylesheet" type="text/css" />
    	<link href="{if $in_admin}../{/if}{external file='css/secondary_theme_styles.css'}" rel="stylesheet" type="text/css" />

    Replace With:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <head>
    	<title>{$messages.501152}{$invoice.invoice_id} {$messages.501153}{$invoice.order_id}</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<link href="{if $in_admin}../{/if}{external file='css/theme_styles.css'}" rel="stylesheet" type="text/css" />
    	<link href="{if $in_admin}../{/if}{external file='css/primary_theme_styles.css'}" rel="stylesheet" type="text/css" />
    	<link href="{if $in_admin}../{/if}{external file='css/secondary_theme_styles.css'}" rel="stylesheet" type="text/css" />
  8. In file system/order_items/shared/anonymous_data.tpl

    Near line 9, FIND:
    		{$msgs.placementText2} <strong class="text_highlight">{$newPass}</strong>
    	</p>
    	
    	<div class="center">
    		<a href="{$process_form_url}" class="button">{$msgs.placementContinueLink}</a>
    	</div>
    	<br />
    </div>
    <br />

    Replace With:
    		{$msgs.placementText2} <strong class="text_highlight">{$newPass}</strong>
    	</p>
    	
    	<form action="{$process_form_url}" method="post">
    		{if $use_eula}
    				{* user agreement field *}
    				
    				<div class="anonymous_eula" style="margin-left: 5px;">
    					{if $error}<div class="error_message">{$error}</div>{/if}
    					<p style="font-weight: bold;"><input type="checkbox" value="1" name="eula" /> {$msgs.eulaLabel}</p>
    					
    					{if $eula_type == "div"}
    						<div class="usage_agreement">{$eula_text}</div> 
    					{elseif $eula_type == "area"}
    						<textarea name="registration_agreement" class="field usage_agreement" readonly="readonly" onfocus="this.blur();">{$eula_text}</textarea>
    					{/if}
    				</div>
    		{/if}
    	
    		<div class="center">
    			<input type="submit" value="{$msgs.placementContinueLink}" class="button" />
    		</div>
    	</form>
    	<br />
    </div>
    <br />
  9. In file system/order_items/shared/jit_login_form.tpl

    Near line 9, FIND:
    	<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a>{$messages.500772}<a href="{$backURL}">{$messages.500773}</a></p>
    {elseif !$allow_user_pass}
    	<p style="font-weight: bold;">{$messages.500770}</p>
    	<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a>{$messages.500772}<a href="{$continueURL}">{$messages.500774}</a></p>
    {else}
    	<p style="font-weight: bold;">{$messages.500788}</p>
    	<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a></p>

    Replace With:
    	<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a>{$messages.500772}<a href="{$backURL}">{$messages.500773}</a></p>
    {elseif !$allow_user_pass}
    	<p style="font-weight: bold;">{$messages.500770}</p>
    	<form action="{$continueURL}" id="continueForm" method="post">
    		{if $errorMsg}<p class="error_message">{$errorMsg}</p>{/if}
    		{$securityImageHTML}
    		<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a>{$messages.500772}<a href="{$continueURL}" onclick="$('continueForm').submit(); return false;">{$messages.500774}</a></p>
    	</form>
    {else}
    	<p style="font-weight: bold;">{$messages.500788}</p>
    	<p style="font-size: 18pt;"><a href="{$loginURL}">{$messages.500771}</a></p>
  10. In file system/search_class/details_form.tpl

    1. Near line 130, FIND:
      	
      	<div class="clr"><br /></div>
      	
      	{if $region_selector || $use_zip_distance_calculator || $queryFields.state || $queryFields.city || $queryFields.country || $show_optionals || $addonCriteria}
      		{* only show this container if it's actually going to have something inside of it *}
      		
      		<div class="content_box">

      Replace With:
      	
      	<div class="clr"><br /></div>
      	
      	{if $region_selector || $use_zip_distance_calculator || $queryFields.city || $queryFields.zip || $show_optionals || $addonCriteria}
      		{* only show this container if it's actually going to have something inside of it *}
      		
      		<div class="content_box">
    2. Near line 154, FIND:
      				</div>
      				<div class="divider"></div>
      			{/if}
      			{if $region_selector || $queryFields.city}
      				<h1 class="subtitle">{$messages.500809}</h1>
      			{/if}
      			{if $region_selector}

      Replace With:
      				</div>
      				<div class="divider"></div>
      			{/if}
      			{if $region_selector || $queryFields.city || ($queryFields.zip && !$use_zip_distance_calculator)}
      				<h1 class="subtitle">{$messages.500809}</h1>
      			{/if}
      			{if $region_selector}
    3. Near line 168, FIND:
      					<input type="text" id="by_city" name="b[by_city]" maxlength="50" class="field" />
      				</div>
      			{/if}
      			
      			{if $show_optionals || $addonCriteria}
      				<h1 class="subtitle">{$messages.500807}</h1>

      Replace With:
      					<input type="text" id="by_city" name="b[by_city]" maxlength="50" class="field" />
      				</div>
      			{/if}
      			{if !$use_zip_distance_calculator && $queryFields.zip}
      				<div class="{cycle values='row_odd,row_even'}">
      					<label for="by_zip_code" class="field_label">{$messages.577}</label> 
      					<input type="text" id="by_zip_code" name="b[by_zip_code]" maxlength="50" class="field" />
      				</div>
      			{/if}
      			
      			
      			{if $show_optionals || $addonCriteria}
      				<h1 class="subtitle">{$messages.500807}</h1>

7.0.4 (February 4, 2013)

[Enhancements]

653 - Sharing: add Open Graph description tag
663 - New core event: end of My Active Listings page
675 - new core event: notify_sold_sign_status_changed
680 - personalized iphone app: category filter

[Security Fixes]

- No Security fixes or patches for this release.

[Fixes/Maintenance]

718 - Paypal non-US payments do not report correct amount in transactions
643 - W3C validation error in geographic navigation template
647 - Missing db text on "view message" page
649 - Shows create anonymous listing option when JIT is enabled in admin
650 - Create order in admin does not work on choose price plan step
654 - Edit price always says don't have permission
656 - iPhone app: location shows one level higher than it should
658 - Subscriptions: expiration notice not re-sent for extended subscriptions
660 - Bulk Uploader: "use default user data" doesn't copy user's Regions correctly
662 - Social Connect: SSL Error
664 - Sharing: update Pinterest button
667 - Ad filter (saved search) does not account for some utf-8 characters
669 - wrong renewal price when charging by "price" field
674 - seller location missing from Seller's Other Listings page when exposed
683 - Exporter addon does not export on some configurations
686 - overzealous "required" fields
637 - Date format in storefront admin set within template itself
640 - Bulk Uploader: use correct image size setting
642 - Remove extra space on advanced search when no cat specific fields showing
670 - Using memcache example for adding servers does not work

[Template Changes]

Reference Purposes Only: Like the rest of this changelog, the template changes below are for reference purposes only, not (necessarily) a list of changes everyone needs to follow. Refer to the full update instructions to find if you need to make any template changes during an update.

Legend

Note the following about highlighted lines you will see in this section.

This is a line that has been Added
This is a line that has been Removed
This is a line that has not changed.
  1. In file system/user_management/communications/view_communication.tpl

    Near line 7, FIND:
    	</div>
    	<br />
    	<div class="content_box">
    		<h2 class="title">Message Information</h2>
    		<div class="row_even">
    			<label class="field_label">{$messages.412}</label>
    			{if $sender_id}<a href="{$classifieds_file_name}?a=6&amp;b={$sender_id}">{/if}

    Replace With:
    	</div>
    	<br />
    	<div class="content_box">
    		<h2 class="title">{$messages.502049}</h2>
    		<div class="row_even">
    			<label class="field_label">{$messages.412}</label>
    			{if $sender_id}<a href="{$classifieds_file_name}?a=6&amp;b={$sender_id}">{/if}
Other Changelogs