Template Guide - Scippy/Property-Agent GitHub Wiki

Template

Guide

Introduction 3

Prerequisites 3

Templates 4

What is a Template? 4

How a Template Works? 5

Installation 5

Initialize 6

Modify 8

Export 17

Support 19

Support Queries 19

Appendix A: Template Tokens 20

Introduction

Thank you for selecting Property Agent from Ventrian Systems (www.ventrian.com).

Property Agent is a module for DotNetNuke that allows administrators to create listings of any type of property such as Real Estate, Cars, Boats, etc.

Property Agent allows you to create your own property definitions, or download a pre-configured template. (http://www.ventrian.com/Products/Modules/PropertyAgent/Templates.aspx)

Our goals are:-

  • .Provide a robust underlying platform that can be used to define any type of property.
  • .Provide a facility to share property definitions with other users.
  • .Provide a friendly module for host administrators managing multiple portals on the one install.

Should you encounter any mistakes within this document, please forward them to [email protected].

Prerequisites

The only prerequisite for this document is that you have installed the module and have it loaded on a page. Instructions for installing the module can be found in the administrator's guide located here:-

http://www.ventrian.com/Products/Modules/PropertyAgent/Documentation.aspx

Templates

This section will introduce the concept of templates and how they relate to the functionality provided by this module

What is a Template?

The main requirement for the design of "Property Agent" was a module that could be used to list "Real Estate Properties". While this may sound trivial, we encountered a number of issues.

Issue 1: What is a "Property"?

When designing the database to represent a property, it was becoming quite clear that a definition for a "Real Estate Property" varied from country to country and business to business.

We had no complete list of fields that could be used to describe a property that would meet the majority of people's needs. Even if we did, it would be a little too complex.

Issue 2: What is the best "Layout"?

There are two issues with layout:-

  • .How to blend in with an existing site's skin?
  • .How to visually turn off features that a site would not need?

While the first could probably be achieved by only using standard CSS classes provided within DotNetNuke®. The second would require a number of configurable switches built into the module.

The Solution

After investigating 3

rd

party solutions, we found a solution to both our problems.

We would allow a super user to do the following:-

  • .Define custom fields that represent a property.

  • .Change layout via the use of customized tokens*

  • .Change layout structure by turning off features

* ([Tokens] are placeholders for dynamic content)

Through designing this solution, the module became more then just another "Real Estate" module. It became a module that you could potentially list anything!

To further extend the idea, we abstracted these three features (Custom Fields, Layout Files and Layout Settings) and wrapped them in a distributable package (Template) that could be shared between sites.

Furthermore, they would function very similar to "Modules":-

  • .Only super users can add (install), edit and delete a Template.

  • .A template can be marked "Premium", so they can be restricted for use on a subset of portals.

  • .A template can be installed by a super user.

  • .A template can be uninstalled by a super user.

  • .After changes have been made to a template, it can be exported to a zip file (for sharing with other sites).

    How a Template Works?

A template has a number of steps you may perform. You can install , initialize , modify and export. As a stand-alone step you can edit and restrict access to an already installed module.

Installation

The installation step allows you to take an already exported template and install it to your own site.

When you first load the module on to a page, you are given the option to initialize an already existing template.

If no templates exist, you must import a new template. To import a new template, select "Edit Template Definitions" from the action menu. (You must be logged in as a super user to see this option.)

You should now be presented with the "Edit Template Definitions" screen that shows the list of templates available.

To install a new template, click "Import New Template".

You should see a screen similar to the following, click on the " Browse" button and select a template file (you can download templates at http://www.ventrian.com/Products/Modules/PropertyAgent/Templates.aspx), we'll use the " Simple Template" found on that page. Once you have selected the file (Simple.zip), click the " Upload File" link.

Once the template has been uploaded, you will be redirected back to the template definitions screen as shown below.

Initialize

A module instance must be "initialized" before use. Initialization is the process of adjusting the module for a particular type of property.

If you remember from the "What is a Template?" section, this includes "Custom Fields", "Layout Files" and "Layout Settings".

To initialize a template, select the "Change Template" option from the action menu.

You will now be presented with the following screen, notice that the "Simple" template is now populated in the drop down list.

Click "Initialize Template" and you should be presented by the following screen.

The above screen is the default simple template screen. It contains a searchable title field and two clickable property types with zero entries.

When you clicked the "Initialize Template" link, a few things happened:-

  • .A series of custom fields describing a property were initialized in the database.
  • .The layout files use to display screens were copied from the template to the portals directory at ([PortalHomeDirectory]/PropertyAgent/[ModuleID]/Templates/Simple/)
  • .The layout settings were initialized in the database.

By performing the above steps, you are able to customize the template without affecting other portals using the same template.

Modify

In the last section, the template was initialized. This involved creating custom fields and layout settings in the database. As well as copying files to the portal directory.

Now we want to modify the current template, so let's pick three items to modify:-

  1. )Add a custom checkbox field called "Hot Property" to the property definition.
  2. )Change the label "Property Types" to "Categories" on the front screen.
  3. )Disable searching on the front screen.

Adding Custom Fields

To change the property definition and add a custom field, click on "Edit Custom Fields" from the action menu.

You will be presented with the list of custom fields for the current template.

On this screen you can:-

  1. )Edit an existing custom field by clicking the pencil.
  2. )Adjust the sort order by clicking the up/down arrow.
  3. )Mark the custom field featured by clicking the cross/tick. (featured custom fields appear in the featured area on the front screen)
  4. )Mark the custom field published by clicking the cross/tick. (unpublished fields will not appear when adding a property)

Since our goal is to "Add a custom field called Hot Property", click the "Add Custom Field" link.

Complete the form with the fields in the above screenshot and click "Update". A complete description of all fields can be found in the table below.

Field Name Description
Name The name of the custom field, this will be used to reference the custom field in the layout files section.
Caption The caption of the custom field that will appear next to the field on both the form and layout pages.
Caption Help The help caption to be displayed on the form for this custom field.
Field Type One Line Textbox – A text box that spans one line. Multi Line Textbox – A text box that spans multiple lines. Rich Text Box – A rich text box that uses the default DNN editor. Drop Down List – A drop down list of values. Checkbox – A checkbox for yes/no answers. Multi Checkbox – A series of checkbox's. Radio Button List – A series of radio button options.
Field Elements A way of entering multiple values for Drop Down List, Multi Checkbox, etc. Separate values with a
Default Value Enter a default value for the custom field, this will be populated on the form when adding a property.
Published Check to make the custom field visible in the module.
Required Check if the custom field is required.
Validation Type None – no validation on the string is required. Currency – validates the field to a currency. Date – validates the field to a date. Double – validates the field to a decimal. Integer – validates the field to a number.
Searchable Check if the custom field is searchable.
Search Type Default – Standard searching e.g. search string = value Select Multiple – Only available to DropDownLists and Multi Checkbox. Allows user to search on multiple values at once. Select Range – Only available to One Line Textbox. Allow the user to specify a search range. E.g. From and To values. If you populate the fields below, Field Elements From and Field Elements To with values e.g. House
Sortable Check if the custom field is sortable.
Featured Check if the custom field appears in the featured area.
Listing Check if the custom field appears in the listing area. E.g. Search Results and View Property Type.
Manager Check if the custom field appears in the property manager listing.
Caption Hidden Check if the caption is hidden in listing screens.
Hidden Check if the field is hidden from users viewing a listing. E.g. A notes field to keep track of a property's progress.

Once you have added the "Hot Property" field, you should now see the field appearing on the form when clicking "Add New Property".

Changing Layout Files

The next step in our process is to change the term "Property Types" on the main page of the module. You can see the label in the following screenshot.

Every piece of screen real estate visible to the average user is customizable. To change the layout of the "Property Types" section, click on "Edit Layout Files" from the action menu as follows.

The layout files section allows you to change the html used by different parts of Property Agent. A style sheet is also available for editing allowing you to add custom CSS classes to these html files.

Each section is broken up into the following entries in the drop down list.

Section Description
Featured The "Featured Properties" section on the front screen.
Listing Any screen that lists multiple entries on a page. E.g. Search Results, View Property Type.
Photo Any screen that uses the photo tokens.
Search The "Search Properties" section on the front screen.
Stylesheet The Stylesheet containing classes that is included on every page.
Type The "Property Types" section on the front screen.
View The screen that views a single property.

Since we want to modify the "Property Types" label on the front screen, select "Type" from the drop down list and change "Property Types" to "Categories" in the header. Once you have done this, click "Update.

Once you have clicked update, you should receive a message stating the "Layout Files have been Updated". Click on the main link in the top left hand corner to go back to the front screen of the module.

You should now see the term "Property Types" has been changed to "Categories".

You may have noticed special values in the layout files e.g. [XXXX]. These are called tokens and represent dynamic content that is replaced at runtime.

A complete list of tokens and are listed in Appendix A at the end of this document.

Changing Layout Settings

The last step was to remove the search facility from the module. To do this, select "Edit Layout Settings" from the action menu.

The "Layout Settings" page allows you to customize aspects about layout such as sort order of sections on the front screen.

Our goal for this step was to turn off the search section on the front screen, to do this, uncheck "Enable Search" and click "Update.

You should notice that the search section has disappeared from the front screen!

Export

We've made the following changes to the current module instance:-

  1. )Add a custom checkbox field called "Hot Property" to the property definition.
  2. )Change the label "Property Types" to "Categories" on the front screen.
  3. )Disable searching on the front screen.

We now want to save the changes to our template for use in other portals. A good example would be customizing a template to use for another purpose e.g. boats, cars, etc.

To export a modified template for sharing, click on the "Edit Template Definitions" option from the action menu.

The edit template definitions screen allows you to view installed templates, install new templates and export the existing template.

To export the current template, click "Export Current Template".

Fill in the details about the template, you can either keep the details about the template the same or modify it to create your own unique template.

If you check the "Include Types" checkbox, it will include all property types defined in this module. Once you have specified the details about your template, click "Export Template".

Once the template has been exported, it will provide a link to download a zip file of the template. You can now use this zip file to install on other instances of "Property Agent"!

Support

Support Queries

We offer FREE technical support to our customers and anyone interested in evaluating our products.

Our technical support team is committed to providing superior support service and we typically answer inquiries within a few hours and within two business days at most.

Our online Support Center includes resources that can help answer most of your technical inquiries. As a general guideline, we suggest taking the following steps, in order, to get the most out of our technical support service:

Participate in Product Forums * (http://www.ventrian.com/Support/ProductForums.aspx)

Exchange valuable information with our staff and other developers in the product forums.

Participate in the Feedback Center *

(http://www.ventrian.com/Support/FeedbackCenter.aspx)

Need a feature that currently does not exist? Submit and vote in the feedback center.

Contact Support

(http://www.ventrian.com/Company/ContactUs.aspx)

Our support team is available to resolve technical issues in a timely and efficient manner. See the contact us page for more information.

* Log-in account required. Sign up for FREE.

Appendix A: Template Tokens

Comment Item

Token Description
[COMMENT] The text of the comment.
[COMMENTID] The system ID of the comment.
[CREATEDATE] The creation date of the comment.
[CREATEDATE:XXX] The creation date of the comment formatted to XXX, e.g. dd MMM yyyy
[DELETE] Adds a link button to delete the comment. Only visible to people with edit access to the module.
[EMAIL] The email address of the comment author.
[GRAVATARURL] The URL of the gravatar image.
[ISAGENT][/ISAGENT] Show text in this region when the comment owner is the property owner as well.
[ISANONYMOUS][/ISANONYMOUS] Show text in this region when the comment is from an anonymous user.
[ISCOMMENTOWNER] [/ISCOMMENTOWNER] Show text in this region when the comment is owned by the person logged in.
[ISREGISTERED][/ISREGISTERED] Show text in this region when the comment is from a registered user.
[NAME] The name of the comment author.
[PROPERTYID] The system ID of the property.
[RATING] A graphical representation of the rating provided by the comment author.
[RATINGVALUE] A number representation of the rating provided by the comment author.
[USERID] The system ID of the comment author.
[WEBSITE] The website of the comment author.

Contact Header/Item

Token Description
[CONTACTFORM:NAME] The name in the contact form.
[CONTACTFORM:EMAIL] The email in the contact form.
[CONTACTFORM:PHONE] The phone in the contact form.
[CONTACTFORM:MESSAGE] The message in the contact form.
  • .You also have access to all the normal property tokens below.

Export Header

Token Description
[CUSTOMFIELDS] A comma separated entry of all custom field names.

Export Item

Token Description
[COMMENTCOUNT] The number of comments attached to property.
[CUSTOMFIELDS] Lists all of the visible custom fields in a comma separated list.
[CUSTOM:XXX] Shows a custom field value where XXX is the name of the custom field.
[DATECREATED] The creation date of the property.
[DATEEXPIRED] The expiry date of the property. (blank if no expiry)
[DATEMODIFIED] The modified date of the property.
[DATEPUBLISHED] The publish date of the property. (blank if not published).
[DISPLAYNAME] The display name of the property owner.
[EMAIL] The email address of the user that submitted the property.
[FULLNAME] The full name of the user that submitted the property.
[HITS] A number representing hits on the property.
[LINK] A link to view the property.
[PORTALID] The unique ID of the current portal.
[PORTALNAME] The name of the current portal.
[PRINTLINK] The text of a link to print a property.
[PROPERTYID] A unique ID for the property. (number)
[PROPERTYLABEL] The property label defined in "layout settings".
[PROPERTYPLURALLABEL] The property plural label defined in "layout settings"
[PROPERTYTYPELABEL] The property type label defined in "layout settings"
[PROPERTYTYPEPLURALLABEL] The property type plural label defined in "layout settings"
[RATINGAVG] A read only version of [RATING]
[RATINGCOUNT] A number representing the number of ratings on a property.
[RATINGVALUE] A text presentation of the average rating for a property.
[TEMPLATEPATH] The path to the current template.
[TYPE] The type of the property.
[TYPEDESCRIPTION] The type description of the property.
[TYPEID] The type ID of the property.
[USERNAME] The username of the user who submitted the property.
[USERID] The user ID of the user who submitted the property.

Featured Header/Footer

Token Description
[FEATUREDLINK] A link to view featured properties.

Featured Item / Listing Item / Listing Alternating / View Item / Contact Header,Body / Print Item

Token Description
[BROKERID] The unique ID of the broker (displays blank if no broker).
[BROKERDISPLAYNAME] The display name of the broker (displays blank if no broker).
[BROKEREMAIL] The email of the broker (displays blank if no broker).
[BROKERUSERNAME] The username of the broker (displays blank if no broker).
[COMMENTCOUNT] The number of comments attached to property.
[COMMENTS] Displays comments attached to property using the comment templates.
[COMMENTFORM] Adds a comment form to allow users to post comments.
[COMMENTFORMRATING] Adds a comment & rating form to allow users to post both a comment and rating at the same time.
[CONTACTFORM] Adds a custom contact form to allow users to contact the owner of the property.
[CURRENCYSELECTOR] Adds a dropdown of available currencies to allow the end user to pick an alternative currency and shows prices using a live currency lookup from currencysource.com.
[CURRENTUSERID] The user ID of the current logged in user.
[CUSTOMFIELDS] Lists all of the visible custom fields.
[CUSTOMFIELDSFEATURED] Lists all custom fields marked as "Featured Only".
[CUSTOMFIELDSLISTING] List all custom fields marked for the "Listings" section.
[DATECREATED] The creation date of the property.
[DATEEXPIRED] The expiry date of the property. (blank if no expiry)
[DATEMODIFIED] The modified date of the property.
[DATEPUBLISHED] The publish date of the property. (blank if not published).
[DISPLAYNAME] The display name of the property owner.
[DISTANCE] The distance from the origin point to the property. Only available when sorting on distance otherwise it will display nothing.
[EDIT] A link to edit the property.
[EMAIL] The email address of the user that submitted the property.
[FULLNAME] The full name of the user that submitted the property.
[GOOGLEAPIKEY] The google API key configured in layout settings.
[HASAGENT][/HASAGENT] Only show html between this area when a property has an agent/owner.
[HASBROKER][/HASBROKER] Only show html between this area when a property has a broker.
[HASCOMMENTS][/HASCOMMENTS] Only show html between this area when a property has comments.
[HASCOORDINATES][/HASCOORDINATES] Shows html in the region if the property has a latitude and longitude.
[HASNOCOORDINATES][/HASNOCOORDINATES] Shows html in the region if the property doesn't have a latitude and longitude.
[HASDISTANCE][/HASDISTANCE] Only show html between this area when a distance between the search point and the property can be established. (Must be sorting on distance)
[HASNOCOMMENTS][/HASNOCOMMENTS] Only show html between this area when a property has no comments.
[HASIMAGES][/HASIMAGES] Only show html between this area when a property has images.
[HASNEXTSEARCH][/HASNEXTSEARCH] Only show html between this area when a property has additional next properties in the current search.
[HASNEXTTYPE][/HASNEXTTYPE] Only show html between this area when a property has additional next properties in the property's type.
[HASNOIMAGES][/HASNOIMAGES] Only show html between this area when a property has no images.
[HASAGENT][/HASAGENT] Only show html between this area when a property has an owner.
[HASNOAGENT][/HASNOAGENT] Only show html between this area when a property has no owner.
[HASPREVIOUSSEARCH][/ HASPREVIOUSSEARCH] Only show html between this area when a property has additional previous properties in the current search.
[HASPREVIOUSTYPE][/ HASPREVIOUSTYPE] Only show html between this area when a property has additional previous properties in the property's type.
[HASRATING][/ HASRATING] Only show html between this area when a property has at least 1 rating.
[HASNORATING][/HASNORATING] Only show html between this area when a property has no ratings.
[HASREVIEWS][/HASREVIEWS] Only show html when the property has reviews.
[HASNOREVIEWS][/HASNOREVIEWS] Only show html when the property has no reviews.
[ISFEATURED][/ISFEATURED] Only show html between this area when a property is featured.
[ISNOTFEATURED][/ISNOTFEATURED] Only show html between this area when a property is not featured.
[ISFIRST][/ISFIRST] Only show html between this area when it is the first item in the list.
[ISNOTFIRST][/ISNOTFIRST] Only show html between this area when it is not the first item in the list.
[ISMOBILEDEVICE][/ISMOBILEDEVICE] Only show html between this area when it is a mobile device.
[ISNOTMOBILEDEVICE][/ISNOTMOBILEDEVICE] Only show html between this area when it is not a mobile device.
[ISOWNER][/ISOWNER] Only show html between this area when the currently logged in user is the owner of the property.
[HITS] A number representing hits on the property.
[LATITUDE] The latitude of the property. Displays nothing if no latitude exists.
[LONGITUDE] The longitude of the property. Displays nothing if no latitude exists.
[LINK] A link to view the property.
[MAP] Shows a google map for the property where a latitude/longitude is specified in the property.
[MODIFIEDID] A unique ID of the last person to modify the property.
[MODIFIEDDISPLAYNAME] The display name of the last person to modify the property.
[MODIFIEDEMAIL] The email of the last person to modify the property.
[MODIFIEDUSERNAME] The username of the last person to modify the property.
[NEXTSEARCH] A link to the next property in the current search. Shows nothing if no additional properties.
[NEXTSEARCHLINK] A url to the next property in the current search. Shows nothing if no additional properties.
[NEXTTYPE] A link to the next property in the property's type (uses default listing sort order). Shows nothing if no additional properties.
[NEXTTYPELINK] A url to the next property in the property's type (uses default listing sort order). Shows nothing if no additional properties.
[PHOTOCOUNT] Displays the number of photos attached to the property.
[PHOTOSMALL] The first photo attached to the property using the smallest thumbnail settings.
[PHOTOMEDIUM] The first photo attached to the property using the medium thumbnail settings.
[PHOTOLARGE] The first photo attached to the property using the largest thumbnail settings.
[PHOTOHEIGHTSMALL] A number representing the smallest thumbnail height of the first photo.
[PHOTOHEIGHTMEDIUM] A number representing the medium thumbnail height of the first photo.
[PHOTOHEIGHTLARGE] A number representing the largest thumbnail height of the first photo.
[PHOTOLINKSMALL] A link to the image source of the smallest thumbnail.
[PHOTOLINKMEDIUM] A link to the image source of the medium thumbnail.
[PHOTOLINKLARGE] A link to the image source of the largest thumbnail.
[PHOTOTITLE] The title of the first photo belonging to the property.
[PHOTOWIDTHSMALL] A number representing the smallest thumbnail width of the first photo.
[PHOTOWIDTHMEDIUM] A number representing the medium thumbnail width of the first photo.
[PHOTOWIDTHLARGE] A number representing the largest thumbnail width of the first photo.
[PHOTOS] Displays the list of photos using the photo templates ("First Photo", "Photo Item")
[PORTALID] The unique ID of the current portal.
[PORTALNAME] The name of the current portal.
[PREVIOUSSEARCH] A link to the previous property in the current search. Shows nothing if no additional properties.
[PREVIOUSSEARCHLINK] A url to the previous property in the current search. Shows nothing if no additional properties.
[PREVIOUSTYPE] A link to the previous property in the property's type (uses default listing sort order). Shows nothing if no additional properties.
[PREVIOUSTYPELINK] A url to the previous property in the property's type (uses default listing sort order). Shows nothing if no additional properties.
[PRINTLINK] The text of a link to print a property.
[PROPERTYID] A unique ID for the property. (number)
[PROPERTYLABEL] The property label defined in "layout settings".
[PROPERTYPLURALLABEL] The property plural label defined in "layout settings"
[PROPERTYTYPELABEL] The property type label defined in "layout settings"
[PROPERTYTYPEPLURALLABEL] The property type plural label defined in "layout settings"
[RATING] An ajax selectable rating control. Will display current average rating when a person is not voting.
[RATINGAVG] A read only version of [RATING]
[RATINGCOUNT] A number representing the number of ratings on a property.
[RATINGVALUE] A text presentation of the average rating for a property.
[REVIEWCOUNT] The number of reviews associated with the property.
[REVIEWFORM] Adds a review form to allow users to review a property.
[SEARCHCOUNT] The number of properties in the current search.
[SEARCHPOSITION] The position of the property in the current search.
[SENDTOFRIENDFORM] Adds a send to friend form to allow users to refer the property.
[SHORTLIST] Adds the "Add to Shortlist" and "Remove from Shortlist" link for authenticated users. You can than display the shortlist via Property Agent Latest by filtering by shortlist in module settings.
[TEMPLATEPATH] The path to the current template.
[TYPE] The type of the property.
[TYPECOUNT] The number of properties in the property's type.
[TYPEDESCRIPTION] The type description of the property.
[TYPEID] The type ID of the property.
[TYPEIMAGE] The image of the type.
[TYPEIMAGELINK] The url to the image of the type.
[TYPELINK] A link to the property type's view page.
[TYPEPOSITION] The position of the property in the list of properties belonging to the property's type.
[USERNAME] The username of the user who submitted the property.
[USERID] The user ID of the user who submitted the property.
[AGENT:XXX] A way of referencing a profile field for the owner of the property. E.g. [AGENT:Website]
[BROKER:XXX] A way of referencing a profile field for the broker of the property. E.g. [BROKER:Website]
[CUSTOM:XXX] A way of referencing a specific custom field, e.g. [CUSTOM:Price] where price is the name of the custom field.
[CUSTOM:XXX Link] A way of referencing a specific custom field, but will display just the URL of the hyperlink and file upload custom field.
[CUSTOMLIST:XXX] Does exactly the same as [CUSTOM:XXX] with the exception of multicheckbox items. It will render these as an unordered list instead of comma separated.
[CAPTION:XXX] A way of referencing a specific custom field caption, e.g. [CUSTOM:Price] where price is the caption of the custom field.
[DATECREATED:XXX] The creation date of the property where XXX is the format expression. E.g. (MMM dd yyyy).
[DATEEXPIRED:XXX] The expired date of the property where XXX is the format expression. E.g. (MMM dd yyyy).
[DATEMODIFIED:XXX] The modified date of the property where XXX is the format expression. E.g. (MMM dd yyyy).
[DATEPUBLISHED:XXX] The published date of the property where XXX is the format expression. E.g. (MMM dd yyyy).
[EXPRESSION:XXX:YY:ZZZ][/EXPRESSION:XXX:YY:ZZZ] Show region where XXX (custom field name), YY (operator, e.g. =,!=,>,>=,<,<=) and ZZZ (value to compare) matches. An example is ([EXPRESSION:Bedrooms:>:5]Wow this is a big place[/EXPRESSION:Bedrooms:>:5]). Make sure the closing expression matches the original.
[EXPRESSIONTYPE:=:XXX][/EXPRESSIONTYPE:=:XXX] Show region where XXX is the name of the type.e.g. [EXPRESSIONTYPE:=:Land]text here[/EXPRESSIONTYPE:=:Land]
[EXPRESSIONTYPE:!=:XXX][/EXPRESSIONTYPE:!=:XXX] Show region where XXX is not the name of the type.e.g. [EXPRESSIONTYPE:!=:Land]text here[/EXPRESSIONTYPE:!=:Land]
[EXPRESSIONTYPEID:=:XXX][/EXPRESSIONTYPEID:=:XXX] Show region where XXX is the ID of the type. E.g. [EXPRESSIONTYPEID:=:10]text here[/EXPRESSIONTYPEID:=:10]
[ISINROLE:XXX] [/ISINROLE:XXX] Show region where XXX (role name) matches to the logged on user with that role.
[ISNOTINROLE:XXX] [/ISNOTINROLE:XXX] Show region where XXX (role name) does not match the logged on user's role.
[ISAGENTINROLE:XXX] [/ISAGENTINROLE:XXX] Show region where XXX (role name) matches the owner of the property's role.
[ISAGENTNOTINROLE:XXX][/ISAGENTNOTINROLE:XXX] Show region where XXX (role name) doesn't match the owner of the property's role.
[ISLOCALE:XXX] [/ISLOCALE:XXX] Show region where XXX (locale ID) matches the locale of the current user. E.g. [ISLOCALE:en-GB][/ISLOCALE:en-GB]
[HASVALUE:XXX] [/HASVALUE:XXX] Show region where XXX (custom field name) has a value.
[HASNOVALUE:XXX] [HASNOVALUE:XXX] Show region where XXX (custom field name) has no value.
[MODIFIED:XXX] A way of referencing a profile field for the last person to modify a property. E.g. [MODIFIED:Website]
[RSSREADER:<url>] Presents an RSS feed from a remote site using the RssReader.*.html templates. Replace <url> with the url of the RSS feed. If you want to use custom field values from the current property, use the following in the url, {CUSTOM:FieldName}. E.g. e.g. [RSSREADER:http://www.ventrian.com/desktopmodules/activeforumstopposts/feeds.aspx?tabid=35&moduleid611]
[RSSREADER:<url>:<count>] Same as above, but restricts the number returns to the count specified.
[TYPE:X] A way of referencing types associated with the property where X is the position in the hierarchy. E.g. [TYPE:0], [TYPE:1]

Listing Header/Footer

Token Description
[CURRENTPAGE] The current page number of the listings.
[HASMULTIPLEPAGES][/HASMULTIPLEPAGES] A region that will only display when there is more then 1 page of listings.
[HASNEXTPAGE][/HASNEXTPAGE] A region that will only display when there is a next page.
[HASPAGING][/HASPAGING] A region that will only display when there is multiple pages (page count > 1)
[HASPREVPAGE][/HASPREVPAGE] A region that will only display when there is a previous page.
[HASTYPE][/HASTYPE] Show content if you are on the view type page.
[LINKFIRST] A link to the first page of listings.
[LINKLAST] A link to the last page of listings.
[LINKNEXT] A link to the next page of listings.
[LINKPREVIOUS] A link to the previous page of the listings.
[PAGECOUNT] The total count of all pages
[PAGER] Uses the default DNN paging control to render all paging.
[PAGES] Displays a list of linked pages for the current listings.
[TOTALRECORDS] The total number of records returned by the listings.
[TYPEDESCRIPTION] The description of the type. Only shown when viewing a type.

Listing Separator

There are no tokens for this type.

Options Item

Token Description
[ADDPROPERTY] The link to the add property page.
[ADDPROPERTYLINK] The url to the add property page.
[HASADDPROPERTY][/HASADDPROPERTY] A check to determine whether or not the logged in person has access to add a property.
[HASPROPERTYMANAGER][/HASPROPERTYMANAGER] A check to determine whether or not the logged in person has access to the property manager.
[ISINROLE:XXX][/ISINROLE:XXX] A role check where XXX is the name of a role.
[PROPERTYMANAGER] The link to the property manager.
[PROPERTYMANAGERLINK] The url to the property manager.
[RSS] The link to the RSS feed.
[ISINROLE:XXX] [/ISINROLE:XXX] Show region where XXX (role name) matches to the logged on user with that role.
[ISNOTINROLE:XXX] [/ISNOTINROLE:XXX] Show region where XXX (role name) does not match the logged on user's role.

Photo Item / First Photo

Token Description
[PHOTOSMALL] The first photo attached to the property using the smallest thumbnail settings.
[PHOTOMEDIUM] The first photo attached to the property using the medium thumbnail settings.
[PHOTOLARGE] The first photo attached to the property using the largest thumbnail settings.
[PHOTOHEIGHTSMALL] A number representing the smallest thumbnail height of the first photo.
[PHOTOHEIGHTMEDIUM] A number representing the medium thumbnail height of the first photo.
[PHOTOHEIGHTLARGE] A number representing the largest thumbnail height of the first photo.
[PHOTOLINKSMALL] A link to the image source of the smallest thumbnail.
[PHOTOLINKMEDIUM] A link to the image source of the medium thumbnail.
[PHOTOLINKLARGE] A link to the image source of the largest thumbnail.
[PHOTOWIDTHSMALL] A number representing the smallest thumbnail width of the first photo.
[PHOTOWIDTHMEDIUM] A number representing the medium thumbnail width of the first photo.
[PHOTOWIDTHLARGE] A number representing the largest thumbnail width of the first photo.
[PHOTOTITLE] The title of the photo.
[PROPERTY] A label used for the lightbox.
[TEMPLATEPATH] The path to the currently used template.

Print Header/Footer

There are no tokens for this type.

RSS Header

Token Description
[ITEMS] Adds the RSS item template for each property bound to the RSS feed. See the RSS Item section for tokens inside this template.
[MODULENAME] The title of the property agent module instance.
[NOW] The current date time in a format suitable for RSS feeds.
[PORTALID] The unique number of the current portal.
[PORTALNAME] The title of the current portal.
[PROPERTYLABEL] The property label defined in "layout settings".
[PROPERTYPLURALLABEL] The property plural label defined in "layout settings"
[PROPERTYTYPELABEL] The property type label defined in "layout settings"
[PROPERTYTYPEPLURALLABEL] The property type plural label defined in "layout settings"
[PORTALURL] The url of the current portal.
[TITLE] The title of the RSS feed configured in "Edit Layout Settings". There is a separate title for latest, view type and search results.

Review Item

Token Description
[CREATEDATE] The creation date of the review.
[CREATEDATE:XXX] Show the create date where XXX is the date format string, e.g. dd/MM/yyyy
[DELETE] A link to delete the review, shown to users with access.
[DISPLAYNAME] The display name of the person doing the review.
[EMAIL] The email address of the person doing the review.
[FIELD:XXX] The value of the custom field where XXX is the field name.
[HASFIELD:XXX][/HASFIELD:XXX] Shows html when the field has a value.
[REVIEWID] The review #.
[USERID] The ID of the user.

RSS Item

Token Description
[COMMENTCOUNT] The number of comments attached to property.
[CUSTOMFIELDS] Lists all of the visible custom fields in a comma separated list.
[DATECREATED] The creation date of the property.
[DATEEXPIRED] The expiry date of the property. (blank if no expiry)
[DATEMODIFIED] The modified date of the property.
[DATEPUBLISHED] The publish date of the property. (blank if not published).
[DISPLAYNAME] The display name of the property owner.
[EMAIL] The email address of the user that submitted the property.
[FEATURED] A true or false indicating whether or not a property is featured.
[FULLNAME] The full name of the user that submitted the property.
[HASCOORDINATES][/HASCOORDINATES] Shows html in the region if the property has a latitude and longitude.
[HASNOCOORDINATES][/HASNOCOORDINATES] Shows html in the region if the property doesn't have a latitude and longitude.
[HITS] A number representing hits on the property.
[LATITUDE] The latitude of the property (if specified)
[LONGITUDE] The longitude of the property (if specified)
[LINK] A link to view the property.
[PHOTOLINKSMALL] A link to the first photo in the smallest thumbnail setting.
[PHOTOLINKMEDIUM] A link to the first photo in the medium thumbnail setting.
[PHOTOLINKLARGE] A link to the first photo in the largest thumbnail setting.
[PORTALID] The unique ID of the current portal.
[PORTALNAME] The name of the current portal.
[PRINTLINK] The text of a link to print a property.
[PROPERTYID] A unique ID for the property. (number)
[PROPERTYLABEL] The property label defined in "layout settings".
[PROPERTYPLURALLABEL] The property plural label defined in "layout settings"
[PROPERTYTYPELABEL] The property type label defined in "layout settings"
[PROPERTYTYPEPLURALLABEL] The property type plural label defined in "layout settings"
[RATINGAVG] A read only version of [RATING]
[RATINGCOUNT] A number representing the number of ratings on a property.
[RATINGVALUE] A text presentation of the average rating for a property.
[TEMPLATEPATH] The path to the current template.
[TYPE] The type of the property.
[TYPEDESCRIPTION] The type description of the property.
[TYPEID] The type ID of the property.
[USERNAME] The username of the user who submitted the property.
[USERID] The user ID of the user who submitted the property.
[CUSTOM:XXX] A way of referencing a specific custom field, e.g. [CUSTOM:Price] where price is the name of the custom field.
[EXPRESSION:XXX:YY:ZZZ][/EXPRESSION:XXX:YY:ZZZ] Show region where XXX (custom field name), YY (operator, e.g. =,!=,>,>=,<,<=) and ZZZ (value to compare) matches. An example is ([EXPRESSION:Bedrooms:>:5]Wow this is a big place[/EXPRESSION:Bedrooms:>:5]). Make sure the closing expression matches the original.
[EXPRESSIONTYPE:=:XXX][/EXPRESSIONTYPE:=:XXX] Show region where XXX is the name of the type.e.g. [EXPRESSIONTYPE:=:Land]text here[/EXPRESSIONTYPE:=:Land]
[EXPRESSIONTYPEID:=:XXX][/EXPRESSIONTYPEID:=:XXX] Show region where XXX is the ID of the type. E.g. [EXPRESSIONTYPEID:=:10]text here[/EXPRESSIONTYPEID:=:10]

RSS Reader Item

Token Description
[DESCRIPTION] The description of the RSS item in the RSS feed.
[LINK] The link of the RSS item in the RSS feed.
[TITLE] The title of the RSS item in the RSS feed.

Search Header/Footer

There are no tokens for this type.

Search Item

Token Description
[AGENT] Displays the agent search dropdown.
[BROKER] Displays the broker search dropdown.
[CAPTION:XXX] Show the caption of the custom field where XXX is the name of the custom field.
[CUSTOM:XXX] Show the search field for the custom field where XXX is the name of the custom field.
[SEARCH] Displays the search form showing all fields marked as searchable.
[SEARCHBUTTON] Displays the search button for performing a search.
[SEARCHLINK] Displays a link button for performing a search.
[TYPE] Displays the type dropdown.
[TYPECASCADE] Displays the type dropdown split into multiple (one for each other).
[WILDCARD] Displays the wildcard search dropdown.

Send To Friend Subject/Body

Token Description
[FRIEND:FROMNAME] The name in the send to friend form.
[FRIEND:FROMEMAIL] The email in the send to friend form.
[MESSAGE] The message in the send to friend form.
  • .You also have access to all the normal property tokens above.

Type Header/Footer

There are no tokens for this type.

Type Item

Token Description
[EDIT] A link to edit the type.
[SUBTYPES] Displays a comma separated list of sub-types of the current type.
[TYPE] The name of the type.
[TYPECOUNT] The count of the properties in this type.
[TYPEDESCRIPTION] The description of the type.
[TYPEIMAGE] The image of the type.
[TYPELINK] A link to view properties in this type.
[TYPEID] A numeric ID of the type.
[TYPEINDENTED] The indented name of the type.

Type Title/Description/Keywords

Token Description
[TYPE] The name of the type.
[TYPEDESCRIPTION] The description of the type.
[TYPEID] A numeric ID of the type.

View Header/Footer

There are no tokens for this type.