templates.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <script type="text/html" id="vcl-loop-frame">
  2. <div class="vc_row">
  3. <div class="vc_col-sm-12">
  4. <# if(vc.loop_field_not_hidden('post_type', loop)) { #>
  5. <label class="wpb_element_label"><?php esc_html_e('Post types', 'js_composer') ?></label>
  6. <div class="post-types-list">
  7. {{{ vc.loop_partial('checkboxes', 'post_type', loop) }}}
  8. </div>
  9. <span class="description clear"><?php esc_html_e('Select post types to populate posts from. Note: If no post type is selected, WordPress will use default "Post" value.', 'js_composer'); ?></span>
  10. <# } #>
  11. </div>
  12. </div>
  13. <div class="vc_row">
  14. <# if(vc.loop_field_not_hidden('size', loop)) { #>
  15. <div class="vc_col-sm-4">
  16. <label class="wpb_element_label"><?php esc_html_e('Post count', 'js_composer') ?></label>
  17. {{{ vc.loop_partial('text-input', 'size', loop) }}}
  18. <span class="description clear"><?php esc_html_e('How many teasers to show? Enter number or word "All".', 'js_composer'); ?></span>
  19. </div>
  20. <# } #>
  21. <# if(vc.loop_field_not_hidden('order_by', loop)) { #>
  22. <div class="vc_col-sm-4">
  23. <label class="wpb_element_label"><?php esc_html_e('Order by', 'js_composer') ?></label>
  24. {{{ vc.loop_partial('dropdown', 'order_by', loop) }}}
  25. <span class="description clear"><?php echo sprintf(__('Select how to sort retrieved posts. More at %s.', 'js_composer'), '<a href="https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters" target="_blank">
  26. WordPress codex page</a>'); ?></span>
  27. </div>
  28. <# } #>
  29. <# if(vc.loop_field_not_hidden('order', loop)) { #>
  30. <div class="vc_col-sm-4">
  31. <label class="wpb_element_label"><?php esc_html_e('Sort order', 'js_composer') ?></label>
  32. {{{ vc.loop_partial('dropdown', 'order', loop) }}}
  33. <span class="description clear"><?php esc_html_e('Designates the ascending or descending order.', 'js_composer'); ?></span>
  34. </div>
  35. <# } #>
  36. </div>
  37. <# if(vc.loop_field_not_hidden('categories', loop)) { #>
  38. <div class="vc_row">
  39. <div class="vc_col-sm-12">
  40. <div class="vc_suggest-field" data-block="suggestion">
  41. <label class="wpb_element_label"><?php esc_html_e('Categories', 'js_composer') ?></label>
  42. {{{ vc.loop_partial('autosuggest', 'categories', loop) }}}
  43. <span class="description clear"><?php esc_html_e('Filter output by posts categories, enter category names here.', 'js_composer'); ?></span>
  44. </div>
  45. </div>
  46. </div>
  47. <# } #>
  48. <# if(vc.loop_field_not_hidden('tags', loop)) { #>
  49. <div class="vc_row">
  50. <div class="vc_col-sm-12">
  51. <div class="vc_suggest-field" data-block="suggestion">
  52. <label class="wpb_element_label"><?php esc_html_e('Tags', 'js_composer') ?></label>
  53. {{{ vc.loop_partial('autosuggest', 'tags', loop) }}}
  54. <span class="description clear"><?php esc_html_e('Filter output by posts tags, enter tag names here.', 'js_composer'); ?></span>
  55. </div>
  56. </div>
  57. </div>
  58. <# } #>
  59. <# if(vc.loop_field_not_hidden('tax_query', loop)) { #>
  60. <div class="vc_row">
  61. <div class="vc_col-sm-12">
  62. <div class="vc_suggest-field" data-block="suggestion">
  63. <label class="wpb_element_label"><?php esc_html_e('Taxonomies', 'js_composer') ?></label>
  64. {{{ vc.loop_partial('autosuggest', 'tax_query', loop) }}}
  65. <span class="description clear"><?php esc_html_e('Filter output by custom taxonomies categories, enter category names here.', 'js_composer'); ?></span>
  66. </div>
  67. </div>
  68. </div>
  69. <# } #>
  70. <# if(vc.loop_field_not_hidden('by_id', loop)) { #>
  71. <div class="vc_row">
  72. <div class="vc_col-sm-12">
  73. <div class="vc_suggest-field" data-block="suggestion">
  74. <label class="wpb_element_label"><?php esc_html_e('Individual Posts/Pages/Custom Post Types', 'js_composer') ?></label>
  75. {{{ vc.loop_partial('autosuggest', 'by_id', loop) }}}
  76. <span class="description clear"><?php esc_html_e('Only entered posts/pages will be included in the output. Note: Works in conjunction with selected "Post types".', 'js_composer'); ?></span>
  77. </div>
  78. </div>
  79. </div>
  80. <# } #>
  81. <# if(vc.loop_field_not_hidden('authors', loop)) { #>
  82. <div class="vc_row">
  83. <div class="vc_col-sm-12">
  84. <div class="vc_suggest-field" data-block="suggestion">
  85. <label class="wpb_element_label"><?php esc_html_e('Author', 'js_composer') ?></label>
  86. {{{ vc.loop_partial('autosuggest', 'authors', loop) }}}
  87. <span class="description clear"><?php esc_html_e('Filter by author name.', 'js_composer'); ?></span>
  88. </div>
  89. </div>
  90. </div>
  91. <# } #>
  92. </script>
  93. <script type="text/html" id="_vcl-text-input">
  94. <#
  95. var is_locked = vc.is_locked(data),
  96. disabled = is_locked ? ' disabled="true"' : '',
  97. value = _.isObject(data) && !_.isUndefined(data.value) ? data.value : '';
  98. #>
  99. <input type="text" name="{{ name }}" value="{{ value }}" class="vc_{{ name }}_field" {{ disabled }}>
  100. </script>
  101. <script type="text/html" id="_vcl-dropdown">
  102. <#
  103. var is_locked = vc.is_locked(data),
  104. disabled = is_locked ? ' disabled="true"' : '';
  105. #>
  106. <select name="{{ name }}" class="vc_dropdown" {{ disabled }}>
  107. <option value=""></option>
  108. <# if(_.isObject(data) && _.isArray(data.options)) { #>
  109. <#
  110. _.each(data.options, function(opt) {
  111. var value, label;
  112. if(_.isArray(opt)) {
  113. value = opt[0];
  114. label = opt[1];
  115. } else {
  116. value = opt;
  117. label = opt;
  118. }#>
  119. <option value="{{ value }}"
  120. {{ data.value===value ?
  121. ' selected="true"' : '' }}>{{ label }}</option>
  122. <#
  123. });
  124. #>
  125. <# } #>
  126. </select>
  127. </script>
  128. <script type="text/html" id="_vcl-checkboxes">
  129. <#
  130. var is_locked = vc.is_locked(data);
  131. #>
  132. <input type="hidden" name="{{ name }}" value="{{ data.value }}" data-name="{{ name }}">
  133. <# if(_.isObject(data) && _.isArray(data.options)) {
  134. _.each(data.options, function(opt) {
  135. var value, label, params;
  136. if(_.isArray(opt)) {
  137. value = opt[0];
  138. label = opt[1];
  139. } else {
  140. value = opt;
  141. label = opt;
  142. }
  143. params = _.indexOf(data.value, value) >=0 ? ' checked="true"' : '';
  144. if(!_.isEmpty(params) && is_locked) params += ' disabled="true"';
  145. #>
  146. <label><input type="checkbox" data-input="{{ name }}" value="{{ value }}" {{ params }}/> {{ label }}</label>
  147. <#
  148. });
  149. } #>
  150. </script>
  151. <script type="text/html" id="_vcl-autosuggest">
  152. <# limit_param = _.isObject(settings) && !_.isUndefined(settings.limit) ? ' data-limit="' + settings.limit + '"' : ''; #>
  153. <input type="hidden" data-suggest-prefill="{{ name }}"
  154. value="{{ _.isObject(data) && _.isArray(data.options) ? window.encodeURIComponent(JSON.stringify(data.options)) : '' }}">
  155. <input type="hidden" name="{{ name }}"
  156. value="{{ _.isObject(data) && _.isArray(data.value) ? data.value.join(',') : '' }}"
  157. data-suggest-value="{{ name }}">
  158. <input type="text" name="{{ name }}_autosuggest" value=""
  159. placeholder="<?php esc_html_e('Click here and start typing...', 'js_composer'); ?>" class="vc_{{ name }}_field"
  160. data-suggest="{{ name }}" {{ limit_param }}/>
  161. </script>