Cherry Projects - Version 1.1.0

Version Description

  • Updated editing interface types of projects
  • Fixed archive template
  • Fixed bugs
  • Added new filters
  • Add new macros "termattachments" for projects_terms shortcode
Download this release

Release Info

Developer TemplateMonster 2002
Plugin Icon 128x128 Cherry Projects
Version 1.1.0
Comparing to
See all releases

Code changes from version 1.0.0 to 1.1.0

Files changed (140) hide show
  1. admin/assets/css/admin-style.css +10 -8
  2. admin/assets/scss/admin-style.scss +9 -4
  3. admin/includes/class-projects-meta-boxes.php +294 -4
  4. cherry-framework/cherry-core.php +6 -5
  5. cherry-framework/config.json +53 -68
  6. cherry-framework/modules/cherry-breadcrumbs/cherry-breadcrumbs.php +8 -13
  7. cherry-framework/modules/cherry-creator/cherry-creator.php +0 -122
  8. cherry-framework/modules/cherry-creator/inc/cherry-creator-term.php +0 -126
  9. cherry-framework/modules/cherry-customizer/cherry-customizer.php +58 -15
  10. cherry-framework/modules/cherry-dynamic-css/assets/cherry-css-collector.js +24 -0
  11. cherry-framework/modules/cherry-dynamic-css/assets/min/cherry-css-collector.min.js +1 -0
  12. cherry-framework/modules/cherry-dynamic-css/cherry-dynamic-css.php +55 -29
  13. cherry-framework/modules/cherry-dynamic-css/inc/class-cherry-dynamic-css-collector.php +281 -0
  14. cherry-framework/modules/cherry-dynamic-css/inc/class-cherry-dynamic-css-utilities.php +1 -1
  15. cherry-framework/modules/cherry-handler/assets/css/cherry-handler-styles.min.css +1 -0
  16. cherry-framework/modules/cherry-handler/assets/js/cherry-handler.js +286 -0
  17. cherry-framework/modules/cherry-handler/assets/js/min/cherry-handler.min.js +1 -0
  18. cherry-framework/modules/cherry-handler/assets/scss/cherry-handler-styles.scss +65 -0
  19. cherry-framework/modules/cherry-handler/cherry-handler.php +233 -0
  20. cherry-framework/modules/cherry-interface-builder/cherry-interface-builder.php +471 -0
  21. cherry-framework/modules/cherry-interface-builder/inc/assets/_use-in-js.scss +17 -0
  22. cherry-framework/modules/cherry-interface-builder/inc/assets/cherry-interface-builder.js +189 -0
  23. cherry-framework/modules/cherry-interface-builder/inc/assets/cherry-interface-builder.scss +463 -0
  24. cherry-framework/modules/cherry-interface-builder/inc/assets/min/cherry-interface-builder.min.css +1 -0
  25. cherry-framework/modules/cherry-interface-builder/inc/assets/min/cherry-interface-builder.min.js +1 -0
  26. cherry-framework/modules/cherry-interface-builder/inc/views/component-accordion.php +30 -0
  27. cherry-framework/modules/cherry-interface-builder/inc/views/component-repeater.php +30 -0
  28. cherry-framework/modules/cherry-interface-builder/inc/views/component-tab-horizontal.php +35 -0
  29. cherry-framework/modules/cherry-interface-builder/inc/views/component-tab-vertical.php +35 -0
  30. cherry-framework/modules/cherry-interface-builder/inc/views/component-toggle.php +30 -0
  31. cherry-framework/modules/cherry-interface-builder/inc/views/control.php +34 -0
  32. cherry-framework/modules/cherry-interface-builder/inc/views/form.php +24 -0
  33. cherry-framework/modules/cherry-interface-builder/inc/views/html.php +24 -0
  34. cherry-framework/modules/cherry-interface-builder/inc/views/section.php +36 -0
  35. cherry-framework/modules/cherry-interface-builder/inc/views/settings-children-title.php +18 -0
  36. cherry-framework/modules/cherry-interface-builder/inc/views/settings.php +32 -0
  37. cherry-framework/modules/cherry-interface-builder/inc/views/tab-children-title.php +20 -0
  38. cherry-framework/modules/cherry-interface-builder/inc/views/toggle-children-title.php +22 -0
  39. cherry-framework/modules/cherry-js-core/assets/js/cherry-js-core.js +1 -56
  40. cherry-framework/modules/cherry-js-core/assets/js/min/cherry-js-core.min.js +1 -1
  41. cherry-framework/modules/cherry-page-builder/assets/css/min/page-settings.min.css +0 -18
  42. cherry-framework/modules/cherry-page-builder/assets/js/min/page-settings.min.js +0 -1
  43. cherry-framework/modules/cherry-page-builder/assets/js/page-settings.js +0 -92
  44. cherry-framework/modules/cherry-page-builder/assets/scss/page-setting.scss +0 -80
  45. cherry-framework/modules/cherry-page-builder/cherry-page-builder.php +0 -406
  46. cherry-framework/modules/cherry-page-builder/views/page.php +0 -46
  47. cherry-framework/modules/cherry-page-builder/views/section.php +0 -10
  48. cherry-framework/modules/cherry-plugin-updater/cherry-plugin-updater.php +0 -143
  49. cherry-framework/modules/cherry-plugin-updater/inc/cherry-base-updater.php +0 -156
  50. cherry-framework/modules/cherry-post-formats-api/cherry-post-formats-api.php +23 -6
  51. cherry-framework/modules/cherry-post-formats-api/inc/class-cherry-facebook-embed.php +1 -1
  52. cherry-framework/modules/cherry-post-meta/cherry-post-meta.php +239 -146
  53. cherry-framework/modules/cherry-post-meta/views/meta.php +0 -20
  54. cherry-framework/modules/cherry-post-types/cherry-post-types.php +0 -155
  55. cherry-framework/modules/cherry-post-types/inc/cherry-post-type.php +0 -112
  56. cherry-framework/modules/cherry-taxonomies/cherry-taxonomies.php +0 -132
  57. cherry-framework/modules/cherry-taxonomies/inc/cherry-taxonomy.php +0 -210
  58. cherry-framework/modules/cherry-template-manager/cherry-template-manager.php +129 -0
  59. cherry-framework/modules/cherry-template-manager/inc/cherry-template-loader.php +223 -0
  60. cherry-framework/modules/cherry-template-manager/inc/cherry-template-parser.php +219 -0
  61. cherry-framework/modules/cherry-term-meta/cherry-term-meta.php +19 -9
  62. cherry-framework/modules/cherry-theme-updater/cherry-theme-updater.php +0 -141
  63. cherry-framework/modules/cherry-theme-updater/inc/cherry-base-updater.php +0 -156
  64. cherry-framework/modules/cherry-toolkit/cherry-toolkit.php +19 -8
  65. cherry-framework/modules/cherry-ui-elements/cherry-ui-elements.php +7 -5
  66. cherry-framework/modules/cherry-ui-elements/i-ui.php +1 -1
  67. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/assets/min/ui-button.min.css +1 -0
  68. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/assets/ui-button.scss +52 -0
  69. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/assets/ui-kit/_mixins.scss +182 -0
  70. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/assets/ui-kit/_variables.scss +25 -0
  71. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/ui-button.php +87 -0
  72. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-button/view/button-view.php +31 -0
  73. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-checkbox/assets/min/ui-checkbox.min.css +1 -56
  74. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-checkbox/assets/min/ui-checkbox.min.js +1 -1
  75. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-checkbox/assets/ui-checkbox.js +40 -57
  76. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-checkbox/assets/ui-checkbox.scss +14 -8
  77. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-checkbox/ui-checkbox.php +8 -7
  78. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-colorpicker/assets/min/ui-colorpicker.min.css +1 -41
  79. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-colorpicker/assets/min/ui-colorpicker.min.js +1 -1
  80. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-colorpicker/assets/ui-colorpicker.js +3 -2
  81. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-colorpicker/assets/ui-colorpicker.scss +2 -2
  82. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-colorpicker/ui-colorpicker.php +6 -6
  83. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-iconpicker/assets/min/ui-iconpicker.min.css +1 -326
  84. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-iconpicker/assets/min/ui-iconpicker.min.js +1 -1
  85. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-iconpicker/assets/ui-iconpicker.js +4 -2
  86. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-iconpicker/assets/ui-iconpicker.scss +6 -8
  87. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-iconpicker/ui-iconpicker.php +5 -3
  88. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-media/assets/min/ui-media.min.js +156 -1
  89. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-media/assets/ui-media.js +98 -101
  90. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-media/ui-media.php +99 -88
  91. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-radio/assets/min/ui-radio.min.css +1 -67
  92. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-radio/assets/min/ui-radio.min.js +1 -1
  93. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-radio/assets/ui-radio.js +35 -40
  94. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-radio/assets/ui-radio.scss +24 -13
  95. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-radio/ui-radio.php +14 -14
  96. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-repeater/assets/min/ui-repeater.min.js +1 -1
  97. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-repeater/assets/ui-repeater.js +4 -2
  98. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-repeater/ui-repeater.php +12 -13
  99. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/assets/min/select2.min.css +7 -7
  100. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/assets/min/ui-select.min.css +1 -1
  101. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/assets/min/ui-select.min.js +1 -1
  102. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/assets/ui-select.js +41 -9
  103. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/assets/ui-select.scss +18 -5
  104. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-select/ui-select.php +26 -15
  105. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-slider/assets/min/ui-slider.min.css +1 -1
  106. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-slider/assets/min/ui-slider.min.js +1 -1
  107. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-slider/assets/ui-slider.js +3 -3
  108. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-slider/assets/ui-slider.scss +11 -8
  109. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-slider/ui-slider.php +6 -6
  110. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-stepper/ui-stepper.php +6 -6
  111. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-switcher/assets/min/ui-switcher.min.css +1 -80
  112. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-switcher/assets/min/ui-switcher.min.js +1 -1
  113. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-switcher/assets/ui-switcher.js +46 -36
  114. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-switcher/assets/ui-switcher.scss +30 -24
  115. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-switcher/ui-switcher.php +12 -10
  116. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-text/ui-text.php +6 -4
  117. cherry-framework/modules/cherry-ui-elements/inc/ui-elements/ui-textarea/ui-textarea.php +6 -6
  118. cherry-framework/modules/cherry-ui-elements/ui-element.php +2 -2
  119. cherry-framework/modules/cherry-utility/cherry-utility.php +4 -3
  120. cherry-framework/modules/cherry-utility/inc/cherry-attributes-utilit.php +26 -28
  121. cherry-framework/modules/cherry-utility/inc/cherry-media-utilit.php +42 -3
  122. cherry-framework/modules/cherry-utility/inc/cherry-meta-data-utilit.php +13 -7
  123. cherry-framework/modules/cherry-utility/inc/cherry-satellite-utilit.php +9 -7
  124. cherry-framework/modules/cherry-widget-factory/cherry-widget-factory.php +4 -3
  125. cherry-framework/modules/cherry-widget-factory/inc/class-cherry-abstract-widget.php +25 -1
  126. cherry-framework/setup.php +1 -1
  127. cherry-projects.php +6 -3
  128. public/assets/css/styles.css +21 -0
  129. public/assets/js/cherry-projects-plugin.js +21 -2
  130. public/assets/js/cherry-projects-scripts.js +43 -1
  131. public/assets/scss/_projects-terms.scss +13 -1
  132. public/includes/class-cherry-projects-template-callbacks.php +33 -4
  133. public/includes/class-projects-data.php +43 -18
  134. public/includes/class-projects-shortcode.php +1 -1
  135. public/includes/class-projects-term-data.php +23 -11
  136. readme.txt +11 -3
  137. templates/shortcodes/projects-terms/terms-cascading-grid-default.tmpl +11 -0
  138. templates/shortcodes/projects-terms/terms-grid-default.tmpl +2 -1
  139. templates/shortcodes/projects-terms/terms-list-default.tmpl +1 -0
  140. templates/shortcodes/projects-terms/terms-masonry-default.tmpl +2 -1
admin/assets/css/admin-style.css CHANGED
@@ -184,6 +184,9 @@
184
  50% {
185
  -webkit-transform: scale(1);
186
  transform: scale(1); } }
 
 
 
187
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box {
188
  display: -webkit-box;
189
  display: -webkit-flex;
@@ -206,16 +209,15 @@
206
  margin-left: 1%; }
207
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .skill_label-wrap {
208
  -webkit-box-flex: 0;
209
- -webkit-flex: 0 1 49%;
210
- -ms-flex: 0 1 49%;
211
- flex: 0 1 49%;
212
- margin-right: 1%; }
213
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .skill_value-wrap {
214
  -webkit-box-flex: 0;
215
- -webkit-flex: 0 1 49%;
216
- -ms-flex: 0 1 49%;
217
- flex: 0 1 49%;
218
- margin-left: 1%; }
219
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .video_type-wrap {
220
  -webkit-box-flex: 0;
221
  -webkit-flex: 0 1 100%;
184
  50% {
185
  -webkit-transform: scale(1);
186
  transform: scale(1); } }
187
+ .cherry-project-tabs-wrapper.cherry-component {
188
+ padding: 5px 0; }
189
+
190
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box {
191
  display: -webkit-box;
192
  display: -webkit-flex;
209
  margin-left: 1%; }
210
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .skill_label-wrap {
211
  -webkit-box-flex: 0;
212
+ -webkit-flex: 0 1 100%;
213
+ -ms-flex: 0 1 100%;
214
+ flex: 0 1 100%;
215
+ margin-bottom: 20px; }
216
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .skill_value-wrap {
217
  -webkit-box-flex: 0;
218
+ -webkit-flex: 0 1 100%;
219
+ -ms-flex: 0 1 100%;
220
+ flex: 0 1 100%; }
 
221
  .cherry-ui-repeater-container .cheryr-ui-repeater-content-box .video_type-wrap {
222
  -webkit-box-flex: 0;
223
  -webkit-flex: 0 1 100%;
admin/assets/scss/admin-style.scss CHANGED
@@ -225,6 +225,12 @@
225
  }
226
  }
227
 
 
 
 
 
 
 
228
  .cherry-ui-repeater-container{
229
  .cheryr-ui-repeater-content-box{
230
  display: flex;
@@ -238,12 +244,11 @@
238
  margin-left: 1%;
239
  }
240
  .skill_label-wrap{
241
- flex: 0 1 49%;
242
- margin-right: 1%;
243
  }
244
  .skill_value-wrap{
245
- flex: 0 1 49%;
246
- margin-left: 1%;
247
  }
248
  .video_type-wrap{
249
  flex: 0 1 100%;
225
  }
226
  }
227
 
228
+ .cherry-project-tabs-wrapper{
229
+ &.cherry-component{
230
+ padding: 5px 0;
231
+ }
232
+ }
233
+
234
  .cherry-ui-repeater-container{
235
  .cheryr-ui-repeater-content-box{
236
  display: flex;
244
  margin-left: 1%;
245
  }
246
  .skill_label-wrap{
247
+ flex: 0 1 100%;
248
+ margin-bottom: 20px;
249
  }
250
  .skill_value-wrap{
251
+ flex: 0 1 100%;
 
252
  }
253
  .video_type-wrap{
254
  flex: 0 1 100%;
admin/includes/class-projects-meta-boxes.php CHANGED
@@ -39,12 +39,302 @@ class Cherry_Projects_Meta_Boxes {
39
  /**
40
  * Run initialization of modules.
41
  *
42
- * @since 1.0.0
43
  */
44
  public function init() {
45
  $prefix = CHERRY_PROJECTS_POSTMETA;
46
 
47
- cherry_projects()->get_core()->init_module( 'cherry-post-meta', array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  'id' => 'projects-settings',
49
  'title' => esc_html__( 'Projects settings', '__tm' ),
50
  'page' => array( CHERRY_PROJECTS_NAME ),
@@ -304,7 +594,7 @@ class Cherry_Projects_Meta_Boxes {
304
  ),
305
  ),
306
  ),
307
- ) );
308
  }
309
 
310
  /**
@@ -324,4 +614,4 @@ class Cherry_Projects_Meta_Boxes {
324
  }
325
  }
326
 
327
- Cherry_Projects_Meta_Boxes::get_instance();
39
  /**
40
  * Run initialization of modules.
41
  *
42
+ * @since 1.1.0
43
  */
44
  public function init() {
45
  $prefix = CHERRY_PROJECTS_POSTMETA;
46
 
47
+ cherry_projects()->get_core()->init_module( 'cherry-post-meta',
48
+ array(
49
+ 'id' => 'projects-settings',
50
+ 'title' => esc_html__( 'Popup settings', 'cherry-projects' ),
51
+ 'page' => array( CHERRY_PROJECTS_NAME ),
52
+ 'context' => 'normal',
53
+ 'priority' => 'high',
54
+ 'callback_args' => false,
55
+ 'fields' => array(
56
+ 'project_meta_data' => array(
57
+ 'type' => 'settings',
58
+ 'element' => 'settings',
59
+ ),
60
+ 'tab_vertical' => array(
61
+ 'type' => 'component-tab-horizontal',
62
+ 'element' => 'component',
63
+ 'parent' => 'project_meta_data',
64
+ 'class' => 'cherry-project-tabs-wrapper',
65
+ ),
66
+ 'general_tab' => array(
67
+ 'element' => 'settings',
68
+ 'parent' => 'tab_vertical',
69
+ 'title' => esc_html__( 'General', 'cherry-projects' ),
70
+ 'description' => esc_html__( 'General project settings', 'cherry-projects' ),
71
+ ),
72
+ 'image_format_tab' => array(
73
+ 'element' => 'settings',
74
+ 'parent' => 'tab_vertical',
75
+ 'title' => esc_html__( 'Image Format', 'cherry-projects' ),
76
+ 'description' => esc_html__( 'Project options for Image format', 'cherry-projects' ),
77
+ ),
78
+ 'gallery_format_tab' => array(
79
+ 'element' => 'settings',
80
+ 'parent' => 'tab_vertical',
81
+ 'title' => esc_html__( 'Gallery Format', 'cherry-projects' ),
82
+ 'description' => esc_html__( 'Project options for Gallery format', 'cherry-projects' ),
83
+ ),
84
+ 'audio_format_tab' => array(
85
+ 'element' => 'settings',
86
+ 'parent' => 'tab_vertical',
87
+ 'title' => esc_html__( 'Audio Format', 'cherry-projects' ),
88
+ 'description' => esc_html__( 'Project options for Audio format', 'cherry-projects' ),
89
+ ),
90
+ 'video_format_tab' => array(
91
+ 'element' => 'settings',
92
+ 'parent' => 'tab_vertical',
93
+ 'title' => esc_html__( 'Video Format', 'cherry-projects' ),
94
+ 'description' => esc_html__( 'Project options for Video format', 'cherry-projects' ),
95
+ ),
96
+ $prefix . '_external_link' => array(
97
+ 'type' => 'text',
98
+ 'parent' => 'general_tab',
99
+ 'title' => esc_html__( 'External link', 'cherry-projects' ),
100
+ 'description' => esc_html__( 'Input external link address', 'cherry-projects' ),
101
+ 'value' => '#',
102
+ ),
103
+ $prefix . '_external_link_text' => array(
104
+ 'type' => 'text',
105
+ 'parent' => 'general_tab',
106
+ 'title' => esc_html__( 'External link text', 'cherry-projects' ),
107
+ 'description' => esc_html__( 'Text for external link', 'cherry-projects' ),
108
+ 'value' => '',
109
+ ),
110
+ $prefix . '_external_link_target' => array(
111
+ 'type' => 'radio',
112
+ 'parent' => 'general_tab',
113
+ 'title' => esc_html__( 'External link target', 'cherry-projects' ),
114
+ 'description' => esc_html__( 'Target for external link', 'cherry-projects' ),
115
+ 'value' => 'blank',
116
+ 'display-input' => true,
117
+ 'options' => array(
118
+ 'blank' => array(
119
+ 'label' => esc_html__( 'Blank', 'cherry-projects' ),
120
+ ),
121
+ 'self' => array(
122
+ 'label' => esc_html__( 'Self', 'cherry-projects' ),
123
+ ),
124
+ ),
125
+ ),
126
+ $prefix . '_details' => array(
127
+ 'type' => 'repeater',
128
+ 'parent' => 'general_tab',
129
+ 'title' => esc_html__( 'Projects Details', 'cherry-projects' ),
130
+ 'description' => esc_html__( 'Here you can create a list of project details', 'cherry-projects' ),
131
+ 'add_label' => esc_html__( 'Add Projects Details', 'cherry-projects' ),
132
+ 'title_field' => 'detail_label',
133
+ 'fields' => array(
134
+ 'detail_label' => array(
135
+ 'type' => 'text',
136
+ 'id' => 'detail_label',
137
+ 'name' => 'detail_label',
138
+ 'placeholder' => esc_html__( 'Enter label', 'cherry-projects' ),
139
+ 'label' => esc_html__( 'Detail Label', 'cherry-projects' ),
140
+ ),
141
+ 'detail_info' => array(
142
+ 'type' => 'text',
143
+ 'id' => 'detail_info',
144
+ 'name' => 'detail_info',
145
+ 'placeholder' => esc_html__( 'Enter info', 'cherry-projects' ),
146
+ 'label' => esc_html__( 'Detail Info', 'cherry-projects' ),
147
+ ),
148
+ ),
149
+ ),
150
+ $prefix . '_skills' => array(
151
+ 'type' => 'repeater',
152
+ 'parent' => 'general_tab',
153
+ 'title' => esc_html__( 'Projects skills', 'cherry-projects' ),
154
+ 'description' => esc_html__( 'Here you can create a list of participants in the creation of the project', 'cherry-projects' ),
155
+ 'add_label' => esc_html__( 'Add Skill', 'cherry-projects' ),
156
+ 'title_field' => 'skill_label',
157
+ 'fields' => array(
158
+ 'skill_label' => array(
159
+ 'type' => 'text',
160
+ 'id' => 'skill_label',
161
+ 'name' => 'skill_label',
162
+ 'placeholder' => esc_html__( 'Skill label', 'cherry-projects' ),
163
+ 'label' => esc_html__( 'Skill Label', 'cherry-projects' ),
164
+ ),
165
+ 'skill_value' => array(
166
+ 'type' => 'slider',
167
+ 'id' => 'skill_value',
168
+ 'name' => 'skill_value',
169
+ 'label' => esc_html__( 'Skill Value', 'cherry-projects' ),
170
+ ),
171
+ ),
172
+ ),
173
+ $prefix . '_image_attachments_ids' => array(
174
+ 'type' => 'media',
175
+ 'parent' => 'image_format_tab',
176
+ 'title' => esc_html__( 'Additional images', 'cherry-projects' ),
177
+ 'description' => esc_html__( 'Select attachments images', 'cherry-projects' ),
178
+ 'display_image' => true,
179
+ 'multi_upload' => true,
180
+ 'upload_button_text' => __( 'Add images', 'cherry-projects' ),
181
+ 'library_type' => 'image',
182
+ ),
183
+ $prefix . '_listing_layout' => array(
184
+ 'type' => 'radio',
185
+ 'parent' => 'image_format_tab',
186
+ 'title' => esc_html__( 'Image listing layout', 'cherry-projects' ),
187
+ 'description' => esc_html__( 'Select listing layout', 'cherry-projects' ),
188
+ 'value' => 'grid-layout',
189
+ 'class' => '',
190
+ 'display_input' => false,
191
+ 'options' => array(
192
+ 'grid-layout' => array(
193
+ 'label' => esc_html__( 'Grid', 'cherry-projects' ),
194
+ 'img_src' => CHERRY_PROJECTS_URI . 'public/assets/images/svg/list-layout-grid.svg',
195
+ 'slave' => 'projects-listing-layout-grid-layout',
196
+ ),
197
+ 'masonry-layout' => array(
198
+ 'label' => esc_html__( 'Masonry', 'cherry-projects' ),
199
+ 'img_src' => CHERRY_PROJECTS_URI . 'public/assets/images/svg/list-layout-masonry.svg',
200
+ 'slave' => 'projects-listing-layout-masonry-layout',
201
+ ),
202
+ ),
203
+ ),
204
+ $prefix . '_column_number' => array(
205
+ 'type' => 'slider',
206
+ 'parent' => 'image_format_tab',
207
+ 'title' => esc_html__( 'Column number', 'cherry-projects' ),
208
+ 'description' => esc_html__( 'Select number of columns for masonry and grid projects layouts.', 'cherry-projects' ),
209
+ 'max_value' => 10,
210
+ 'min_value' => 1,
211
+ 'value' => 3,
212
+ ),
213
+ $prefix . '_image_margin' => array(
214
+ 'type' => 'slider',
215
+ 'parent' => 'image_format_tab',
216
+ 'title' => esc_html__( 'Image margin', 'cherry-projects' ),
217
+ 'description' => esc_html__( 'Select projects item margin (outer indent) value.(px)', 'cherry-projects' ),
218
+ 'max_value' => 30,
219
+ 'min_value' => 0,
220
+ 'value' => 10,
221
+ ),
222
+ $prefix . '_slider_attachments_ids' => array(
223
+ 'type' => 'media',
224
+ 'parent' => 'gallery_format_tab',
225
+ 'title' => esc_html__( 'Gallery images', 'cherry-projects' ),
226
+ 'description' => esc_html__( 'Select gallery images', 'cherry-projects' ),
227
+ 'display_image' => true,
228
+ 'multi_upload' => true,
229
+ 'upload_button_text' => __( 'Add images', 'cherry-projects' ),
230
+ 'library_type' => 'image',
231
+ ),
232
+ $prefix . '_slider_navigation' => array(
233
+ 'type' => 'switcher',
234
+ 'parent' => 'gallery_format_tab',
235
+ 'value' => 'true',
236
+ 'title' => esc_html__( 'Use navigation?', 'cherry-projects' ),
237
+ 'description' => esc_html__( 'Set the value to true if you want to use navigation', 'cherry-projects' ),
238
+ ),
239
+ $prefix . '_slider_loop' => array(
240
+ 'type' => 'switcher',
241
+ 'parent' => 'gallery_format_tab',
242
+ 'value' => 'true',
243
+ 'title' => esc_html__( 'Use infinite scrolling?', 'cherry-projects' ),
244
+ 'description' => esc_html__( 'Set the value to true if you want to use infinite scrolling', 'cherry-projects' ),
245
+ ),
246
+ $prefix . '_slider_thumbnails_position' => array(
247
+ 'type' => 'radio',
248
+ 'parent' => 'gallery_format_tab',
249
+ 'title' => esc_html__( 'Thumbnails position', 'cherry-projects' ),
250
+ 'description' => esc_html__( 'Select position for Thumbnails list', 'cherry-projects' ),
251
+ 'value' => 'bottom',
252
+ 'display-input' => true,
253
+ 'options' => array(
254
+ 'top' => array(
255
+ 'label' => esc_html__( 'Top', 'cherry-projects' ),
256
+ ),
257
+ 'bottom' => array(
258
+ 'label' => esc_html__( 'Bottom', 'cherry-projects' ),
259
+ ),
260
+ 'right' => array(
261
+ 'label' => esc_html__( 'Right', 'cherry-projects' ),
262
+ ),
263
+ 'left' => array(
264
+ 'label' => esc_html__( 'Left', 'cherry-projects' ),
265
+ ),
266
+ ),
267
+ ),
268
+ $prefix . '_audio_attachments_ids' => array(
269
+ 'type' => 'media',
270
+ 'parent' => 'audio_format_tab',
271
+ 'title' => esc_html__( 'Audio source', 'cherry-projects' ),
272
+ 'description' => esc_html__( 'Select audio source( mp3, m4a, ogg, wav, wma )', 'cherry-projects' ),
273
+ 'display_image' => true,
274
+ 'multi_upload' => true,
275
+ 'upload_button_text' => esc_html__( 'Add sound', 'cherry-projects' ),
276
+ 'library_type' => 'audio',
277
+ ),
278
+ $prefix . '_video_list' => array(
279
+ 'type' => 'repeater',
280
+ 'parent' => 'video_format_tab',
281
+ 'title' => esc_html__( 'Video list', 'cherry-projects' ),
282
+ 'description' => esc_html__( 'Select video source', 'cherry-projects' ),
283
+ 'add_label' => esc_html__( 'Add New Video', 'cherry-projects' ),
284
+ 'title_field' => 'detail_label',
285
+ 'fields' => array(
286
+ 'video_type' => array(
287
+ 'type' => 'radio',
288
+ 'label' => esc_html__( 'Video source type', 'cherry-projects' ),
289
+ 'id' => 'video_type',
290
+ 'name' => 'video_type',
291
+ 'display-input' => true,
292
+ 'options' => array(
293
+ 'embed' => array(
294
+ 'label' => esc_html__( 'Embed video type', 'cherry-projects' ),
295
+ ),
296
+ 'html5' => array(
297
+ 'label' => esc_html__( 'HTML5 video type', 'cherry-projects' ),
298
+ ),
299
+ ),
300
+ ),
301
+ 'video_embed' => array(
302
+ 'type' => 'text',
303
+ 'id' => 'video_embed',
304
+ 'name' => 'video_embed',
305
+ 'placeholder' => esc_html__( 'Select embed url', 'cherry-projects' ),
306
+ 'label' => esc_html__( 'Video embed url', 'cherry-projects' ),
307
+ ),
308
+ 'video_src' => array(
309
+ 'type' => 'media',
310
+ 'id' => 'video_src',
311
+ 'name' => 'video_src',
312
+ 'label' => esc_html__( 'HTML5 Video source', 'cherry-projects' ),
313
+ 'display_image' => true,
314
+ 'multi_upload' => false,
315
+ 'upload_button_text' => esc_html__( 'Add Video', 'cherry-projects' ),
316
+ 'library_type' => 'video',
317
+ ),
318
+ 'poster_src' => array(
319
+ 'type' => 'media',
320
+ 'id' => 'poster_src',
321
+ 'name' => 'poster_src',
322
+ 'label' => esc_html__( 'HTML5 video poster', 'cherry-projects' ),
323
+ 'display_image' => true,
324
+ 'multi_upload' => false,
325
+ 'upload_button_text' => esc_html__( 'Add Poster', 'cherry-projects' ),
326
+ 'library_type' => 'image',
327
+ ),
328
+ ),
329
+ ),
330
+ //
331
+ )
332
+ )
333
+ );
334
+
335
+
336
+
337
+ /*cherry_projects()->get_core()->init_module( 'cherry-post-meta', array(
338
  'id' => 'projects-settings',
339
  'title' => esc_html__( 'Projects settings', '__tm' ),
340
  'page' => array( CHERRY_PROJECTS_NAME ),
594
  ),
595
  ),
596
  ),
597
+ ) );*/
598
  }
599
 
600
  /**
614
  }
615
  }
616
 
617
+ Cherry_Projects_Meta_Boxes::get_instance();
cherry-framework/cherry-core.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Class Cherry Core
4
- * Version: 1.1.1
5
  *
6
  * @package Cherry_Framework
7
  * @subpackage Class
@@ -59,9 +59,10 @@ if ( ! class_exists( 'Cherry_Core' ) ) {
59
  * Constructor.
60
  *
61
  * @since 1.0.0
 
62
  */
63
  public function __construct( $settings = array() ) {
64
- $base_dir = trailingslashit( __DIR__ );
65
  $base_url = trailingslashit( $this->base_url( '', __FILE__ ) );
66
 
67
  $defaults = array(
@@ -405,8 +406,8 @@ if ( ! class_exists( 'Cherry_Core' ) ) {
405
  if ( 0 === strpos( $module_path, $plugin_dir ) ) {
406
  $url = plugin_dir_url( $module_path );
407
  } else if ( false !== strpos( $module_path, $theme_dir ) ) {
408
- $explode = explode( $theme_dir, $module_dir, 2 );
409
- $url = get_stylesheet_directory_uri() . $explode[1];
410
  } else {
411
  $site_url = site_url();
412
  $abs_path = wp_normalize_path( ABSPATH );
@@ -444,7 +445,7 @@ if ( ! class_exists( 'Cherry_Core' ) ) {
444
  * Get path to the core directory.
445
  *
446
  * @since 1.0.0
447
- * @deprecated 1.1.0 Use constant `__DIR__`
448
  * @return string
449
  */
450
  public function get_core_dir() {
1
  <?php
2
  /**
3
  * Class Cherry Core
4
+ * Version: 1.3.0
5
  *
6
  * @package Cherry_Framework
7
  * @subpackage Class
59
  * Constructor.
60
  *
61
  * @since 1.0.0
62
+ * @since 1.1.1 Using dirname( __FILE__ ) instead of __DIR__.
63
  */
64
  public function __construct( $settings = array() ) {
65
+ $base_dir = trailingslashit( dirname( __FILE__ ) );
66
  $base_url = trailingslashit( $this->base_url( '', __FILE__ ) );
67
 
68
  $defaults = array(
406
  if ( 0 === strpos( $module_path, $plugin_dir ) ) {
407
  $url = plugin_dir_url( $module_path );
408
  } else if ( false !== strpos( $module_path, $theme_dir ) ) {
409
+ $explode = explode( $theme_dir, $module_dir );
410
+ $url = get_stylesheet_directory_uri() . end( $explode );
411
  } else {
412
  $site_url = site_url();
413
  $abs_path = wp_normalize_path( ABSPATH );
445
  * Get path to the core directory.
446
  *
447
  * @since 1.0.0
448
+ * @deprecated 1.1.0 Use constant `dirname( __FILE__ )`
449
  * @return string
450
  */
451
  public function get_core_dir() {
cherry-framework/config.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name" : "Cherry Framework",
3
- "version" : "1.1.1",
4
  "description" : "",
5
  "doc_link" : "",
6
  "git_link" : "https://github.com/CherryFramework/cherry-framework",
@@ -8,6 +8,7 @@
8
  "cherry-breadcrumbs" : {
9
  "name" : "Breadcrumb Trail",
10
  "description" : "A breadcrumb menu script for WordPress.",
 
11
  "doc_link" : "",
12
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-breadcrumbs",
13
  "compatible" : ["theme", "plugin"],
@@ -15,19 +16,10 @@
15
  "required" : false,
16
  "dependencies" : []
17
  },
18
- "cherry-creator" : {
19
- "name" : "Creator.",
20
- "description" : "Creator.",
21
- "doc_link" : "",
22
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-creator",
23
- "compatible" : ["theme", "plugin"],
24
- "wordpress_org" : true,
25
- "required" : false,
26
- "dependencies" : []
27
- },
28
  "cherry-customizer" : {
29
- "name" : "Customizer",
30
  "description" : "Customizer functionality.",
 
31
  "doc_link" : "",
32
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-customizer",
33
  "compatible" : ["theme", "plugin"],
@@ -36,8 +28,9 @@
36
  "dependencies" : []
37
  },
38
  "cherry-dynamic-css" : {
39
- "name" : "Dynamic Css",
40
- "description" : "Generate Css.",
 
41
  "doc_link" : "",
42
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-dynamic-css",
43
  "compatible" : ["theme", "plugin"],
@@ -47,7 +40,8 @@
47
  },
48
  "cherry-google-fonts-loader" : {
49
  "name" : "Google Fonts Loader",
50
- "description" : "Enqueue Google font.",
 
51
  "doc_link" : "",
52
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-google-fonts-loader",
53
  "compatible" : ["theme", "plugin"],
@@ -55,39 +49,43 @@
55
  "required" : false,
56
  "dependencies" : []
57
  },
58
- "cherry-js-core" : {
59
- "name" : "JS Core",
60
- "description" : "Initializes global JS object which provides additional plugin functionality.",
 
61
  "doc_link" : "",
62
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-js-core",
63
  "compatible" : ["theme", "plugin"],
64
  "wordpress_org" : true,
65
  "required" : false,
66
- "dependencies" : []
67
  },
68
- "cherry-page-builder" : {
69
- "name" : "Page Builder",
70
- "description" : "Provides functionality for building custom options pages.",
 
71
  "doc_link" : "",
72
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-page-builder",
73
- "compatible" : ["plugin"],
74
  "wordpress_org" : true,
75
  "required" : false,
76
- "dependencies" : []
77
  },
78
- "cherry-plugin-updater" : {
79
- "name" : "Plugin Updater",
80
- "description" : "Provides functionality for updating plugins.",
 
81
  "doc_link" : "",
82
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-plugin-updater",
83
- "compatible" : ["plugin"],
84
- "wordpress_org" : false,
85
  "required" : false,
86
  "dependencies" : []
87
  },
88
  "cherry-post-formats-api" : {
89
  "name" : "Post Formats API",
90
  "description" : "API for post formats specific content.",
 
91
  "doc_link" : "",
92
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-post-formats-api",
93
  "compatible" : ["theme", "plugin"],
@@ -98,29 +96,21 @@
98
  "cherry-post-meta" : {
99
  "name" : "Post Meta",
100
  "description" : "Manage post meta.",
 
101
  "doc_link" : "",
102
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-post-meta",
103
  "compatible" : ["theme", "plugin"],
104
  "wordpress_org" : true,
105
  "required" : false,
106
- "dependencies" : [ "cherry-ui-elements" ]
107
- },
108
- "cherry-post-types" : {
109
- "name" : "Post Types",
110
- "description" : "Provides functionality for creating custom post types.",
111
- "doc_link" : "",
112
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-post-types",
113
- "compatible" : ["plugin"],
114
- "wordpress_org" : true,
115
- "required" : false,
116
- "dependencies" : [ "cherry-ui-elements" ]
117
  },
118
- "cherry-taxonomies" : {
119
- "name" : "Taxanomies",
120
- "description" : "Provides functionality for creating custom taxanomies.",
 
121
  "doc_link" : "",
122
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-taxonomies",
123
- "compatible" : ["plugin"],
124
  "wordpress_org" : true,
125
  "required" : false,
126
  "dependencies" : []
@@ -128,6 +118,7 @@
128
  "cherry-term-meta" : {
129
  "name" : "Term Meta",
130
  "description" : "Manage term metadata.",
 
131
  "doc_link" : "",
132
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-term-meta",
133
  "compatible" : ["theme", "plugin"],
@@ -135,19 +126,21 @@
135
  "required" : false,
136
  "dependencies" : [ "cherry-ui-elements" ]
137
  },
138
- "cherry-theme-updater" : {
139
- "name" : "Theme Updater",
140
- "description" : "Provides functionality for updating themes.",
141
- "doc_link" : "",
142
- "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-theme-updater",
143
- "compatible" : ["theme"],
144
- "wordpress_org" : false,
145
- "required" : false,
146
- "dependencies" : []
 
147
  },
148
  "cherry-ui-elements" : {
149
  "name" : "UI Elements",
150
  "description" : "UI Elements",
 
151
  "doc_link" : "",
152
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-ui-elements",
153
  "compatible" : ["theme", "plugin"],
@@ -158,6 +151,7 @@
158
  "cherry-utility" : {
159
  "name" : "Utility",
160
  "description" : "Multiple utility functions.",
 
161
  "doc_link" : "",
162
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-utility",
163
  "compatible" : ["theme", "plugin"],
@@ -166,24 +160,15 @@
166
  "dependencies" : []
167
  },
168
  "cherry-widget-factory" : {
169
- "name" : "Widget Factory.",
170
  "description" : "Base widget class that simplifies creating of your own widgets.",
 
171
  "doc_link" : "",
172
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-widget-factory",
173
  "compatible" : ["theme", "plugin"],
174
  "wordpress_org" : true,
175
  "required" : false,
176
  "dependencies" : [ "cherry-ui-elements" ]
177
- },
178
- "cherry-toolkit": {
179
- "name": "Framework Toolkit",
180
- "description": "Framework Toolkit contains various PHP utilities",
181
- "doc_link": "",
182
- "git_link": "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-toolkit",
183
- "compatible": ["theme", "plugin"],
184
- "wordpress_org": true,
185
- "required": true,
186
- "dependencies": []
187
  }
188
  }
189
  }
1
  {
2
  "name" : "Cherry Framework",
3
+ "version" : "1.3.0",
4
  "description" : "",
5
  "doc_link" : "",
6
  "git_link" : "https://github.com/CherryFramework/cherry-framework",
8
  "cherry-breadcrumbs" : {
9
  "name" : "Breadcrumb Trail",
10
  "description" : "A breadcrumb menu script for WordPress.",
11
+ "version" : "1.1.1",
12
  "doc_link" : "",
13
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-breadcrumbs",
14
  "compatible" : ["theme", "plugin"],
16
  "required" : false,
17
  "dependencies" : []
18
  },
 
 
 
 
 
 
 
 
 
 
19
  "cherry-customizer" : {
20
+ "name" : "Customizer API",
21
  "description" : "Customizer functionality.",
22
+ "version" : "1.1.4",
23
  "doc_link" : "",
24
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-customizer",
25
  "compatible" : ["theme", "plugin"],
28
  "dependencies" : []
29
  },
30
  "cherry-dynamic-css" : {
31
+ "name" : "Dynamic CSS",
32
+ "description" : "Generate CSS.",
33
+ "version" : "1.2.0",
34
  "doc_link" : "",
35
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-dynamic-css",
36
  "compatible" : ["theme", "plugin"],
40
  },
41
  "cherry-google-fonts-loader" : {
42
  "name" : "Google Fonts Loader",
43
+ "description" : "Enqueue Google fonts.",
44
+ "version" : "1.1.0",
45
  "doc_link" : "",
46
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-google-fonts-loader",
47
  "compatible" : ["theme", "plugin"],
49
  "required" : false,
50
  "dependencies" : []
51
  },
52
+ "cherry-handler" : {
53
+ "name" : "Cherry handler",
54
+ "description" : "Initialize handlers.",
55
+ "version" : "1.0.0",
56
  "doc_link" : "",
57
+ "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-handler",
58
  "compatible" : ["theme", "plugin"],
59
  "wordpress_org" : true,
60
  "required" : false,
61
+ "dependencies" : [ "cherry-js-core" ]
62
  },
63
+ "cherry-interface-builder" : {
64
+ "name" : "Interface Builder",
65
+ "description" : "The module for the creation of interfaces in the WordPress admin panel.",
66
+ "version" : "1.0.3",
67
  "doc_link" : "",
68
+ "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-interface-builder",
69
+ "compatible" : ["theme", "plugin"],
70
  "wordpress_org" : true,
71
  "required" : false,
72
+ "dependencies" : [ "cherry-ui-elements" ]
73
  },
74
+ "cherry-js-core" : {
75
+ "name" : "JS Core",
76
+ "description" : "Initialize global JS object which provides additional plugin functionality.",
77
+ "version" : "1.1.2",
78
  "doc_link" : "",
79
+ "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-js-core",
80
+ "compatible" : ["theme", "plugin"],
81
+ "wordpress_org" : true,
82
  "required" : false,
83
  "dependencies" : []
84
  },
85
  "cherry-post-formats-api" : {
86
  "name" : "Post Formats API",
87
  "description" : "API for post formats specific content.",
88
+ "version" : "1.1.2",
89
  "doc_link" : "",
90
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-post-formats-api",
91
  "compatible" : ["theme", "plugin"],
96
  "cherry-post-meta" : {
97
  "name" : "Post Meta",
98
  "description" : "Manage post meta.",
99
+ "version" : "1.2.1",
100
  "doc_link" : "",
101
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-post-meta",
102
  "compatible" : ["theme", "plugin"],
103
  "wordpress_org" : true,
104
  "required" : false,
105
+ "dependencies" : [ "cherry-interface-builder" ]
 
 
 
 
 
 
 
 
 
 
106
  },
107
+ "cherry-template-manager" : {
108
+ "name" : "Template Manager",
109
+ "description" : "Module for load and parse *.tmpl files.",
110
+ "version" : "1.0.0",
111
  "doc_link" : "",
112
+ "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-template-manager",
113
+ "compatible" : ["theme", "plugin"],
114
  "wordpress_org" : true,
115
  "required" : false,
116
  "dependencies" : []
118
  "cherry-term-meta" : {
119
  "name" : "Term Meta",
120
  "description" : "Manage term metadata.",
121
+ "version" : "1.1.4",
122
  "doc_link" : "",
123
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-term-meta",
124
  "compatible" : ["theme", "plugin"],
126
  "required" : false,
127
  "dependencies" : [ "cherry-ui-elements" ]
128
  },
129
+ "cherry-toolkit": {
130
+ "name": "Framework Toolkit",
131
+ "description": "Framework Toolkit contains various PHP utilities",
132
+ "version" : "1.2.0",
133
+ "doc_link": "",
134
+ "git_link": "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-toolkit",
135
+ "compatible": ["theme", "plugin"],
136
+ "wordpress_org": true,
137
+ "required": true,
138
+ "dependencies": []
139
  },
140
  "cherry-ui-elements" : {
141
  "name" : "UI Elements",
142
  "description" : "UI Elements",
143
+ "version" : "1.3.0",
144
  "doc_link" : "",
145
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-ui-elements",
146
  "compatible" : ["theme", "plugin"],
151
  "cherry-utility" : {
152
  "name" : "Utility",
153
  "description" : "Multiple utility functions.",
154
+ "version" : "1.1.4",
155
  "doc_link" : "",
156
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-utility",
157
  "compatible" : ["theme", "plugin"],
160
  "dependencies" : []
161
  },
162
  "cherry-widget-factory" : {
163
+ "name" : "Widget Factory",
164
  "description" : "Base widget class that simplifies creating of your own widgets.",
165
+ "version" : "1.2.0",
166
  "doc_link" : "",
167
  "git_link" : "https://github.com/CherryFramework/cherry-framework/tree/master/modules/cherry-widget-factory",
168
  "compatible" : ["theme", "plugin"],
169
  "wordpress_org" : true,
170
  "required" : false,
171
  "dependencies" : [ "cherry-ui-elements" ]
 
 
 
 
 
 
 
 
 
 
172
  }
173
  }
174
  }
cherry-framework/modules/cherry-breadcrumbs/cherry-breadcrumbs.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Module Name: Breadcrumb Trail
4
  * Description: A breadcrumb menu script for WordPress
5
- * Version: 1.1.0
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
@@ -35,18 +35,10 @@ if ( ! class_exists( 'Cherry_Breadcrumbs' ) ) {
35
  * Breadcrumbs builder class.
36
  * Class is based on Breadcrumb Trail plugin by Justin Tadlock.
37
  *
38
- * @since 4.0.0
39
  */
40
  class Cherry_Breadcrumbs {
41
 
42
- /**
43
- * Module version.
44
- *
45
- * @since 1.0.0
46
- * @var string
47
- */
48
- public $module_version = '1.1.0';
49
-
50
  /**
51
  * A reference to an instance of this class.
52
  *
@@ -657,7 +649,7 @@ if ( ! class_exists( 'Cherry_Breadcrumbs' ) ) {
657
  return;
658
  }
659
 
660
- $url = network_home_url();
661
  $label = $this->args['labels']['home'];
662
 
663
  $this->_add_item( 'home_format', $label, $url );
@@ -676,7 +668,7 @@ if ( ! class_exists( 'Cherry_Breadcrumbs' ) ) {
676
  ? 'link_format'
677
  : 'home_format';
678
 
679
- $url = home_url( '/' );
680
  $label = ( is_multisite() && ! is_main_site() && true === $this->args['network'] )
681
  ? get_bloginfo( 'name' )
682
  : $this->args['labels']['home'];
@@ -1125,7 +1117,10 @@ if ( ! class_exists( 'Cherry_Breadcrumbs' ) ) {
1125
  $this->_add_item(
1126
  'link_format',
1127
  $week,
1128
- add_query_arg( array( 'm' => get_the_time( 'Y' ), 'w' => get_the_time( 'W' ) ), home_url( '/' ) )
 
 
 
1129
  );
1130
 
1131
  }
2
  /**
3
  * Module Name: Breadcrumb Trail
4
  * Description: A breadcrumb menu script for WordPress
5
+ * Version: 1.1.1
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
35
  * Breadcrumbs builder class.
36
  * Class is based on Breadcrumb Trail plugin by Justin Tadlock.
37
  *
38
+ * @since 1.0.0
39
  */
40
  class Cherry_Breadcrumbs {
41
 
 
 
 
 
 
 
 
 
42
  /**
43
  * A reference to an instance of this class.
44
  *
649
  return;
650
  }
651
 
652
+ $url = esc_url( network_home_url() );
653
  $label = $this->args['labels']['home'];
654
 
655
  $this->_add_item( 'home_format', $label, $url );
668
  ? 'link_format'
669
  : 'home_format';
670
 
671
+ $url = esc_url( home_url( '/' ) );
672
  $label = ( is_multisite() && ! is_main_site() && true === $this->args['network'] )
673
  ? get_bloginfo( 'name' )
674
  : $this->args['labels']['home'];
1117
  $this->_add_item(
1118
  'link_format',
1119
  $week,
1120
+ add_query_arg(
1121
+ array( 'm' => get_the_time( 'Y' ), 'w' => get_the_time( 'W' ) ),
1122
+ esc_url( home_url( '/' ) )
1123
+ )
1124
  );
1125
 
1126
  }
cherry-framework/modules/cherry-creator/cherry-creator.php DELETED
@@ -1,122 +0,0 @@
1
- <?php
2
- /**
3
- * Creator
4
- *
5
- * Module Name: Creator
6
- * Description: Creator
7
- * Version: 1.1.0
8
- * Author: Cherry Team
9
- * Author URI: http://www.cherryframework.com/
10
- * License: GPLv3
11
- * License URI: http://www.gnu.org/licenses/gpl-3.0.html
12
- *
13
- * @package Cherry_Framework
14
- * @subpackage Modules
15
- * @version 1.1.0
16
- * @author Cherry Team <cherryframework@gmail.com>
17
- * @copyright Copyright (c) 2012 - 2016, Cherry Team
18
- * @link http://www.cherryframework.com/
19
- * @license http://www.gnu.org/licenses/gpl-3.0.html
20
- */
21
-
22
- // If this file is called directly, abort.
23
- if ( ! defined( 'WPINC' ) ) {
24
- die;
25
- }
26
-
27
- if ( ! class_exists( 'Cherry_Creator' ) ) {
28
-
29
- /**
30
- * Cherry post types class
31
- */
32
- class Cherry_Creator {
33
-
34
- /**
35
- * Module version
36
- *
37
- * @var string
38
- */
39
- public $module_version = '1.1.0';
40
-
41
- /**
42
- * Module slug
43
- *
44
- * @var string
45
- */
46
- public $module_slug = 'cherry-creator';
47
-
48
- /**
49
- * Default post type arguments
50
- *
51
- * @var null
52
- */
53
- private $defaults = null;
54
-
55
- /**
56
- * Module directory
57
- *
58
- * @since 1.0.0
59
- * @var string
60
- */
61
- private $module_directory = '';
62
-
63
- /**
64
- * Cherry_Post_Type class constructor
65
- */
66
- public function __construct( $core, $args = array() ) {
67
- $this->defaults = $args;
68
- $this->module_directory = $core->settings['base_dir'] . '/modules/' . $this->module_slug;
69
-
70
- // Load Creator Term
71
- if ( ! class_exists( 'Cherry_Creator_Term' ) ) {
72
- require_once( $this->module_directory . '/inc/cherry-creator-term.php' );
73
- }
74
- }
75
-
76
- /**
77
- * Create Chery_Creator_Term object
78
- *
79
- * @param [type] $title term.
80
- * @param [string] $tax taxonomy.
81
- * @param array $args arguments.
82
- * @return Chery_Creator_Term
83
- */
84
- public static function term( $title, $tax = 'category', $args = array() ) {
85
- // Load Creator Term
86
- if ( ! class_exists( 'Cherry_Creator_Term' ) ) {
87
- require_once( 'cherry-creator-term.php' );
88
- }
89
- return new Cherry_Creator_Term( $title, $tax, $args );
90
- }
91
-
92
- /**
93
- * New / Update post
94
- *
95
- * @param array $properties new or update post properties.
96
- * @return post id or 0.
97
- */
98
- public static function post( $properties = array(), $unique = false ) {
99
- if ( $unique && array_key_exists( 'post_title', $properties ) ) {
100
- $post_type = 'page';
101
- if ( array_key_exists( 'post_type', $properties ) ) {
102
- $post_type = $properties['post_type'];
103
- }
104
- $post = get_page_by_path( sanitize_title( $properties['post_title'] ), OBJECT, $post_type );
105
- if ( null !== $post ) {
106
- $properties['ID'] = $post->ID;
107
- }
108
- }
109
- return wp_insert_post( $properties );
110
- }
111
-
112
- /**
113
- * Returns the instance.
114
- *
115
- * @since 1.0.0
116
- * @return object
117
- */
118
- public static function get_instance( $core, $args ) {
119
- return new self( $core, $args );
120
- }
121
- }
122
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cherry-framework/modules/cherry-creator/inc/cherry-creator-term.php DELETED
@@ -1,126 +0,0 @@
1
- <?php
2
- /**
3
- * Creator term
4
- *
5
- * @package Cherry_Framework
6
- * @subpackage Class
7
- * @author Cherry Team <cherryframework@gmail.com>
8
- * @copyright Copyright (c) 2012 - 2016, Cherry Team
9
- * @link http://www.cherryframework.com/
10
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11
- */
12
-
13
- /**
14
- * Cherry_Creator_Term class
15
- */
16
- class Cherry_Creator_Term {
17
-
18
- /**
19
- * Term title
20
- *
21
- * @var string
22
- */
23
- private $title;
24
-
25
- /**
26
- * Term taxonomy
27
- *
28
- * @var string
29
- */
30
- private $taxonomy = 'category';
31
-
32
- /**
33
- * Term arguments
34
- *
35
- * @var array
36
- */
37
- private $arguments = array();
38
-
39
- /**
40
- * Inserted term
41
- *
42
- * @var null
43
- */
44
- private $inserted = null;
45
-
46
- /**
47
- * Cherry_Creator_Term
48
- *
49
- * @param [type] $title term title.
50
- * @param [string] $tax taxonomy.
51
- * @param array $args arguments.
52
- */
53
- public function __construct( $title, $tax = 'category', $args = array() ) {
54
- $this->title = $title;
55
- $this->taxonomy = $tax;
56
- $this->arguments = $args;
57
- }
58
-
59
- /**
60
- * Insert term
61
- *
62
- * @return Cherry_Creator_Term
63
- */
64
- public function insert( $unique = false ) {
65
- if ( ! is_array( $this->inserted ) ) {
66
- if ( $unique ) {
67
- if ( ! term_exists( $this->get_term_slug(), $this->taxonomy ) ) {
68
- $this->_insert();
69
- }
70
- } else {
71
- $this->_insert();
72
- }
73
- }
74
- return $this;
75
- }
76
-
77
- /**
78
- * Insert term without checking
79
- *
80
- * @return Cherry_Creator_Term
81
- */
82
- private function _insert() {
83
- $this->inserted = wp_insert_term(
84
- $this->title,
85
- $this->taxonomy,
86
- $this->arguments
87
- );
88
- return $this;
89
- }
90
-
91
- /**
92
- * Set parent by slug
93
- *
94
- * @param [type] $parent_slug parent.
95
- */
96
- public function set_parent_by_slug( $parent_slug = null ) {
97
- if ( null !== $parent_slug ) {
98
- $term = get_term_by( 'slug', $parent_slug, $this->taxonomy );
99
- if ( $term ) {
100
- $this->arguments['parent'] = $term->term_id;
101
- }
102
- }
103
- return $this;
104
- }
105
-
106
- /**
107
- * Get inserted object
108
- *
109
- * @return mixed.
110
- */
111
- public function get_inserted() {
112
- return $this->inserted;
113
- }
114
-
115
- /**
116
- * Get term slug
117
- *
118
- * @return [type] term slug.
119
- */
120
- public function get_term_slug() {
121
- if ( array_key_exists( 'slug', $this->arguments ) ) {
122
- return $this->arguments['slug'];
123
- }
124
- return sanitize_title( $this->title );
125
- }
126
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cherry-framework/modules/cherry-customizer/cherry-customizer.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Module Name: Customizer
4
  * Description: Customizer functionality.
5
- * Version: 1.1.3
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
@@ -10,7 +10,7 @@
10
  *
11
  * @package Cherry_Framework
12
  * @subpackage Modules
13
- * @version 1.1.3
14
  * @author Cherry Team <cherryframework@gmail.com>
15
  * @copyright Copyright (c) 2012 - 2016, Cherry Team
16
  * @link http://www.cherryframework.com/
@@ -207,11 +207,12 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
207
  * Include advanced customizer controls classes
208
  *
209
  * @since 1.1.0
 
210
  */
211
  private function include_custom_controls() {
212
 
213
  if ( ! class_exists( 'Cherry_WP_Customize_Iconpicker' ) ) {
214
- require_once( trailingslashit( __DIR__ ) . '/inc/class-cherry-wp-customize-iconpicker.php' );
215
  }
216
 
217
  }
@@ -909,8 +910,8 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
909
  * @param object $this Cherry_Customiser instance.
910
  */
911
  return apply_filters( 'cherry_customizer_get_fonts_data', array(
912
- 'standard' => __DIR__ . '/assets/fonts/standard.json',
913
- 'google' => __DIR__ . '/assets/fonts/google.json',
914
  ), $this );
915
  }
916
 
@@ -940,12 +941,36 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
940
  * Retrieve a data from font's file.
941
  *
942
  * @since 1.0.0
943
- * @global object $wp_filesystem
944
- * @param [string] $file File path.
945
  * @return array Fonts data.
946
  */
947
  public function read_font_file( $file ) {
948
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
949
  if ( ! function_exists( 'WP_Filesystem' ) ) {
950
  include_once( ABSPATH . '/wp-admin/includes/file.php' );
951
  }
@@ -953,20 +978,38 @@ if ( ! class_exists( 'Cherry_Customizer' ) ) {
953
  WP_Filesystem();
954
  global $wp_filesystem;
955
 
956
- if ( ! $wp_filesystem->exists( $file ) ) {
957
- return false;
 
 
958
  }
 
959
 
960
- // Read the file.
961
- $json = $wp_filesystem->get_contents( $file );
 
 
 
 
 
 
962
 
963
- if ( ! $json ) {
964
- return new WP_Error( 'reading_error', 'Error when reading file' );
965
  }
966
 
967
- $content = json_decode( $json, true );
 
 
 
 
 
 
 
 
 
968
 
969
- return is_array( $content ) ? $content['items'] : false;
970
  }
971
 
972
  /**
2
  /**
3
  * Module Name: Customizer
4
  * Description: Customizer functionality.
5
+ * Version: 1.1.4
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
10
  *
11
  * @package Cherry_Framework
12
  * @subpackage Modules
13
+ * @version 1.1.4
14
  * @author Cherry Team <cherryframework@gmail.com>
15
  * @copyright Copyright (c) 2012 - 2016, Cherry Team
16
  * @link http://www.cherryframework.com/
207
  * Include advanced customizer controls classes
208
  *
209
  * @since 1.1.0
210
+ * @since 1.1.4 Using dirname( __FILE__ ) instead of __DIR__.
211
  */
212
  private function include_custom_controls() {
213
 
214
  if ( ! class_exists( 'Cherry_WP_Customize_Iconpicker' ) ) {
215
+ require_once( trailingslashit( dirname( __FILE__ ) ) . '/inc/class-cherry-wp-customize-iconpicker.php' );
216
  }
217
 
218
  }
910
  * @param object $this Cherry_Customiser instance.
911
  */
912
  return apply_filters( 'cherry_customizer_get_fonts_data', array(
913
+ 'standard' => dirname( __FILE__ ) . '/assets/fonts/standard.json',
914
+ 'google' => dirname( __FILE__ ) . '/assets/fonts/google.json',
915
  ), $this );
916
  }
917
 
941
  * Retrieve a data from font's file.
942
  *
943
  * @since 1.0.0
944
+ * @param string $file File path.
 
945
  * @return array Fonts data.
946
  */
947
  public function read_font_file( $file ) {
948
 
949
+ if ( ! $this->file_exists( $file ) ) {
950
+ return false;
951
+ }
952
+
953
+ // Read the file.
954
+ $json = $this->get_file( $file );
955
+
956
+ if ( ! $json ) {
957
+ return new WP_Error( 'reading_error', 'Error when reading file' );
958
+ }
959
+
960
+ $content = json_decode( $json, true );
961
+
962
+ return $content['items'];
963
+ }
964
+
965
+ /**
966
+ * Safely checks exists file or not
967
+ *
968
+ * @global object $wp_filesystem
969
+ * @param string $file File path.
970
+ * @return bool
971
+ */
972
+ public function file_exists( $file ) {
973
+
974
  if ( ! function_exists( 'WP_Filesystem' ) ) {
975
  include_once( ABSPATH . '/wp-admin/includes/file.php' );
976
  }
978
  WP_Filesystem();
979
  global $wp_filesystem;
980
 
981
+ if ( $wp_filesystem->abspath() ) {
982
+ return $wp_filesystem->exists( $file );
983
+ } else {
984
+ return file_exists( $file );
985
  }
986
+ }
987
 
988
+ /**
989
+ * Safely get file content.
990
+ *
991
+ * @global object $wp_filesystem
992
+ * @param string $file File path.
993
+ * @return bool
994
+ */
995
+ public function get_file( $file ) {
996
 
997
+ if ( ! function_exists( 'WP_Filesystem' ) ) {
998
+ include_once( ABSPATH . '/wp-admin/includes/file.php' );
999
  }
1000
 
1001
+ WP_Filesystem();
1002
+ global $wp_filesystem;
1003
+
1004
+ $result = '';
1005
+
1006
+ if ( $wp_filesystem->abspath() ) {
1007
+ $result = $wp_filesystem->get_contents( $file );
1008
+ } else {
1009
+ $result = Cherry_Toolkit::get_file( $file );
1010
+ }
1011
 
1012
+ return $result;
1013
  }
1014
 
1015
  /**
cherry-framework/modules/cherry-dynamic-css/assets/cherry-css-collector.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Handler for CSS Collector
3
+ */
4
+ function CherryCSSCollector() {
5
+
6
+ 'use strict';
7
+
8
+ var style,
9
+ collectedCSS = window.CherryCollectedCSS;
10
+
11
+ if ( undefined !== collectedCSS ) {
12
+
13
+ style = document.createElement( 'style' );
14
+
15
+ style.setAttribute( 'title', collectedCSS.title );
16
+ style.setAttribute( 'type', collectedCSS.type );
17
+
18
+ style.textContent = collectedCSS.css;
19
+
20
+ document.head.appendChild( style );
21
+ }
22
+ }
23
+
24
+ CherryCSSCollector();
cherry-framework/modules/cherry-dynamic-css/assets/min/cherry-css-collector.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function CherryCSSCollector(){"use strict";var t,e=window.CherryCollectedCSS;void 0!==e&&(t=document.createElement("style"),t.setAttribute("title",e.title),t.setAttribute("type",e.type),t.textContent=e.css,document.head.appendChild(t))}CherryCSSCollector();
cherry-framework/modules/cherry-dynamic-css/cherry-dynamic-css.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Module Name: Dynamic CSS
4
  * Description: CSS parser which uses variables & functions for CSS code optimization
5
- * Version: 1.1.0
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
@@ -10,7 +10,7 @@
10
  *
11
  * @package Cherry_Framework
12
  * @subpackage Modules
13
- * @version 1.1.0
14
  * @author Cherry Team <cherryframework@gmail.com>
15
  * @copyright Copyright (c) 2012 - 2016, Cherry Team
16
  * @link http://www.cherryframework.com/
@@ -29,13 +29,6 @@ if ( ! class_exists( 'Cherry_Dynamic_Css' ) ) {
29
  */
30
  class Cherry_Dynamic_Css {
31
 
32
- /**
33
- * Module version
34
- *
35
- * @var string
36
- */
37
- public $module_version = '1.1.0';
38
-
39
  /**
40
  * Module arguments
41
  *
@@ -71,6 +64,14 @@ if ( ! class_exists( 'Cherry_Dynamic_Css' ) ) {
71
  */
72
  public $func_pattern = '/@(([a-zA-Z_]+)\(([^@\)]*)?\))/';
73
 
 
 
 
 
 
 
 
 
74
  /**
75
  * Constructor for the module
76
  */
@@ -86,6 +87,50 @@ if ( ! class_exists( 'Cherry_Dynamic_Css' ) ) {
86
  ) );
87
 
88
  add_action( 'wp_head', array( $this, 'print_inline_css' ), 99 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
  /**
@@ -192,25 +237,6 @@ if ( ! class_exists( 'Cherry_Dynamic_Css' ) ) {
192
 
193
  }
194
 
195
- /**
196
- * Get path inside of current module
197
- *
198
- * @since 1.0.0
199
- * @param [type] $path file inside module directory to get path for.
200
- * @return string
201
- */
202
- public function get_path( $path = null ) {
203
-
204
- $result = trailingslashit( __DIR__ );
205
-
206
- if ( null !== $path ) {
207
- $result .= $path;
208
- }
209
-
210
- return $result;
211
-
212
- }
213
-
214
  /**
215
  * Get avaliable functions into array
216
  *
@@ -219,7 +245,7 @@ if ( ! class_exists( 'Cherry_Dynamic_Css' ) ) {
219
  */
220
  public function get_css_functions() {
221
 
222
- require_once $this->get_path( 'inc/class-cherry-dynamic-css-utilities.php' );
223
  $utilities = Cherry_Dynamic_Css_Utilities::get_instance();
224
 
225
  $func_list = array(
2
  /**
3
  * Module Name: Dynamic CSS
4
  * Description: CSS parser which uses variables & functions for CSS code optimization
5
+ * Version: 1.2.0
6
  * Author: Cherry Team
7
  * Author URI: http://www.cherryframework.com/
8
  * License: GPLv3
10
  *
11
  * @package Cherry_Framework
12
  * @subpackage Modules
13
+ * @version 1.2.0
14
  * @author Cherry Team <cherryframework@gmail.com>
15
  * @copyright Copyright (c) 2012 - 2016, Cherry Team
16
  * @link http://www.cherryframework.com/
29
  */
30
  class Cherry_Dynamic_Css {
31
 
 
 
 
 
 
 
 
32
  /**
33
  * Module arguments
34
  *
64
  */
65
  public $func_pattern = '/@(([a-zA-Z_]+)\(([^@\)]*)?\))/';
66
 
67
+ /**
68
+ * Collector instance holder
69
+ *
70
+ * @since 1.2.0
71
+ * @var object
72
+ */
73
+ public static $collector = null;
74
+
75
  /**
76
  * Constructor for the module
77
  */
87
  ) );
88
 
89
  add_action( 'wp_head', array( $this, 'print_inline_css' ), 99 );
90
+
91
+ $this->init_collector();
92
+ }
93
+
94
+ /**
95
+ * Initalize CSS collector class
96
+ *
97
+ * @since 1.2.0
98
+ * @return bool
99
+ */
100
+ public function init_collector() {
101
+
102
+ if ( null !== self::$collector ) {
103
+ return true;
104
+ }
105
+
106
+ require_once 'inc/class-cherry-dynamic-css-collector.php';
107
+
108
+ ob_start();
109
+ include 'assets/min/cherry-css-collector.min.js';
110
+ $handler = ob_get_clean();
111
+
112
+ self::$collector = Cherry_Dynamic_Css_Collector::get_instance( $handler );
113
+ add_action( 'wp_footer', array( self::$collector, 'print_style' ), 11 );
114
+ add_action( 'wp_footer', array( self::$collector, 'add_js_handler' ), 11 );
115
+
116
+ return true;
117
+
118
+ }
119
+
120
+ /**
121
+ * Add new style to collector
122
+ *
123
+ * @since 1.2.0
124
+ * @param string $selector CSS selector to add styles for.
125
+ * @param array $style Styles array to add.
126
+ * @param array $media Media breakpoints.
127
+ * @return void
128
+ */
129
+ public function add_style( $selector, $style = array(), $media = array() ) {
130
+ if ( ! $selector ) {
131
+ return;
132
+ }
133
+ self::$collector->add_style( $selector, $style, $media );
134
  }
135
 
136
  /**
237
 
238
  }
239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  /**
241
  * Get avaliable functions into array
242
  *
245
  */
246
  public function get_css_functions() {
247
 
248
+ require_once 'inc/class-cherry-dynamic-css-utilities.php';
249
  $utilities = Cherry_Dynamic_Css_Utilities::get_instance();
250
 
251
  $func_list = array(
cherry-framework/modules/cherry-dynamic-css/inc/class-cherry-dynamic-css-collector.php ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Dynamic CSS collector class.
4
+ *
5
+ * @package Cherry_Framework
6
+ * @author Cherry Team <cherryframework@gmail.com>
7
+ * @copyright Copyright (c) 2012 - 2016, Cherry Team
8
+ * @link http://www.cherryframework.com/
9
+ * @license http://www.gnu.org/licenses/gpl-3.0.html
10
+ */
11
+
12
+ // If this file is called directly, abort.
13
+ if ( ! defined( 'WPINC' ) ) {
14
+ die;
15
+ }
16
+
17
+ if ( ! class_exists( 'Cherry_Dynamic_Css_Collector' ) ) {
18
+
19
+ /**
20
+ * Define Cherry_Dynamic_Css_Collector class
21
+ */
22
+ class Cherry_Dynamic_Css_Collector {
23
+
24
+ /**
25
+ * A reference to an instance of this class.
26
+ *
27
+ * @since 1.2.0
28
+ * @var object
29
+ */
30
+ private static $instance = null;
31
+
32
+ /**
33
+ * Array with sorted css
34