function add_view_layout_template($view_settings, $view_layout_settings, $view_id)
{
    global $views_edit_help;
    wp_nonce_field('wpv-ct-inline-edit', 'wpv-ct-inline-edit');
    $templates = array();
    $valid_templates = array();
    $first_time = get_post_meta($view_id, '_wpv_first_time_load', true);
    if (isset($view_layout_settings['included_ct_ids'])) {
        $templates = explode(',', $view_layout_settings['included_ct_ids']);
        $valid_templates = $templates;
    }
    $template_list = '';
    if (count($templates) > 0) {
        $attached_templates = count($templates);
        for ($i = 0; $i < $attached_templates; $i++) {
            if (is_numeric($templates[$i])) {
                $template_post = get_post($templates[$i]);
                if (is_object($template_post)) {
                    $template_list .= wpv_list_view_ct_item($template_post, $templates[$i], $view_id);
                } else {
                    unset($valid_templates[$i]);
                    // remove Templates that might have been deleted or are missing
                }
            } else {
                unset($valid_templates[$i]);
                // remove Templates that might have been deleted or are missing
            }
        }
        if (count($templates) != count($valid_templates)) {
            $view_layout_settings['included_ct_ids'] = implode(',', $valid_templates);
            update_post_meta($view_id, '_wpv_layout_settings', $view_layout_settings);
        }
    }
    ?>
        <script type="application/javascript">
            var wpv_view_ct_msg1 = '<?php 
    echo esc_js(__('Content Template was successfully assigned to view.', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg2 = '<?php 
    echo esc_js(__('This Content Template already assigned to this view.', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg3 = '<?php 
    echo esc_js(__('Content Template was successfully unassigned from view.', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg4 = '<?php 
    echo esc_js(__('Content Template was successfully updated.', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg5 = '<?php 
    echo esc_js(__('Views', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg6 = '<?php 
    echo esc_js(__('No Content Templates assigned to this view', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg7 = '<?php 
    echo esc_js(__('There are no Content Templates for this View. You can add a Content Template using the Content Template button in the Layout editor tool bar.', 'wpv-views'));
    ?>
';
            var wpv_view_ct_msg8 = '<?php 
    echo esc_js(__('A Content Template with that name already exists. Please use another name.', 'wpv-views'));
    ?>
';
        </script>
		<div id="attached-content-templates" class="wpv-settings-templates wpv-setting-container wpv-setting-container-horizontal wpv-settings-layout-markup"<?php 
    echo empty($template_list) ? ' style="display:none;"' : '';
    ?>
>
            <div class="wpv-settings-header">
				<h3><?php 
    _e('Templates for this View', 'wpv-views');
    ?>
					<i class="icon-question-sign js-display-tooltip" data-header="<?php 
    echo $views_edit_help['templates_for_view']['title'];
    ?>
" data-content="<?php 
    echo $views_edit_help['templates_for_view']['content'];
    ?>
"></i>
				</h3>
			</div>
			<?php 
    if ($first_time == 'on') {
        $data = wpv_get_view_ct_slider_introduction_data();
        wpv_toolset_help_box($data);
    }
    ?>

			<div class="js-wpv-content-template-view-list wpv-content-template-view-list wpv-setting">
			    <ul>
			        <?php 
    echo $template_list;
    ?>
                </ul>
                <div class="js-wpv-content-template-section-errors"></div>
			</div>
		</div>
<?php 
}
function add_view_layout_template($view_settings, $view_layout_settings, $view_id, $user_id)
{
    $dismissed_pointers = get_user_meta($user_id, '_wpv_dismissed_pointers', true);
    if (!is_array($dismissed_pointers) || empty($dismissed_pointers)) {
        $dismissed_pointers = array();
    }
    $dismissed_dialogs = get_user_meta($user_id, '_wpv_dismissed_dialogs', true);
    if (!is_array($dismissed_dialogs) || empty($dismissed_dialogs)) {
        $dismissed_dialogs = array();
    }
    wp_nonce_field('wpv-ct-inline-edit', 'wpv-ct-inline-edit');
    wp_nonce_field('wpv_inline_content_template', 'wpv_inline_content_template');
    $templates = array();
    $valid_templates = array();
    $first_time = get_post_meta($view_id, '_wpv_first_time_load', true);
    if (isset($view_layout_settings['included_ct_ids'])) {
        $templates = explode(',', $view_layout_settings['included_ct_ids']);
        $valid_templates = $templates;
    }
    if (count($templates) > 0) {
        $attached_templates = count($templates);
        foreach ($templates as $key => $template_id) {
            if (is_numeric($template_id)) {
                $template_post = get_post($template_id);
                if (is_object($template_post) && $template_post->post_status == 'publish' && $template_post->post_type == 'view-template') {
                } else {
                    unset($valid_templates[$key]);
                    // remove Templates that might have been deleted or are missing
                }
            } else {
                unset($valid_templates[$key]);
                // remove Templates that might have been deleted or are missing
            }
        }
        if (count($templates) != count($valid_templates)) {
            $view_layout_settings['included_ct_ids'] = implode(',', $valid_templates);
            update_post_meta($view_id, '_wpv_layout_settings', $view_layout_settings);
            do_action('wpv_action_wpv_save_item', $view_id);
        }
    }
    $section_help_pointer = WPV_Admin_Messages::edit_section_help_pointer('templates_for_view');
    ?>
	<div id="attached-content-templates" class="wpv-settings-templates wpv-setting-container wpv-setting-container-horizontal wpv-settings-layout-markup js-wpv-settings-inline-templates"<?php 
    echo count($valid_templates) < 1 ? ' style="display:none;"' : '';
    ?>
>
		<div class="wpv-settings-header">
			<h3><?php 
    _e('Templates for this View', 'wpv-views');
    ?>
				<i class="icon-question-sign js-display-tooltip" 
					data-header="<?php 
    echo esc_attr($section_help_pointer['title']);
    ?>
" 
					data-content="<?php 
    echo esc_attr($section_help_pointer['content']);
    ?>
">
				</i>
			</h3>
		</div>
		<?php 
    if ($first_time == 'on') {
        $purpose = $view_settings['view_purpose'];
        if ($purpose == 'slider') {
            wpv_get_view_ct_slider_introduction_data();
        }
    }
    ?>
		<div class="js-wpv-content-template-view-list wpv-content-template-view-list wpv-setting">
			<ul class="wpv-inline-content-template-listing js-wpv-inline-content-template-listing">
				<?php 
    if (count($valid_templates) > 0) {
        $opened = false;
        if (count($valid_templates) == 1) {
            $opened = true;
        }
        foreach ($valid_templates as $valid_ct_id) {
            // This is cached so it is OK to do that again
            $valid_ct_post = get_post($valid_ct_id);
            wpv_list_view_ct_item($valid_ct_post, $valid_ct_id, $view_id, $opened);
        }
    }
    ?>
			</ul>
			<div class="js-wpv-message-container js-wpv-content-template-section-errors"></div>
		</div>		
	</div>
	
	<!-- @todo: move this to the view-editor-section-hidden action -->
	<div id="js-wpv-inline-content-templates-dialogs" class="popup-window-container">
	
		<!-- Colorbox dialogs -->
		
		<?php 
    $dismissed_classname = '';
    if (isset($dismissed_dialogs['remove-content-template-from-view'])) {
        $dismissed_classname = ' js-wpv-dialog-dismissed';
    }
    ?>
		
		<div class="wpv-dialog js-wpv-dialog-remove-content-template-from-view<?php 
    echo $dismissed_classname;
    ?>
">
            <div class="wpv-dialog-header">
                <h2><?php 
    _e('Remove the Content Template from the view', 'wpv-views');
    ?>
</h2>
                <i class="icon-remove js-dialog-close"></i>
            </div>
            <div class="wpv-dialog-content">
                <p>
                    <?php 
    _e("This will remove the link between your view and the Content Template.  The Content Template will not be deleted.");
    ?>
                </p>
				<p>
					<label for="wpv-dettach-inline-content-template-dismiss">
						<input type="checkbox" id="wpv-dettach-inline-content-template-dismiss" class="js-wpv-dettach-inline-content-template-dismiss" />
						<?php 
    _e("Don't show this message again", 'wpv-views');
    ?>
					</label>
            	</p>
            </div>
            <div class="wpv-dialog-footer">
                <button class="button js-dialog-close"><?php 
    _e('Cancel', 'wpv-views');
    ?>
</button>
                <button class="button button-primary js-wpv-remove-template-from-view"><?php 
    _e('Remove', 'wpv-views');
    ?>
</button>
            </div>
		</div>
		
		<!-- Pointers -->
		
		<?php 
    $dismissed_classname = '';
    if (isset($dismissed_pointers['inserted-inline-content-template'])) {
        $dismissed_classname = ' js-wpv-pointer-dismissed';
    }
    ?>
		<div class="js-wpv-inserted-inline-content-template-pointer<?php 
    echo $dismissed_classname;
    ?>
">
			<h3><?php 
    _e('Content Template inserted in the layout', 'wpv-views');
    ?>
</h3>
			<p>
				<?php 
    _e('A Content Template works like a subroutine.', 'wpv-views');
    echo WPV_MESSAGE_SPACE_CHAR;
    _e('You can edit its content in one place and use it in several places in the View.', 'wpv-views');
    ?>
			</p>
			<p>
				<label>
					<input type="checkbox" class="js-wpv-dismiss-pointer" data-pointer="inserted-inline-content-template" id="wpv-dismiss-inserted-inline-content-template-pointer" />
					<?php 
    _e('Don\'t show this again', 'wpv-views');
    ?>
				</label>
			</p>
		</div>
	
	
	</div><!-- end of .popup-window-container -->
<?php 
    delete_post_meta($view_id, '_wpv_first_time_load');
}