This section of the documentation will explore some of the run time configuration options available during and once the site has been deployed.


Typically the default output for property prices is a good fit for most agents though from time to time, agents, especially those in London, may prefer to to list rental prices as per week.

There are two content blocks (found in agent admin at /configure/website/content/content/list), ‘Lettings price text’ and ‘Sales price text’, which allow the output of a property.price call to be changed on the fly.

The default output of a rental property will be in the form of ‘£1500pcm’, to alter this we can insert some liquid into those content blocks.

£{{property.price_value | pcm_to_pcw | number_with_delimiter}}pw | £{{ property.price_value| number_with_delimiter}}pcm

For rental properties property.price_value will always output a pcm price.

The filter pcm_to_pcw will perform a pcw conversion.

number_with_delimeter will humanise the output, converting 1500 to 1,500.

Using a combination of these filters it should be possible to customise the pice output to your client’s liking.

Config YAML

As we’ve touched upon in other parts of the documentation, the config.yml file can be looked on as a central configuration repository for your theme. There are a number of options that you can add that will effect the way your theme works. YAML files are sensitive to spaces and tabbing and have a tree like format in regard to sections, keys and values. If you add some new values and get an error straight after, you may have formatted it incorrectly.

Below is a growing list of options you can use:

name: ‘name’

Purpose: the name of your theme

cache_for: ‘value’

Purpose: caching

type: ‘agency_theme’

Purpose: the type of theme (normally added for you)


Purpose: a container of global options that can include:

Purpose: enables national searching

enabled: > ‘include_count_on_global_listings’ (deprecated)

Purpose: total count of properties in a result set made available (now enabled by default)

enabled: > - ‘branches_by_distance_on_locations’


enabled: > - ‘disambiguation’

Purpose: enables national searching

enabled: > - ‘searchable_keyword_lookup’


Purpose: a collection of controller/action sidebars to render

Purpose: declaration of sidebar


Purpose: chunks defined here will show up in the agent’s CMS admin as available them chunks

site_content_chunks: > - name: ‘name of chunk’

Purpose: name of the chunk

site_content_chunks: > description: ‘description’

Purpose: role of the chunk


Purpose: assign categories to pages for general purposes


Purpose: container for JS and CSS asset packs

asset_packs: > javascript:

Purpose: container for JS asset packs

asset_packs: > javascript: > - javascript_file_name

Purpose: a record for one JS file to minify

asset_packs: > stylesheet:

Purpose: container for CSS asset packs

asset_packs: > stylesheet: > - css_file_name

Purpose: a record for one CSS file to minify (add .css extension for none LCSS files)

Sample YAML file

Here’s a sample theme YAML file:

  name: "Hatch"
  cache_for: 5
  type: "agency_theme"
    - "national_search"
    - 'include_count_on_global_listings'
    'branches#show' : 'branch_show_sidebar'
    'branches#index' : 'branch_show_sidebar'
    'branches#properties' : 'property_search_sidebar'
    'properties#index' : 'property_search_sidebar'
    'locations#show' : 'property_search_sidebar'
    'staff#show' : 'staff_show_sidebar'
    'home#home' : 'home_home_sidebar'
    'users#new' : 'users_new_sidebar'
    - name: 'sales_channel_sidebar_ad_unit'
      description: 'The ad unit for your sales sidebar section'
    - name: 'branches_list'
      description: 'top branches list'
    'pages#request_valuation' : 'about'
      - respond
      - vendor/
      - vendor/bxslider/jquery.bxslider.min
      - vendor/jquery.scrollTo.min
      - vendor/jquery.tooltipster.min
      - normalize.min.css
      - dropkick.css
      - main.lcss
      - tooltipster.css
      - leaflet

Custom Flash Messages

On form submissions, successful or other, the browser will display a modal pop-up with a default message. The content is customisable, using the following example as a model:

  Ctesius.addConfig('name-of-the-flash-message-to-override', 'your_custom_message');

This should typically be added to your ‘js_event_registers.liquid’ file, although they can be added to a specific page where needed.

If your theme is not bespoke, then ‘your_custom_message’ should be replaced with a content block so that future users of the theme can add custom content.

Another example:

Ctesius.addConfig('flash-message-welcome-lead-sent', 'Thank you for applying for the {{ article.slug | remove: "current-opportunities-""  }}' +
' position. You will have received a confirmation of your application and will hear from us if successful.' );

This would output:

Thank you for applying for the generic office position. You will have received a
confirmation of your application and will hear from us if successful.

Here is a list of flash message types, and the default messages which can be overriden:

  • ‘flash-message-welcome-lead-sent-new-user’: “Thank you. We have sent your message and created - you an account.”
  • ‘flash-message-welcome-lead-sent’: “Thank you. We have sent your message.”
  • ‘flash-message-lead-sending-error’: “There was an error sending your message - please try again later.”
  • ‘flash-message-file-upload-error’: “There was an error uploading your attachment - please try again in a minute.”
  • ‘flash-message-location-not-found’: “Sorry, we couldn’t find that location.”
  • flash-message-lead-sending-error-validation : “Sorry, we couldn’t create your lead. Only alphanumeric characters are allowed for First and Last name.”
  • ‘flash-message-send-property-sent’: “This property has been shared successfully!”
  • ‘flash-message-send-property-invalid’ : “There was an error trying to share this property.”
  • ‘flash-message-user-create-dupe’: “There is already a user with that email address registered.”
  • ‘flash-message-user-create-successful’: “You have registered successfully and been logged in.”
  • ‘flash-message-user-login-successful’: “You have been logged in successfully!”
  • ‘flash-message-user-create-error’: “There was an error in registering you with the agent.”
  • ‘flash-message-search-query-required’: “Please enter a search query.”
  • ‘flash-message-article-not-found-error’: “Sorry, we could not find this article”
  • ‘flash-message-recaptcha-invalid’: “The recaptcha you entered is not correct. Please try again.”
  • ‘flash-message-invalid-message-content’: “Your message contains illegal content. Please submit again.”
  • ‘flash-message-password-invalid’: “The password you have specified is invalid. Make sure it is alphanumeric and contains more than 5 characters.”
  • ‘flash-message-postcode-invalid’: “The postcode supplied seems to be invalid. Please try again”
  • ‘flash-message-site-not-live’ : “This website needs to be activated. Please contact Homeflow.