525 lines
23 KiB
HTML
525 lines
23 KiB
HTML
|
|
<xf:macro id="user_tabs" arg-container="" arg-userTabTitle="" arg-active="">
|
||
|
|
<xf:set var="$tabs">
|
||
|
|
<a class="tabs-tab{{ $active == 'user' ? ' is-active' : '' }}"
|
||
|
|
role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaUser') }}">
|
||
|
|
{{ $userTabTitle ? $userTabTitle : phrase('user_criteria') }}</a>
|
||
|
|
<a class="tabs-tab{{ $active == 'user_field' ? ' is-active' : '' }}"
|
||
|
|
role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaUserField') }}">
|
||
|
|
{{ phrase('custom_userfield_criteria') }}</a>
|
||
|
|
</xf:set>
|
||
|
|
<xf:if is="$container">
|
||
|
|
<div class="tabs" role="tablist">
|
||
|
|
{$tabs|raw}
|
||
|
|
</div>
|
||
|
|
<xf:else />
|
||
|
|
{$tabs|raw}
|
||
|
|
</xf:if>
|
||
|
|
</xf:macro>
|
||
|
|
|
||
|
|
<xf:macro id="page_tabs" arg-container="" arg-active="">
|
||
|
|
<xf:set var="$tabs">
|
||
|
|
<a class="tabs-tab{{ $active == 'page' ? ' is-active' : '' }}"
|
||
|
|
role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaPage') }}">{{ phrase('page_criteria') }}</a>
|
||
|
|
</xf:set>
|
||
|
|
<xf:if is="$container">
|
||
|
|
<div class="tabs" role="tablist">
|
||
|
|
{$tabs|raw}
|
||
|
|
</div>
|
||
|
|
<xf:else />
|
||
|
|
{$tabs|raw}
|
||
|
|
</xf:if>
|
||
|
|
</xf:macro>
|
||
|
|
|
||
|
|
<xf:macro id="user_panes" arg-container="" arg-active="" arg-criteria="!" arg-data="!">
|
||
|
|
|
||
|
|
<xf:set var="$app" value="{$xf.app}" />
|
||
|
|
<xf:set var="$visitor" value="{$xf.visitor}" />
|
||
|
|
<xf:set var="$em" value="{$app.em}" />
|
||
|
|
|
||
|
|
<xf:set var="$panes">
|
||
|
|
<li class="{{ $active == 'user' ? ' is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaUser') }}">
|
||
|
|
<!--[XF:user:top]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('privileges_and_status') }}">
|
||
|
|
<!--[XF:user:status_top]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[is_guest][rule]" value="is_guest" selected="{$criteria.is_guest}"
|
||
|
|
label="{{ phrase('user_is_guest') }}" />
|
||
|
|
<xf:option name="user_criteria[is_logged_in][rule]" value="is_logged_in" selected="{$criteria.is_logged_in}"
|
||
|
|
label="{{ phrase('user_is_logged_in') }}" />
|
||
|
|
<xf:option name="user_criteria[is_moderator][rule]" value="is_moderator" selected="{$criteria.is_moderator}"
|
||
|
|
label="{{ phrase('user_is_moderator') }}" />
|
||
|
|
<xf:option name="user_criteria[is_admin][rule]" value="is_admin" selected="{$criteria.is_admin}"
|
||
|
|
label="{{ phrase('user_is_administrator') }}" />
|
||
|
|
<xf:option name="user_criteria[is_banned][rule]" value="is_banned" selected="{$criteria.is_banned}"
|
||
|
|
label="{{ phrase('user_is_banned') }}"/>
|
||
|
|
<xf:option name="user_criteria[birthday][rule]" value="birthday" selected="{$criteria.birthday}"
|
||
|
|
label="{{ phrase('user_birthday_is_today') }}"/>
|
||
|
|
<xf:option name="user_criteria[user_state][rule]" value="user_state" selected="{$criteria.user_state}"
|
||
|
|
label="{{ phrase('user_state_is:') }}">
|
||
|
|
|
||
|
|
<xf:dependent>
|
||
|
|
<xf:select name="user_criteria[user_state][data][state]" value="{$criteria.user_state.state}">
|
||
|
|
<xf:option value="valid">{{ phrase('valid') }}</xf:option>
|
||
|
|
<xf:option value="email_confirm">{{ phrase('awaiting_email_confirmation') }}</xf:option>
|
||
|
|
<xf:option value="email_confirm_edit">{{ phrase('awaiting_email_confirmation_from_edit') }}</xf:option>
|
||
|
|
<xf:option value="email_bounce">{{ phrase('email_invalid_bounced') }}</xf:option>
|
||
|
|
<xf:option value="moderated">{{ phrase('awaiting_approval') }}</xf:option>
|
||
|
|
<xf:option value="rejected">{{ phrase('rejected') }}</xf:option>
|
||
|
|
<xf:option value="disabled">{{ phrase('disabled') }}</xf:option>
|
||
|
|
</xf:select>
|
||
|
|
</xf:dependent>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:status_bottom]-->
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_status]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('connected_accounts') }}">
|
||
|
|
<xf:option name="user_criteria[connected_accounts][rule]" value="connected_accounts" selected="{$criteria.connected_accounts}"
|
||
|
|
label="{{ phrase('user_is_associated_with_any_of_selected_connected_account_providers:') }}">
|
||
|
|
|
||
|
|
<xf:select name="user_criteria[connected_accounts][data][provider_ids]" size="4" multiple="true" value="{$criteria.connected_accounts.provider_ids}">
|
||
|
|
<xf:options source="$data.connectedAccProviders" />
|
||
|
|
</xf:select>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_connected]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('user_groups') }}">
|
||
|
|
<xf:option name="user_criteria[user_groups][rule]" value="user_groups" selected="{$criteria.user_groups}"
|
||
|
|
label="{{ phrase('user_is_member_of_any_of_selected_user_groups:') }}">
|
||
|
|
|
||
|
|
<xf:select name="user_criteria[user_groups][data][user_group_ids]" size="4" multiple="true" value="{$criteria.user_groups.user_group_ids}">
|
||
|
|
<xf:foreach loop="$data.userGroups" key="$userGroupId" value="$userGroupTitle">
|
||
|
|
<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[not_user_groups][rule]" value="not_user_groups" selected="{$criteria.not_user_groups}"
|
||
|
|
label="{{ phrase('user_is_not_member_of_any_of_selected_user_groups:') }}">
|
||
|
|
|
||
|
|
<xf:select name="user_criteria[not_user_groups][data][user_group_ids]" size="4" multiple="true" value="{$criteria.not_user_groups.user_group_ids}">
|
||
|
|
<xf:foreach loop="$data.userGroups" key="$userGroupId" value="$userGroupTitle">
|
||
|
|
<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_groups]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('content_and_achievements') }}">
|
||
|
|
<!--[XF:user:content_top]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[messages_posted][rule]" value="messages_posted" selected="{$criteria.messages_posted}"
|
||
|
|
label="{{ phrase('user_has_posted_at_least_x_messages:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[messages_posted][data][messages]" value="{$criteria.messages_posted.messages}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[messages_maximum][rule]" value="messages_maximum" selected="{$criteria.messages_maximum}"
|
||
|
|
label="{{ phrase('user_has_posted_no_more_than_x_messages:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[messages_maximum][data][messages]" value="{$criteria.messages_maximum.messages}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:content_after_messages]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[questions_solved_min][rule]" value="questions_solved_min" selected="{$criteria.questions_solved_min}"
|
||
|
|
label="{{ phrase('user_has_solved_at_least_x_questions:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[questions_solved_min][data][solved]" value="{$criteria.questions_solved_min.solved}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[questions_solved_max][rule]" value="questions_solved_max" selected="{$criteria.questions_solved_max}"
|
||
|
|
label="{{ phrase('user_has_solved_no_more_than_x_questions:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[questions_solved_max][data][solved]" value="{$criteria.questions_solved_max.solved}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:content_after_questions]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[reaction_score][rule]" value="reaction_score" selected="{$criteria.reaction_score}"
|
||
|
|
label="{{ phrase('user_has_received_a_reaction_sore_of_at_least_x:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[reaction_score][data][reactions]" value="{$criteria.reaction_score.reactions}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[reaction_ratio][rule]" value="reaction_ratio" selected="{$criteria.reaction_ratio}"
|
||
|
|
label="{{ phrase('user_reaction_message_ratio_is_at_least:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[reaction_ratio][data][ratio]" value="{$criteria.reaction_ratio.ratio}"
|
||
|
|
size="5" min="0" step="0.25" />
|
||
|
|
<xf:afterhint>{{ phrase('reaction_message_ratio_explanation') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:content_after_reactions]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[trophy_points][rule]" value="trophy_points" selected="{$criteria.trophy_points}"
|
||
|
|
label="{{ phrase('user_has_at_least_x_trophy_points:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[trophy_points][data][points]" value="{$criteria.trophy_points.points}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:content_after_trophies]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[registered_days][rule]" value="registered_days" selected="{$criteria.registered_days}"
|
||
|
|
label="{{ phrase('user_has_been_registered_for_at_least_x_days:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[registered_days][data][days]" value="{$criteria.registered_days.days}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[inactive_days][rule]" value="inactive_days" selected="{$criteria.inactive_days}"
|
||
|
|
label="{{ phrase('user_has_not_visited_for_at_least_x_days:') }}">
|
||
|
|
<xf:numberbox name="user_criteria[inactive_days][data][days]" value="{$criteria.inactive_days.days}"
|
||
|
|
size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[rhpz_entry_count][rule]" value="rhpz_entry_count" selected="{$criteria.rhpz_entry_count}" label="Number of entries:">
|
||
|
|
<xf:numberbox name="user_criteria[rhpz_entry_count][data][entries]" value="{$criteria.rhpz_entry_count.entries}" size="5" min="0" step="1" />
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:content_bottom]-->
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_content]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('user_profile_and_options') }}">
|
||
|
|
<!--[XF:user:profile_top]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[language][rule]" value="language" selected="{$criteria.language}"
|
||
|
|
label="{{ phrase('user_is_browsing_with_following_language:') }}">
|
||
|
|
|
||
|
|
<xf:select name="user_criteria[language][data][language_id]" value="{$criteria.language.language_id}">
|
||
|
|
<xf:foreach loop="$data.languageTree.getFlattened(0)" value="$treeEntry">
|
||
|
|
<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:optgroup label="{{ phrase('avatar:') }}">
|
||
|
|
<xf:option name="user_criteria[has_avatar][rule]" value="has_avatar" selected="{$criteria.has_avatar}"
|
||
|
|
label="{{ phrase('user_has_avatar') }}" />
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[no_avatar][rule]" value="no_avatar" selected="{$criteria.no_avatar}"
|
||
|
|
label="{{ phrase('user_has_no_avatar') }}" />
|
||
|
|
</xf:optgroup>
|
||
|
|
|
||
|
|
<xf:optgroup label="{{ phrase('high_resolution_avatar:') }}">
|
||
|
|
<xf:option name="user_criteria[has_highdpi_avatar][rule]" value="has_highdpi_avatar" selected="{$criteria.has_highdpi_avatar}"
|
||
|
|
label="{{ phrase('user_has_highdpi_avatar') }}" />
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[no_highdpi_avatar][rule]" value="no_highdpi_avatar" selected="{$criteria.no_highdpi_avatar}"
|
||
|
|
label="{{ phrase('user_has_no_highdpi_avatar') }}" />
|
||
|
|
</xf:optgroup>
|
||
|
|
|
||
|
|
<xf:optgroup label="{{ phrase('two_step_verification:') }}">
|
||
|
|
<xf:option name="user_criteria[with_tfa][rule]" value="with_tfa" selected="{$criteria.with_tfa}"
|
||
|
|
label="{{ phrase('user_has_enabled_two_step_verification') }}" />
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[without_tfa][rule]" value="without_tfa" selected="{$criteria.without_tfa}"
|
||
|
|
label="{{ phrase('user_has_not_enabled_two_step_verification') }}"/>
|
||
|
|
</xf:optgroup>
|
||
|
|
|
||
|
|
<xf:optgroup label="{{ phrase('activity_summary_email:') }}">
|
||
|
|
<xf:option name="user_criteria[activity_summary_enabled][rule]" value="activity_summary_enabled" selected="{$criteria.activity_summary_enabled}"
|
||
|
|
label="{{ phrase('user_has_activity_summary_emails_enabled') }}" />
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[activity_summary_disabled][rule]" value="activity_summary_disabled" selected="{$criteria.activity_summary_disabled}"
|
||
|
|
label="{{ phrase('user_has_activity_summary_emails_disabled') }}"/>
|
||
|
|
</xf:optgroup>
|
||
|
|
|
||
|
|
<!--[XF:user:profile_bottom]-->
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_profile]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('user_segmentation') }}">
|
||
|
|
<!--[XF:user:segmentation_top]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[user_id][rule]" value="user_id" selected="{$criteria.user_id}"
|
||
|
|
label="{{ phrase('user_id_matches_expression:') }}">
|
||
|
|
<xf:textbox
|
||
|
|
name="user_criteria[user_id][data][expression]"
|
||
|
|
value="{$criteria.user_id.expression}"
|
||
|
|
placeholder="2n+1"
|
||
|
|
/>
|
||
|
|
<xf:afterhint>{{ phrase('user_id_match_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:segmentation_bottom]-->
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:user:after_segmentation]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('specific_users') }}">
|
||
|
|
<!--[XF:user:specific_top]-->
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[username][rule]" value="username" selected="{$criteria.username}"
|
||
|
|
label="{{ phrase('username_is:') }}">
|
||
|
|
<xf:textbox name="user_criteria[username][data][names]" value="{$criteria.username.names}" ac="true" />
|
||
|
|
<xf:afterhint>{{ phrase('username_criteria_explain') }}</xf:afterhint>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[username_search][rule]" value="username_search" selected="{$criteria.username_search}"
|
||
|
|
label="{{ phrase('username_contains:') }}">
|
||
|
|
<xf:textbox name="user_criteria[username_search][data][needles]" value="{$criteria.username_search.needles}" />
|
||
|
|
<xf:afterhint>{{ phrase('username_search_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="user_criteria[email_search][rule]" value="email_search" selected="{$criteria.email_search}"
|
||
|
|
label="{{ phrase('email_address_contains:') }}">
|
||
|
|
<xf:textbox name="user_criteria[email_search][data][needles]" value="{$criteria.email_search.needles}" />
|
||
|
|
<xf:afterhint>{{ phrase('email_search_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<!--[XF:user:specific_bottom]-->
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<!--[XF:user:bottom]-->
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li class="{{ $active == 'user_field' ? 'is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaUserField') }}">
|
||
|
|
<xf:if contentcheck="true">
|
||
|
|
<xf:contentcheck>
|
||
|
|
<xf:foreach loop="$xf.app.em.getRepository('XF:UserField').getDisplayGroups()" key="$fieldGroup" value="$groupPhrase">
|
||
|
|
|
||
|
|
<xf:set var="$customFields" value="{$app.getCustomFields('users', $fieldGroup)}" />
|
||
|
|
<xf:if contentcheck="true">
|
||
|
|
<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{$groupPhrase}</span></h2>
|
||
|
|
<xf:contentcheck>
|
||
|
|
<xf:foreach loop="$customFields" key="$fieldId" value="$fieldDefinition">
|
||
|
|
<xf:set var="$fieldName" value="user_field_{$fieldId}" />
|
||
|
|
<xf:set var="$choices" value="{$fieldDefinition.field_choices}" />
|
||
|
|
<xf:checkboxrow label="{$fieldDefinition.title}">
|
||
|
|
<xf:option name="user_criteria[{$fieldName}][rule]" value="{$fieldName}" selected="{$criteria.{$fieldName}}"
|
||
|
|
label="{{ $choices ? phrase('criteria_userfield_choice_among') : phrase('criteria_userfield_contains_text:') }}">
|
||
|
|
<xf:dependent>
|
||
|
|
<xf:if is="!{$choices}">
|
||
|
|
<xf:textbox name="user_criteria[{$fieldName}][data][text]" value="{$criteria.{$fieldName}.text}" />
|
||
|
|
<xf:elseif is="{{ count($choices) }} > 6" />
|
||
|
|
<xf:select name="user_criteria[{$fieldName}][data][choices]" value="{$criteria.{$fieldName}.choices}" multiple="multiple" size="5">
|
||
|
|
<xf:options source="{$choices}" />
|
||
|
|
</xf:select>
|
||
|
|
<xf:else />
|
||
|
|
<xf:checkbox name="user_criteria[{$fieldName}][data][choices]" value="{$criteria.{$fieldName}.choices}" listclass="listColumns">
|
||
|
|
<xf:options source="{$choices}" />
|
||
|
|
</xf:checkbox>
|
||
|
|
</xf:if>
|
||
|
|
</xf:dependent>
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:contentcheck>
|
||
|
|
</xf:if>
|
||
|
|
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:contentcheck>
|
||
|
|
<xf:else />
|
||
|
|
{{ phrase('no_custom_fields_have_been_created_yet') }}
|
||
|
|
</xf:if>
|
||
|
|
</li>
|
||
|
|
</xf:set>
|
||
|
|
|
||
|
|
<xf:if is="$container">
|
||
|
|
<ul class="tabPanes">
|
||
|
|
{$panes|raw}
|
||
|
|
</ul>
|
||
|
|
<xf:else />
|
||
|
|
{$panes|raw}
|
||
|
|
</xf:if>
|
||
|
|
</xf:macro>
|
||
|
|
|
||
|
|
<xf:macro id="page_panes" arg-container="" arg-active="" arg-criteria="!" arg-data="!">
|
||
|
|
|
||
|
|
<xf:set var="$em" value="{$xf.app.em}" />
|
||
|
|
<xf:set var="$visitor" value="{$xf.visitor}" />
|
||
|
|
|
||
|
|
<xf:set var="$panes">
|
||
|
|
<li class="{{ $active == 'page' ? ' is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaPage') }}">
|
||
|
|
<!--[XF:page:after_from_search]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow>
|
||
|
|
<xf:option name="page_criteria[after][rule]" value="after" selected="{$criteria.after}"
|
||
|
|
label="{{ phrase('criteria_date_time_is_after:') }}">
|
||
|
|
|
||
|
|
<xf:dependent>
|
||
|
|
<div class="inputGroup">
|
||
|
|
<xf:dateinput name="page_criteria[after][data][ymd]" value="{$criteria.after.ymd}" />
|
||
|
|
<span class="inputGroup-text">
|
||
|
|
{{ phrase('criteria_time:') }}
|
||
|
|
</span>
|
||
|
|
<span class="inputGroup" dir="ltr">
|
||
|
|
<xf:select name="page_criteria[after][data][hh]" value="{$criteria.after.hh}" class="input--inline input--autoSize">
|
||
|
|
<xf:foreach loop="$data.hours" value="$hour">
|
||
|
|
<xf:option value="{$hour}" label="{$hour}" />
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
<span class="inputGroup-text">:</span>
|
||
|
|
<xf:select name="page_criteria[after][data][mm]" value="{$criteria.after.mm}" class="input--inline input--autoSize">
|
||
|
|
<xf:foreach loop="$data.minutes" value="$minute">
|
||
|
|
<xf:option value="{$minute}" label="{$minute}" />
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
</span>
|
||
|
|
</div>
|
||
|
|
<dfn class="inputChoices-explain inputChoices-explain--after">{{ phrase('criteria_leave_date_empty') }}</dfn>
|
||
|
|
</xf:dependent>
|
||
|
|
|
||
|
|
<xf:radio name="page_criteria[after][data][user_tz]" value="{{ $criteria.after.user_tz ? $criteria.after.user_tz : 0 }}">
|
||
|
|
<xf:option value="1" label="{{ phrase('criteria_in_visitor_timezone') }}" />
|
||
|
|
<xf:option value="0" label="{{ phrase('criteria_in_selected_timezone:') }}">
|
||
|
|
<xf:select name="page_criteria[after][data][timezone]" value="{{ $criteria.after.timezone ? $criteria.after.timezone : $visitor.timezone }}">
|
||
|
|
<xf:options source="{$data.timeZones}" />
|
||
|
|
</xf:select>
|
||
|
|
</xf:option>
|
||
|
|
</xf:radio>
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:page:after_time_after]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow>
|
||
|
|
<xf:option name="page_criteria[before][rule]" value="before" selected="{$criteria.before}"
|
||
|
|
label="{{ phrase('criteria_date_time_is_before:') }}">
|
||
|
|
|
||
|
|
<xf:dependent>
|
||
|
|
<div class="inputGroup">
|
||
|
|
<xf:dateinput name="page_criteria[before][data][ymd]" value="{$criteria.before.ymd}" />
|
||
|
|
<span class="inputGroup-text">
|
||
|
|
{{ phrase('criteria_time:') }}
|
||
|
|
</span>
|
||
|
|
<span class="inputGroup" dir="ltr">
|
||
|
|
<xf:select name="page_criteria[before][data][hh]" value="{$criteria.before.hh}" class="input--inline input--autoSize">
|
||
|
|
<xf:foreach loop="$data.hours" value="$hour">
|
||
|
|
<xf:option value="{$hour}" label="{$hour}" />
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
<span class="inputGroup-text">:</span>
|
||
|
|
<xf:select name="page_criteria[before][data][mm]" value="{$criteria.before.mm}" class="input--inline input--autoSize">
|
||
|
|
<xf:foreach loop="$data.minutes" value="$minute">
|
||
|
|
<xf:option value="{$minute}" label="{$minute}" />
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
</span>
|
||
|
|
</div>
|
||
|
|
<dfn class="inputChoices-explain inputChoices-explain--before">{{ phrase('criteria_leave_date_empty') }}</dfn>
|
||
|
|
</xf:dependent>
|
||
|
|
|
||
|
|
<xf:radio name="page_criteria[before][data][user_tz]" value="{{ $criteria.before.user_tz ? $criteria.before.user_tz : 0 }}">
|
||
|
|
<xf:option value="1" label="{{ phrase('criteria_in_visitor_timezone') }}" />
|
||
|
|
<xf:option value="0" label="{{ phrase('criteria_in_selected_timezone:') }}">
|
||
|
|
<xf:select name="page_criteria[before][data][timezone]" value="{{ $criteria.before.timezone ? $criteria.before.timezone : $visitor.timezone }}">
|
||
|
|
<xf:options source="{$data.timeZones}" />
|
||
|
|
</xf:select>
|
||
|
|
</xf:option>
|
||
|
|
</xf:radio>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:page:after_time_before]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('nodes') }}">
|
||
|
|
<xf:option name="page_criteria[nodes][rule]" value="nodes" selected="{$criteria.nodes}"
|
||
|
|
label="{{ phrase('page_is_within_nodes:') }}">
|
||
|
|
|
||
|
|
<xf:select name="page_criteria[nodes][data][node_ids]" multiple="true" value="{$criteria.nodes.node_ids}">
|
||
|
|
<xf:foreach loop="$data.nodes" value="$option">
|
||
|
|
<xf:option value="{$option.value}" label="{$option.label}" />
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
<xf:checkbox>
|
||
|
|
<xf:option name="page_criteria[nodes][data][node_only]" value="1" selected="{$criteria.nodes.node_only}"
|
||
|
|
label="{{ phrase('only_display_within_selected_nodes_no_children') }}" />
|
||
|
|
</xf:checkbox>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<hr class="formRowSep" />
|
||
|
|
|
||
|
|
<!--[XF:page:after_nodes]-->
|
||
|
|
|
||
|
|
<xf:checkboxrow label="{{ phrase('page_information') }}">
|
||
|
|
<xf:option name="page_criteria[style][rule]" value="style" selected="{$criteria.style}"
|
||
|
|
label="{{ phrase('user_is_browsing_with_following_style:') }}">
|
||
|
|
|
||
|
|
<xf:select name="page_criteria[style][data][style_id]" value="{$criteria.style.style_id}">
|
||
|
|
<xf:foreach loop="$data.styleTree.getFlattened(0)" value="$treeEntry">
|
||
|
|
<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
|
||
|
|
</xf:foreach>
|
||
|
|
</xf:select>
|
||
|
|
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="page_criteria[tab][rule]" value="tab" selected="{$criteria.tab}"
|
||
|
|
label="{{ phrase('selected_navigation_tab_id_is:') }}">
|
||
|
|
|
||
|
|
<xf:textbox name="page_criteria[tab][data][id]" value="{$criteria.tab.id}"dir="ltr" />
|
||
|
|
<xf:afterhint>{{ phrase('selected_tab_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="page_criteria[controller][rule]" value="controller" selected="{$criteria.controller}"
|
||
|
|
label="{{ phrase('controller_and_action_is:') }}">
|
||
|
|
|
||
|
|
<xf:macro id="helper_callback_fields::callback_fields"
|
||
|
|
arg-className="page_criteria[controller][data][name]"
|
||
|
|
arg-methodName="page_criteria[controller][data][action]"
|
||
|
|
arg-classValue="{$criteria.controller.name}"
|
||
|
|
arg-methodValue="{$criteria.controller.action}" />
|
||
|
|
<xf:afterhint>{{ phrase('controller_and_action_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="page_criteria[view][rule]" value="view" selected="{$criteria.view}"
|
||
|
|
label="{{ phrase('view_class_is:') }}">
|
||
|
|
|
||
|
|
<xf:textbox name="page_criteria[view][data][name]" value="{$criteria.view.name}" dir="ltr" />
|
||
|
|
<xf:afterhint>{{ phrase('view_class_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
|
||
|
|
<xf:option name="page_criteria[template][rule]" value="template" selected="{$criteria.template}"
|
||
|
|
label="{{ phrase('content_template_is:') }}">
|
||
|
|
|
||
|
|
<xf:textbox name="page_criteria[template][data][name]" value="{$criteria.template.name}" dir="ltr" />
|
||
|
|
<xf:afterhint>{{ phrase('content_template_criteria_explain') }}</xf:afterhint>
|
||
|
|
</xf:option>
|
||
|
|
</xf:checkboxrow>
|
||
|
|
|
||
|
|
<!--[XF:page:after_page_info]-->
|
||
|
|
</li>
|
||
|
|
</xf:set>
|
||
|
|
|
||
|
|
<xf:if is="$container">
|
||
|
|
<ul class="tabPanes">
|
||
|
|
{$panes|raw}
|
||
|
|
</ul>
|
||
|
|
<xf:else />
|
||
|
|
{$panes|raw}
|
||
|
|
</xf:if>
|
||
|
|
</xf:macro>
|