User Tools

Site Tools


Sidebar

designers:changes_to_note

Changes to Note

Starting with 7.0.0, all template changes are documented in the changelogs. See the changelogs for template changes on versions newer than 7.0.0.

This page documents every system or module template change (and rarely main_page templates), made in versions from 4.0.4 to 7.0.0. For tips on updating the software when you have customized System or Module templates, see Customizing System or Module Templates.

To 4.0.4

There are a few slight changes to how some of the existing "core events" work.

system/browsing/listing_results.tpl 4.0.4

You will need to make the following changes to bring your template to be compatible with 4.0.4.

Find:

{$show_classifieds.addonTDs}

Replace with:

	{if $show_classifieds.addonData}
		{foreach from=$show_classifieds.addonData item=addonRows}
			{foreach from=$addonRows item=addonText}
				<td style="white-space:nowrap; text-align: center;">
					{$addonText}
				</td>
			{/foreach}
		{/foreach}
	{/if}

Then in the same file:

Find:

{if $addons_header}
{$addons_header}
{/if}

Replace with:

{if $addonHeadings}
	{foreach from=$addonHeadings item=aHeadings}
		{foreach from=$aHeadings item=addonHeading}
			<td class="{if $addonHeading.cssClass}{$addonHeading.cssClass}{else}photo_column_header{/if}"
				style="white-space: nowrap;">
				{$addonHeading.text}
			</td>
		{/foreach}
	{/foreach}
{/if}

system/search_class/search_results.tpl 4.0.4

You will need to make the following changes to bring your template to be compatible with 4.0.4.

Find:

{$tpl_vars.addon_headers}

Replace with:

{if $tpl_vars.addonHeaders}
								{foreach from=$tpl_vars.addonHeaders item=header}
									{foreach from=$aHeaders item=header}
										<td class="{if $header.cssClass}{$header.cssClass}{else}search_page_results_title_row{/if}" style="white-space: nowrap;{if $header.style} {$header.style}{/if}">
											{$header.text}
										</td>
									{/foreach}
								{/foreach}
							{/if}

Further down in that same file:

Find:

{$listing.addon_columns}

Replace with:

								{foreach from=$listing.addonColumns item=aCols}
									{foreach from=$aCols item=addonColumn}
										<td{if $col.style} style="{$col.style}"{/if}>
											{$addonColumn}
										</td>
									{/foreach}
								{/foreach}

system/user_management/information/user_data.tpl 4.0.4

You will need to make the following changes to bring your template to be compatible with 4.0.4.

Find:

{if $addonPlanInfo}{$addonPlanInfo}{/if}

Replace with:

{if $addonPlanInfo}
	{* Exit out of the table, so each addon can do things it's own way, and not
		worry about changes to the addons if this template ever gets converted
		to use no tables *}
	</table>
	{$addonPlanInfo}
	<table cellpadding="2" cellspacing="1" style="border: none; margin: 0 auto; width: 100%;">
{/if}

To 4.1.0

Note the following changes in 4.1.0.

Category Browsing Templates 4.1.0

All templates relating to category browsing have changed, as below. Note the inclusion of two, new, "common" files, both shared by all of the other files used in category browsing.

These files:

  • system/browsing/browse_ads.tpl
  • system/browsing/listings_results.tpl

Have been replaced by:

  • system/browsing/main.tpl
  • system/browsing/common/listing_set.tpl

And newly joining the party are:

  • system/browsing/common/category_block.tpl
  • system/browsing/featured_pic_ads.tpl
  • system/browsing/featured_text_ads.tpl
  • system/browsing/newest_ads.tpl
  • system/browsing/sellers_other_ads.tpl

Image Upload Templates 4.1.0

The image upload page during listing details has been re-written, as we have re-done the image upload page in 4.1.

Modified/New Files

  • system/order_items/images/ (all files in directory are either new, or have significant changes)
  • external/css/order_items/images/upload_images.css – new CSS file for styling of new image uploader
  • external/js/order_items/images/handlers.js – new JS file used for fancy image uploading. Works directly with SWF Uploader library for image uploading parts of it.

system/user_management/information/edit_user_form.tpl 4.1.0

Added ability for order items to specify error message. Make the following changes:

Find:

			{foreach from=$orderItemFields item=f}
				<tr>
					{if $f.type == 'single_checkbox'}
						<td class="field_labels"></td> {*blank left column*}
						<td class="data_values">
							<input type="hidden" value="0" name="{$f.name}" />
							<input type="checkbox" value="1" name="{$f.name}" {if $f.checked}checked="checked"{/if} /> {$f.value}
						</td>
					{else}
						<td class="field_labels">{$f.label}</td>
						<td class="data_values">{$f.value}</td>
					{/if}
				</tr>
			{/foreach}

Replace with:

			{foreach from=$orderItemFields item=f}
				<tr>
					{if $f.type == 'single_checkbox'}
						<td class="field_labels"></td> {*blank left column*}
						<td class="data_values">
							<input type="hidden" value="0" name="{$f.name}" />
							<input type="checkbox" value="1" name="{$f.name}" {if $f.checked}checked="checked"{/if} /> {$f.value}
						</td>
					{else}
						<td class="field_labels">{$f.label}</td>
						<td class="data_values">
							{$f.value}
							{if $f.error}
								<br /><span class="error_message">{$f.error}</span>
							{/if}
						</td>
					{/if}
				</tr>
			{/foreach}

system/order_items/shared/listing_collect_details.tpl 4.1.0

Changes to allow things to be added to listing details easier. In the file, Find:

		{if $moreDetails}
			{*  Allow addons to insert stuff right below
				the description field. *}
			{foreach from=$moreDetails item='details'}
				{if $details.full}
					{$details.full}
				{else}
					<td>{if $details.pre}{$details.pre}{else}&nbsp;{/if}</td>
					<td class="place_an_ad_details_fields">
						{$details.label}
						{if $details.error}
							<br />
							<span class="error_message">{$details.error}</span>
						{/if}
					</td>
					<td class="place_an_ad_details_data">
						{$details.value}
					</td>
				{/if}
			{/foreach}
		{/if}

Replace with:

		{if $moreDetails}
			{*  Allow addons to insert stuff right below
				the description field. *}
			{foreach from=$moreDetails item='details'}
				{if $details.section_head}
					{* Allow adding a section head above the next contents *}
					<tr>
						<td class="sub_section_header" colspan="3">
							{$details.section_head}
						</td>
					</tr>
				{/if}
				{if $details.full}
					{$details.full}
				{elseif $details.pre || $details.label || $details.value || $details.error}
					<tr>
						<td>{if $details.pre}{$details.pre}{else}&nbsp;{/if}</td>
						<td class="place_an_ad_details_fields">
							{$details.label}
							{if $details.error}
								<br />
								<span class="error_message">{$details.error}</span>
							{/if}
						</td>
						<td class="place_an_ad_details_data">
							{$details.value}
						</td>
					</tr>
				{/if}
			{/foreach}
		{/if}

In the same file, there is also new code to allow things to be added at the bottom of the page. For this, Find:

		{if $display_description_last_in_form && ($editCheck || $field_config.editable_description_field)}
			{include file="shared/details_description_box.tpl"}
		{/if}

And Replace with:

		{if $display_description_last_in_form && ($editCheck || $field_config.editable_description_field)}
			{include file="shared/details_description_box.tpl"}
		{/if}
		{if $moreDetailsEnd}
			{*  Allow addons to insert stuff at the very end. *}
			{foreach from=$moreDetailsEnd item='details'}
				{if $details.section_head}
					{* Allow adding a section head above the next contents *}
					<tr>
						<td class="sub_section_header" colspan="3">
							{$details.section_head}
						</td>
					</tr>
				{/if}
				{if $details.full}
					{$details.full}
				{elseif $details.pre || $details.label || $details.value || $details.error}
					<tr>
						<td>{if $details.pre}{$details.pre}{else}&nbsp;{/if}</td>
						<td class="place_an_ad_details_fields">
							{$details.label}
							{if $details.error}
								<br />
								<span class="error_message">{$details.error}</span>
							{/if}
						</td>
						<td class="place_an_ad_details_data">
							{$details.value}
						</td>
					</tr>
				{/if}
			{/foreach}
		{/if}

system/user_management/current_ads/list.tpl 4.1.0

Added new "quick search" box.

In that file, Find:

	<tr class="table_description">
		<td colspan="15">
			{$messages.505}
		</td>
	</tr>
	<tr class="table_column_headers">

Replace with:

	<tr class="table_description">
		<td colspan="15">
			{$messages.505}
		</td>
	</tr>
	<tr>
		<td colspan="15" class="search_listings" style="text-align: right;">
			<form method="get" action="" style="display: inline;">
				<input type="hidden" name="a" value="4" />
				<input type="hidden" name="b" value="1" />
				<input type="text" name="q" value="{$q}" size="15" /> 
				<input type="submit" value="{$messages.500660}" />
			</form>
		</td>
	</tr>
	<tr class="table_column_headers">

Then later in the same file, Find:

{foreachelse}
	<tr>
		<td class="error_message" colspan="15">{$messages.511}</td>
	</tr>
{/foreach}

Replace with:

{foreachelse}
	<tr>
		<td class="error_message" colspan="15">
			{if $q}
				{$messages.500662}
			{else}
				{$messages.511}
			{/if}
		</td>
	</tr>
{/foreach}

system/cart/payment_choices/gateway_box.tpl 4.1.0

Typo in variable name used fixed, find:

{if $payment_choice.radio_box}
		{$payment_choice.help_box}
{else}

Replace with:

{if $payment_choice.radio_box}
		{$payment_choice.radio_box}
{else}

Then, near bottom of the same template file, before the end </div> tag a new section was added for recurring billing user agreement:

Find:

	{/if}
</div>

Replace with:

	{/if}
	{if $payment_choice.user_agreement.box}
		{$payment_choice.user_agreement.box}
	{elseif $payment_choice.user_agreement}
		{include file="payment_choices/gateway_agreement.tpl"}
	{/if}
</div>

To 4.1.1

Template changes found in version 4.1.1.

Note: In some of the template files, at the top, the {* $Rev: ###$ *} changed when there was not actually any changes in that particular template file1).

We've double triple verified the changes in 4.1.1, and only the templates noted below actually have changes, any files not mentioned below do not have any changes going from 4.1.0 to 4.1.1 even if they received a Rev number bump.

geo_templates/default/external/css/order_items/images/upload_images.css 4.1.1

This is technically not a template file, but a CSS file for upload images page. Note the changes below made to make the image description "wrap" inside the image box.

At the end of the file, add:

.fileTitleBox {
	/* The box the title label and value are in */
	white-space: normal;
}

geo_templates/default/system/browsing/common/listing_set.tpl 4.1.1

There are a few changes to fix issues relating to the column sorting, see below for changes needed.

Find:

 				{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}

Replace with:

{* num_bids is not a sortable option -- there are never sort links *}
				{$headers.num_bids.text}

That's not the only change in this file:

In that same file, find:

			{if $cfg.cols.image}
				<td style="text-align: center;">
					<a href="{$classifieds_url}?a=2&amp;b={$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popupheight},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
						{if $l.full_image_tag}
							{$l.image}
						{else}
							<img src="{$l.image}" alt="" />
						{/if}
					</a>    
				</td>
			{/if}

Replace with:

			{if $cfg.cols.image}
				<td style="text-align: center;">
 
						{if $l.full_image_tag}
							{* most likely using geoImage::display_thumbnail(), which includes its own <a></a> around the image *}
							{$l.image}
						{else}
							<a href="{$classifieds_url}?a=2&amp;b={$id}" {if $cfg.popup}onclick="window.open(this.href,'_blank','width={$cfg.popup_width},height={$cfg.popupheight},scrollbars=1,location=0,menubar=0,resizable=1,status=0'); return false;"{/if}>
								<img src="{$l.image}" alt="" />
							</a>
						{/if}
				</td>
			{/if}

geo_templates/default/system/order_items/images/image_box.tpl 4.1.1

Changes needed in order to make the image "description" text wrap instead of being one long line that goes past the edge of the box. Note that the changes in this file go along with the changes in upload_images.css file (first changed file noted in To 4.1.1).

Find:

<span class="fileTitleLabel">{$messages.500700}</span> <span class="fileTitleValue">{if !$slotData.image.image_text}{$messages.500701}{else}{$slotData.image.image_text}{/if}</span>

Replace with:

<div class="fileTitleBox">
	<span class="fileTitleLabel">{$messages.500700}</span> <span class="fileTitleValue">{if !$slotData.image.image_text}{$messages.500701}{else}{$slotData.image.image_text}{/if}</span>
</div>

To 4.1.2

Note the following changes made in 4.1.2

addons/storefront/templates/client/display_subscription_info.tpl 4.1.2

This file changed drastically to add ability for user to cancel recurring billing payments for storefront subscriptions.

system/browsing/contact_forms/friend_form.tpl 4.1.2

Corrected a misspelled variable name. The textarea of this form must send its data as c[senders_comments], or else resulting emails will not include the personal note added by the sender.

Line 38 changes from:

<td class="notify_friend_input_box"><textarea name="c[senders_comment]" cols="38" rows="7" class="notify_friend_input_box">{$values.comment}</textarea></td>

to:

<td class="notify_friend_input_box"><textarea name="c[senders_comments]" cols="38" rows="7" class="notify_friend_input_box">{$values.comment}</textarea></td>

system/order_items/shared/listing_collect_details.tpl 4.1.2

2 changes made in this file to allow order items to add "section description" to the listing details collection page.

Find:

				{if $details.section_head}
					{* Allow adding a section head above the next contents *}
					<tr>
						<td class="sub_section_header" colspan="3">
							{$details.section_head}
						</td>
					</tr>
				{/if}
				{if $details.full}

Replace with:

				{if $details.section_head}
					{* Allow adding a section head above the next contents *}
					<tr>
						<td class="sub_section_header" colspan="3">
							{$details.section_head}
						</td>
					</tr>
				{/if}
				{if $details.section_desc}
					{* Allow adding a section description as well *}
					<tr>
						<td class="page_description" colspan="3">{$details.section_desc}</td>
					</tr>
				{/if}
				{if $details.full}

There are 2 places in the file that the above modification is made. Be sure to apply the changes to both locations.

module/my_account_links.tpl 4.1.2

We made two new variables available to this template. They are not used by default, but are available for use if desired:

{$num_unread_messages}
and
{$num_open_feedbacks} //(auctions only)

As the names suggest, these are integers that hold the number of unread messages and open feedbacks the current user has.

system/other/lightbox_slideshow.tpl 4.1.2

Added {strip} around the play and pause links to remove extra white-space from the output, in order to fix a problem in IE that made the buttons not spaced properly.

Find:

		*}
		<a href="javascript:void(0);" class="playLink" style="display: none;">{$messages.500760}</a>
		<a href="javascript:void(0);" class="pauseLink" style="display: none;">{$messages.500761}</a>
		<span class="disabledLink noplayLink">{$messages.500760}</span>

Replace with:

*}{strip}
		<a href="javascript:void(0);" class="playLink" style="display: none;">{$messages.500760}</a>
		<a href="javascript:void(0);" class="pauseLink" style="display: none;">{$messages.500761}</a>
		<span class="disabledLink noplayLink">{$messages.500760}</span>{/strip}

To 4.1.3

Changes made in version 4.1.3.

system/cart/payment_choices/radio_box.tpl 4.1.3

Change made to get rid of possible javascript error. In this file, Find:

<input id="{$payment_choice.label_name}" type='radio' onclick="choices_form_lock(this);" name="{if $payment_choice.radio_name}{$payment_choice.radio_name}{else}c[payment_type]{/if}" {if $payment_choice.checked || $force_checked || $force_use_gateway}checked="checked" {/if}value="{$payment_choice.radio_value}" />

Replace with:

<input id="{$payment_choice.label_name}" type='radio' name="{if $payment_choice.radio_name}{$payment_choice.radio_name}{else}c[payment_type]{/if}" {if $payment_choice.checked || $force_checked || $force_use_gateway}checked="checked" {/if}value="{$payment_choice.radio_value}" />

To 5.0

Take note of the following changes to template files made in 5.0.0. Note that the software has gone through a re-design, so every single template will have "design changes", below we will list only the changes that might affect a custom design, such as a variable name change or the like.

system/browsing/rss_listings.tpl 5.0

File changed location, it is now located in the directory system/ListingFeed/ with the same file name.

Also, changed 2 of the template variable names:

  • $titleLimit changed to $titleCharLimit
  • $descLimit changed to $descriptionCharLimit

system/browsing/common/listing_set.tpl 5.0

To fix the links when browsing affiliate pages, the following changes were needed:

Find: (this will be in 2 locations within the template)

{$classifieds_url}?a=2&amp;b={$id}

Replace both occurrences with:

{$cfg.listing_url}{$id}

system/browsing/affiliate.tpl 5.0

Change to how listing results are called.

Find:

{$browse_result}

Replace With:

{include file="common/listing_set.tpl"}

system/order_items/images/legacy_form.tpl 5.0

Make some changes to improve usability when the user has to use the legacy uploader because of missing Flash player:

Find:

	<form action="{$process_form_url}" method="post" enctype="multipart/form-data" id="imageForm{$noscript}"

Replace with:

	<form action="{$process_form_url}&amp;useLegacyUploader=1&amp;&no_ssl_force=1" method="post" enctype="multipart/form-data" id="imageForm{$noscript}"

system/order_items/images/upload_images.tpl 5.0.0

Made changes so that if the max allowed chars for the description is 0, it does not display the description input field on the standard uploader.

Find:

			<div class="imageBoxClear"></div>
			<label>{$messages.500371}<br />
			<input type="text" name="fileTitle" id="fileTitle" size="20" maxlength="{$imgMaxTitleLength}" /></label><br />
			<div class="uploadButtonsContainer">

Replace with:

			<div class="imageBoxClear"></div>
			{if $imgMaxTitleLength}
				<label>{$messages.500371}<br />
				<input type="text" name="fileTitle" id="fileTitle" size="20" maxlength="{$imgMaxTitleLength}" /></label><br />
			{else}
				<input type="hidden" name="fileTitle" id="fileTitle" />
				<br /><br />
			{/if}
			<div class="uploadButtonsContainer">

system/order_items/images/legacy_form.tpl 5.0.0

Made changes so that if the max allowed chars for the description is 0, it does not display the description input field on the legacy uploader.

Find:

							<td class="image_upload_size">&nbsp;</td>

Replace with:

							{if $imgMaxTitleLength}
								<td class="image_upload_size">&nbsp;</td>
							{/if}

Then later in the file: Find:

							<td>{$messages.500371}</td>

Replace with:

							{if $imgMaxTitleLength}
								<td>{$messages.500371}</td>
							{/if}

And finally, last change for this file: Find:

							<td class="url_upload_field_labels">
								<input type="text" name="c[{$img_key}][text]" size="25" maxlength="100" />&nbsp;
							</td>

Replace with:

			{if $imgMaxTitleLength}
							<td class="url_upload_field_labels">
								<input type="text" name="c[{$img_key}][text]" size="25" maxlength="100" />&nbsp;
							</td>
			{/if}

system/order_items/shared/listing_collect_details.tpl 5.0

The changes are too many to give exact "find/replace" examples, but we will still explain the changes made below.

Changed up how the optional fields are displayed, for the new feature to display the optional site-wide fields that "add cost" right below the other cost fields on the listing detail collection page. Also made changes so that any optional site-wide fields that add cost have the "precurrency" before the field, like the rest of the cost fields such as price or minimum bid.

The currency type drop-down has changed: First make sure to replace any {$postcurrency_dropdown} and replace with {include file="shared/postcurrency_dropdown.tpl"}.

We have also changed how the pre & post currency javascript works: You will need to add the CSS class "precurrency" to any span tag that holds the pre-currency symbol.

The javascript function check_buy_now_only() has changed, need to make all references to it use geoListing.check_buy_now_only().

The fields to use variable names have all changed, to use syntax similar to $fields→title→is_enabled and $fields→title→can_edit, see the new listing_collect_details.tpl file to reference all the changes. Literally every part of the file is changed now, with the re-design on top of the variable name changes.

system/payment_gateways/seller_buyer/paypal/user_details.tpl 5.0

Changes to this file to stop using the so-called CJAX library, instead using Scriptaculous to allow editing the paypal e-mail.

external file locations changed 5.0

In order to make template sets a little more organized, the following file locations have changed:

Old Location Moved To
external/css/other/ 2) external/css/system/other/
external/css/order_items/ 3) external/css/system/order_items/
external/css/user_management/ 4) external/css/system/user_management/
external/js/order_items/ 5) external/js/system/order_items/

To 5.0.1

Note the following changes to template files in 5.0.1.

module/shared/category_navigation.tpl 5.0.1

Added column width on category modules to make it work better when there are multiple columns.

Find:

	{foreach from=$categories item=c name=catloop}
		<li class="element">

Replace with:

	{foreach from=$categories item=c name=catloop}
		<li class="element" style="width: {$col_width};">

system/browsing/common/listing_set.tpl 5.0.1

Made the admin edit/delete buttons use {external} so they reference images in the template set.

Find:

<img src="images/btn_user_edit.gif" />

Replace With:

<img src="{external file='images/buttons/listing_edit.gif'}" alt="" />

Also a little further down, Find:

<img src="images/btn_user_remove.gif" alt="" />

Replace With:

<img src="{external file='images/buttons/listing_delete.gif'}" alt="" />

Also changed references to full classifieds URL to use the relative file name instead.

Find:

{$classifieds_url}

replace with:

{$classifieds_file_name}

system/order_items/shared/duration_choices_charged.tpl 5.0.1

Added a couple of spaces in the options, to make them more readable:

Find:

{$d.display_length}-{$d.display_amount}

replace with:

{$d.display_length} - {$d.display_amount}

system/order_items/shared/listing_collect_details.tpl 5.0.1

Changed parts that collect listing details that are added by addons such as Pedigree Tree addon, so they display even when there are no mapping fields to display.

Find:

			{if $moreDetailsEnd}
				{*  Allow addons to insert stuff at the very end. *}
				{foreach from=$moreDetailsEnd item='details'}
					{if $details.section_head}
						{* Allow adding a section head above the next contents *}
						{* Close the <div class="content_box"> and re-open it *}</div><br />
						<div class="content_box">
							{* TODO: Add way to add main title vs. sub-title! *}
							<h1 class="title">{$details.section_head}</h1>
						{* </div> is at bottom of the section. *}
					{/if}
					{if $details.section_desc}
						{* Allow adding a section description as well *}
						<p class="page_instructions">{$details.section_desc}</p>
					{/if}
					{if $details.full}
						{$details.full}
					{elseif $details.pre || $details.label || $details.value || $details.error}
						<div class="{if $details.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
							<label class="field_label">{if $details.pre}{$details.pre}{/if} {$details.label}</label>
							{$details.value}
							{if $details.error}
								<span class="error_message">{$details.error}</span>
							{/if}
						</div>
					{/if}
				{/foreach}
			{/if}
		</div>
	{/if}
 
	<div class="center">

Replace With:

		</div>
	{/if}
	{if $moreDetailsEnd}
		{*  Allow addons to insert stuff at the very end. *}
		<br />
		<div class="content_box">
			{foreach from=$moreDetailsEnd item='details' name='moreDetailsEndLoop'}
				{if $details.section_head}
					{* Allow adding a section head above the next contents *}
					{if !$smarty.foreach.moreDetailsEndLoop.first}</div><br /><div class="content_box">{/if}
 
					<h1 class="title">{$details.section_head}</h1>
				{/if}
				{if $details.section_desc}
					{* Allow adding a section description as well *}
					<p class="page_instructions">{$details.section_desc}</p>
				{/if}
				{if $details.full}
					{$details.full}
				{elseif $details.pre || $details.label || $details.value || $details.error}
					<div class="{if $details.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
						<label class="field_label">{if $details.pre}{$details.pre}{/if} {$details.label}</label>
						{$details.value}
						{if $details.error}
							<span class="error_message">{$details.error}</span>
						{/if}
					</div>
				{/if}
			{/foreach}
		</div>
	{/if}
	<div class="center">

To 5.0.2

Note the following changes to template files in 5.0.2.

system/ListingFeed/rss_listings.tpl 5.0.2

Fixed a couple of bugs involving conflicting or incorrect variable names:

Find:

{foreach from=$fields item='label' key='field'}

Replace with:

{foreach from=$fields key='field' item='fieldLabel'}

Find:

{if $label}<strong>{$label}</strong>{/if}

Replace with:

{if $fieldLabel}<strong>{$fieldLabel}</strong>{/if}

system/order_items/shared/listing_collect_details.tpl 5.0.2

incorrect variable name used in multiple places. replace all occurrences of $price_plan with $pricePlan

system/tinymce.tpl 5.0.2

Added line to make the WYSIWYG editor not automatically add <p>…</p> tags around elements not already in a block level element.

Find:

content_css: '{external file="css/wysiwyg.css"}'

Replace With:

		//make it NOT automatically add the <p> around everything...  Comment the line out if it is needed.
		forced_root_block : '',
		
		content_css: '{external file="css/wysiwyg.css"}'

system/browsing/common/listing_set.tpl 5.0.2

Changes needed for W3C compliance (extra </a> tag).

Find:

					<td class="center">
							{if $l.full_image_tag}
								{$l.image}
							{else}
								<a href="{$classifieds_file_name}?a=2&amp;b={$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}
						</a>	
					</td>

Replace With:

					<td class="center">
						{if $l.full_image_tag}
							{$l.image}
						{else}
							<a href="{$classifieds_file_name}?a=2&amp;b={$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>

module/module_title.tpl 5.0.2

Made changes to add new Addon hook, which allows addons to add to the title displayed by the title module.

Find:

	{/if}
	{if $page_number > 1}

Replace with:

	{/if}
	{if $addonText}
		{$addonText}
	{/if}
	{if $page_number > 1}

To 5.0.3

Changes below are made for 5.0.3.

external/css/theme_styles.css 5.0.3

Minor change to fix over-lapping on payment page on smaller screen resolutions. Find:

.payment_text
{
	position:relative;
	top:-10px;
	margin-left:65px;
	font-weight:lighter;
}

Replace with:

.payment_text
{
	margin-left:65px;
	font-weight:lighter;
}

Change to make category lists go to the next line correctly on the less common CSS classes used for some of the category lists. Find

#categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
	display: none;
}

Replace With:

#categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
}

Then further down, Find:

#listing_categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
	display: none;
}

Replace with:

#listing_categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
}

system/browsing/common/listing_set.tpl 5.0.3

Fix broken "sort" links for three columns: Find:

{$headers.num_bids.price}, {$headers.num_bids.entry_date}, and {$headers.num_bids.time_left}

Replace with:

{$headers.price.reorder}, {$headers.entry_date.reorder}, and {$headers.time_left.reorder}

Re-apply changes to listing URL that were inadvertently un-done with new 5.0 design:

Find: (will occur in 2 places in the file, need to find/replace both places)

{$classifieds_file_name}?a=2&amp;b={$id}

Replace:

{$cfg.listing_url}{$id}

system/payment_gateways/shared/transaction_approved.tpl 5.0.3

On last step of cart checkout, where it shows success/failure of placing cart order, made it only display the "my account" link if the user is currently logged in.

Find:

	<br />
	<div class="center">
		<a href="{$my_account_url}" class="button">
			{$my_account_link}
		</a>
	</div>

Replace With:

	<br />
	{if $logged_in}
		<div class="center">
			<a href="{$my_account_url}" class="button">
				{$my_account_link}
			</a>
		</div>
	{/if}

addon/storefront/control_panel/*.tpl 5.0.3

Replaced all text that was hardcoded into storefront "control panel" templates with references to database text

To 5.1

system/order_items/shared/listing_collect_details.tpl 5.1

New field added for new feature, listing tags. To add new field, find:

{if $moreDetails}

Replace With:

		{if $fields->tags->is_enabled}
			<div class="{if $error_msgs.tags}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="classified_title" class="field_label">{$messages.500863}</label>
 
				{if !$editCheck && !$fields->tags->can_edit}
					{$session_variables.tags}
				{else}
					<input type="text" class="field" name="b[tags]" id="listingTags" value="{$session_variables.tags|escape}" size="50" />
					<div id="listingTags_choices" class="autocomplete_choices"></div>
				{/if}
				{$tags_help_link}
				{if $error_msgs.tags}
					<span class="error_message">{$messages.500865}</span>
				{/if}
			</div>
		{/if}
		{if $moreDetails}

system/browsing/common/listing_set.tpl 5.1

Added new column for listing tags. Find:

			{/if}
 
			{if count($headers.optionals) > 0}

Replace with:

			{/if}
 
			{if $cfg.cols.tags}
				<td>
					{$headers.tags.text}
				</td>
			{/if}
 
			{if count($headers.optionals) > 0}

Then, further down the file, find:

				{section name=optionals start=1 loop=21}

Replace With:

				{if $cfg.cols.tags}
					<td class="tag_list_data">
						{if $l.tags}
							{include file='common/listing_tags.tpl' listing_tags_array=$l.tags}
						{/if}
					</td>
				{/if}
 
				{section name=optionals start=1 loop=21}

system/other/image_block.tpl 5.1

File has been split up into 3 different template files, each one is for a different style used for the image block. The new template files are at:

  • system/listing_details/image_block/classic.tpl - Classic image block
  • system/listing_details/image_block/gallery.tpl - Gallery view
  • system/listing_details/image_block/filmstrip.tpl - new Filmstrip view

external/css/theme_styles.css 5.1

New CSS classes added for front page changes. Find:

#content_column_wide {
	overflow: hidden;
	padding: 0 3px 0 10px;
}

Replace With:

#content_column_wide {
	overflow: hidden;
	padding: 0 3px 0 10px;
}
 
#content_column_navigation {
	overflow: hidden;
	padding: 0 10px;
}
 
#content_column_navigation ul.sub_categories li.element {
	border-bottom: 1px solid #F3F3F3;
}

Then a little further down, new CSS class for left side added. Find:

#user_column,
#left_column {
	width: 200px;
	float: left;
}

Replace with:

#user_column,
#left_column {
	width: 200px;
	float: left;
}
 
#navigation_column_left {
	/* Used in alternate front page */
	width: 350px;
	float: left;
	font-size: 10px;
}

Changes to how categories are displayed to improve the layout when using multiple columns.

Find:

/* ######### CATEGORIES STYLES ######### */
#categories {
	margin: 0;
	padding: 0;
}
 
#categories li.element {
	list-style: none;
	display: inline-block;
	float: left;
	font-weight: bold;
	padding: 5px 0;
	margin: 0;
}
 
#categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
}
 
#main_categories {
	margin: 0;
	padding: 0;
}
 
#main_categories li {
	list-style: none;
	text-align: left;
}
 
#main_categories li.element {
	display: block;
	padding: 5px;
	font-size: 12px;
	font-weight: bold;
	background: #fefefe;
	border-top: 1px solid #ffffff;
	border-bottom: 1px solid #f3f3f3;
	text-decoration: none;
	float: left;
	margin-left: 0px;
}
 
 
#main_categories li.clr {
	clear: both;
	height: 0;
	font-size: 0;
	line-height: 0;
}
 
#main_categories li ul {
	margin: 0;
	padding: 0 0 0 10px;
}
 
#main_categories li ul li {
	list-style: none;
	text-align: left;
	padding: 1px 0;
}

Replace With:

/* ######### CATEGORIES STYLES ######### */
 
div.category_column {
	float: left;
}
div.category_column ul {
	margin: 0;
	padding: 0;
}
 
div.category_column ul li.element {
	list-style: none;
	font-weight: bold;
	padding: 5px 0;
	margin: 0;
}
 
div.category_column ul li.element img {
	/* Make category image line up good */
	vertical-align: middle;
}
div.category_column.main_classified_navigation ul li.element {
	/* specific to main classified navigation */
	padding: 5px;
	background: #fefefe;
	border-top: 1px solid #ffffff;
	border-bottom: 1px solid #f3f3f3;
}
 
div#content_column_navigation div.category_column ul.categories li.element {
	/* add background image but only on alternate front page */
	background: url('../images/backgrounds/category.gif') repeat-x right 20px;
}
div#content_column_navigation div.category_column ul.categories li.element ul.sub_categories li.element {
	background: transparent;
}
 
div.category_column ul.sub_categories li.element {
	/* specific to sub-categories */
	font-weight: normal;
	padding: 3px;
	margin: 0px 0px 0px 20px;
}

Then further down in the file, find:

#listing_categories span.category_title,#categories span.category_title
	{
	font-weight: bold;
	font-size: 14px;
	color: #4987c5;
}

replace with:

#listing_categories span.category_title,div.category_column ul span.category_title
{
	font-weight: bold;
	font-size: 16px;
	color: #4987c5;
}
div.category_column ul.sub_categories span.category_title {
	/* Sub-categories are not bolded */
	font-weight: normal;
	font-size: 12px;
}

Changes for the new social network links on front page. Find:

/* ######### LISTING RESULTS STYLES ######### */

Replace with:

span.listing_counts {
	font-size: .8em;
}
 
/*  Social network links  */
 
ul.social_links {
 
}
ul.social_links li.element {
	list-style: none;
	color: #4987c5;
	font-size: 14px;
	font-weight: bold;
	border: none;
	margin: 0;
	padding: 0;
	float: left;
	clear: left;
}
 
ul.social_links li.element img {
	/* Make category image line up good */
	vertical-align: middle;
}
 
/* ######### LISTING RESULTS STYLES ######### */

system/browsing/common/category_block.tpl 5.1

Changes to allow combining stuff into the category breadcrumb.

Find (2 locations in file):

		{if $string_tree or $array_tree}
			<ul id="breadcrumb">
				{if $array_tree}
					<li class="element highlight">{$text.tree_label}</li>
					<li class="element"><a href="{$link}0">{$text.main_category}</a></li>
					{foreach from=$array_tree item=cat name=tree}
						{if not $smarty.foreach.tree.last}<li class="element"><a href="{$link}{$cat.category_id}">{else}<li class="element active">{/if}
						{$cat.category_name}
						{if not $smarty.foreach.tree.last}</a>{/if}
						</li>
					{/foreach}
				{else}
					<li class="element">{$string_tree}</li>
					{* is that anything like string cheese? "string_treese," perhaps? *}
				{/if}
			</ul>
		{/if}

Replace both places with:

		{if $string_tree or $array_tree or $category_tree_pre}
			<ul id="breadcrumb">
				{if $category_tree_pre}
					{* Allow outside sources add to category tree *}
					{$category_tree_pre}
				{/if}
				{if $array_tree}
					<li class="element highlight">{$text.tree_label}</li>
					<li class="element"><a href="{$link}0">{$text.main_category}</a></li>
					{foreach from=$array_tree item=cat name=tree}
						{if not $smarty.foreach.tree.last}<li class="element"><a href="{$link}{$cat.category_id}">{else}<li class="element active">{/if}
						{$cat.category_name}
						{if not $smarty.foreach.tree.last}</a>{/if}
						</li>
					{/foreach}
				{elseif $string_tree}
					<li class="element">{$string_tree}</li>
					{* is that anything like string cheese? "string_treese," perhaps? *}
				{/if}
			</ul>
		{/if}

Changes to improve category layout when using multiple category columns.

Find:

			<ul id="categories">
				{foreach from=$categories item=cat name=block}
					{if $smarty.foreach.block.index % $category_columns == 0}
 
					{/if}
 
					<li class="element" style="width: {$column_width};">
						<a href="{$link}{$cat.category_id}">
							{if $cat.category_image}<img src="{$cat.category_image}" alt="" />{/if}
							<span class="category_title">
								{$cat.category_name}
								{if $cat.category_count}{$cat.category_count}{/if}
								{if $cat.new_ad_icon}{$cat.new_ad_icon}{/if}
							</span>
						</a>
						{if $show_descriptions}
							<p class="category_description">{$cat.category_description}</p>
						{/if}
					</li>
 
					{if ($smarty.foreach.block.index % $category_columns == ($category_columns - 1)) or $smarty.foreach.block.last}
						<li class="clr"></li>
					{/if}
				{/foreach}
			</ul>

Replace with:

		{foreach from=$categories item=cats key=column}
			<div class="category_column" style="width: {$column_width};">
				<ul class="categories">
					{foreach from=$cats item=cat}
						<li class="element category_{$cat.category_id}">
							{if $cat.category_image}<img src="{external file=$cat.category_image}" alt="" />{/if}
							<a href="{$link}{$cat.category_id}">{strip}
								<span class="category_title">
									{$cat.category_name}
								</span>
							{/strip}</a>
							{if $cat.category_count}<span class="listing_counts">{$cat.category_count}</span>{/if}
							{if $cat.new_ad_icon}{$cat.new_ad_icon}{/if}
							{if $show_descriptions}
								<p class="category_description">{$cat.category_description}</p>
							{/if}
							{if $cat.sub_categories}
								<ul class="sub_categories">
									{foreach from=$cat.sub_categories item=sub_cat}
										<li class="element subcategory_{$sub_cat.category_id}">
											<a href="{$link}{$sub_cat.category_id}">
												<span class="category_title">
													{$sub_cat.category_name|fromDB}
												</span>
											</a>
										</li>
									{/foreach}
								</ul>
							{/if}
						</li>
					{/foreach}
				</ul>
			</div>
		{/foreach}

system/order_items/shared/category_choose.tpl 5.1

Made change so that category image is referenced using external instead of directly.

Find:

<img src="{$cat.category_image}" alt="" /> &nbsp;

Replace With:

<img src="{external file=$cat.category_image}" alt="" /> &nbsp;

system/order_items/shared/jit_login_form.tpl

Added code so that the username/password input fields respect the admin-selectable max length settings.

Find:

<input type="text" name="username" maxlength="25" />
...
<input type="password" name="password" maxlength="255" />
...
<input type="password" name="confirm" maxlength="255" />

Replace With:

<input type="text" name="username" maxlength="{$max_user_length}" />
...
<input type="password" name="password" maxlength="{$max_pass_length}" />
...
<input type="password" name="confirm" maxlength="{$max_pass_length}" />

module/ - all category navigation modules 5.1

Consolidated all category navigation modules to use the same shared template modules/shared/category_navigation.tpl. All category navigation modules now include that shared template file.

In addition, the layout has been improved for category navigation modules so that it displays better when displaying sub-categories. Even the template variables have been changed, see the new shared template file modules/shared/category_navigation.tpl for an example of how to use the new template variable structure.

Changes have been made to allow displaying newest ad links as buttons instead of links. Each of the templates will look similar to this6):

{if $buttonStyle}
	<a href="{$href}" class="button">
{else}
	<div class="row_even"><strong><a href="{$href}">
{/if}
{$label}
{if !$buttonStyle}
	</a></strong></div>
{else}
	</a>
{/if}

To 5.1.1

Use of @ucwords 5.1.1

The goal in the built-in templates, is to use as little PHP inside templates as possible, including using PHP functions to filter text7). As such, all places that used to use @ucwords to capitalize the first letter in words, have been replaced by the Smarty built in filter capitalize.

Find:

|@ucwords

Replace with:

|capitalize

The change will be made to all places it is found, in the files listed:

  • module/module_title.tpl
  • system/browsing/common/listing_tags.tpl
  • system/browsing/tag.tpl
  • system/listing_details/listing_tags_links.tpl
  • system/listing_details/listing_tags_list.tpl

system/browsing/full_images.tpl 5.1.1

Change needed so that on the full images page, it does not show the link to "sellers other listings" when the listing was placed anonymously.

In the file, find:

			<li><a href="{$classifieds_url}?a=13&amp;b={$id}">{$messages.1360}</a></li>
			<li><a href="{$classifieds_url}?a=6&amp;b={$seller}">{$messages.1361}</a></li>

Replace with:

			{if not $anonymous}
				<li><a href="{$classifieds_url}?a=13&amp;b={$id}">{$messages.1360}</a></li>
				<li><a href="{$classifieds_url}?a=6&amp;b={$seller}">{$messages.1361}</a></li>
			{/if}

To 5.1.2

external/css/theme_styles.css 5.1.2

Changes so that login box are slightly wider, to accommodate using new reCAPTCHA option for security image.

Find:

.login_shell {
	clear: both;
	width: 610px;
	margin: 20px auto;
}

Replace with:

.login_shell {
	clear: both;
	width: 650px;
	margin: 20px auto;
}

Then later in the file, Find:

#login_left {
	width: 300px;
	float: left;
}

Replace With:

#login_left {
	width: 340px;
	float: left;
}

external/voting/voting_form.tpl 5.1.2

Added admin-editable text to the "reset form" button:

Find:

<input type="reset" name="reset" class="button" />

Replace with:

<input type="reset" name="reset" class="button" value="{$messages.500889}" />

module/module_search_box_1.tpl 5.1.2

Added new addon hook to let addons add to the search box.

Find:

			{/if}
 
			<li>
				{if $hidden_fields}

Replace With:

			{/if}
			{if $addonExtra}
				{foreach from=$addonExtra item=addonContents}
					<li>{$addonContents}</li>
				{/foreach}
			{/if}
			<li>
				{if $hidden_fields}

module/module_title.tpl 5.1.2

Added new addon hook to let addons prepend text in title module.

Find:

	{if $preview_text}{$preview_text} : {/if}

Replace with:

	{if $preview_text}{$preview_text} : {/if}
	{$addonTextPre}

system/ListingFeed/rss_listings.tpl 5.1.2

Changes to make feeds more optimized.

Find:

	{foreach from=$listings item="listing" name="listingLoop"} 

Replace With:

	{foreach from=$listings item="listing" name="listingLoop"} 
		{process_listing listing=$listing}

system/ListingFeed/oodle_feed.tpl 5.1.2

Changes to make feeds more optimized.

Find:

	{foreach from=$listings item="listing" name="listingLoop"} 

Replace With:

	{foreach from=$listings item="listing" name="listingLoop"} 
		{process_listing listing=$listing}

system/order_items/shared/listing_collect_details.tpl 5.1.2

Made a change to the listing details collection page so that the "Additional Info" box is not shown if none of its fields are in use:

Find:

<div class="content_box">
		<h1 class="title">{$messages.500805}</h1>
 
		{if $fields->url_link_1->is_enabled}
			<div class="{if $error_msgs.url_link_1}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_1" class="field_label">{$messages.2434}</label>
 
				{if $editCheck || $fields->url_link_1->can_edit}
					<input type="text" id="url_link_1" name="b[url_link_1]" 
						size="{if $fields->url_link_1->text_length > 30}30{else}{$fields->url_link_1->text_length}{/if}"
						maxlength="{$fields->url_link_1->text_length}"
						value="{$session_variables.url_link_1}" class="field" />
				{else}
					{$session_variables.url_link_1}
				{/if}
 
				{if $error_msgs.url_link_1}
					<span class="error_message">{$messages.2437}</span>
				{/if}
			</div>
		{/if}
 
		{if $fields->url_link_2->is_enabled}
			<div class="{if $error_msgs.url_link_2}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_2" class="field_label">{$messages.2435}</label>
 
				{if $editCheck || $fields->url_link_2->can_edit}
					<input type="text" id="url_link_2" name="b[url_link_2]" 
						size="{if $fields->url_link_2->text_length > 30}30{else}{$fields->url_link_2->text_length}{/if}"
						maxlength="{$fields->url_link_2->text_length}"
						value="{$session_variables.url_link_2}" class="field" />
				{else}
					{$session_variables.url_link_2}
				{/if}
 
				{if $error_msgs.url_link_2}
					<span class="error_message">{$messages.2438}</span>
				{/if}
			</div>
		{/if}
 
		{if $fields->url_link_3->is_enabled}
			<div class="{if $error_msgs.url_link_3}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_3" class="field_label">{$messages.2436}</label>
 
				{if $editCheck || $fields->url_link_3->can_edit}
					<input type="text" id="url_link_3" name="b[url_link_3]" 
						size="{if $fields->url_link_3->text_length > 30}30{else}{$fields->url_link_3->text_length}{/if}"
						maxlength="{$fields->url_link_3->text_length}"
						value="{$session_variables.url_link_3}" class="field" />
				{else}
					{$session_variables.url_link_3}
				{/if}
 
				{if $error_msgs.url_link_3}
					<span class="error_message">{$messages.2439}</span>
				{/if}
			</div>
		{/if}
 
 
		{if $is_ent}
			{foreach from=$opt_field_info item=opt_info key=i}
				{if $opt_info.field->field_type=='cost'}
					{if !$add_cost_at_top}
						{* Adds cost, and does not have set to display cost 
							optional fields at "top" of page (below normal price fields) *}
						<div class="{if $opt_info.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
							<label for="optional_field_{$i}" class="field_label">{$opt_info.label}</label>
 
							<span class="precurrency">{$precurrency}</span>
							{if $editCheck || $opt_info.field->can_edit}
								<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}"
									size="{if $opt_info.field->text_length>12}12{else}{$opt_info.field->text_length}{/if}"
									maxlength="{$opt_info.field->text_length}" class="field"
									value="{$opt_info.value|displayPrice:'':''}" />
							{else}
								{$opt_info.value|displayPrice:'':''}
							{/if}
							{if $opt_info.error}
								<span class="error_message">{$opt_info.error}</span>
							{/if}
						</div>
					{/if}
				{elseif $opt_info.field->is_enabled}
					<div class="{if $opt_info.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
						<label for="optional_field_{$i}" class="field_label">{$opt_info.label}</label>
 
						{if $field_config.use_filters && $opt_info.filter_assoc}
							{* Using filters for this field *}
							{$opt_info.value}
						{elseif !$editCheck && !$opt_info.field->can_edit}
							{* Editing, and can edit is off, so just display *}
							{$opt_info.value}
						{elseif $opt_info.field->field_type=='text'||$opt_info.field->field_type=='url'||$opt_info.field->field_type=='number'}
							{* Text input (text, number, or url) *}
							<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}"
								size="{if $opt_info.field->text_length > 30}30{else}{$opt_info.field->text_length}{/if}"
								maxlength="{$opt_info.field->text_length}" class="field"
								value="{$opt_info.value}" />
						{elseif $opt_info.field->field_type=='textarea'}
							{* textarea type *}
							<textarea rows="6" cols="30" name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field">{$opt_info.value}</textarea>
						{elseif $opt_info.field->field_type=='dropdown'&&count($optional_types[$i])}
							{* dropdown *}
							<select name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field">
								{assign var="opt_used" value="0"}
								{foreach from=$optional_types.$i item="row"}
									{* "value" parameter intentionally ommitted from this <option>, to support values containing double-quotes *}
									<option{if $opt_info.value == ($row.value|escape)} selected="selected"{assign var="opt_used" value="1"}{/if}>{$row.value}</option>
								{/foreach}
							</select>
							{if $opt_info.other_box}
								{* other box for dropdown *}
								&nbsp;{$opt_info.or}&nbsp;
								<input type="text" name="b[optional_field_{$i}_other]"
									value="{if !$opt_used}{$opt_info.value}{/if}"
									class="field" 
									size="{if $opt_info.field->text_length > 30}30{else}{$opt_info.field->text_length}{/if}"
									maxlength="{$opt_info.field->text_length}" />
							{/if}
						{/if}
 
						{if $opt_info.error}
							<span class="error_message">{$opt_info.error}</span>
						{/if}
					</div>
				{/if}
			{/foreach}
		{/if}
 
		{include file="shared/questions.tpl"}
 
		{if $display_description_last_in_form && ($editCheck || $fields->description->can_edit)}
			{include file="shared/details_description_box.tpl"}
		{/if}
	</div>

Replace with:

{* capture this next bit into a smarty variable, so that it can be not shown if there's nothing to show *}
	{capture assign=additionalInfo}
		{if $fields->url_link_1->is_enabled}
			<div class="{if $error_msgs.url_link_1}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_1" class="field_label">{$messages.2434}</label>
 
				{if $editCheck || $fields->url_link_1->can_edit}
					<input type="text" id="url_link_1" name="b[url_link_1]" 
						size="{if $fields->url_link_1->text_length > 30}30{else}{$fields->url_link_1->text_length}{/if}"
						maxlength="{$fields->url_link_1->text_length}"
						value="{$session_variables.url_link_1}" class="field" />
				{else}
					{$session_variables.url_link_1}
				{/if}
 
				{if $error_msgs.url_link_1}
					<span class="error_message">{$messages.2437}</span>
				{/if}
			</div>
		{/if}
 
		{if $fields->url_link_2->is_enabled}
			<div class="{if $error_msgs.url_link_2}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_2" class="field_label">{$messages.2435}</label>
 
				{if $editCheck || $fields->url_link_2->can_edit}
					<input type="text" id="url_link_2" name="b[url_link_2]" 
						size="{if $fields->url_link_2->text_length > 30}30{else}{$fields->url_link_2->text_length}{/if}"
						maxlength="{$fields->url_link_2->text_length}"
						value="{$session_variables.url_link_2}" class="field" />
				{else}
					{$session_variables.url_link_2}
				{/if}
 
				{if $error_msgs.url_link_2}
					<span class="error_message">{$messages.2438}</span>
				{/if}
			</div>
		{/if}
 
		{if $fields->url_link_3->is_enabled}
			<div class="{if $error_msgs.url_link_3}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="url_link_3" class="field_label">{$messages.2436}</label>
 
				{if $editCheck || $fields->url_link_3->can_edit}
					<input type="text" id="url_link_3" name="b[url_link_3]" 
						size="{if $fields->url_link_3->text_length > 30}30{else}{$fields->url_link_3->text_length}{/if}"
						maxlength="{$fields->url_link_3->text_length}"
						value="{$session_variables.url_link_3}" class="field" />
				{else}
					{$session_variables.url_link_3}
				{/if}
 
				{if $error_msgs.url_link_3}
					<span class="error_message">{$messages.2439}</span>
				{/if}
			</div>
		{/if}
 
 
		{if $is_ent}
			{foreach from=$opt_field_info item=opt_info key=i}
				{if $opt_info.field->field_type=='cost'}
					{if !$add_cost_at_top}
						{* Adds cost, and does not have set to display cost 
							optional fields at "top" of page (below normal price fields) *}
						<div class="{if $opt_info.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
							<label for="optional_field_{$i}" class="field_label">{$opt_info.label}</label>
 
							<span class="precurrency">{$precurrency}</span>
							{if $editCheck || $opt_info.field->can_edit}
								<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}"
									size="{if $opt_info.field->text_length>12}12{else}{$opt_info.field->text_length}{/if}"
									maxlength="{$opt_info.field->text_length}" class="field"
									value="{$opt_info.value|displayPrice:'':''}" />
							{else}
								{$opt_info.value|displayPrice:'':''}
							{/if}
							{if $opt_info.error}
								<span class="error_message">{$opt_info.error}</span>
							{/if}
						</div>
					{/if}
				{elseif $opt_info.field->is_enabled}
					<div class="{if $opt_info.error}field_error_row {/if}{cycle values='row_odd,row_even'}">
						<label for="optional_field_{$i}" class="field_label">{$opt_info.label}</label>
 
						{if $field_config.use_filters && $opt_info.filter_assoc}
							{* Using filters for this field *}
							{$opt_info.value}
						{elseif !$editCheck && !$opt_info.field->can_edit}
							{* Editing, and can edit is off, so just display *}
							{$opt_info.value}
						{elseif $opt_info.field->field_type=='text'||$opt_info.field->field_type=='url'||$opt_info.field->field_type=='number'}
							{* Text input (text, number, or url) *}
							<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}"
								size="{if $opt_info.field->text_length > 30}30{else}{$opt_info.field->text_length}{/if}"
								maxlength="{$opt_info.field->text_length}" class="field"
								value="{$opt_info.value}" />
						{elseif $opt_info.field->field_type=='textarea'}
							{* textarea type *}
							<textarea rows="6" cols="30" name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field">{$opt_info.value}</textarea>
						{elseif $opt_info.field->field_type=='dropdown'&&count($optional_types[$i])}
							{* dropdown *}
							<select name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field">
								{assign var="opt_used" value="0"}
								{foreach from=$optional_types.$i item="row"}
									{* "value" parameter intentionally ommitted from this <option>, to support values containing double-quotes *}
									<option{if $opt_info.value == ($row.value|escape)} selected="selected"{assign var="opt_used" value="1"}{/if}>{$row.value}</option>
								{/foreach}
							</select>
							{if $opt_info.other_box}
								{* other box for dropdown *}
								&nbsp;{$opt_info.or}&nbsp;
								<input type="text" name="b[optional_field_{$i}_other]"
									value="{if !$opt_used}{$opt_info.value}{/if}"
									class="field" 
									size="{if $opt_info.field->text_length > 30}30{else}{$opt_info.field->text_length}{/if}"
									maxlength="{$opt_info.field->text_length}" />
							{/if}
						{/if}
 
						{if $opt_info.error}
							<span class="error_message">{$opt_info.error}</span>
						{/if}
					</div>
				{/if}
			{/foreach}
		{/if}
 
		{include file="shared/questions.tpl"}
 
		{if $display_description_last_in_form && ($editCheck || $fields->description->can_edit)}
			{include file="shared/details_description_box.tpl"}
		{/if}
	{/capture}
 
	{if $additionalInfo|strip:''|strlen > 0}
		<div class="content_box">
			<h1 class="title">{$messages.500805}</h1>
			{$additionalInfo}		
		</div>
	{/if}

To 5.1.3

system/browsing/common/category_block.tpl 5.1.3

Made a change to capture the category tree into a smarty var, instead of running the whole code for it twice:

Find:

{if $tree_display_mode == 1 or $tree_display_mode == 2}
    {if $string_tree or $array_tree or $category_tree_pre}
	<ul id="breadcrumb">
		{if $category_tree_pre}
			{* Allow outside sources add to category tree *}
			{$category_tree_pre}
		{/if}
		{if $array_tree}
			<li class="element highlight">{$text.tree_label}</li>
			<li class="element"><a href="{$link}0">{$text.main_category}</a></li>
			{foreach from=$array_tree item=cat name=tree}
				{if not $smarty.foreach.tree.last}<li class="element"><a href="{$link}{$cat.category_id}">{else}<li class="element active">{/if}
				{$cat.category_name}
				{if not $smarty.foreach.tree.last}</a>{/if}
				</li>
			{/foreach}
		{elseif $string_tree}
			<li class="element">{$string_tree}</li>
			{* is that anything like string cheese? "string_treese," perhaps? *}
		{/if}
	</ul>
    {/if}
{/if}

Replace with:

{capture assign=category_breadcrumb}
    {if $string_tree or $array_tree or $category_tree_pre}
	<ul id="breadcrumb">
		{if $category_tree_pre}
			{* Allow outside sources add to category tree *}
			{$category_tree_pre}
		{/if}
		{if $array_tree}
			<li class="element highlight">{$text.tree_label}</li>
			<li class="element"><a href="{$link}0">{$text.main_category}</a></li>
			{foreach from=$array_tree item=cat name=tree}
				{if not $smarty.foreach.tree.last}<li class="element"><a href="{$link}{$cat.category_id}">{else}<li class="element active">{/if}
				{$cat.category_name}
				{if not $smarty.foreach.tree.last}</a>{/if}
				</li>
			{/foreach}
		{elseif $string_tree}
			<li class="element">{$string_tree}</li>
			{* is that anything like string cheese? "string_treese," perhaps? *}
		{/if}
	</ul>
    {/if}
{/capture}
 
{if $tree_display_mode == 1 or $tree_display_mode == 2}
	{$category_breadcrumb}
{/if}

then at the bottom of the file, make this change:

Find:

{if $tree_display_mode == 0 or $tree_display_mode == 2}
    {if $string_tree or $array_tree or $category_tree_pre}
	<ul id="breadcrumb">
		{if $category_tree_pre}
			{* Allow outside sources add to category tree *}
			{$category_tree_pre}
		{/if}
		{if $array_tree}
			<li class="element highlight">{$text.tree_label}</li>
			<li class="element"><a href="{$link}0">{$text.main_category}</a></li>
			{foreach from=$array_tree item=cat name=tree}
				{if not $smarty.foreach.tree.last}<li class="element"><a href="{$link}{$cat.category_id}">{else}<li class="element active">{/if}
				{$cat.category_name}
				{if not $smarty.foreach.tree.last}</a>{/if}
				</li>
			{/foreach}
		{elseif $string_tree}
			<li class="element">{$string_tree}</li>
			{* is that anything like string cheese? "string_treese," perhaps? *}
		{/if}
	</ul>
    {/if}
{/if}

Replace with:

{if $tree_display_mode == 0 or $tree_display_mode == 2}
	{$category_breadcrumb}
{/if}

To 5.1.4

external/css/theme_styles.css 5.1.4

Change needed to remove bullets from appearing for the "clear" list elements.

Find:

#listing_categories li.clr {
    clear: both;
    height: 0;
    font-size: 0;
    line-height: 0;
}

Replace With:

#listing_categories li.clr {
    clear: both;
    list-style: none;
    height: 0;
    font-size: 0;
    line-height: 0;
}

external/css/system/order_items/images/upload_images.css 5.1.4

NOTE: This CSS file is normally only found in the default template set, like with system or module templates you would have had to manually copy this file to your custom template set.

Problem was fixed with the relative location of background image for title bars, affecting the standard image uploader.

Find:

	background: #4174a6 url('../images/backgrounds/c_bar_primary.gif');

Replace with:

    background: #4174a6 url('../../../../images/backgrounds/c_bar_primary.gif');

Few lines down in same file, Find:

	background: #7ca93a url('../images/backgrounds/c_bar_secondary.gif');

Replace with:

    background: #7ca93a url('../../../../images/backgrounds/c_bar_secondary.gif');

system/listing_details/listing_tags_list.tpl 5.1.4

Fixed {$listing_tags_list} to not link. Change the file contents to be like this:

{* $Rev: 20434 $ *}
 
{foreach from=$listing_tags_array item=tag name=tagList}{$tag|replace:'-':' '|capitalize|escape}{if !$smarty.foreach.tagList.last}, {/if}{/foreach}

To 5.1.5

Note: Version 5.1.5 is not released yet, so the changes noted below are subject to change and be added to before 5.1.5 is released.

system/listing_details/image_block/gallery.tpl and filmstrip.tpl 5.1.5

These changes apply to both gallery.tpl and filmstrip.tpl. These changes are needed to fix 404 error in IE7 when trying to open "non image" on listing details page, on sites with SEO enabled.

Find:

			new_a.observe ('click', function (action) {
				action.stop();
				window.open(this.href);
			});

Replace With:

			new_a.observe ('click', function (action) {
				if (!this.href.startsWith('http')) {
					//Stupid work-around for ie7, where this.href doesn't behave.
					return;
				}
				window.open(this.href);
				action.stop();
			});

system/payment_gateways/shared/payment_details.cc_form.tpl 5.1.5

Changes to make the CVV image link use {external …} so that it points to the correct location.

Find:

<label for="cvv2_code" class="inline"><a href="images/cvv2_code.gif" class="lightUpImg">{$messages.500296}</a></label>

Replace With:

<label for="cvv2_code" class="inline"><a href="{external file='images/cvv2_code.gif'}" class="lightUpImg">{$messages.500296}</a></label>

system/voting/browse_votes.tpl 5.1.5

Two of the table headers were swapped and in the wrong order

Find:

<td class="column_header">{$messages.2005}</td>
<td class="column_header">{$messages.2006}</td>
<td class="column_header">{$messages.2007}</td>
<td class="column_header">{$messages.2008}</td>

Replace With:

<td class="column_header">{$messages.2005}</td>
<td class="column_header">{$messages.2006}</td>
<td class="column_header">{$messages.2008}</td>
<td class="column_header">{$messages.2007}</td>

system/other/ajax_searchQuestions.tpl 5.1.5

Fixed issue when there is "other" box, it ignores category question values selected from drop-down.

Find:

{if $q.other} {$messages.500659} <input class="field" type="text" name="b[question_value][{$q.key}]" />{/if}

Replace with:

{if $q.other} {$messages.500659} <input class="field" type="text" name="b[question_value_other][{$q.key}]" />{/if}

To 5.2

system/order_items/shared/category_choose.tpl 5.2.0

Change to allow displaying category description under each category when placing a listing. Find:

				<a href="{$classifieds_file_name}?a=cart&amp;main_type={$main_type}&amp;step={$step}&amp;b={$cat.category_id}&amp;action=process">
					{if $display_cat_image ne 0 AND $cat.category_image ne ""}
						<img src="{external file=$cat.category_image}" alt="" /> &nbsp;
					{/if}
					<span class="category_title">{$cat.category_name|fromDB}</span>
				</a>

Replace With:

				<a href="{$classifieds_file_name}?a=cart&amp;main_type={$main_type}&amp;step={$step}&amp;b={$cat.category_id}&amp;action=process">
					{if $display_cat_image ne 0 AND $cat.category_image ne ""}
						<img src="{external file=$cat.category_image}" alt="" /> &nbsp;
					{/if}
					<span class="category_title">{$cat.category_name|fromDB}</span>
					{if $display_cat_description && $cat.description}
						<p class="category_description">{$cat.description|fromDB}</p>
					{/if}
				</a>

main_page/listing_classified.tpl and listing_auction.tpl 5.2.0

Added ability to have the edit and delete buttons show on the listing details page, just like they are already displayed when browsing category browsing. To see the buttons, in both the listing_classified.tpl and listing_auction.tpl template files, make the following change (this will not work on previous versions). This change also allows addons such as Sharing to add more buttons here:

Find:

	{$title}

Replace with:

	{$title}
	{if $can_edit}
		<a href="{$classifeds_file_name}?a=cart&amp;action=new&amp;main_type=listing_edit&amp;listing_id={$classified_id}"><img src="{external file='images/buttons/listing_edit.gif'}" alt="" /></a>
	{/if}
	{if $can_delete}
		<a onclick="if (!confirm('Are you sure you want to delete this?')) return false;" href="{$classifieds_file_name}?a=99&amp;b={$classified_id}"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a>
	{/if}
	{foreach from=$addonActionButtons item=btn}
		{$btn}
	{/foreach}

There is new Youtube videos that require a new section to be added to both listing_classified.tpl and listing_auction.tpl. In both files, find:

<div class="content_box" id="listing_photos">
	<h2 class="title">{$additional_text_4} <span class="mini_text">( &raquo; {$full_images_link} )</span></h2>
 
	{$image_block}
</div>

Replace with:

{if $offsite_videos_block}
	<div class="content_box" id="listing_offsite_videos">
		<h2 class="title">{$offsite_videos_title}</h2>
 
		{$offsite_videos_block}
	</div>
	<div class="clr"><br /></div>
{/if}
 
{if $image_block}
	<div class="content_box" id="listing_photos">
		<h2 class="title">{$additional_text_4} <span class="mini_text">( &raquo; {$full_images_link} )</span></h2>
 
		{$image_block}
	</div>
{/if}

The new Public Questions / Answers functionality requires an addition to both of these templates, as well. Insert the following code wherever you'd like the Public Questions area to appear:

<div class="content_box">
	<h1 class="title">{$publicQuestionsLabel}{if $logged_in} - <a href="{$classifieds_file_name}?a=13&amp;b={$classified_id}">{$askAQuestionText}</a>{/if}</h1>
	{if $publicQuestions}
		{foreach from=$publicQuestions item=q key=question_id}
			{if $q.answer !== false}
				<div class="publicQuestions {cycle values='row_odd,row_even'}">
					<div class="question">
						<span class="public_question_asker_username"><a href="{$classifieds_file_name}?a=6&amp;b={$q.asker_id}">{$q.asker}</a></span> 
						<span class="public_question_asker_timestamp">({$q.time})</span>
						{if $can_delete}<a onclick="if (!confirm('Are you sure you want to remove this question and its answer?')) return false;" href="{$classifieds_file_name}?a=4&amp;b=8&amp;c=2&amp;d={$question_id}&amp;public=1"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a> {/if}
						<br /> 
						{$q.question}
					</div>
					<div class="answer">
						{$q.answer}
					</div>
				</div>
			{/if}
		{/foreach}
	{else}
		<div class="box_pad">{$noPublicQuestions}</div>
	{/if}
</div>

system/payment_gateways/shared/transaction_approved.tpl 5.2.0

Added new section to display order details on the cart success/failure page.

Find:

	{if $logged_in}

Replace With:

	{if $cart_items}
		<div>
			<h1 class="title">{$messages.500896}</h1>
			{include file='display_cart/index.tpl' g_resource='cart' view_only=1 items=$cart_items}
			<div class="clear"></div>
		</div>
		<br />
	{/if}
 
	{if $logged_in}

Changes to make the cart display in the admin panel.

Find:

{if $logged_in}

Replace With:

{if $logged_in&&!$in_admin}

module/shared/featured_pic.tpl 5.2.0

Added ability to show "sold" image on featured pic module.

Find:

					{if $l.caption || $l.price != '-' || $l.type}
						<tr>
							<td>
								{if $l.caption}
									<span class="featured_title">{$l.caption|strip_tags|truncate:$module.length_of_description+3}</span>
								{/if}
								{if $l.price != '-'}
									<span class="price">{$l.price}</span>
								{/if}
								{if $l.type}
									<div>{$l.type}</div>
								{/if}
							</td>
						</tr>
					{/if}

Replace With:

					{if $l.caption || $l.price != '-' || $l.type || $l.sold_image}
						<tr>
							<td>
								{if $l.caption}
									<span class="featured_title">{$l.caption|strip_tags|truncate:$module.length_of_description+3}</span>
								{/if}
								{if $l.price != '-'}
									<span class="price">{$l.price}</span>
								{/if}
								{if $l.type}
									<div>{$l.type}</div>
								{/if}
								{if $l.sold_image}
									<img src="{$l.sold_image}" alt="" style="border-style: none;" />
								{/if}
							</td>
						</tr>
					{/if}

Also made a change to allow W3C validation when the result table is empty and the "empty message" is turned off:

Find:

{foreachelse}
	{* returned no results *}
	{if $resultset_empty_message}
		<tr>
			<td>
				<div class="no_results_box">
					{$resultset_empty_message}
				</div>
			</td>
		</tr>
	{/if}
{/foreach}

Replace with:

{foreachelse}
	{* returned no results *}
	<tr>
		<td>
			{if $resultset_empty_message}
				<div class="no_results_box">
					{$resultset_empty_message}
				</div>
			{/if}
		</td>
	</tr>
{/foreach}

system/user_management/current_ads/list.tpl and expired_ads/list.tpl 5.2.0

The design of both of these listing tables has changed extensively. Columns have been consolidated, and the action buttons "hidden" behind javascript. This cleans these tables up considerably, especially for smaller-resolution screens, such as netbooks and mobile browsers. The specific changes are too extensive to note here.

system/cart/display_cart/new_buttons_box.tpl 5.2.0

Changes to allow cart to be used in admin panel.

Find:

<li><a href='/support/geocore-wiki/doku.php/id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,support;geocore-wiki;doku.php;id,{$classifieds_file_name};a,cart;action,new;main_type,{$k};;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/'>{$s}</a></li>

Replace With:

<li><a href="{$cart_url}&amp;action=new&amp;main_type={$k}">{$s}</a></li>

external/js/listing_placement.js 5.2.0

Changes to allow cart to be used in admin panel.

Find:

var geoListing = {

Replace With:

var geoListing = {
 
	inAdmin : false,
 

Then later in the same file, Find:

		new Ajax.Autocompleter('listingTags', 'listingTags_choices', 'AJAX.php?controller=ListingTagAutocomplete&action=getSuggestions', {

Replace With:

		var pre = (geoListing.inAdmin)? '../' : '';
		new Ajax.Autocompleter('listingTags', 'listingTags_choices', pre+'AJAX.php?controller=ListingTagAutocomplete&action=getSuggestions', {

system/cart/payment_choices/index.tpl 5.2.0

Change to template var name to make it consistent with other templates. Replace {$cart_base_url} with {$cart_url} in the template file.

system/order_items/images/image_box.tpl 5.2.0

Changes to allow cart to be used in admin panel.

Find every occurrence of:

{external

And replace each with

{if $in_admin}../{/if}{external

Also find every occurrence of:

"{$slotData.image.image_url}"

Replace each with:

"{if $in_admin}../{/if}{$slotData.image.image_url}"

Also find:

			<span class="deleteImage" id="deleteImage_{$position}" onclick="geoUH.deleteImage({$position});">{$messages.500715}</span>

replace with:

			<span class="deleteImage" id="deleteImage_{$position}" onclick="geoUH.deleteImage({$position});">
				{if $in_admin}
					<img src="../{external file='images/buttons/delete.png'}" alt="Delete Image" />
				{else}
					{$messages.500715}
				{/if}
			</span>

Then, find:

			<span class="editImage" id="editImage_{$position}" onclick="geoUH.editImage({$position});">{$messages.500714}</span>

Replace with:

			<span class="editImage" id="editImage_{$position}" onclick="geoUH.editImage({$position});">
				{if $in_admin}
					<img src="../{external file='images/buttons/edit.png'}" alt="Edit Image Info" />
				{else}
					{$messages.500714}
				{/if}
			</span>

system/order_items/images/legacy_form.tpl 5.2.0

Changes to fix reference to image place-holder when it is not needed. Also a few changes to allow it to be used in the admin panel.

Find:

			{if $uploading_image || $uploading_image_placeholder}
				onsubmit="javascript: document.getElementById('loadingImage{$noscript}').src='{$uploading_image}';"
			{/if}>
			{if $uploading_image || $uploading_image_placeholder}
				<script type="text/javascript">
					loadingAnim = new Image();
					loadingAnim.src = 'images/loading.gif';
				</script>
			{/if}
	{/if}
	<!-- <input type="hidden" name="MAX_FILE_SIZE" value="{$old_config.maximum_upload_size}" /> -->
 
	{if $uploading_image}
		<div class="center">
			<img id="loadingImage{$noscript}" alt="" src="{$uploading_image_placeholder}" />
		</div>
	{/if}

Replace With:

			{if $uploading_image}
				onsubmit="$('loadingImage{$noscript}').setStyle({ldelim}visibility: 'visible'});"
			{/if}>
	{/if}
	<!-- <input type="hidden" name="MAX_FILE_SIZE" value="{$old_config.maximum_upload_size}" /> -->
 
	{if $uploading_image}
		<div class="center">
			<img id="loadingImage{$noscript}" alt="" src="{if $in_admin}../{/if}{external file=$uploading_image}" style="visibility: hidden;" />
		</div>
	{/if}

Also changes for new "show/hide instructions" functionality added. Find:

<p class="page_instructions">{$images.legacy_description}</p>

Replace with:

{if !$noscript}<div id="image_upload_instructions_legacy_box">{/if}
	<p class="page_note">{$images.legacy_description}</p>
{if !$noscript}</div>{/if}

system/order_items/images/upload_images.tpl 5.2.0

Changes to allow cart to be used in the admin panel.

Find:

<img src="{$uploading_image}" alt="Loading..." />{$messages.500704}<br /><br />

Replace with:

<img src="{if $in_admin}../{/if}{external file=$uploading_image}" alt="Loading..." />{$messages.500704}<br /><br />

Later in the same file, Find:

<div id="uploadBar" style="width: 1%;"><img id="barAnimation" src="{external file='images/animation_bar.gif'}" alt="Processing Image" style="display: none;" /></div>

Replace with:

<div id="uploadBar" style="width: 1%;"><img id="barAnimation" src="{if $in_admin}../{/if}{external file='images/animation_bar.gif'}" alt="Processing Image" style="display: none;" /></div>

Also changes to allow upload images to be part of a "media" step, as part of the feature to add youtube video. Changes for this are too much to document here.

system/order_items/images/upload_images_head.tpl 5.2.0

Changes to allow cart to be used in the admin panel.

Find:

		geoUH.flashUrl = "classes/swfupload/swfupload.swf";

Replace with:

		geoUH.flashUrl = "{if $in_admin}../{/if}classes/swfupload/swfupload.swf";
		geoUH.ajaxUrl = "{if $in_admin}../{/if}AJAX.php";

A few lines down, find:

geoUH.flashButtonImage = '{external file="images/buttons/select_file.png"}';

Replace with:

geoUH.flashButtonImage = '{if $in_admin}../{/if}{external file="images/buttons/select_file.png"}';

Then find:

			"classified_session": "{$classified_session}",
			"user_agent": "{$user_agent}",
			"uploadSlot": "{$freeSlot}",
			"userId" : "{$user.id}"

Replace with:

			'classified_session': '{$classified_session|escape_js}',
			'user_agent': '{$user_agent|escape_js}',
			'uploadSlot': '{$freeSlot}',
			'userId' : '{$userId}',
			'adminId' : '{$adminId}'

Then find:

		geoUH.userId = {$user.id};

replace with:

		
		geoUH.userId = {$userId};
		geoUH.adminId = {$adminId};
		

Also changes to add new "show/hide instructions" feature. Find:

		if (lightUpBox) {ldelim}
			//register the show and hide callbacks for image upload box with the
			//lightupbox, so it shows and hides cleanly
			lightUpBox.registerHideCallback (geoUH.tempHideUpload);
			lightUpBox.registerShowCallback (geoUH.tempShowUpload);
		}

Replace with:

		if (lightUpBox) {ldelim}
			//register the show and hide callbacks for image upload box with the
			//lightupbox, so it shows and hides cleanly
			lightUpBox.registerHideCallback (geoUH.tempHideUpload);
			lightUpBox.registerShowCallback (geoUH.tempShowUpload);
		}
		//register the fix position callback for after show/hide instruction
		//animation is done, so that the image upload box gets moved to correct
		//place after instructions are shown/hidden
		geoUtil.instrBtns.registerCallbacks (geoUH.tempHideUpload, geoUH.fixUploadPosition);

system/order_items/shared/listing_collect_details.tpl 5.2.0

Changes to allow cart to be used in admin panel.

Find:

<form action="{$form_url}" method="post">

Replace with:

<script type="text/javascript">
	//<![CDATA[
	geoListing.inAdmin={if $in_admin}true{else}false{/if};
	//]]>
</script>
 
<form action="{$form_url}" method="post">

external/js/system/order_items/images/handlers.js 5.2.0

Changes to allow cart to be used in admin panel.

Find:

	//the flash URL, used when initing the swfu

Replace with:

	//The URL for the AJAX.php file
	ajaxUrl : "AJAX.php",
 
	//the flash URL, used when initing the swfu

Then later in file, find:

	userId : 0,

replace with:

	userId : 0,
	adminId : 0,

Then, find all occurrences of:

"AJAX.php

And replace each one with:

geoUH.ajaxUrl+"

In same file, find:

					parameters: {'imageSlots': Sortable.serialize('imagesCapturedBox'), 'userId' : geoUH.userId},

Replace with:

					parameters: {
						'imageSlots': Sortable.serialize('imagesCapturedBox'),
						'userId' : geoUH.userId,
						'adminId' : geoUH.adminId
					},

Then find each occurrence:

userId : geoUH.userId

Replace each one with:

userId : geoUH.userId,
adminId : geoUH.adminId

In same file, further changes made to add "show/hide instructions" feature.

Find:

		//Find the "next" form, and add a listener to it.

Replace with:

		//show the instructions
		if ($('image_upload_instructions')) {
			$('image_upload_instructions').show();
		}
		if ($('image_upload_instructions_legacy')) {
			//hide legacy button
			$('image_upload_instructions_legacy').hide();
		}
 
		//Find the "next" form, and add a listener to it.

Then later in the file, find:

	},
 
	/**
	 * Moves new/edit image box to the given image slot, uses a move animation if
	 * the box is already visible, or just moves it then uses a fade in animation
	 * if the box starts out hidden.
	 */
	moveTo : function (position) {

replace with:

	},
 
	/**
	 * Fixes the position of the image upload box
	 */
	fixUploadPosition : function () {
		if (geoUH.currentEditPosition) {
			geoUH.moveTo(geoUH.currentEditPosition);
		} else if (geoUH.currentUploadSpot) {
			geoUH.moveTo(geoUH.currentUploadSpot);
		}
	},
 
	/**
	 * Moves new/edit image box to the given image slot, uses a move animation if
	 * the box is already visible, or just moves it then uses a fade in animation
	 * if the box starts out hidden.
	 */
	moveTo : function (position) {

Template variable changes for cart_url 5.2.0

Changes to allow cart to be used in the admin panel.

In each of these files:

  • system/cart/display_cart/action_interrupted.tpl
  • system/cart/display_cart/item.tpl
  • system/order_items/shared/category_choose.tpl
  • system/order_items/listing_edit/edit_choices.tpl

Changes to allow cart to be used in admin panel.

In the file, find every occurrence of:

{$classifieds_file_name}?a=cart

And replace each with:

{$cart_url}

system/order_items/images/display_images.tpl 5.2.0

Changes to get rid of empty image boxes when using legacy image uploader.

Find:

			{if !$smarty.foreach.imgs.last && ($smarty.foreach.imgs.index+1) % $old_config.photo_columns == 0}
				</li><li class="clr">
			{/if}

Remove that code from the template.

Changes to template vars, as part of changing how image upload page is structured, to add youtube video.

Find:

$images_data

Replace with:

$images.images_data

Find:

$show_delete

replace with:

$images.show_delete

system/ListingFeed/oodle_feed.tpl 5.2.0

Changes to allow Oodle feed to handle location data with invalid chars in it.

Find:

			{if $listing.location_address}<address>{$listing.location_address|fromDB|strip}</address>{/if} 
			{if $listing.location_city}<city>{$listing.location_city|fromDB|strip}</city>{/if} 
			{if $listing.location_state}<state>{$listing.location_state|fromDB|strip}</state>{/if} 
			{if $listing.location_zip}<zip_code>{$listing.location_zip|fromDB|strip}</zip_code>{/if} 
			{if $listing.location_country}<country>{$listing.location_country|fromDB|strip}</country>{/if}

Replace With:

			{if $listing.location_address}<address><![CDATA[{$listing.location_address|fromDB|replace:']]>':''|strip}]]></address>{/if} 
			{if $listing.location_city}<city><![CDATA[{$listing.location_city|fromDB|replace:']]>':''|strip}]]></city>{/if} 
			{if $listing.location_state}<state><![CDATA[{$listing.location_state|fromDB|replace:']]>':''|strip}]]></state>{/if} 
			{if $listing.location_zip}<zip_code><![CDATA[{$listing.location_zip|fromDB|replace:']]>':''|strip}]]></zip_code>{/if} 
			{if $listing.location_country}<country><![CDATA[{$listing.location_country|fromDB|replace:']]>':''|strip}]]></country>{/if} 

system/order_items/images/images_captured_box.tpl 5.2.0

Changes to template vars, as part of changing how image upload page is structured, to add youtube video.

Find:

$imageSlots

Replace with:

$images.imageSlots

external/css/theme_styles.css 5.2

Added new CSS for show instructions button, added during new media collection page.

Add to file:

h2.title a.show_instructions_button,
.show_instructions_button {
	/* The instructions button for each section on media collection page */
	color: #666666;
}

Also added new CSS for displaying the video block.

Add to file:

/*  Offsite Videos */
div.offsite_video {
	display: inline-block;
	margin: 5px;
	padding: 15px;
	border: 3px solid #eaeaea;
}
 
div.offsite_videos_container {
	text-align: center;
	padding-bottom: 20px;
}

external/css/system/order_items/images/upload_images.css 5.2.0

NOTE: This CSS file is normally only found in the default template set, like with system or module templates you would have had to manually copy this file to your custom template set.

Minor change to CSS to prevent jumpiness in new "show/hide instructions" functionality.

Find:

#standardUploadBox {
	/* overall containter for "standard" image uploader (the fancy one) */
	margin-top: 20px;
}

Replace with:

#standardUploadBox {
	/* overall containter for "standard" image uploader (the fancy one) */
 
}

To 5.2.1

system/order_items/shared/media.tpl 5.2.1

Fix to make legacy image uploader work properly on new media collection page.

Find:

<form method="post" action="{$process_form_url}">

Replace With:

<form method="post" action="{$process_form_url}" enctype="multipart/form-data">

external/js/system/order_items/images/handlers.js 5.2.1

Few tweaks to JS that should make it slightly more stable.

Find:

			while (formElem && !formElem.match('form') && formElem.up()) {
				//keep traveling up the DOM until we get to the parent form
				formElem = formElem.up();
			}

Replace With:

			formElem = formElem.up('form');

Further down, Find:

		//reset parameters
		geoUH.swfu = null;

Replace with:

		//reset parameters
		//geoUH.swfu should have been destroyed above, so set the var to null
		geoUH.swfu = null;
		if (!geoUH.doingSomething('initSwfu')) {
			//we are hiding before init is finished loading, since we just destroyed it,
			//chances are it isn't initializing any more...
			//alert('that was close!');
			geoUH.doNothing();
		}

external/css/theme_styles.css 5.2.1

We missed 2 classes that needed to be moved to secondary theme styles, for the instructions button added during media collection step.

Find:

h2.title a.show_instructions_button:hover,
.show_instructions_button:active {
	border: 1px solid #a7c1dd;
	background: #b7d5f2 url('../images/backgrounds/button_hover.gif') repeat-x center left;
	color: #3c70ac;
	text-decoration: none;
}

Remove that code (it is moved to secondary theme styles)

external/css/secondary_theme_styles.css 5.2.1

We missed 2 classes that needed to be moved to secondary theme styles, for the instructions button added during media collection step.

Find:

.mini_button:hover,
.mini_button:active,
.editor_ok_button:hover,
.edit:hover,
.edit:active,
.preview:hover,
.preview:active
{

Replace with:

.mini_button:hover,
.mini_button:active,
.editor_ok_button:hover,
.edit:hover,
.edit:active,
.preview:hover,
.preview:active,
h2.title a.show_instructions_button:hover,
h2.title a.show_instructions_button:active
{

module/module_zip_filter_1.tpl 5.2.1

In this file, we change the order of the tags to fix W3C validation error. The <form …> open and close tags have been moved to be "outside" of the main <div> element.

To 5.2.2

system/order_items/shared/media.tpl 5.2.2

Changes required to make sure the media collection page is being submitted (so that it does not process media just from hitting refresh). Note that without this change, the media page will not go on when the user clicks "continue", the page will just keep refreshing.

Find:

		<div class="center">
			<input type="submit" name="" value="{$messages.500757}" class="button" />
			<br /><br />
			<a href="{$cart_url}&amp;action=cancel" class="cancel">{$cancel_txt}</a>
		</div>

Replace with:

		<div class="center">
			<input type="hidden" name="media_submit_form" value="1" />
			<input type="submit" name="" value="{$messages.500757}" class="button" />
			<br /><br />
			<a href="{$cart_url}&amp;action=cancel" class="cancel">{$cancel_txt}</a>
		</div>

main_page/listing_classified.tpl and main_page/listing_auction.tpl 5.2.2

We made some changes to the default listing details templates to make the Sharing addon buttons more W3C-compliant, and make the Sharing popup function correctly in Internet Explorer 9.

Change this:

<h1 class="listing_title">
	<span class="id">{$classified_id_label} {$classified_id}</span>
	{$title}
	{if $can_edit}
		<a href="{$classifeds_file_name}?a=cart&amp;action=new&amp;main_type=listing_edit&amp;listing_id={$classified_id}"><img src="{external file='images/buttons/listing_edit.gif'}" alt="" /></a>
	{/if}
	{if $can_delete}
		<a onclick="if (!confirm('Are you sure you want to delete this?')) return false;" href="{$classifieds_file_name}?a=99&amp;b={$classified_id}"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a>
	{/if}
	{foreach from=$addonActionButtons item=btn}
		{$btn}
	{/foreach}
</h1>

To this:

<h1 class="listing_title" style="display: inline;">{$title} <span class="id">{$classified_id_label} {$classified_id}</span></h1>
 
<div class="action_buttons" style="display: inline;">
	{if $can_edit}
		<a href="{$classifeds_file_name}?a=cart&amp;action=new&amp;main_type=listing_edit&amp;listing_id={$classified_id}"><img src="{external file='images/buttons/listing_edit.gif'}" alt="" /></a>
	{/if}
	{if $can_delete}
		<a onclick="if (!confirm('Are you sure you want to delete this?')) return false;" href="{$classifieds_file_name}?a=99&amp;b={$classified_id}"><img src="{external file='images/buttons/listing_delete.gif'}" alt="" /></a>
	{/if}
	{foreach from=$addonActionButtons item=btn}
		{$btn}
	{/foreach}
</div>
<div class="clr"></div>
<br />

To 5.2.4

external/js/system/order_items/images/handlers.js 5.2.4

Change to get rid of mis-alignment of new image upload box. Find:

		var moveX = (movePosition.left * 1) - 10;
		var moveY = (movePosition.top * 1) - 10;

Replace With:

		//The old -10 adjustment no longer needed, guess Prototype's
		//positionedOffset is more accurate in new version of library.
		var moveX = (movePosition.left * 1);
		var moveY = (movePosition.top * 1);

To 6.0.0

Main Changes

Below is a list of changes most sites will need to do because of the new version of Smarty 3.1.5, regardless of whether they customize system or module templates.

  • In main_page/front_page.tpl change $geo_inc_files.addons.geo_addons.geographic_navigation to $enabledAddons.geographic_navigation
  • Convert any places that embed PHP in templates (using {php} or {php_include} tags), to use alternate methods. Suggestions for that can be found in Alternatives for {php} In Templates
  • The new version of Smarty is much more strict, after updating to version 6.0 we recommend to go through your site and check for any errors. Most changes just require minor adjustments, for instance removing extra space from a tag like { tag} to {tag}, things like that.

system/cart/display_cart/item.tpl 6.0.0

Change to add the edit price button for when working on cart in admin panel.

Find:

		<div class="cart_item_buttons">
			{if $item.canEdit}
				<a href="{$cart_url}&amp;action=edit&amp;item={$k}" class="edit">{$messages.500260}</a>
			{/if}

Replace with:

		<div class="cart_item_buttons">
			{if !$allFree && $item.canAdminEditPrice && $in_admin}
				<a href="index.php?page=admin_cart_edit_price&amp;userId={$cart_user_id}&amp;item={$k}" class="edit lightUpLink">Edit <em class="text_blue">Price</em></a>
			{/if}
			{if $item.canEdit}
				<a href="{$cart_url}&amp;action=edit&amp;item={$k}" class="edit">{$messages.500260}</a>
			{/if}

Changes for added features in admin-side cart, to allow "pre-approval" of items that normally require admin approval.

Find:

		{$item.title}

Replace with:

		{$item.title}
		{if $in_admin && !$view_only && $item.needAdminApproval}
			<br />
			<label>
				<input type="checkbox" name="needAdminApproval_skip[{$k}]" value="1"{if $item.needAdminApproval_skip} checked="checked"{/if} class="pre_approve_checkbox" />
				{$messages.500947} {$admin_auto_approve_help}
			</label>
		{/if}

Changes to allow costs of 0 to be replaced by a string:

Find:

				{$item.total|displayPrice}

Replace with:

				{$item.total|displayPrice:false:false:'cart'}

Template variable changes for cart_url 6.0.0

Changes to allow cart to be used in the admin panel (A few changes that were missed in 5.2.0).

In each of these files:

  • system/order_items/shared/anonymous_data.tpl
  • system/order_items/shared/choose_price_plan.tpl
  • system/order_items/shared/listing_collect_details.tpl

Changes to allow cart to be used in admin panel.

In the file, find every occurrence of:

{$classifieds_file_name}?a=cart

And replace each with:

{$cart_url}

system/cart/display_cart/index.tpl 6.0.0

Changes for added features in admin-side cart, to allow "pre-approval" of items that normally require admin approval.

Find:

		{assign var='no_use_checkout' value=0}
 
		{foreach from=$items key=k item=item}
			{include file="display_cart/item.tpl" is_sub=0}
		{foreachelse}
			{assign var='no_use_checkout' value=1}
			<div class="note_box">
				<strong>{if $allFree}{$messages.500405}{else}{$messages.500248}{/if}</strong>
			</div>
		{/foreach}
 
		{if !$view_only && $no_use_checkout ne 1}
			<div class="checkout_button">
				<button onclick="window.location='{$process_form_url}'">{if $allFree}{$messages.500406}{else}{$messages.500250}{/if}</button>
			</div>
		{/if}

Replace with:

		{if !$view_only}<form method="post" action="{$process_form_url}">{/if}
			{assign var='no_use_checkout' value=0}
 
			{foreach from=$items key=k item=item}
				{include file="display_cart/item.tpl" is_sub=0}
			{foreachelse}
				{assign var='no_use_checkout' value=1}
				<div class="note_box">
					<strong>{if $allFree}{$messages.500405}{else}{$messages.500248}{/if}</strong>
				</div>
			{/foreach}
 
			{if !$view_only && $no_use_checkout ne 1}
				<div class="checkout_button">
					<input type="hidden" name="checkout_clicked" value="0" id="checkout_clicked" />
					<button type="submit" class="button" onclick="$('checkout_clicked').value='click';">{if $allFree}{$messages.500406}{else}{$messages.500250}{/if}</button>
				</div>
			{/if}
		{if !$view_only}</form>{/if}

system/cart/payment_choices/index.tpl 6.0.0

Fix cart link on payment page in new admin cart.

Find:

{$messages.500265}

Replace with:

{$order_summary_desc}

system/payment_gateways/shared/transaction_approved.tpl 6.0.0

Add a "recently created orders" link when viewing cart in admin panel.

Find:

	{if $logged_in&&!$in_admin}
		<div class="center">
			<a href="{$my_account_url}" class="button">
				{$my_account_link}
			</a>
		</div>
	{/if}
</div>

Replace with:

	{if $logged_in&&!$in_admin}
		<div class="center">
			<a href="{$my_account_url}" class="button">
				{$my_account_link}
			</a>
		</div>
	{/if}
	{if $in_admin && $user.id}
		<div class="center">
			<a href="index.php?page=orders_list&narrow_order_status=all&narrow_gateway_type=all&narrow_admin={$user.id}&sortBy=order_id&sortOrder=down" class="button">
				Recently Created Orders
			</a>
		</div>
	{/if}
</div>

system/user_management/blacklist/blacklisted_buyers.tpl 6.0.0

Removed the parts that display the e-mail address, in the list of black-listed users.

Find:

					<td>{$messages.102832}</td>

Replace with:

					{* By default, should not show e-mail addresses!  Un-comment to show anyways *}
					{*<td>{$messages.102832}</td>*}

Later in the file, find:

						<td>{$user.email}</td>

Replace with:

						{* By default, should not show e-mail addresses!  Un-comment to show anyways *}
						{* <td>{$user.email}</td> *}

system/user_management/whitelist/whitelisted_buyers.tpl 6.0.0

Removed the parts that display the e-mail address, in the list of invited users.

Find:

					<td>{$messages.102846}</td>

Replace with:

					{* By default, should not show e-mail addresses!  Un-comment to show anyways *}
					{*<td>{$messages.102846}</td>*}

Later in the file, find:

						<td>{$user.email}</td>

Replace with:

						{* By default, should not show e-mail addresses!  Un-comment to show anyways *}
						{* <td>{$user.email}</td> *}

system/classes/String/displayPrice.tpl 6.0.0

Changes needed for Smarty 3.0, to remove the added newline, and also changes to allow 0.00 to be replaced with string (new setting specified by admin).

Find:

{$Rev: 18810 $ *}
{if $onlyPost}{$post}{elseif $number === false}-{else}{$pre}{$number}{if $post} {$post}{/if}{/if}

Replace with:

{* $Rev: 21976 $ *}{strip}
{if $replace}
	{$replaceTxt}
{elseif $onlyPost}
	{$post}
{elseif $number === false}
	-
{else}
	{$pre}{$number}{if $post} {$post}{/if}
{/if}
{/strip}

Note that the rev # shown at the top may be different.

system/search_class/search_results.tpl Moved/Renamed 6.0.0

The file have been removed. The search results page now uses the built in browse functionality, to keep consistent with other pages such as browsing categories, browsing tags, etc.

To replace this template, a new template has been created, at:

system/browsing/search.tpl

The new template is totally different than the old one, as it uses the common browsing sub-templates to display listing results.

system/order_items/shared/questions.tpl 6.0.0

Changes for numeric category questions.

Find:

{if $question.type == 'none' || $question.type == 'url'}

Replace With:

{if $question.type == 'none' || $question.type == 'url' || $question.type == 'number'}

system/other/ajax_searchQuestions.tpl 6.0.0

Changes for numeric category questions. Also to add new "date" category question field type.

Find:

				{if $q.type == "check"}

Replace with:

				{if $q.type == 'date'}
					<table cellpadding="1">
						<tr class="range_labels">
							<td>{$messages.501040}</td>
							<td><input type="text" name="b[question_value][{$q.key}][low_date]" size="10" maxlength="10" class="field dateInput" /></td>
							<td>{$messages.501041}</td>
							<td><input type="text" name="b[question_value][{$q.key}][high_date]" size="10" maxlength="10" class="field dateInput" /></td>
						</tr>
					</table>
				{elseif $q.type == 'numbers'}
					<table cellpadding="1">
						<tr class="range_labels">
							<td>{$messages.1440}</td>
							<td><input type="text" name="b[question_value][{$q.key}][lower]" size="15" maxlength="15" class="field" /></td>
							<td>{$messages.1441}</td>
							<td><input type="text" name="b[question_value][{$q.key}][higher]" size="15" maxlength="15" class="field" /></td>
						</tr>
					</table>
				{elseif $q.type == 'check'}

Further in the file, changes to allow multiple selections for category drop-downs.

Find:

				{elseif $q.type == "select"}
					<select name="b[question_value][{$q.key}]" class="field">
						{foreach from=$q.options item=opt}<option>{$opt}</option>{/foreach}
					</select>
					{if $q.other} {$messages.500659} <input class="field" type="text" name="b[question_value_other][{$q.key}]" />{/if}
				{/if}

Replace with:

				{elseif $q.type == "select"}
					<div class="multiselect">
						<ul>
							{foreach $q.options as $opt}
								{if $opt}
									<li><label><input type="checkbox" name="b[question_value][{$q.key}][]" value="{$opt|escape}" /> {$opt}</label></li>
								{/if}
							{/foreach}
						</ul>
						<div class="clr"></div>
 
						{if $q.other}<input type="checkbox" class="other_dummy_checkbox" /> {$messages.500659} <input class="field other_input_field" type="text" name="b[question_value][{$q.key}][other]" />{/if}
					</div>
				{/if}

Then back up on the page some, changes to allow site-wide optionals to have multiple dropdown values selected, and also to add "date" field type for optional site-wide fields.

Find:

				{if $field.type == "numbers"}
					<table cellpadding="1">
						<tr class="range_labels">
							<td>{$messages.1440}</td>
							<td><input type="text" name="b[by_optional_{$i}_lower]" size="15" maxlength="15" class="field" /></td>
							<td>{$messages.1441}</td>
							<td><input type="text" name="b[by_optional_{$i}_higher]" size="15" maxlength="15" class="field" /></td>
						</tr>
					</table>
				{elseif $field.type == "text"}
					<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field" />
				{elseif $field.type == "select"}
					<select name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field" />
						{foreach from=$field.dropdown item=option}
							<option value="{$option.value}"{if $option.selected}selected="selected"{/if}>{$option.value}</option>
						{/foreach}
					</select>
				{/if}
				{if $field.other_box}
					 {$messages.1458} <input type="text" name="b[optional_field_{$i}_other]" class="field" />
				{/if}

Replace with:

				{if $field.type == 'numbers'}
					<table cellpadding="1">
						<tr class="range_labels">
							<td>{$messages.1440}</td>
							<td><input type="text" name="b[optional_field_{$i}][lower]" size="15" maxlength="15" class="field" /></td>
							<td>{$messages.1441}</td>
							<td><input type="text" name="b[optional_field_{$i}][higher]" size="15" maxlength="15" class="field" /></td>
						</tr>
					</table>
				{elseif $field.type=='date'}
					<table cellpadding="1">
						<tr class="range_labels">
							<td>{$messages.501040}</td>
							<td><input type="text" name="b[optional_field_{$i}][low_date]" size="10" maxlength="10" class="field dateInput" /></td>
							<td>{$messages.501041}</td>
							<td><input type="text" name="b[optional_field_{$i}][high_date]" size="10" maxlength="10" class="field dateInput" /></td>
						</tr>
					</table>
				{elseif $field.type == 'text'}
					<input type="text" name="b[optional_field_{$i}]" id="optional_field_{$i}" class="field" />
				{elseif $field.type == 'select'}
					<div class="multiselect">
						<ul>
							{foreach $field.dropdown as $val}
								{if $val.value}
									<li><label><input type="checkbox" name="b[optional_field_{$i}][]" value="{$val.value|escape}" {if $val.selected}checked="checked"{/if} /> {$val.value}</label></li>
								{/if}
							{/foreach}
						</ul>
						<div class="clr"></div>
 
						{if $field.other_box}<input type="checkbox" class="other_dummy_checkbox" /> {$messages.1458} <input type="text" name="b[optional_field_{$i}][other]" class="field" />{/if}
					</div>
				{/if}

external/css/theme_styles.css 6.0.0

Changes to allow multiple selections for category question dropdowns, and CSS for new calendar date picker. Also changes for having "tabbed contents" on client side. See bug 82.

Add to End:

/* ###### Multi-select search question check-boxes #######  */
 
div.multiselect {
	display: inline-block;
}
 
div.multiselect ul {
	margin: 0px;
	padding: 0px;
}
 
div.multiselect ul li {
	list-style: none;
	float: left;
	padding: 0px 10px 0px 0px;
}
div.multiselect .or_field {
	text-align: right;
}
 
/* ############ Tabs ############ */
 
ul.tabList {
	list-style: none;
	margin: 0px 0px 0px 10px;
	padding: 0px;
	z-index: 2;
}
 
ul.tabList li {
	background: #eaeaea;
	border-top: 1px solid #d4d4d4;
	border-left: 1px solid #d4d4d4;
	border-right: 1px solid #d4d4d4;
	border-bottom: 5px solid #eaeaea;
	padding: 10px 15px 8px 15px;
	color: #818181;
	text-decoration: none;
	display: inline-block;
	margin: 0px 1px;
	cursor: pointer;
	font-size: 11px;
	font-weight: bold;
	margin-bottom: -5px;
	/* Give round corners on all modern updated browsers */
	border-top-left-radius: 7px;
	border-top-right-radius: 7px;
}
/* Hover effects on primary_theme_styles.css */
 
div.tabContents {
	clear: both;
	border: 5px solid #eaeaea;
	padding: 5px;
	z-index: 1;
}
 
/* ############ CalendarView ############ */
 
div.calendar
{
	font-size: smaller;
	color: #000;
}
 
div.calendar.popup
{
	margin-left: -40px;
	margin-top: 0px;
	z-index: 1006;
}
 
div.calendar td.button
{
	/* Un-do the normal button stuff */
	border: inherit;
	background: transparent;
	color: inherit;
	height: auto;
	font-weight: normal;
	font-size: 12px;
	display: table-cell;
}
 
div.calendar table
{
	background-color: #eee;
	border: 1px solid #aaa;
	border-collapse: collapse;
}
 
div.calendar thead {
	background-color: white;
}
 
div.calendar td,
div.calendar th
{
	padding: 3px;
	text-align: center;
}
 
div.calendar td.title
{
	font-weight: bold;
}
 
div.calendar th
{
	background: #ddd;
	border-bottom: 1px solid #ccc;
	border-top: 1px solid #ccc;
	font-weight: bold;
	color: #555;
}
 
div.calendar tr.days td {
	width: 2em;
	color: #555;
	text-align: center;
	cursor: pointer;
}
 
div.calendar tr.days td:hover,
div.calendar td.button:hover
{
	background-color: #34ABFA;
	cursor: pointer;
}
 
div.calendar tr.days td:active
div.calendar td.button:active
{
	background-color: #cde;
}
 
div.calendar tr.days td.selected
{
	font-weight: bold;
	background-color: #fff;
	color: #000;
}
 
div.calendar tr.days td.today
{
	font-weight: bold;
	color: #D50000;
}
 
div.calendar tr.days td.otherDay
{
	color: #bbb;
}

Change to improve the layout of the My Account Links module.

Find:

h1.subtitle {
	background: #eaeaea;
	font-size: 14px;
	font-weight: bold;
	margin: 1px 0px;
	padding: 5px 0px 5px 3px;
	border-top: 1px solid #dddddd;
	border-bottom: 1px solid #dddddd;
}

Replace With:

h1.subtitle {
	background: #eaeaea;
	font-size: 14px;
	font-weight: bold;
	margin: 1px 0px;
	padding: 5px 0px 5px 3px;
	border-top: 1px solid #dddddd;
	border-bottom: 1px solid #dddddd;
}
 
.my_account_links_inactive h1.subtitle {
	margin: 0px;	
}

module/my_account_links.tpl 6.0.0

Change to improve the layout of the My Account Links module. (removed an extra line break) Find:

{if count($orderItemLinks) > 0}
	<ul>
		{foreach from=$orderItemLinks item=itemLink}
			{if $itemLink.icon||$itemLink.label}
				<li class="my_account_links_{if $itemLink.active}active{else}inactive{/if}">
					{if $itemLink.link}
						<a href="{$itemLink.link}"{if $itemLink.needs_attention} class="needs_attention"{/if}>
					{else}
						<h1 class="subtitle normal_text {if $itemLink.needs_attention}needs_attention{/if}">
					{/if}
						{if $itemLink.icon}
							{$itemLink.icon}
						{/if}
						{$itemLink.label}
 
					{if !$itemLink.link}</h1>{else}</a>{/if}
				</li>
			{/if}
		{/foreach}
	</ul>
	<br />
{/if}

Replace With:

{if count($orderItemLinks) > 0}
	<ul>
		{foreach from=$orderItemLinks item=itemLink}
			{if $itemLink.icon||$itemLink.label}
				<li class="my_account_links_{if $itemLink.active}active{else}inactive{/if}">
					{if $itemLink.link}
						<a href="{$itemLink.link}"{if $itemLink.needs_attention} class="needs_attention"{/if}>
					{else}
						<h1 class="subtitle normal_text {if $itemLink.needs_attention}needs_attention{/if}">
					{/if}
						{if $itemLink.icon}
							{$itemLink.icon}
						{/if}
						{$itemLink.label}
 
					{if !$itemLink.link}</h1>{else}</a>{/if}
				</li>
			{/if}
		{/foreach}
	</ul>
{/if}

Allow the mini-cart display at the top of the module to use different text when there is only 1 item in the cart:

Find:

{$cartItemCount} {$messages.500648}

Replace With:

{$cartItemCount} {if $cartItemCount == 1}{$messages.501015}{else}{$messages.500648}{/if}

system/search_class/details_form.tpl 6.0.0

Changes to allow searching by multiple site wide optional values on optional drop-downs. Also changes to add new "date" field type for optional site-wide fields.

Find:

				{foreach from=$optionals item=o}
					<div class="{cycle values='row_odd,row_even'}">
						<label class="field_label">{$o.label}</label>
						{if $o.type == "numbers"}
							{$messages.1440} <input name='b[by_optional_{$o.field_number}_lower]' size='15' maxlength='15' class="field" />
							{$messages.1441} <input name='b[by_optional_{$o.field_number}_higher]' size='15' maxlength='15' class="field" />
						{elseif $o.type == "text"}
							<input type='text' name='b[optional_field_{$o.field_number}]' id='optional_field_{$o.field_number}' class="field" />
						{elseif $o.type == "select"}
							<select name='b[optional_field_{$o.field_number}]' id='optional_field_{$o.field_number}' class="field">
								{foreach from=$o.dropdown item=val}
									<option value="{$val.value}" {if $val.selected}selected="selected"{/if}>{$val.label}</option>
								{/foreach}
							</select>
						{/if}
						{if $o.other_box}
							{$messages.1458} <input type='text' name='b[optional_field_{$o.field_number}_other]' class="field" />
						{/if}
					</div>
				{/foreach}

Replace with:

				{foreach from=$optionals item=o}
					<div class="{cycle values='row_odd,row_even'}">
						<label class="field_label">{$o.label}</label>
						{if $o.type == 'numbers'}
							{$messages.1440} <input name='b[optional_field_{$o.field_number}][lower]' size='15' maxlength='15' class="field" />
							{$messages.1441} <input name='b[optional_field_{$o.field_number}][higher]' size='15' maxlength='15' class="field" />
						{elseif $o.type=='date'}
							{$messages.501040} <input name='b[optional_field_{$o.field_number}][low_date]' size='10' maxlength='10' class="field dateInput" />
							{$messages.501041} <input name='b[optional_field_{$o.field_number}][high_date]' size='10' maxlength='10' class="field dateInput" />
						{elseif $o.type == 'text'}
							<input type='text' name='b[optional_field_{$o.field_number}]' id='optional_field_{$o.field_number}' class="field" />
						{elseif $o.type == 'select'}
							<div class="multiselect">
								<ul>
									{foreach $o.dropdown as $val}
										{if $val.value}
											<li><label><input type="checkbox" name="b[optional_field_{$o.field_number}][]" value="{$val.value|escape}" {if $val.selected}checked="checked"{/if} /> {$val.label}</label></li>
										{/if}
									{/foreach}
								</ul>
								<div class="clr"></div>
 
								{if $o.other_box}<input type="checkbox" class="other_dummy_checkbox" /> {$messages.1458} <input type="text" name="b[optional_field_{$o.field_number}][other]" class="field" />{/if}
							</div>
						{/if}
					</div>
				{/foreach}

Changes to remove older non-used functionality that was only used back when templates were saved in the database.

Find:

	<div class="center">
		{if $custom_template_id}
			<input type="hidden" name="template_id" value="{$custom_template_id}" />
		{/if}
		<input type='submit' value='{$messages.584}' name='b[search]' class='button' />
	</div>

Replace with:

	<div class="center">
		<input type='submit' value='{$messages.584}' name='b[search]' class='button' />
	</div>

system/order_items/account_balance/enter_amount.tpl 6.0.0

Changes to allow check-box for auto-approving items in admin panel.

Find:

	<form method="post" action="{$process_form_url}">
		<label>
			{$messages.500313}: {$precurrency}<input type='text' name='account_balance_add' value='{$price}' size="4" class="field" />{$postcurrency}
			{* (Current Balance: <em>{$current_balance|displayPrice}</em>) *}
		</label>
 
		<input type="submit" value="{$messages.500589}" class="button" />
	</form>

Replace with:

	<label>
		{$messages.500313}: {$precurrency}<input type='text' name='account_balance_add' value='{$price}' size="4" class="field" />{$postcurrency}
		{* (Current Balance: <em>{$current_balance|displayPrice}</em>) *}
	</label>
 
	<input type="submit" value="{$messages.500589}" class="button" />

system/browsing/common/listing_set.tpl 6.0.0

Changes for "verified account" feature.

Find:

						{if $l.icons.buy_now}<img src="{$cfg.icons.buy_now}" alt="" />{/if}

Replace with:

						{if $l.icons.verified}<img src="{$cfg.icons.verified}" alt="" />{/if}
						{if $l.icons.buy_now}<img src="{$cfg.icons.buy_now}" alt="" />{/if}

system/authentication/login_form.tpl 6.0.0

Changes to add new addon hook.

Find:

		</div>
	</form>

Replace with:

		</div>
		{$addons_bottom}
	</form>

system/user_management/information/edit_user_form.tpl 6.0.0

Changes to add new addon hook.

Find:

		{if count($orderItemFields) > 0}
			{foreach from=$orderItemFields item=f}
				<div class="{if $f.error}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
					{if $f.type == 'single_checkbox'}
						<input type="hidden" value="0" name="{$f.name}" />
						<input type="checkbox" value="1" name="{$f.name}" {if $f.checked}checked="checked"{/if} /> {$f.value}
					{else}
						<label class="{if $f.required}required{else}field_label{/if}">{$f.label}{if $f.required} *{/if}</label>
						{$f.value}
					{/if}
					{if $f.error}
						<br /><span class="error_message">{$f.error}</span>
					{/if}
				</div>
			{/foreach}
		{/if}

Replace with:

		{if count($orderItemFields) > 0}
			{foreach $orderItemFields as $f}
				<div class="{if $f.error}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
					{if $f.type == 'single_checkbox'}
						<input type="hidden" value="0" name="{$f.name}" />
						<input type="checkbox" value="1" name="{$f.name}" {if $f.checked}checked="checked"{/if} /> {$f.value}
					{else}
						<label class="{if $f.required}required{else}field_label{/if}">{$f.label}{if $f.required} *{/if}</label>
						{$f.value}
					{/if}
					{if $f.error}
						<br /><span class="error_message">{$f.error}</span>
					{/if}
				</div>
			{/foreach}
		{/if}
		{if count($addonFields) > 0}
			{foreach $addonFields as $addon => $addonField}
				{foreach $addonField as $f}
					<div class="{if $f.error}field_error_row{else}{cycle values='row_odd,row_even'}{/if}">
						{if $f.type == 'single_checkbox'}
							<input type="hidden" value="0" name="{$f.name}" />
							<label><input type="checkbox" value="1" name="{$f.name}" {if $f.checked}checked="checked"{/if} /> {$f.value}</label>
						{else}
							<label class="{if $f.required}required{else}field_label{/if}">{$f.label}{if $f.required} *{/if}</label>
							{$f.value}
						{/if}
						{if $f.error}
							<br /><span class="error_message">{$f.error}</span>
						{/if}
					</div>
				{/foreach}
			{/foreach}
		{/if}

Changes to only show message if demo is enabled.

Find:

		{else}
			<div class="field_error_row">This user's password may not be edited in the demo.</div>
		{/if}

Replace With:

		{elseif $demo}
			<div class="field_error_row">This user's password may not be edited in the demo.</div>
		{/if}

external/css/primary_theme_styles.css 6.0.0

Changes for having "tabbed contents" on client side. See bug 82. At end of file, add:

/*  ######## Tabs ######## */
ul.tabList li:hover,
ul.tabList li.activeTab {
	background: #4987C5 url('../images/backgrounds/nav_tab.gif') repeat-x top left;
	border: 1px solid #4987C5;
	padding-bottom: 13px;
	border-bottom: none;
	color: #ffffff;
}
ul.tabList li.activeTab {
	background: #ffffff;
	border: 2px solid #eaeaea;
	padding: 9px 14px 13px 14px;
	border-bottom: none;
	color: #4987C5;
}

system/browsing/main.tpl 6.0.0

Changes for having "tabbed contents" on client side. See bug 82.

Pretty much entire file is changed, replace old file with contents from new file.

module/my_account_links.tpl 6.0.0

Changes to make items in my account links with the text blank, not show.

Find:

				{foreach from=$cartLinks item=listItem}
					<li	class="my_account_links_{if $listItem.active}active{else}inactive{/if}">
						{if $listItem.link}
							<a href="{$listItem.link}" class="user_links{if $listItem.needs_attention} needs_attention{/if}">
						{else}
							<span class="user_links{if $listItem.needs_attention} needs_attention{/if}">
						{/if}
							{if $listItem.icon}
								{$listItem.icon}
							{/if}
							{$listItem.label}
						{if !$listItem.link}
							</span>
						{else}
							</a>
						{/if}
					</li>
				{/foreach}

Replace with:

				{foreach from=$cartLinks item=listItem}
					{if $listItem.icon||$listItem.label}
						<li	class="my_account_links_{if $listItem.active}active{else}inactive{/if}">
							{if $listItem.link}
								<a href="{$listItem.link}" class="user_links{if $listItem.needs_attention} needs_attention{/if}">
							{else}
								<span class="user_links{if $listItem.needs_attention} needs_attention{/if}">
							{/if}
								{if $listItem.icon}
									{$listItem.icon}
								{/if}
								{$listItem.label}
							{if !$listItem.link}
								</span>
							{else}
								</a>
							{/if}
						</li>
					{/if}
				{/foreach}

Find:

				{foreach from=$orderItemLinks item=itemLink}
					<li	class="my_account_links_{if $itemLink.active}active{else}inactive{/if}">
						{if $itemLink.link}
							<a href="{$itemLink.link}"{if $itemLink.needs_attention} class="needs_attention"{/if}>
						{else}
							<h1 class="subtitle normal_text {if $itemLink.needs_attention}needs_attention{/if}">
						{/if}
							{if $itemLink.icon}
								{$itemLink.icon}
							{/if}
							{$itemLink.label}
 
						{if !$itemLink.link}</h1>{else}</a>{/if}
					</li>
				{/foreach}

Replace with:

				{foreach from=$orderItemLinks item=itemLink}
					{if $itemLink.icon||$itemLink.label}
						<li	class="my_account_links_{if $itemLink.active}active{else}inactive{/if}">
							{if $itemLink.link}
								<a href="{$itemLink.link}"{if $itemLink.needs_attention} class="needs_attention"{/if}>
							{else}
								<h1 class="subtitle normal_text {if $itemLink.needs_attention}needs_attention{/if}">
							{/if}
								{if $itemLink.icon}
									{$itemLink.icon}
								{/if}
								{$itemLink.label}
 
							{if !$itemLink.link}</h1>{else}</a>{/if}
						</li>
					{/if}
				{/foreach}

find:

				{foreach from=$paymentGatewayLinks item=gatewayLink}
					<li	class="my_account_links_{if $gatewayLink.active}active{else}inactive{/if}">
						{if $gatewayLink.link}
							<a href="{$gatewayLink.link}"{if $gatewayLink.needs_attention} class="needs_attention"{/if}>
						{else}
							<h1 class="subtitle normal_text {if $gatewayLink.needs_attention}needs_attention{/if}">
						{/if}
							{if $gatewayLink.icon}{$gatewayLink.icon}{/if}
							{$gatewayLink.label}
 
						{if !$gatewayLink.link}</h1>{else}</a>{/if}
					</li>
				{/foreach}

replace with:

				{foreach from=$paymentGatewayLinks item=gatewayLink}
					{if $gatewayLink.icon||$gatewayLink.label}
						<li	class="my_account_links_{if $gatewayLink.active}active{else}inactive{/if}">
							{if $gatewayLink.link}
								<a href="{$gatewayLink.link}"{if $gatewayLink.needs_attention} class="needs_attention"{/if}>
							{else}
								<h1 class="subtitle normal_text {if $gatewayLink.needs_attention}needs_attention{/if}">
							{/if}
								{if $gatewayLink.icon}{$gatewayLink.icon}{/if}
								{$gatewayLink.label}
 
							{if !$gatewayLink.link}</h1>{else}</a>{/if}
						</li>
					{/if}
				{/foreach}

find:

			{foreach from=$links item=listItem}
				<li	class="my_account_links_{if $listItem.active}active{else}inactive{/if}">
					{if $listItem.link}
						<a href="{$listItem.link}" class="user_links{if $listItem.needs_attention} needs_attention{/if}">
					{else}
						<span class="user_links{if $listItem.needs_attention} needs_attention{/if}">
					{/if}
					{if $listItem.icon}
						{$listItem.icon}
					{/if}
 
					{$listItem.label}
 
					{if !$listItem.link}
						</span>
					{else}
						</a>
					{/if}
				</li>
			{/foreach}

replace with:

			{foreach from=$links item=listItem}
				{if $listItem.icon||$listItem.label}
					<li	class="my_account_links_{if $listItem.active}active{else}inactive{/if}">
						{if $listItem.link}
							<a href="{$listItem.link}" class="user_links{if $listItem.needs_attention} needs_attention{/if}">
						{else}
							<span class="user_links{if $listItem.needs_attention} needs_attention{/if}">
						{/if}
						{if $listItem.icon}
							{$listItem.icon}
						{/if}
 
						{$listItem.label}
 
						{if !$listItem.link}
							</span>
						{else}
							</a>
						{/if}
					</li>
				{/if}
			{/foreach}

module/shared/category_tree.tpl 6.0.0

Changes for bug 148 to allow category tree prefix to be used for category tree module.

find:

	{if !$fallback_tree_display}

replace with:

	{$category_tree_pre}
	{if !$fallback_tree_display && $categories}

Further down, find:

	{else}

replace with:

	{elseif $fallback_tree_display}

system/order_items/shared/listing_collect_details.tpl 6.0.0

Several changes for reverse auctions. See bug 32.

Find:

		{if (($sell_type == 2 || $sell_type == 4) && $editAuctionPrices)}
			<div class="{if $error_msgs.auction_type}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="auction_type" class="field_label">{$messages.102689}</label>
 
				{if ($editCheck && $sell_type == 2)}
					{if $field_config.allow_standard && $field_config.allow_dutch && !$pricePlan.buy_now_only}
						<select id="auction_type" onchange='geoListing.check_buy_now_only();' class="field" name="b[auction_type]">
							<option value="1"{if $session_variables.auction_type == 1} selected="selected"{/if}>{$messages.102837}</option>
							<option value="2"{if $session_variables.auction_type == 2} selected="selected"{/if}>{$messages.102838}</option>
						</select>
					{elseif $field_config.allow_standard && ($pricePlan.buy_now_only || !$field_config.allow_dutch)}
						<input id="auction_type" type="hidden" class="field" name="b[auction_type]" value="1" />{$messages.102837}
					{elseif $field_config.allow_dutch}
						<input id="auction_type" type="hidden" class="field" name="b[auction_type]" value="2" />{$messages.102838}
					{else}
						<select id="auction_type" onchange='geoListing.check_buy_now_only();' class="field" name="b[auction_type]">
							<option value="1"{if $session_variables.auction_type == 1} selected="selected"{/if}>{$messages.102837}</option>
							{if $field_config.allow_dutch}
								<option value="2"{if $session_variables.auction_type == 2} selected="selected"{/if}>{$messages.102838}</option>
							{/if}
						</select>
					{/if}
					{$auction_type_help_link}
				{else}
					{if $session_variables.auction_type == 2}
						{$messages.102838}
					{else}
						{$messages.102837}
					{/if}
				{/if}

Replace with:

		{if $sell_type == 2 && $editAuctionPrices}
			<div class="{if $error_msgs.auction_type}field_error_row {/if}{cycle values='row_odd,row_even'}">
				<label for="auction_type" class="field_label">{$messages.102689}</label>
 
				{if $editCheck}
					{if $field_config.allow_standard && $pricePlan.buy_now_only}
						{* Buy now only!  Can only be "standard" auction! *}
						<input id="auction_type" type="hidden" class="field" name="b[auction_type]" value="1" />{$messages.102837}
					{elseif $auction_choices_count>1}
						{* We know there is more than one choice, so show selection *}
						<select id="auction_type" class="field" name="b[auction_type]">
							{if $field_config.allow_standard}<option value="1"{if $session_variables.auction_type == 1} selected="selected"{/if}>{$messages.102837}</option>{/if}
							{if $field_config.allow_dutch}<option value="2"{if $session_variables.auction_type == 2} selected="selected"{/if}>{$messages.102838}</option>{/if}
							{if $allow_reverse}<option value="3"{if $session_variables.auction_type == 3} selected="selected"{/if}>{$messages.500977}</option>{/if}
						</select>
					{elseif $field_config.allow_standard}
						<input id="auction_type" type="hidden" name="b[auction_type]" value="1" />{$messages.102837}
					{elseif $field_config.allow_dutch}
						<input id="auction_type" type="hidden" name="b[auction_type]" value="2" />{$messages.102838}
					{elseif $allow_reverse}
						<input id="auction_type" type="hidden" name="b[auction_type]" value="3" />{$messages.500977}
					{/if}
					{$auction_type_help_link}
				{else}
					{if $session_variables.auction_type==1}
						{$messages.102837}
					{elseif $session_variables.auction_type==2}
						{$messages.102838}
					{elseif $session_variables.auction_type==3}
						{$messages.500977}
					{/if}
				{/if}

Find:

					<label for="minimum" class="field_label">{$messages.102691}</label>

replace with:

					<label for="minimum" class="field_label" id="minimum_label">{$messages.102691}</label>
					{if $allow_reverse}<label for="minimum" class="field_label" id="maximum_label">{$messages.500978}</label>{/if}

Find:

						<span class="error_message">{$messages.102731}</span>

Replace with:

						<span class="error_message">{if $session_variables.auction_type==3}{$messages.500979}{else}{$messages.102731}{/if}</span>

Find:

				<div class="{if $error_msgs.auction_buy_now}field_error_row {/if}{cycle values='row_odd,row_even'}"
					id="buy_now_only_row"{if $is_dutch} style="display:none;"{/if}>

Replace with:

				<div class="{if $error_msgs.auction_buy_now}field_error_row {/if}{cycle values='row_odd,row_even'}{if $allow_reverse_buy_now} reverse_buy_now{/if}"
					id="buy_now_row"{if $is_dutch} style="display:none;"{/if}>

Find:

							<label><input id="buy_now_only" type="checkbox" onclick='geoListing.check_buy_now_only();'

replace with:

							<label id="buy_now_only_row"><input id="buy_now_only" type="checkbox"

Find:

								{$messages.102732}

Replace with:

								{if $session_variables.auction_type==3}{$messages.500980}{else}{$messages.102732}{/if}

Change to handle the new way the "expose email" admin setting is stored

Find:

{if count($fields->email->display_locations)>0}
	{$messages.1340}
	<label>{$messages.1341} <input type="radio" name="b[expose_email]" value="1"{if $session_variables.expose_email == 1} checked="checked"{/if} /></label>
	<label>{$messages.1342} <input type="radio" name="b[expose_email]" value="0"{if $session_variables.expose_email != 1} checked="checked"{/if} /></label>
{/if}

Replace with:

{if $fields->email->type_data == 'reveal'}
	{$messages.1340}
	<label>{$messages.1341} <input type="radio" name="b[expose_email]" value="1"{if $session_variables.expose_email == 1} checked="checked"{/if} /></label>
	<label>{$messages.1342} <input type="radio" name="b[expose_email]" value="0"{if $session_variables.expose_email != 1} checked="checked"{/if} /></label>
{/if}

system/user_management/expired_ads/expired_ads_details.tpl 6.0.0

Added the ability to show the 3 URL listing fields, if they're populated.

Find:

<div class="{cycle values='row_odd,row_even'}">
	<label class="field_label">{$messages.455}</label>
	{$ad->DESCRIPTION|fromDB}
</div>

Replace with:

<div class="{cycle values='row_odd,row_even'}">
	<label class="field_label">{$messages.455}</label>
	{$ad->DESCRIPTION|fromDB}
</div>
 
{if $ad->URL_LINK_1}
	<div class="{cycle values='row_odd,row_even'}">
		<label class="field_label">{$messages.500992}</label>
		{$ad->URL_LINK_1|fromDB}
	</div>
{/if}
{if $ad->URL_LINK_2}
	<div class="{cycle values='row_odd,row_even'}">
		<label class="field_label">{$messages.500993}</label>
		{$ad->URL_LINK_2|fromDB}
	</div>
{/if}
{if $ad->URL_LINK_3}
	<div class="{cycle values='row_odd,row_even'}">
		<label class="field_label">{$messages.500994}</label>
		{$ad->URL_LINK_3|fromDB}
	</div>
{/if}

external/js/listing_placement.js 6.0.0

Major changes and re-writing, as part of bug 32 (reverse auction integration), most of file is changed so it is not practical to list changes here. See default file for updated file.j

system/auctions/bidding/bid_successful.tpl 6.0.0

Changes to text used to add reverse auctions.

Find:

			<label class="field_label">{$messages.102441}</label>

replace with:

			<label class="field_label">{if $reverse_auction}{$messages.500999}{else}{$messages.102441}{/if}</label>

Find:

			<a href="{$rebidLink}" class="button">{$messages.102452}</a>

Replace with:

			<a href="{$rebidLink}" class="button">{if $reverse_auction}{$messages.501002}{else}{$messages.102452}{/if}</a>

system/user_management/list_bids/auctions_with_users_bid.tpl 6.0.0

Changes for integrating reverse auctions. First replace text ID 102793 with new ID 501011. Then:

Find:

					{if $auc.type == 1 or $auc.is_reverse}
						{*standard auction*}
						<td>{$auc.maxbid}</td>
						<td>{$auc.payment_link}</td>
					{else}

replace with:

					{if $auc.type == 1 or $auc.type==3}
						{*standard or reverse auction*}
						<td>
							{if $auc.maxbid}
								{$auc.maxbid} {if $auc.type==1}{$messages.501012}{else}{$messages.501013}{/if}
							{else}
								-
							{/if}
						</td>
						<td>{$auc.payment_link}</td>
					{else}

system/browsing/common/listing_set.tpl 6.0.0

Added CSS classes specific to each header column. Many changes; see the default version of the file for specifics.

system/classes/Category/category_dropdown.tpl 6.0.0

Changes to make it possible to set ID for category dropdown element.

find:

<select name="{$name}" class="field">

replace with:

<select name="{$name}" class="field"{if $id} id="{$id}"{/if}>

module/shared/featured_ads.tpl replaced 6.0.0

The shared module template module/shared/featured_ads.tpl has been replaced by module/shared/browsing.tpl which uses the built-in system browsing templates.

So that all the "browsing modules" use the new shared template, all module templates that used to have:

{include file="featured_ads.tpl" g_resource="shared"}

Replace with:

{include file='browsing.tpl' g_resource='shared'}

module/shared/featured_pic.tpl replaced 6.0.0

The shared module template module/shared/featured_pic.tpl has been replaced by module/shared/browsing_pic.tpl which is made to use same vars as built-in browsing templates.

So that all the "browsing modules" use the new shared template, all module templates that used to have:

{include file="featured_pic.tpl" g_resource="shared"}

Replace with:

{include file='browsing_pic.tpl' g_resource='shared'}

system/user_management/current_ads/list.tpl 6.0.0

Fixed issue where title= was twice for the renew and upgrade links.

Find: <codd html> {if $listing.show_renew_link}<a title="Renew" href="{$ssl_url}?a=cart&amp;action=new&amp;main_type=listing_renew_upgrade&amp;listing_id={$listing.id}&amp;r=1" title="{$messages.834}" class="mini_button"><img src="{external file='images/buttons/listing_renew.gif'}" alt="{$messages.834}" /></a>{/if}

					{if $listing.show_upgrade_link}<a title="Upgrade" href="{$ssl_url}?a=cart&amp;action=new&amp;main_type=listing_renew_upgrade&amp;listing_id={$listing.id}&amp;r=2" title="{$messages.835}" class="mini_button"><img src="{external file='images/buttons/listing_upgrade.gif'}" alt="{$messages.835}" /></a>{/if}</code>

Replace with:

						{if $listing.show_renew_link}<a href="{$ssl_url}?a=cart&amp;action=new&amp;main_type=listing_renew_upgrade&amp;listing_id={$listing.id}&amp;r=1" title="{$messages.834}" class="mini_button"><img src="{external file='images/buttons/listing_renew.gif'}" alt="{$messages.834}" /></a>{/if}
						{if $listing.show_upgrade_link}<a href="{$ssl_url}?a=cart&amp;action=new&amp;main_type=listing_renew_upgrade&amp;listing_id={$listing.id}&amp;r=2" title="{$messages.835}" class="mini_button"><img src="{external file='images/buttons/listing_upgrade.gif'}" alt="{$messages.835}" /></a>{/if}

Invoices 6.0.0

Re-did the file structure for Invoices, to unify them between the admin and front end, and add a print-friendly version to the front end.

The following files have been REMOVED:

  • external/css/system/user_management/invoice_details.css
  • system/user_management/invoice_details.tpl
  • system/user_management/order_item.tpl
  • admin/templates/orders/invoice.tpl – NOTE: admin template, not a part of the template sets

And the following files have been ADDED:

  • external/css/system/invoices/invoice_styles.css
  • system/invoices/common/footer.tpl
  • system/invoices/common/head.tpl
  • system/invoices/common/invoice_body.tpl
  • system/invoices/common/order_details.tpl
  • system/invoices/invoice.tpl
  • system/invoices/invoice_standalone.tpl

To 6.0.2

module/shared/browsing_pic.tpl 6.0.2

Change to use the correct variable name for the featured pic header.

Find:

		<h1 class="title">{$header_text}</h1>

Replace with:

		<h1 class="title">{$header_title}</h1>

Fix problem with title link within module.

Find:

	{foreach $listings as $l}

Replace with:

	{foreach $listings as $id => $l}

system/tinymce.tpl 6.0.2

Changes to make client-side WYSIWYG stuff work better in admin panel, so that WYSIWYG editor in admin-side cart will work.

Find:

	tinyMCE.init({ldelim}

Replace with:

	geoWysiwyg.loadTiny = function () {
		if (geoWysiwyg.tinyLoaded) {
			return false;
		}
		geoWysiwyg.tinyLoaded = true;
 
 
		tinyMCE.init({

Find:

		content_css: '{external file="css/wysiwyg.css"}'
	});
 
	//when page is loaded, init the editor
	Event.observe(window,'load',function () {ldelim} 
		//load tiny mce
		geoWysiwyg.editors = $$('.editor');
 
		if (getCookie('tinyMCE') == 'off') {ldelim}
			//now restore values, un-doing any damage that might have been done...
			geoWysiwyg.toggleTinyEditors();
		}
	});

Replace with:

			content_css: '{if $inAdmin}../{/if}{external file="css/wysiwyg.css"}'
		});
 
		{if $inAdmin}
			geoWysiwyg.editors = $$('.editor');
		{/if}
 
		return true;
	};
 
	{if !$inAdmin}
		//load tiny right away when not in admin
		geoWysiwyg.loadTiny();
 
		//when page is loaded, init the editor
		Event.observe(window,'load',function () {
			//load tiny mce
			geoWysiwyg.editors = $$('.editor');
 
			if (geoUtil.getCookie('tinyMCE') == 'off') {
				//now restore values, un-doing any damage that might have been done...
				geoWysiwyg.toggleTinyEditors();
			}
		});
	{/if}

system/order_items/shared/anonymous_data.tpl 6.0.2

Changes to make links on anon data step work during listing placement in admin panel.

find:

{$nextPage}

replace with:

{$process_form_url}

To 6.0.3

system/browsing/common/listing_set.tpl 6.0.3

Added conditionals to prevent the featured table's column headers from highlighting when they shouldn't.

Find all occurrences of {if $headers.FIELDNAME.reorder != ##} and replace with {if $cfg.sort_links && $headers.FIELDNAME.reorder != ##} – FIELDNAME and ## will vary for each field

system/search_class/details_form.tpl 6.0.3

On advanced search, does not make sense to use "ends in 24 hours" option for sites that only use classifieds, so removing option for said sites.

Find:

			<div class="{cycle values='row_odd,row_even'}">
				<label for="ending_today" class="field_label">{$messages.500079}</label>
				<input type='checkbox' id='ending_today' name='b[ending_today]' />
			</div>

Replace with:

			{if $show_close_24_hours}
				<div class="{cycle values='row_odd,row_even'}">
					<label for="ending_today" class="field_label">{$messages.500079}</label>
					<input type='checkbox' id='ending_today' name='b[ending_today]' />
				</div>
			{/if}

To 6.0.4

system/browsing/contact_forms/seller_form.tpl 6.0.4

Added a missing quote mark: Find:

<select name="c[public_question] class="field">

Replace With:

<select name="c[public_question]" class="field">

system/order_items/shared/display_splash.tpl 6.0.4

There were a few places we missed when making all cart templates use the same common variable names. In this template, replace {$next_url} with {$process_form_url}

system/order_items/shared/listing_collect_details.tpl 6.0.4

There were a few places we missed when making all cart templates use the same common variable names. In this template, replace {$form_url} with {$process_form_url}

system/browsing/main.tpl 6.0.4

Changes to add the "All" tab when browsing categories.

Find:

{if $show_classifieds&&$show_auctions}
	<ul class="tabList">
		<li id="classifiedsTab" class="activeTab">{$messages.500975}</li>
		<li id="auctionsTab">{$messages.500976}</li>
	</ul>
{/if}
 
{if $show_classifieds}
	{if $show_auctions}<div class="tabContents" id="classifiedsTabContents">{/if}

Replace with:

{if $show_classifieds&&$show_auctions&&!$disable_browsing_tabs}
	<ul class="tabList">
		{if $display_all_tab_browsing}<li id="allTab" class="activeTab">{$messages.501620}</li>{/if}
		<li id="classifiedsTab"{if !$display_all_tab_browsing} class="activeTab"{/if}>{$messages.500975}</li>
		<li id="auctionsTab">{$messages.500976}</li>
	</ul>
 
	<div class="tabContents">
		<div id="allTabContents"></div>
{/if}
 
{if $show_classifieds}
	{if $show_auctions&&!$disable_browsing_tabs}<div id="classifiedsTabContents">{/if}

Later down, find:

		{if !$show_auctions}<br />{/if}
	{if $show_auctions}</div>{/if}
{/if}
 
{if $show_auctions}
	{if $show_classifieds}<div class="tabContents" id="auctionsTabContents">{/if}

Replace with:

		<br />
	{if $show_auctions}</div>{/if}
{/if}
 
{if $show_auctions}
	{if $show_classifieds&&!$disable_browsing_tabs}<div id="auctionsTabContents">{/if}

Then near bottom, find:

{if $pagination}
	{$messages.757} {$pagination}
{/if}

Replace with:

{if $show_classifieds&&$show_auctions&&!$disable_browsing_tabs}
	</div>
{/if}
{if $pagination}
	{$messages.757} {$pagination}
{/if}

module/shared/browsing_pic.tpl.tpl 6.0.4

Fix to correct too many table cells being written when number of ads shown is less than total number of columns.

Find:

{if $l@last && $l@iteration%$module.module_number_of_columns!=0}

Replace with:

{if $l@last && $l@iteration%$module.module_number_of_columns!=0 && $l@iteration > $module.module_number_of_columns}

To 6.0.6

Added a new CSS selector to fix a page that was using the same ID twice. Changes are in the next two files:

external/css/theme_styles.css 6.0.6

Find:

#cart_right_column {
	overflow: hidden;
	padding: 0 0 0 10px;
}

Replace with:

#cart_right_column, #cart_content_column {
	overflow: hidden;
	padding: 0 0 0 10px;
}

system/cart/display_cart/index.tpl 6.0.6

Find:

{if !$view_only}<div id="content_column_wide">{/if}
 
	{if !$view_only}<div class="content_box">{/if}

Replace with:

{if !$view_only}<div id="cart_content_column"><div class="content_box">{/if}

system/ListingFeed/rss_listings.tpl 6.0.6

Revert an earlier change to the way titles are escaped

Find:

{$listing.title|fromDB|truncate:$titleCharLimit|escape}

Replace with:

{$listing.title|fromDB|truncate:$titleCharLimit}

system/order_items/shared/listing_collect_details.tpl 6.0.6

Fix for optional fields sometimes not appearing

Find:

{if $additionalInfo|strip:'' != ''}

Replace with:

{if $additionalInfo|strip:'' !== ''}

Newer Versions

As mentioned at the top of this page:

We no longer maintain this page. Instead, each new version has a changelog with complete "template changes" included! These are generated automatically as part of the changelog, so they will be more accurate and "complete" than what we were doing here, since the changes in this wiki were added "by hand" by the developers, and sometimes changes were missed. You can see template changes starting in version 7.0.0 in the changelogs at http://geodesicsolutions.com/changelog/changelogs.php

1)
In SVN talk: We did a SVN copy of the main trunk to make a releases branch for 4.1 maintenance releases, and that ended up bumping the REV number on a lot of the files. Oops!
2) , 3) , 4) , 5)
The entire directory and contents moved
6)
The row_even is changed to row_odd on some of the link modules, but the rest of the template is the same.
7)
Since the trial demos use security mode, such use of PHP would be blocked in trial demos.
designers/changes_to_note.txt · Last modified: 2014/09/25 16:55 (external edit)