Created
August 1, 2012 15:44
-
-
Save croxton/3227974 to your computer and use it in GitHub Desktop.
Multiple languages in matrix field rows overriding default title/body/summary fields in an entry
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{!-- handle language fields --} | |
{services_languages} | |
{!-- language switcher --} | |
{exp:stash:append name="page_languages" type="snippet"} | |
<option value="/{exp:cat2:url_title category_id='{language}'}{structure:page:uri}{exp:stash:get name='tab' type='snippet'}"{if "{global:lang}" == "{exp:cat2:url_title category_id='{language}'}"} selected="selected"{/if}>{exp:cat2:name category_id="{language}"} ({exp:cat2:url_title category_id="{language}"})</option> | |
{/exp:stash:append} | |
{!-- capture language fields --} | |
{exp:stash:set name="page_title_{exp:cat2:url_title category_id='{language}'}" type="snippet" parse="inward"} | |
{language_title} | |
{/exp:stash:set} | |
{exp:stash:set name="page_summary_{exp:cat2:url_title category_id='{language}'}" type="snippet" parse="inward"} | |
{language_summary} | |
{/exp:stash:set} | |
{exp:stash:set name="page_body_{exp:cat2:url_title category_id='{language}'}" type="snippet" parse="inward"} | |
{language_body} | |
{/exp:stash:set} | |
{!-- store alternative language ids - we want to exclude these when viewing the default language --} | |
{exp:stash:append name="alt_language_category_ids" type="snippet" parse="inward"}{language}|{/exp:stash:append} | |
{!-- get the language category id for the currently selected language --} | |
{exp:stash:set type="snippet" name="language_category_id" match="#^{global:lang}$#" against="{exp:cat2:url_title category_id='{language}'}" parse="inward"}{language}{/exp:stash:set} | |
{/services_languages} | |
{!-- swap fields for selected language field --} | |
{exp:switchee variable="{global:lang}" parse="inward"} | |
{!-- Having "not" enables us to display the English (or default lang) ones only --} | |
{case value="{global:lang_default}"} | |
{exp:stash:set type="snippet" name="page_summary" parse_vars="yes"}{services_summary}{/exp:stash:set} | |
{exp:stash:set type="snippet" name="page_body" parse_vars="yes"}{services_body}{/exp:stash:set} | |
{!--{exp:stash:set type="snippet" name="language_category_id" parse_tags="yes"}not {alt_language_category_ids}{/exp:stash:set}--} | |
{exp:stash:set type="snippet" name="language_category_id" parse="inward"}{services_default_language}{/exp:stash:set} | |
{/case} | |
{!-- overwrite existing snippets with language specific content --} | |
{case default="yes"} | |
{exp:stash:set type="snippet" name="page_title" parse_vars="yes"}{page_title_{global:lang}}{/exp:stash:set} | |
{exp:stash:set type="snippet" name="page_summary" parse_vars="yes"}{page_summary_{global:lang}}{/exp:stash:set} | |
{exp:stash:set type="snippet" name="page_body" parse_vars="yes"}{page_body_{global:lang}}{/exp:stash:set} | |
{/case} | |
{/exp:switchee} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment