Shortcodes by Angie Makes - Version 3.26

Version Description

Download this release

Release Info

Developer cbaldelomar
Plugin Icon wp plugin Shortcodes by Angie Makes
Version 3.26
Comparing to
See all releases

Code changes from version 3.24 to 3.26

README.md CHANGED
@@ -106,6 +106,15 @@ See our help article on [how to manually upload a plugin](http://knowledgebase.a
106
 
107
  ## Changelog ##
108
 
 
 
 
 
 
 
 
 
 
109
  ### Version 3.24 ###
110
 
111
  * smoother masonry loading
106
 
107
  ## Changelog ##
108
 
109
+ ### Version 3.26 ###
110
+
111
+ * Added featured posts widget
112
+
113
+ ### Version 3.25 ###
114
+
115
+ * added image links shortcode and widget
116
+ * added max height rule when default is set.
117
+
118
  ### Version 3.24 ###
119
 
120
  * smoother masonry loading
admin/assets/css/wcvisualmanager.css CHANGED
@@ -39,16 +39,19 @@
39
  }
40
  /**/
41
  html .wc-shortcodes-visual-manager,
 
42
  html .wc-shortcodes-visual-manager.ui-accordion {
43
  margin-bottom: 1.5em;
44
  }
45
  html .wc-shortcodes-visual-manager .ui-autocomplete,
 
46
  html .wc-shortcodes-visual-manager.ui-accordion .ui-autocomplete {
47
  z-index: 999999;
48
  max-height: 300px;
49
  overflow: auto;
50
  }
51
  html .wc-shortcodes-visual-manager .ui-autocomplete li,
 
52
  html .wc-shortcodes-visual-manager.ui-accordion .ui-autocomplete li {
53
  white-space: normal;
54
  }
@@ -62,6 +65,7 @@ html .wc-shortcodes-visual-manager .wc-shortcodes-widget-fa .ui-autocomplete li
62
  html .wc-shortcodes-visual-manager .wc-shortcodes-widget-fa .ui-autocomplete li span {
63
  line-height: 2;
64
  }
 
65
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header {
66
  border: 1px solid #ddd;
67
  position: relative;
@@ -78,6 +82,7 @@ html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header {
78
  font-weight: 600;
79
  margin-top: 1em;
80
  }
 
81
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header:before {
82
  content: "\f345";
83
  border: none;
@@ -98,6 +103,7 @@ html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header:before {
98
  vertical-align: bottom;
99
  margin-right: 5px;
100
  }
 
101
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header.ui-accordion-header-active:before {
102
  content: "\f347";
103
  }
39
  }
40
  /**/
41
  html .wc-shortcodes-visual-manager,
42
+ html .wc-shortcodes-visual-manager .ui-accordion,
43
  html .wc-shortcodes-visual-manager.ui-accordion {
44
  margin-bottom: 1.5em;
45
  }
46
  html .wc-shortcodes-visual-manager .ui-autocomplete,
47
+ html .wc-shortcodes-visual-manager .ui-accordion .ui-autocomplete,
48
  html .wc-shortcodes-visual-manager.ui-accordion .ui-autocomplete {
49
  z-index: 999999;
50
  max-height: 300px;
51
  overflow: auto;
52
  }
53
  html .wc-shortcodes-visual-manager .ui-autocomplete li,
54
+ html .wc-shortcodes-visual-manager .ui-accordion .ui-autocomplete li,
55
  html .wc-shortcodes-visual-manager.ui-accordion .ui-autocomplete li {
56
  white-space: normal;
57
  }
65
  html .wc-shortcodes-visual-manager .wc-shortcodes-widget-fa .ui-autocomplete li span {
66
  line-height: 2;
67
  }
68
+ html .wc-shortcodes-visual-manager .ui-accordion .ui-accordion-header,
69
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header {
70
  border: 1px solid #ddd;
71
  position: relative;
82
  font-weight: 600;
83
  margin-top: 1em;
84
  }
85
+ html .wc-shortcodes-visual-manager .ui-accordion .ui-accordion-header:before,
86
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header:before {
87
  content: "\f345";
88
  border: none;
103
  vertical-align: bottom;
104
  margin-right: 5px;
105
  }
106
+ html .wc-shortcodes-visual-manager .ui-accordion .ui-accordion-header.ui-accordion-header-active:before,
107
  html .wc-shortcodes-visual-manager.ui-accordion .ui-accordion-header.ui-accordion-header-active:before {
108
  content: "\f347";
109
  }
admin/assets/css/wpc-image.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpc-image-wrapper .wpc-widgets-preview-image img {
2
+ max-height: 200px;
3
+ background: #fafafa;
4
+ padding: 0;
5
+ border-width: 0;
6
+ max-width: 100%;
7
+ }
8
+
9
+ .wpc-image-wrapper .wpc-widgets-preview-image {
10
+ margin-bottom: 5px;
11
+ }
12
+
13
+ .wpc-image-wrapper .wpc-widgets-image-field {
14
+ margin: 1em 0;
15
+ }
16
+ .wpc-image-wrapper .wpc-widgets-image-field .button,
17
+ .wpc-image-wrapper .wpc-widgets-image-field input {
18
+ margin-bottom: 7px;
19
+ }
admin/assets/js/shortcodes-tinymce-4.js CHANGED
@@ -216,6 +216,13 @@
216
  wcShortcodes( shortcode, editor );
217
  }
218
  },
 
 
 
 
 
 
 
219
  {
220
  text: "Box",
221
  onclick: function(){
216
  wcShortcodes( shortcode, editor );
217
  }
218
  },
219
+ {
220
+ text: "Image Links",
221
+ onclick: function(){
222
+ var shortcode = '[wc_image_links image_1="" text_1="" url_1="" image_2="" text_2="" url_2="" image_3="" text_3="" url_3="" image_4="" text_4="" url_4="" text_position="center" heading_type="h3" height="250px" class=""][/wc_image_links]';
223
+ wcShortcodes( shortcode, editor );
224
+ }
225
+ },
226
  {
227
  text: "Box",
228
  onclick: function(){
admin/assets/js/wpc-image.js ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @author Chris Baldelomar
3
+ * @website http://webplantmedia.com/
4
+ */
5
+ (function($) {
6
+ "use strict";
7
+
8
+ var $body = $("body"), file_frame = [], media = wp.media;
9
+
10
+ //fetch preExisting selection of galleries. change the gallery state based on wheter we got a selection or not to "Edit gallery" or "AAdd gallery"
11
+ var fetchSelection = function(ids, options) {
12
+ if(typeof ids === 'undefined') {
13
+ return; //<--happens on multi_image insert for modal group
14
+ }
15
+
16
+ var id_array = ids.split(','),
17
+ args = {orderby: "post__in", order: "ASC", type: "image", perPage: -1, post__in:id_array},
18
+ attachments = wp.media.query( args ),
19
+ selection = new wp.media.model.Selection( attachments.models, {
20
+ props: attachments.props.toJSON(),
21
+ multiple: true
22
+ });
23
+
24
+
25
+ if(options.state === 'gallery-library' && id_array.length && !isNaN(parseInt(id_array[0],10))) {
26
+ options.state = 'gallery-edit';
27
+ }
28
+ return selection;
29
+ };
30
+
31
+ $body.on('click', '.wpc-widgets-image-upload', function( event ) {
32
+ event.preventDefault();
33
+
34
+ var clicked = $(this),
35
+ options = clicked.data(),
36
+ parent = clicked.parent(),
37
+ target = parent.find(options.target),
38
+ preview = parent.find(options.preview), // will not find <div> tag inside of <p>
39
+ prefill = fetchSelection(target.val(), options),
40
+ frame_key = _.random(0, 999999999999999999);
41
+ //set vars so we know that an editor is open
42
+
43
+ // If the media frame already exists, reopen it.
44
+ if ( file_frame[frame_key] ) {
45
+ file_frame[frame_key].open();
46
+ return;
47
+ }
48
+
49
+ // Create the media frame.
50
+ file_frame[frame_key] = wp.media({
51
+ frame: options.frame,
52
+ state: options.state,
53
+ library: { type: 'image' },
54
+ button: { text: options.button },
55
+ className: options['class'],
56
+ selection: prefill
57
+ });
58
+
59
+ if ( 'wpc_widgets_insert_single' === options.state ) {
60
+ // add the single insert state
61
+ file_frame[frame_key].states.add([
62
+ // Main states.
63
+ new media.controller.Library({
64
+ id: 'wpc_widgets_insert_single',
65
+ title: clicked.data( 'title' ),
66
+ priority: 20,
67
+ toolbar: 'select',
68
+ filterable: 'uploaded',
69
+ library: media.query( file_frame[frame_key].options.library ),
70
+ multiple: false,
71
+ editable: true,
72
+ displayUserSettings: false,
73
+ displaySettings: true,
74
+ allowLocalEdits: true
75
+ // AttachmentView: media.view.Attachment.Library
76
+ })
77
+ ]);
78
+ }
79
+ else if ( 'wpc_widgets_insert_multi' === options.state ) {
80
+ // add the single insert state
81
+ file_frame[frame_key].states.add([
82
+ new media.controller.Library({
83
+ id: 'wpc_widgets_insert_multi',
84
+ title: clicked.data( 'title' ),
85
+ priority: 20,
86
+ toolbar: 'select',
87
+ filterable: 'uploaded',
88
+ library: media.query( file_frame[frame_key].options.library ),
89
+ multiple: 'add',
90
+ editable: true,
91
+ displayUserSettings: false,
92
+ displaySettings: false,
93
+ allowLocalEdits: true
94
+ // AttachmentView: media.view.Attachment.Library
95
+ })
96
+ ]);
97
+ }
98
+
99
+ // When an image is selected, run a callback.
100
+ // Bind to various events since single insert and multiple trigger on different events and work with different data
101
+ file_frame[frame_key].on( 'select update insert', function(e) {
102
+ var selection, state = file_frame[frame_key].state();
103
+
104
+ // multiple items
105
+ if(typeof e !== 'undefined') {
106
+ selection = e;
107
+ }
108
+ // single item
109
+ else {
110
+ selection = state.get('selection');
111
+ }
112
+
113
+ var values , display, element, preview_html= "", preview_img;
114
+
115
+ values = selection.map( function( attachment ) {
116
+ element = attachment.toJSON();
117
+
118
+ if ( 'url' === options.fetch ) {
119
+ display = state.display( attachment ).toJSON();
120
+
121
+ if ( 'undefined' === typeof element.sizes ) {
122
+ preview_img = element.url;
123
+ preview_html += "<img src='"+preview_img+"' />";
124
+ }
125
+ else if ( ( 'string' === typeof options.imgsize ) && ( 'object' === typeof element.sizes[ options.imgsize ] ) ) {
126
+ preview_img = element.sizes[ options.imgsize ].url;
127
+ preview_html += "<img src='"+preview_img+"' />";
128
+ }
129
+ else {
130
+ preview_img = element.sizes[display.size].url;
131
+ preview_html += "<img src='"+preview_img+"' />";
132
+ }
133
+
134
+ return preview_img;
135
+ }
136
+ else if(options.fetch === 'id') {
137
+ preview_img = typeof element.sizes.thumbnail !== 'undefined' ? element.sizes.thumbnail.url : element.url ;
138
+ preview_html += "<img src='"+preview_img+"' />";
139
+
140
+ return element[options.fetch];
141
+ }
142
+ else {
143
+ return element.url;
144
+ }
145
+ });
146
+
147
+ if ( target.length ) {
148
+ target.val( values.join(',') ).trigger('change');
149
+
150
+ // triggers change in customizer
151
+ target.keyup();
152
+ }
153
+
154
+ if ( preview.length ) {
155
+ preview.html( preview_html ).show();
156
+ }
157
+ });
158
+
159
+ // Finally, open the modal
160
+ file_frame[frame_key].open();
161
+ })
162
+ .on('click', '.wpc-widgets-restore-image', function( e ) {
163
+ e.preventDefault();
164
+
165
+ var clicked = $(this),
166
+ options = clicked.data(),
167
+ parent = clicked.parent(),
168
+ target = parent.find(options.target),
169
+ preview = parent.find(options.preview);
170
+
171
+ $(target).val(options.restore);
172
+
173
+ if ( preview.length && options.restore.length ) {
174
+ $(preview).html('<img src="'+options.restore+'" />').show();
175
+ }
176
+ else {
177
+ $(preview).html("").hide();
178
+ }
179
+
180
+ $(target).keyup();
181
+ })
182
+ .on('click', '.wpc-widgets-delete-image', function( e ) {
183
+ e.preventDefault();
184
+
185
+ var clicked = $(this),
186
+ options = clicked.data(),
187
+ parent = clicked.parent(),
188
+ target = parent.find(options.target),
189
+ preview = parent.find(options.preview);
190
+
191
+ $(target).val('');
192
+
193
+ if ( preview.length ) {
194
+ $(preview).html("").hide();
195
+ }
196
+
197
+ $(target).keyup();
198
+ });
199
+ })(jQuery);
admin/class-admin.php CHANGED
@@ -77,6 +77,17 @@ class WPC_Shortcodes_Admin extends WPC_Shortcodes_Vars {
77
  wp_enqueue_style( 'wp-color-picker' );
78
  wp_enqueue_script( 'wc-shortcodes-color-picker-widget', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/js/wccolorpickerwidget.js', array ( 'wp-color-picker' ), $ver, true );
79
  wp_enqueue_script( 'wc-shortcodes', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/js/wc-shortcodes.js', array ( 'jquery' ), $ver, true );
 
 
 
 
 
 
 
 
 
 
 
80
  }
81
 
82
  if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
77
  wp_enqueue_style( 'wp-color-picker' );
78
  wp_enqueue_script( 'wc-shortcodes-color-picker-widget', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/js/wccolorpickerwidget.js', array ( 'wp-color-picker' ), $ver, true );
79
  wp_enqueue_script( 'wc-shortcodes', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/js/wc-shortcodes.js', array ( 'jquery' ), $ver, true );
80
+
81
+ wp_deregister_style( 'wpc-widgets-admin-style' );
82
+ wp_deregister_script( 'wpc-widgets-admin-js' );
83
+
84
+ wp_register_style( 'wpc-widgets-admin-style', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/css/wpc-image.css', array(), $ver, 'all' );
85
+ wp_enqueue_style( 'wpc-widgets-admin-style' );
86
+
87
+ wp_enqueue_media();
88
+ wp_register_script( 'wpc-widgets-admin-js', WC_SHORTCODES_PLUGIN_URL . 'admin/assets/js/wpc-image.js', array ( 'jquery' ), $ver, true );
89
+ wp_enqueue_script( 'wpc-widgets-admin-js' );
90
+
91
  }
92
 
93
  if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
admin/class-ajax.php CHANGED
@@ -241,6 +241,10 @@ class WPC_Shortcodes_Ajax {
241
  $widget = new WPC_Shortcodes_Widget_Image();
242
  $widget->form( $attr );
243
  break;
 
 
 
 
244
  case 'wc_fa' :
245
  $widget = new WPC_Shortcodes_Widget_FA();
246
  $widget->form( $attr );
241
  $widget = new WPC_Shortcodes_Widget_Image();
242
  $widget->form( $attr );
243
  break;
244
+ case 'wc_image_links' :
245
+ $widget = new WPC_Shortcodes_Widget_Image_Links();
246
+ $widget->form( $attr );
247
+ break;
248
  case 'wc_fa' :
249
  $widget = new WPC_Shortcodes_Widget_FA();
250
  $widget->form( $attr );
public/assets/css/style.css CHANGED
@@ -790,6 +790,7 @@
790
  .wc-shortcodes-social-icons li i.fa-youtube { background-color: #c74a00; }
791
  .wc-shortcodes-social-icons li i.fa-tumblr { background-color: #426b8a; }
792
 
 
793
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-10 img { max-height: 10px; }
794
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-12 img { max-height: 12px; }
795
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-14 img { max-height: 14px; }
@@ -2051,3 +2052,137 @@ pre.pre-wrap {
2051
  background-color: #f7f7f7;
2052
  visibility: visible;
2053
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
790
  .wc-shortcodes-social-icons li i.fa-youtube { background-color: #c74a00; }
791
  .wc-shortcodes-social-icons li i.fa-tumblr { background-color: #426b8a; }
792
 
793
+ .wc-shortcodes-social-icons.wc-shortcodes-maxheight- img { max-height: none; }
794
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-10 img { max-height: 10px; }
795
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-12 img { max-height: 12px; }
796
  .wc-shortcodes-social-icons.wc-shortcodes-maxheight-14 img { max-height: 14px; }
2052
  background-color: #f7f7f7;
2053
  visibility: visible;
2054
  }
2055
+ /**
2056
+ * [wc_image_links]
2057
+ * ----------------------------------------------------------------------------
2058
+ */
2059
+ .wc-shortcodes-image-links-wrapper {
2060
+ overflow: hidden;
2061
+ }
2062
+ .wc-shortcodes-image-links-wrapper-inner {
2063
+ margin-right: -2em;
2064
+ display: block;
2065
+ }
2066
+ .wc-shortcodes-image-link {
2067
+ display: block;
2068
+ float: left;
2069
+ }
2070
+ .wc-shortcodes-image-link-columns-1 .wc-shortcodes-image-link {
2071
+ width: 100%;
2072
+ }
2073
+ .wc-shortcodes-image-link-columns-2 .wc-shortcodes-image-link {
2074
+ width: 50%;
2075
+ }
2076
+ .wc-shortcodes-image-link-columns-3 .wc-shortcodes-image-link {
2077
+ width: 33.333333%;
2078
+ }
2079
+ .wc-shortcodes-image-link-columns-4 .wc-shortcodes-image-link {
2080
+ width: 25%;
2081
+ }
2082
+ .wc-shortcodes-image-link-background-wrapper {
2083
+ margin-right: 2em;
2084
+ }
2085
+ .wc-shortcodes-image-link-background {
2086
+ background-size: cover;
2087
+ background-repeat: no-repeat;
2088
+ background-position: center center;
2089
+ position: relative;
2090
+ }
2091
+ .wc-shortcodes-image-link-text {
2092
+ text-align: center;
2093
+ display: block;
2094
+ width: 100%;
2095
+ position: absolute;
2096
+ top: 0;
2097
+ }
2098
+ .wc-shortcodes-image-link-text-position-center .wc-shortcodes-image-link-text {
2099
+ top: 50%;
2100
+ bottom: auto;
2101
+ -webkit-transform: translateY(-50%);
2102
+ -ms-transform: translateY(-50%);
2103
+ transform: translateY(-50%);
2104
+ }
2105
+ .wc-shortcodes-image-link-text-position-bottom .wc-shortcodes-image-link-text {
2106
+ top: auto;
2107
+ bottom: 0;
2108
+ }
2109
+ .wc-shortcodes-image-link-text-position-under .wc-shortcodes-image-link-text {
2110
+ top: auto;
2111
+ bottom: auto;
2112
+ position: relative;
2113
+ }
2114
+ .wc-shortcodes-image-link-text-position-under .wc-shortcodes-image-link-text .wc-shortcodes-image-links-heading {
2115
+ }
2116
+ #wc-shortcodes-image-links .wc-shortcodes-image-links-heading {
2117
+ margin: 0;
2118
+ padding: 0.7em 1em;
2119
+ display: inline-block;
2120
+ background-color: #ffffff;
2121
+ color: #000000;
2122
+ }
2123
+ @media (max-width: 767px) {
2124
+ #wc-shortcodes-image-links .wc-shortcodes-image-link {
2125
+ width: 100%;
2126
+ }
2127
+ #wc-shortcodes-image-links .wc-shortcodes-image-link-background-wrapper {
2128
+ margin-right: 0;
2129
+ margin-bottom: 2em;
2130
+ }
2131
+ #wc-shortcodes-image-links .wc-shortcodes-image-links-wrapper-inner {
2132
+ margin-right: 0;
2133
+ }
2134
+ }
2135
+ /**
2136
+ * [wc_featured_posts]
2137
+ * ----------------------------------------------------------------------------
2138
+ */
2139
+ .wc-shortcodes-featured-posts-content-inner {
2140
+ overflow: hidden;
2141
+ }
2142
+ .wc-shortcodes-featured-posts-content {
2143
+ margin-bottom: 2.3em;
2144
+ }
2145
+ .wc-shortcodes-featured-posts-content:last-child {
2146
+ margin-bottom: 0;
2147
+ }
2148
+ .wc-shortcodes-featured-posts-layout-thumbnail .wcs-fp-post-thumbnail {
2149
+ width: 100px;
2150
+ height: 100px;
2151
+ background-repeat: no-repeat;
2152
+ background-position: center center;
2153
+ background-size: cover;
2154
+ float: left;
2155
+ }
2156
+ .wc-shortcodes-featured-posts-layout-thumbnail .wcs-fp-post-content.wcs-fp-has-post-thumbnail {
2157
+ padding-left: 1em;
2158
+ overflow: hidden;
2159
+ }
2160
+ .wc-shortcodes-featured-posts .wcs-fp-title {
2161
+ clear: none;
2162
+ }
2163
+ #wc-shortcodes-featured-posts #wc-shortcodes-featured-posts-inner .wcs-fp-title {
2164
+ margin-top: 0;
2165
+ margin-bottom: 0;
2166
+ }
2167
+ #wc-shortcodes-featured-posts #wc-shortcodes-featured-posts-inner .wc-shortcodes-entry-category {
2168
+ margin-top: 0;
2169
+ margin-bottom: 0.4em;
2170
+ }
2171
+ #wc-shortcodes-featured-posts .wc-shortcodes-featured-posts-layout-showcase .wcs-fp-post-thumbnail {
2172
+ margin-bottom: 0.4em;
2173
+ }
2174
+ .wc-shortcodes-featured-posts-layout-showcase .wcs-fp-post-content {
2175
+ text-align: center;
2176
+ }
2177
+ .wc-shortcodes-featured-posts-layout-showcase .wcs-fp-post-thumbnail {
2178
+ width: 100%;
2179
+ padding-bottom: 100%;
2180
+ height: 0;
2181
+ background-repeat: no-repeat;
2182
+ background-position: center center;
2183
+ background-size: cover;
2184
+ }
2185
+ .wc-shortcodes-featured-posts-layout-showcase .wcs-fp-post-thumbnail-wrapper {
2186
+ max-width: 400px;
2187
+ margin: 0 auto;
2188
+ }
public/class-register.php CHANGED
@@ -32,7 +32,9 @@ class WPC_Shortcodes_Register extends WPC_Shortcodes_Vars {
32
  add_shortcode( 'wc_rsvp', array( &$this, 'rsvp' ) );
33
  add_shortcode( 'wc_posts', array( &$this, 'posts' ) );
34
  add_shortcode( 'wc_post_slider', array( &$this, 'post_slider' ) );
 
35
  add_shortcode( 'wc_image', array( &$this, 'image' ) );
 
36
  add_shortcode( 'wc_fa', array( &$this, 'fa' ) );
37
  add_shortcode( 'wc_share', array( &$this, 'share_buttons' ) );
38
  add_shortcode( 'wc_share_buttons', array( &$this, 'get_share_buttons' ) );
@@ -1354,6 +1356,110 @@ class WPC_Shortcodes_Register extends WPC_Shortcodes_Vars {
1354
  return $html;
1355
  }
1356
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1357
  public function image( $atts ) {
1358
  $atts = shortcode_atts( parent::$attr->image, $atts );
1359
  $atts = WPC_Shortcodes_Sanitize::image_attr( $atts );
@@ -1443,6 +1549,51 @@ class WPC_Shortcodes_Register extends WPC_Shortcodes_Vars {
1443
  return $html;
1444
  }
1445
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1446
  public function fa( $atts ) {
1447
  $atts = shortcode_atts( parent::$attr->fa, $atts );
1448
  $atts = WPC_Shortcodes_Sanitize::fa_attr( $atts );
32
  add_shortcode( 'wc_rsvp', array( &$this, 'rsvp' ) );
33
  add_shortcode( 'wc_posts', array( &$this, 'posts' ) );
34
  add_shortcode( 'wc_post_slider', array( &$this, 'post_slider' ) );
35
+ add_shortcode( 'wc_featured_posts', array( &$this, 'featured_posts' ) );
36
  add_shortcode( 'wc_image', array( &$this, 'image' ) );
37
+ add_shortcode( 'wc_image_links', array( &$this, 'image_links' ) );
38
  add_shortcode( 'wc_fa', array( &$this, 'fa' ) );
39
  add_shortcode( 'wc_share', array( &$this, 'share_buttons' ) );
40
  add_shortcode( 'wc_share_buttons', array( &$this, 'get_share_buttons' ) );
1356
  return $html;
1357
  }
1358
 
1359
+ public function featured_posts( $atts ) {
1360
+ global $post;
1361
+ global $wc_shortcodes_posts_query;
1362
+
1363
+ static $instance = 0;
1364
+ $instance++;
1365
+
1366
+ $atts = shortcode_atts( parent::$attr->featured_posts, $atts );
1367
+ $atts = WPC_Shortcodes_Sanitize::featured_posts_attr( $atts );
1368
+
1369
+ // Convert comma delimeted string to array
1370
+ $p = WPC_Shortcodes_Sanitize::comma_delim_to_array( $atts['pids'] );
1371
+
1372
+ $atts['p'] = '';
1373
+ $atts['post__in'] = '';
1374
+
1375
+ if ( is_array( $p ) && ! empty( $p ) ) {
1376
+ $size = sizeof( $p );
1377
+ if ( 1 < $size ) {
1378
+ $atts['post__in'] = $p;
1379
+ }
1380
+ else if ( 1 == $size ) {
1381
+ $atts['p'] = $p[0];
1382
+ }
1383
+ }
1384
+
1385
+ $atts['terms'] = WPC_Shortcodes_Sanitize::comma_delim_to_array( $atts['terms'] );
1386
+
1387
+ // Return if posts_per_page is set to 0.
1388
+ if ( 0 == $atts['posts_per_page'] ) {
1389
+ return;
1390
+ }
1391
+
1392
+ // fix bug with title argument being added to WP_Query() in 4.4
1393
+ $display_keys = array(
1394
+ 'show_meta_category', 'heading_type', 'layout', 'template', 'size', 'title',
1395
+ );
1396
+ $display = array();
1397
+ foreach ( $display_keys as $key ) {
1398
+ $display[ $key ] = $atts[ $key ];
1399
+ unset( $atts[ $key ] );
1400
+ }
1401
+
1402
+ // remove not query keys
1403
+ unset( $atts[ 'pids' ] );
1404
+
1405
+ // check for get variable
1406
+ $wpc_term = null;
1407
+ if ( isset( $_GET['wpc_term'] ) && ! empty( $_GET['wpc_term'] ) ) {
1408
+ $wpc_term = $_GET['wpc_term'];
1409
+ }
1410
+
1411
+ // add tax query if user specified
1412
+ if ( ! empty( $wpc_term ) ) {
1413
+ $atts['tax_query'] = array(
1414
+ array(
1415
+ 'taxonomy' => $atts['taxonomy'],
1416
+ 'field' => $atts['field'],
1417
+ 'terms' => $wpc_term,
1418
+ ),
1419
+ );
1420
+ }
1421
+ else if ( ! empty( $atts['terms'] ) ) {
1422
+ $atts['tax_query'] = array(
1423
+ array(
1424
+ 'taxonomy' => $atts['taxonomy'],
1425
+ 'field' => $atts['field'],
1426
+ 'terms' => $atts['terms'],
1427
+ ),
1428
+ );
1429
+ }
1430
+
1431
+ // run query
1432
+ $wc_shortcodes_posts_query = new WP_Query($atts);
1433
+
1434
+ // display
1435
+ $html = '';
1436
+
1437
+ $class = array();
1438
+ $class[] = 'wc-shortcodes-featured-posts';
1439
+ $class[] = 'wc-shortcodes-clearfix';
1440
+ $class[] = 'wc-shortcodes-featured-posts-layout-' . $display['layout'];
1441
+ $class[] = 'wc-shortcodes-featured-posts-template-' . $display['template'];
1442
+
1443
+ $html .= '<div id="wc-shortcodes-featured-posts" class="wc-shortcodes-featured-posts-wrapper">';
1444
+ $html .= '<div id="wc-shortcodes-featured-posts-'.$instance.'" class="' . esc_attr( implode( ' ', $class ) ) . '">';
1445
+
1446
+ while( $wc_shortcodes_posts_query->have_posts() ) {
1447
+ $wc_shortcodes_posts_query->the_post();
1448
+
1449
+ ob_start();
1450
+ include('templates/featured/content.php');
1451
+ $html .= ob_get_clean();
1452
+ }
1453
+
1454
+ $html .= '</div>';
1455
+ $html .= '</div>';
1456
+
1457
+ // reset query
1458
+ wp_reset_query();
1459
+
1460
+ return $html;
1461
+ }
1462
+
1463
  public function image( $atts ) {
1464
  $atts = shortcode_atts( parent::$attr->image, $atts );
1465
  $atts = WPC_Shortcodes_Sanitize::image_attr( $atts );
1549
  return $html;
1550
  }
1551
 
1552
+ public function image_links( $atts ) {
1553
+ $atts = shortcode_atts( parent::$attr->image_links, $atts );
1554
+ $atts = WPC_Shortcodes_Sanitize::image_links_attr( $atts );
1555
+
1556
+ $html = '';
1557
+ $columns = 0;
1558
+
1559
+ for ( $i = 1; $i <= 4; $i++ ) {
1560
+ if ( isset( $atts['image_'.$i] ) && ! empty ( $atts['image_'.$i] ) ) {
1561
+ $columns++;
1562
+
1563
+ $style = array();
1564
+ $style[] = 'background-image:url(\''.esc_url( $atts['image_'.$i] ).'\')';
1565
+ $style[] = 'height:'.$atts['height'];
1566
+
1567
+ $text = '';
1568
+ if ( isset( $atts['text_'.$i] ) && ! empty ( $atts['text_'.$i] ) ) {
1569
+ $text = '<div class="wc-shortcodes-image-link-text"><'.$atts['heading_type'].' class="wc-shortcodes-image-links-heading">' . $atts['text_'.$i] . '</'.$atts['heading_type'].'></div>';
1570
+ }
1571
+
1572
+ $html .= '<a class="wc-shortcodes-image-link wc-shortcodes-image-link-'.$i.'" href="' . esc_url( $atts['url_'.$i] ) . '">';
1573
+ if ( 'under' == $atts['text_position'] ) {
1574
+ $html .= '<div class="wc-shortcodes-image-link-background-wrapper"><div class="wc-shortcodes-image-link-background" style="' . implode( ';', $style ) . '"></div>' . $text . '</div>';
1575
+ }
1576
+ else {
1577
+ $html .= '<div class="wc-shortcodes-image-link-background-wrapper"><div class="wc-shortcodes-image-link-background" style="' . implode( ';', $style ) . '">' . $text . '</div></div>';
1578
+ }
1579
+ $html .= '</a>';
1580
+ }
1581
+ }
1582
+
1583
+ if ( ! empty( $html ) ) {
1584
+ $classes = array();
1585
+ $classes[] = 'wc-shortcodes-image-links-wrapper';
1586
+ $classes[] = 'wc-shortcodes-image-link-text-position-'.$atts['text_position'];
1587
+ $classes[] = 'wc-shortcodes-image-link-columns-' . $columns;
1588
+ if ( ! empty( $atts['class'] ) ) {
1589
+ $classes = $atts['class'];
1590
+ }
1591
+ $html = '<div id="wc-shortcodes-image-links" class="'.implode( ' ', $classes ).'"><div class="wc-shortcodes-image-links-wrapper-inner">'.$html.'</div>';
1592
+ }
1593
+
1594
+ return $html;
1595
+ }
1596
+
1597
  public function fa( $atts ) {
1598
  $atts = shortcode_atts( parent::$attr->fa, $atts );
1599
  $atts = WPC_Shortcodes_Sanitize::fa_attr( $atts );
public/class-sanitize.php CHANGED
@@ -362,6 +362,15 @@ class WPC_Shortcodes_Sanitize {
362
  return $default;
363
  }
364
 
 
 
 
 
 
 
 
 
 
365
  public static function text_align( $value, $default = '' ) {
366
  $whitelist = WPC_Shortcodes_Widget_Options::text_align_values();
367
 
@@ -784,6 +793,68 @@ class WPC_Shortcodes_Sanitize {
784
  return $atts;
785
  }
786
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
  public static function testimonial_attr( $atts ) {
788
  foreach ( $atts as $key => $value ) {
789
  switch( $key ) {
@@ -1214,4 +1285,77 @@ class WPC_Shortcodes_Sanitize {
1214
 
1215
  return $atts;
1216
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1217
  }
362
  return $default;
363
  }
364
 
365
+ public static function image_link_text_position_values( $value, $default = '' ) {
366
+ $whitelist = WPC_Shortcodes_Widget_Options::image_link_text_position_values();
367
+
368
+ if ( array_key_exists( $value, $whitelist ) )
369
+ return $value;
370
+
371
+ return $default;
372
+ }
373
+
374
  public static function text_align( $value, $default = '' ) {
375
  $whitelist = WPC_Shortcodes_Widget_Options::text_align_values();
376
 
793
  return $atts;
794
  }
795
 
796
+ public static function image_links_attr( $atts ) {
797
+ foreach ( $atts as $key => $value ) {
798
+ switch( $key ) {
799
+ // image 1
800
+ case 'image_1' :
801
+ $atts[ $key ] = esc_url_raw( $value );
802
+ break;
803
+ case 'text_1' :
804
+ $atts[ $key ] = sanitize_text_field( $value );
805
+ break;
806
+ case 'url_1' :
807
+ $atts[ $key ] = esc_url_raw( $value );
808
+ break;
809
+ // image 2
810
+ case 'image_2' :
811
+ $atts[ $key ] = esc_url_raw( $value );
812
+ break;
813
+ case 'text_2' :
814
+ $atts[ $key ] = sanitize_text_field( $value );
815
+ break;
816
+ case 'url_2' :
817
+ $atts[ $key ] = esc_url_raw( $value );
818
+ break;
819
+ // image 3
820
+ case 'image_3' :
821
+ $atts[ $key ] = esc_url_raw( $value );
822
+ break;
823
+ case 'text_3' :
824
+ $atts[ $key ] = sanitize_text_field( $value );
825
+ break;
826
+ case 'url_3' :
827
+ $atts[ $key ] = esc_url_raw( $value );
828
+ break;
829
+ // image 4
830
+ case 'image_4' :
831
+ $atts[ $key ] = esc_url_raw( $value );
832
+ break;
833
+ case 'text_4' :
834
+ $atts[ $key ] = sanitize_text_field( $value );
835
+ break;
836
+ case 'url_4' :
837
+ $atts[ $key ] = esc_url_raw( $value );
838
+ break;
839
+ // Settings
840
+ case 'text_position' :
841
+ $atts[ $key ] = self::image_link_text_position_values( $value );
842
+ break;
843
+ case 'height' :
844
+ $atts[ $key ] = self::css_unit( $value );
845
+ break;
846
+ case 'heading_type' :
847
+ $atts[ $key ] = self::heading_type( $value );
848
+ break;
849
+ case 'class' :
850
+ $atts[ $key ] = self::html_classes( $value );
851
+ break;
852
+ }
853
+ }
854
+
855
+ return $atts;
856
+ }
857
+
858
  public static function testimonial_attr( $atts ) {
859
  foreach ( $atts as $key => $value ) {
860
  switch( $key ) {
1285
 
1286
  return $atts;
1287
  }
1288
+
1289
+ // Fixes bools on widget update when checkbox is empty, and thus blank. We don't want to revert to the default value, but false.
1290
+ public static function featured_posts_attr_fix_bools( $atts ) {
1291
+ $bools = array( 'ignore_sticky_posts', 'show_meta_category', 'nopaging' );
1292
+
1293
+ foreach ( $bools as $key ) {
1294
+ if ( ! isset( $atts[ $key ] ) ) {
1295
+ $atts[ $key ] = 0;
1296
+ }
1297
+ }
1298
+
1299
+ return $atts;
1300
+ }
1301
+
1302
+ public static function featured_posts_attr( $atts ) {
1303
+ // sanitize bools
1304
+ $bools = array( 'ignore_sticky_posts', 'show_meta_category', 'nopaging' );
1305
+
1306
+ foreach ( $bools as $key ) {
1307
+ if ( isset( $atts[ $key ] ) ) {
1308
+ if ( "no" == $atts[ $key ] ) {
1309
+ $atts[ $key ] = 0;
1310
+ }
1311
+ else {
1312
+ $atts[ $key ] = (bool) $atts[ $key ];
1313
+ $atts[ $key ] = $atts[ $key ] ? 1 : 0;
1314
+ }
1315
+ }
1316
+ }
1317
+
1318
+ $atts['nopaging'] = (bool) $atts['nopaging'];
1319
+
1320
+ // sanitize ints
1321
+ $ints = array( 'p', 'posts_per_page', 'heading_size');
1322
+ foreach ( $ints as $key ) {
1323
+ if ( isset( $atts[ $key ] ) ) {
1324
+ $atts[ $key ] = (int) $atts[ $key ];
1325
+ }
1326
+ }
1327
+
1328
+ // sanitize limit
1329
+ $atts['nopaging'] = false;
1330
+ if ( $atts['posts_per_page'] <= 0 ) {
1331
+ $atts['posts_per_page'] = 1;
1332
+ }
1333
+ if ( $atts['posts_per_page'] >= 10 ) {
1334
+ $atts['posts_per_page'] = 10;
1335
+ }
1336
+
1337
+ // sanitize dropdown
1338
+ $valid_layouts = WPC_Shortcodes_Widget_Options::featured_post_layouts();
1339
+ if ( ! array_key_exists( $atts['layout'], $valid_layouts ) ) {
1340
+ $atts['layout'] = 'thumbnail';
1341
+ }
1342
+
1343
+ $valid_orders = WPC_Shortcodes_Widget_Options::order_fields();
1344
+ $atts['order'] = strtoupper( $atts['order'] );
1345
+ if ( ! in_array( $atts['order'], $valid_orders ) ) {
1346
+ $atts['order'] = 'DESC';
1347
+ }
1348
+
1349
+ $atts['heading_type'] = strtolower( $atts['heading_type'] );
1350
+ $valid_headings = WPC_Shortcodes_Widget_Options::heading_tags();
1351
+ $atts['heading_type'] = in_array( $atts['heading_type'], $valid_headings ) ? $atts['heading_type'] : 'h2';
1352
+
1353
+ // sanitize inputs
1354
+ $atts['title'] = sanitize_text_field( $atts['title'] );
1355
+ $atts['terms'] = sanitize_text_field( $atts['terms'] );
1356
+ $atts['pids'] = sanitize_text_field( $atts['pids'] );
1357
+ $atts['post__in'] = sanitize_text_field( $atts['post__in'] );
1358
+
1359
+ return $atts;
1360
+ }
1361
  }
public/class-vars.php CHANGED
@@ -8,7 +8,7 @@ class WPC_Shortcodes_Vars {
8
  *
9
  * @var string
10
  */
11
- const VERSION = '3.24';
12
  const DB_VERSION = '1.0';
13
 
14
  /**
@@ -323,6 +323,29 @@ class WPC_Shortcodes_Vars {
323
  // misc options
324
  'class' => '',
325
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  self::$attr->countdown = array(
327
  'date' => '',
328
  'format' => 'wdHMs',
@@ -448,5 +471,34 @@ class WPC_Shortcodes_Vars {
448
  'slider_pause' => 4000,
449
  'slider_auto' => 0,
450
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
  }
452
  }
8
  *
9
  * @var string
10
  */
11
+ const VERSION = '3.26';
12
  const DB_VERSION = '1.0';
13
 
14
  /**
323
  // misc options
324
  'class' => '',
325
  );
326
+ self::$attr->image_links = array(
327
+ // image 1
328
+ 'image_1' => '',
329
+ 'text_1' => '',
330
+ 'url_1' => '',
331
+ // image 2
332
+ 'image_2' => '',
333
+ 'text_2' => '',
334
+ 'url_2' => '',
335
+ // image 3
336
+ 'image_3' => '',
337
+ 'text_3' => '',
338
+ 'url_3' => '',
339
+ // image 4
340
+ 'image_4' => '',
341
+ 'text_4' => '',
342
+ 'url_4' => '',
343
+ // settings
344
+ 'text_position' => 'center',
345
+ 'heading_type' => 'h3',
346
+ 'height' => '250px',
347
+ 'class' => '',
348
+ );
349
  self::$attr->countdown = array(
350
  'date' => '',
351
  'format' => 'wdHMs',
471
  'slider_pause' => 4000,
472
  'slider_auto' => 0,
473
  );
474
+ self::$attr->featured_posts = array(
475
+ 'title' => '', //use author id
476
+ 'author' => '', //use author id
477
+ 'author_name' => '', //use 'user_nicename' (NOT name).
478
+ 'pids' => '', //use post id.
479
+ 'p' => '', //use post id.
480
+ 'post__in' => '', //use post ids
481
+ 'order' => 'DESC', // DESC, ASC
482
+ 'orderby' => 'date',
483
+ 'post_status' => 'publish',
484
+ 'post_type' => 'post', // post, page, wc_portfolio_item, etc
485
+ 'posts_per_page' => 4, //number of post to show per page
486
+ 'nopaging' => false, //show all posts or use pagination. Default value is 'false', use paging.
487
+ 'ignore_sticky_posts' => 1,
488
+
489
+ 'taxonomy' => '', // category, post_tag, wc_portfolio_tag, etc
490
+ 'field' => 'slug', // slug or id
491
+ 'terms' => '', // taxonomy terms.
492
+
493
+ 'show_meta_category' => 1, // show heading?
494
+ 'show_content' => 0, // show main content?
495
+
496
+ 'size' => 'medium', // default thumbnail size
497
+
498
+ 'heading_type' => 'h2', // heading tag for title
499
+ 'layout' => 'thumbnail',
500
+ 'template' => 'featured',
501
+ 'excerpt_length' => 20,
502
+ );
503
  }
504
  }
public/class-widget-options.php CHANGED
@@ -11,6 +11,8 @@ class WPC_Shortcodes_Widget_Options {
11
  'h4' => 'h4',
12
  'h5' => 'h5',
13
  'h6' => 'h6',
 
 
14
  );
15
  }
16
 
@@ -53,6 +55,13 @@ class WPC_Shortcodes_Widget_Options {
53
  );
54
  }
55
 
 
 
 
 
 
 
 
56
  public static function post_slider_templates() {
57
  return array(
58
  'slider1' => 'Slider 1',
@@ -253,6 +262,15 @@ class WPC_Shortcodes_Widget_Options {
253
  );
254
  }
255
 
 
 
 
 
 
 
 
 
 
256
  public static function text_align_values() {
257
  return array(
258
  '' => 'None',
11
  'h4' => 'h4',
12
  'h5' => 'h5',
13
  'h6' => 'h6',
14
+ 'p' => 'p',
15
+ 'span' => 'span',
16
  );
17
  }
18
 
55
  );
56
  }
57
 
58
+ public static function featured_post_layouts() {
59
+ return array(
60
+ 'thumbnail' => 'Thumbnail',
61
+ 'showcase' => 'Showcase',
62
+ );
63
+ }
64
+
65
  public static function post_slider_templates() {
66
  return array(
67
  'slider1' => 'Slider 1',
262
  );
263
  }
264
 
265
+ public static function image_link_text_position_values() {
266
+ return array(
267
+ 'top' => 'Top',
268
+ 'center' => 'Center',
269
+ 'bottom' => 'Bottom',
270
+ 'under' => 'Under',
271
+ );
272
+ }
273
+
274
  public static function text_align_values() {
275
  return array(
276
  '' => 'None',
public/class-widgets.php CHANGED
@@ -34,5 +34,7 @@ class WPC_Shortcodes_Widgets extends WPC_Shortcodes_Vars {
34
  public function register_widgets() {
35
  register_widget( 'WPC_Shortcodes_Widget_Social_Icons' );
36
  register_widget( 'WPC_Shortcodes_Widget_Post_Slider' );
 
 
37
  }
38
  }
34
  public function register_widgets() {
35
  register_widget( 'WPC_Shortcodes_Widget_Social_Icons' );
36
  register_widget( 'WPC_Shortcodes_Widget_Post_Slider' );
37
+ register_widget( 'WPC_Shortcodes_Widget_Image_Links' );
38
+ register_widget( 'WPC_Shortcodes_Widget_Featured_Posts' );
39
  }
40
  }
public/templates/featured/content.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="featured-post-<?php the_ID(); ?>" class="wc-shortcodes-featured-posts-content">
2
+ <div id="wc-shortcodes-featured-posts-inner" class="wc-shortcodes-featured-posts-content-inner">
3
+ <?php $class = ''; ?>
4
+ <?php if ( has_post_thumbnail() && ! post_password_required() ) : ?>
5
+ <?php $image_style = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), $display['size'] ); ?>
6
+ <?php $image_style = 'background-image:url(\''.$image_style[0].'\');'; ?>
7
+
8
+ <div class="wcs-fp-post-thumbnail-wrapper">
9
+ <a href="<?php the_permalink(); ?>"><div class="wcs-fp-post-thumbnail" style="<?php echo $image_style; ?>"></div></a>
10
+ </div>
11
+
12
+ <?php $class = ' wcs-fp-has-post-thumbnail'; ?>
13
+ <?php endif; ?>
14
+
15
+ <div class="wcs-fp-post-content<?php echo $class; ?>">
16
+ <?php if ( $display['show_meta_category'] ) : ?>
17
+ <?php echo wc_shortcodes_get_posted_category(); ?>
18
+ <?php endif; ?>
19
+
20
+ <div class="wcs-fp-post-header">
21
+ <<?php echo $display['heading_type']; ?> class="wcs-fp-title">
22
+ <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
23
+ </<?php echo $display['heading_type']; ?>>
24
+ </div><!-- .entry-header -->
25
+ </div>
26
+ </div><!-- .wc-shortcodes-post-border -->
27
+ </div><!-- #post -->
public/widgets/widget-featured-posts.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @uses WP
4
+ * @uses _Widget
5
+ */
6
+ class WPC_Shortcodes_Widget_Featured_Posts extends WP_Widget {
7
+ function __construct() {
8
+
9
+ $widget_ops = array( 'description' => __('Add featured posts to your widget.') );
10
+ parent::__construct( 'wc_shortcodes_featured_posts', __('Angie Makes - Featured Posts'), $widget_ops );
11
+ }
12
+
13
+ function widget($args, $instance) {
14
+ $instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
15
+
16
+ $shortcode = array();
17
+ foreach ( $instance as $key => $value ) {
18
+ if ( 'title' == $key ) {
19
+ continue;
20
+ }
21
+ $shortcode[] = $key . '="' . $value . '"';
22
+ }
23
+
24
+ if ( ! empty( $shortcode ) ) {
25
+ $shortcode = implode( " ", $shortcode );
26
+ $shortcode = '[wc_featured_posts ' . $shortcode . '][/wc_featured_posts]';
27
+ }
28
+ else {
29
+ $shortcode = '[wc_featured_posts][/wc_featured_posts]';
30
+ }
31
+
32
+ echo $args['before_widget'];
33
+
34
+ if ( !empty($instance['title']) )
35
+ echo $args['before_title'] . $instance['title'] . $args['after_title'];
36
+
37
+ echo do_shortcode( $shortcode );
38
+ echo $args['after_widget'];
39
+ }
40
+
41
+ function update( $new_instance, $old_instance ) {
42
+ $new_instance = WPC_Shortcodes_Sanitize::featured_posts_attr_fix_bools( $new_instance );
43
+ $instance = WPC_Shortcodes_Sanitize::featured_posts_attr( $new_instance );
44
+
45
+ return $instance;
46
+ }
47
+
48
+ function form( $instance ) {
49
+ // array_merge needs both values to be array.
50
+ if ( ! is_array( $instance ) ) {
51
+ $instance = array();
52
+ }
53
+
54
+ $o = array_merge( WPC_Shortcodes_Vars::$attr->featured_posts, $instance );
55
+ $o = WPC_Shortcodes_Sanitize::featured_posts_attr( $o );
56
+
57
+ $post_types = WPC_Shortcodes_Widget_Options::post_types();
58
+ ?>
59
+
60
+ <div id="wc-shortcodes-featured-posts-widget-<?php echo $this->number; ?>" class="wc-shortcodes-featured-posts-widget wc-shortcodes-visual-manager">
61
+ <?php if ( ! isset( $o['wc_shortcodes_using_visual_manager'] ) ) : ?>
62
+ <p>
63
+ <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
64
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $o['title']; ?>" />
65
+ </p>
66
+ <?php endif; ?>
67
+
68
+ <div class="wpc-ui-theme-override">
69
+ <h3>Select Posts</h3>
70
+ <div>
71
+ <p>
72
+ <label for="<?php echo $this->get_field_id('pids'); ?>"><?php _e('Post IDs:') ?></label>
73
+ <input type="text" class="wc-shortcodes-widget-option widefat wc-shortcodes-widget-autocomplete-select" id="<?php echo $this->get_field_id('pids'); ?>" data-autocomplete-type="multi" data-autocomplete-lookup="post" name="<?php echo $this->get_field_name('pids'); ?>" value="<?php echo $o['pids']; ?>" />
74
+ <span class="wcs-description">Leave blank to display all posts.</span>
75
+ </p>
76
+ <p>
77
+ <label for="<?php echo $this->get_field_id('order'); ?>"><?php _e('Order:'); ?></label>
78
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('order'); ?>" name="<?php echo $this->get_field_name('order'); ?>">
79
+ <?php foreach ( WPC_Shortcodes_Widget_Options::order_fields() as $key => $value ) : ?>
80
+ <option value="<?php echo $key; ?>"<?php selected( $o['order'], $key ); ?>><?php echo $value; ?></option>';
81
+ <?php endforeach; ?>
82
+ </select>
83
+ </p>
84
+ <p>
85
+ <label for="<?php echo $this->get_field_id('orderby'); ?>"><?php _e('Order By:'); ?></label>
86
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>">
87
+ <?php foreach ( WPC_Shortcodes_Widget_Options::order_by_fields() as $key => $value ) : ?>
88
+ <option value="<?php echo $key; ?>"<?php selected( $o['orderby'], $key ); ?>><?php echo $value; ?></option>';
89
+ <?php endforeach; ?>
90
+ </select>
91
+ </p>
92
+ <p>
93
+ <label for="<?php echo $this->get_field_id('post_type'); ?>"><?php _e('Post Type:'); ?></label>
94
+ <select id="<?php echo $this->get_field_id('post_type'); ?>" class="wc-shortcodes-widget-option wc-shortcodes-widget-post-type-selector" name="<?php echo $this->get_field_name('post_type'); ?>">
95
+ <?php foreach ( $post_types as $key => $value ) : ?>
96
+ <option value="<?php echo $key; ?>"<?php selected( $o['post_type'], $key ); ?>><?php echo $value; ?></option>';
97
+ <?php endforeach; ?>
98
+ </select>
99
+ </p>
100
+ <p>
101
+ <label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:'); ?></label>
102
+ <select id="<?php echo $this->get_field_id('taxonomy'); ?>" class="wc-shortcodes-widget-option wc-shortcodes-widget-taxonomy-selector" name="<?php echo $this->get_field_name('taxonomy'); ?>">
103
+ <option value=""<?php selected( $o['taxonomy'], "" ); ?>>No Taxonomy</option>';
104
+ <?php foreach ( $post_types as $post_type_name ) : ?>
105
+ <?php $taxonomies = get_object_taxonomies( $post_type_name, 'names' ); ?>
106
+ <?php if ( $taxonomies ) : ?>
107
+ <?php foreach ( $taxonomies as $key ) : ?>
108
+ <option value="<?php echo $key; ?>"<?php selected( $o['taxonomy'], $key ); ?> data-post-type="<?php echo $post_type_name; ?>"><?php echo $key; ?></option>
109
+ <?php endforeach; ?>
110
+ <?php endif; ?>
111
+ <?php endforeach; ?>
112
+ </select>
113
+ </p>
114
+ <p>
115
+ <label for="<?php echo $this->get_field_id('terms'); ?>"><?php _e('Terms:') ?></label>
116
+ <input type="text" class="wc-shortcodes-widget-option widefat wc-shortcodes-widget-autocomplete-select" id="<?php echo $this->get_field_id('terms'); ?>" data-autocomplete-type="multi" data-autocomplete-lookup="terms" name="<?php echo $this->get_field_name('terms'); ?>" value="<?php echo $o['terms']; ?>" />
117
+ <span class="wcs-description">Leave blank to display all terms.</span>
118
+ </p>
119
+ <p>
120
+ <label for="<?php echo $this->get_field_id('posts_per_page'); ?>"><?php _e('Posts Per Page:') ?></label>
121
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('posts_per_page'); ?>" name="<?php echo $this->get_field_name('posts_per_page'); ?>" value="<?php echo $o['posts_per_page']; ?>" />
122
+ <span class="wcs-description">Enter -1 for unlimited posts.</span>
123
+ </p>
124
+ <p>
125
+ <input type="checkbox" class="wc-shortcodes-widget-option checkbox" id="<?php echo $this->get_field_id('ignore_sticky_posts'); ?>" name="<?php echo $this->get_field_name('ignore_sticky_posts'); ?>" value="1" <?php checked( $o['ignore_sticky_posts'], 1 ); ?> />
126
+ <label for="<?php echo $this->get_field_id('ignore_sticky_posts'); ?>"><?php _e('Ignore Sticky Posts') ?></label>
127
+ </p>
128
+ </div>
129
+ <h3>Content</h3>
130
+ <div>
131
+ <p>
132
+ <input type="checkbox" class="wc-shortcodes-widget-option checkbox" id="<?php echo $this->get_field_id('show_meta_category'); ?>" name="<?php echo $this->get_field_name('show_meta_category'); ?>" value="1" <?php checked( $o['show_meta_category'], 1 ); ?> />
133
+ <label for="<?php echo $this->get_field_id('show_meta_category'); ?>"><?php _e('Show Meta Category') ?></label>
134
+ </p>
135
+ <p>
136
+ <label for="<?php echo $this->get_field_id('size'); ?>"><?php _e('Image Size:'); ?></label>
137
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('size'); ?>" name="<?php echo $this->get_field_name('size'); ?>">
138
+ <?php foreach ( WPC_Shortcodes_Widget_Options::image_sizes() as $key => $value ) : ?>
139
+ <option value="<?php echo $key; ?>"<?php selected( $o['size'], $key ); ?>><?php echo $value; ?></option>
140
+ <?php endforeach; ?>
141
+ </select>
142
+ </p>
143
+ <p>
144
+ <label for="<?php echo $this->get_field_id('heading_type'); ?>"><?php _e('Heading Type:'); ?></label>
145
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('heading_type'); ?>" name="<?php echo $this->get_field_name('heading_type'); ?>">
146
+ <?php foreach ( WPC_Shortcodes_Widget_Options::heading_tags() as $key => $value ) : ?>
147
+ <option value="<?php echo $key; ?>"<?php selected( $o['heading_type'], $key ); ?>><?php echo $value; ?></option>';
148
+ <?php endforeach; ?>
149
+ </select>
150
+ </p>
151
+ <p>
152
+ <label for="<?php echo $this->get_field_id('layout'); ?>"><?php _e('Layout:'); ?></label>
153
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('layout'); ?>" name="<?php echo $this->get_field_name('layout'); ?>">
154
+ <?php foreach ( WPC_Shortcodes_Widget_Options::featured_post_layouts() as $key => $value ) : ?>
155
+ <option value="<?php echo $key; ?>"<?php selected( $o['layout'], $key ); ?>><?php echo $value; ?></option>';
156
+ <?php endforeach; ?>
157
+ </select>
158
+ </p>
159
+ </div>
160
+ </div>
161
+ </div>
162
+
163
+ <script type="text/javascript">
164
+ /* <![CDATA[ */
165
+ jQuery(document).ready(function($){
166
+ $('#wc-shortcodes-featured-posts-widget-<?php echo $this->number; ?> .wpc-ui-theme-override').accordion({heightStyle: "content", collapsible: true}).wcPostsWidget();
167
+ });
168
+ /* ]]> */
169
+ </script>
170
+ <?php
171
+ }
172
+ }
public/widgets/widget-heading.php CHANGED
@@ -10,6 +10,7 @@ class WPC_Shortcodes_Widget_Heading extends WPC_Shortcodes_Widget_Base {
10
  $instance = array();
11
  }
12
 
 
13
  $o = array_merge( WPC_Shortcodes_Vars::$attr->heading, $instance );
14
  $o = WPC_Shortcodes_Sanitize::heading_attr( $o );
15
  ?>
@@ -20,10 +21,10 @@ class WPC_Shortcodes_Widget_Heading extends WPC_Shortcodes_Widget_Base {
20
  <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $o['title']; ?>" />
21
  </p>
22
  <p>
23
- <label for="<?php echo $this->get_field_id('heading_type'); ?>"><?php _e('Heading Type:'); ?></label>
24
- <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('heading_type'); ?>" name="<?php echo $this->get_field_name('heading_type'); ?>">
25
  <?php foreach ( WPC_Shortcodes_Widget_Options::heading_tags() as $key => $value ) : ?>
26
- <option value="<?php echo $key; ?>"<?php selected( $o['heading_type'], $key ); ?>><?php echo $value; ?></option>';
27
  <?php endforeach; ?>
28
  </select>
29
  </p>
10
  $instance = array();
11
  }
12
 
13
+ // pr(WPC_Shortcodes_Vars::$attr->heading);
14
  $o = array_merge( WPC_Shortcodes_Vars::$attr->heading, $instance );
15
  $o = WPC_Shortcodes_Sanitize::heading_attr( $o );
16
  ?>
21
  <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $o['title']; ?>" />
22
  </p>
23
  <p>
24
+ <label for="<?php echo $this->get_field_id('type'); ?>"><?php _e('Heading Type:'); ?></label>
25
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('type'); ?>" name="<?php echo $this->get_field_name('type'); ?>">
26
  <?php foreach ( WPC_Shortcodes_Widget_Options::heading_tags() as $key => $value ) : ?>
27
+ <option value="<?php echo $key; ?>"<?php selected( $o['type'], $key ); ?>><?php echo $value; ?></option>';
28
  <?php endforeach; ?>
29
  </select>
30
  </p>
public/widgets/widget-image-links.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @uses WP
4
+ * @uses _Widget
5
+ */
6
+ class WPC_Shortcodes_Widget_Image_Links extends WP_Widget {
7
+ function __construct() {
8
+
9
+ $widget_ops = array( 'description' => __('Add image links to your widget area.') );
10
+ parent::__construct( 'wc_shortcodes_image_links', __('Angie Makes - Image Links'), $widget_ops );
11
+ }
12
+
13
+ function widget($args, $instance) {
14
+ $shortcode = array();
15
+ foreach ( $instance as $key => $value ) {
16
+ $shortcode[] = $key . '="' . $value . '"';
17
+ }
18
+
19
+ if ( ! empty( $shortcode ) ) {
20
+ $shortcode = implode( " ", $shortcode );
21
+ $shortcode = '[wc_image_links ' . $shortcode . '][/wc_image_links]';
22
+ }
23
+ else {
24
+ $shortcode = '[wc_image_links][/wc_image_links]';
25
+ }
26
+
27
+ echo $args['before_widget'];
28
+ echo do_shortcode( $shortcode );
29
+ echo $args['after_widget'];
30
+ }
31
+
32
+ function update( $new_instance, $old_instance ) {
33
+ $instance = WPC_Shortcodes_Sanitize::image_links_attr( $new_instance );
34
+
35
+ return $instance;
36
+ }
37
+
38
+ function form( $instance ) {
39
+ // array_merge needs both values to be array.
40
+ if ( ! is_array( $instance ) ) {
41
+ $instance = array();
42
+ }
43
+
44
+ $o = array_merge( WPC_Shortcodes_Vars::$attr->image_links, $instance );
45
+ $o = WPC_Shortcodes_Sanitize::image_links_attr( $o );
46
+
47
+ ?>
48
+
49
+ <div id="wc-shortcodes-image-links-widget-<?php echo $this->number; ?>" class="wc-shortcodes-visual-manager wpc-image-wrapper wpc-ui-theme-override">
50
+ <?php for ( $i = 1; $i <= 4; $i++ ) : ?>
51
+ <?php
52
+ $imagestyle = '';
53
+ if ( empty( $o['image_1'] ) ) {
54
+ $imagestyle = ' style="display:none"';
55
+ }
56
+ ?>
57
+ <h3>Image <?php echo $i; ?></h3>
58
+ <div>
59
+ <div class="wpc-widgets-image-field">
60
+ <label for="<?php echo $this->get_field_id( 'image_'.$i ); ?>"><?php echo _e( 'Image URL:' ); ?>
61
+ <input class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id( 'image_'.$i ); ?>" name="<?php echo $this->get_field_name( 'image_'.$i ); ?>" type="text" value="<?php echo esc_url( $o['image_'.$i] ); ?>" />
62
+ </label>
63
+ <a class="wpc-widgets-image-upload button inline-button" data-target="#<?php echo $this->get_field_id( 'image_'.$i ); ?>" data-preview=".wpc-widgets-preview-image" data-frame="select" data-state="wpc_widgets_insert_single" data-fetch="url" data-title="Insert Image" data-button="Insert" data-class="media-frame wpc-widgets-custom-uploader" title="Add Media">Add Media</a>
64
+ <a class="button wpc-widgets-delete-image" data-target="#<?php echo $this->get_field_id( 'image_'.$i ); ?>" data-preview=".wpc-widgets-preview-image">Delete</a>
65
+ <div class="wpc-widgets-preview-image"<?php echo $imagestyle; ?>><img src="<?php echo esc_url($o['image_'.$i]); ?>" /></div>
66
+ </div>
67
+ <p>
68
+ <label for="<?php echo $this->get_field_id('text_'.$i); ?>"><?php _e('Text:') ?></label>
69
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('text_'.$i); ?>" name="<?php echo $this->get_field_name('text_'.$i); ?>" value="<?php echo $o['text_'.$i]; ?>" />
70
+ </p>
71
+ <p>
72
+ <label for="<?php echo $this->get_field_id('url_'.$i); ?>"><?php _e('URL:') ?></label>
73
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('url_'.$i); ?>" name="<?php echo $this->get_field_name('url_'.$i); ?>" value="<?php echo $o['url_'.$i]; ?>" />
74
+ </p>
75
+ </div>
76
+ <?php endfor; ?>
77
+ <h3>Settings</h3>
78
+ <div>
79
+ <p>
80
+ <label for="<?php echo $this->get_field_id('text_position'); ?>"><?php _e('Text Position:'); ?></label>
81
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('text_position'); ?>" name="<?php echo $this->get_field_name('text_position'); ?>">
82
+ <?php foreach ( WPC_Shortcodes_Widget_Options::image_link_text_position_values() as $key => $value ) : ?>
83
+ <option value="<?php echo $key; ?>"<?php selected( $o['text_position'], $key ); ?>><?php echo $value; ?></option>';
84
+ <?php endforeach; ?>
85
+ </select>
86
+ </p>
87
+ <p>
88
+ <label for="<?php echo $this->get_field_id('heading_type'); ?>"><?php _e('Heading Type:'); ?></label>
89
+ <select class="wc-shortcodes-widget-option" id="<?php echo $this->get_field_id('heading_type'); ?>" name="<?php echo $this->get_field_name('heading_type'); ?>">
90
+ <?php foreach ( WPC_Shortcodes_Widget_Options::heading_tags() as $key => $value ) : ?>
91
+ <option value="<?php echo $key; ?>"<?php selected( $o['heading_type'], $key ); ?>><?php echo $value; ?></option>';
92
+ <?php endforeach; ?>
93
+ </select>
94
+ </p>
95
+ <p>
96
+ <label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height:') ?></label>
97
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" value="<?php echo $o['height']; ?>" />
98
+ <span class="wcs-description">Enter CSS unit value.</span>
99
+ </p>
100
+ <p>
101
+ <label for="<?php echo $this->get_field_id('class'); ?>"><?php _e('Class:') ?></label>
102
+ <input type="text" class="wc-shortcodes-widget-option widefat" id="<?php echo $this->get_field_id('class'); ?>" name="<?php echo $this->get_field_name('class'); ?>" value="<?php echo $o['class']; ?>" />
103
+ <span class="wcs-description">Enter class name for custom CSS styling.</span>
104
+ </p>
105
+ </div>
106
+ </div>
107
+
108
+ <script type="text/javascript">
109
+ /* <![CDATA[ */
110
+ jQuery(document).ready(function($){
111
+ $('#wc-shortcodes-image-links-widget-<?php echo $this->number; ?>').accordion({heightStyle: "content", collapsible: true});
112
+ });
113
+ /* ]]> */
114
+ </script>
115
+ <?php
116
+ }
117
+ }
public/widgets/widget-post-slider.php CHANGED
@@ -7,7 +7,7 @@ class WPC_Shortcodes_Widget_Post_Slider extends WP_Widget {
7
  function __construct() {
8
 
9
  $widget_ops = array( 'description' => __('Add a post slider to your widget area.') );
10
- parent::__construct( 'wc_shortcodes_post_slider', __('Post Slider'), $widget_ops );
11
  }
12
 
13
  function widget($args, $instance) {
@@ -209,7 +209,7 @@ class WPC_Shortcodes_Widget_Post_Slider extends WP_Widget {
209
  <script type="text/javascript">
210
  /* <![CDATA[ */
211
  jQuery(document).ready(function($){
212
- $('#wc-shortcodes-post-slider-widget-<?php echo $this->number; ?>').accordion({heightStyle: "content"}).wcPostsWidget();
213
  });
214
  /* ]]> */
215
  </script>
7
  function __construct() {
8
 
9
  $widget_ops = array( 'description' => __('Add a post slider to your widget area.') );
10
+ parent::__construct( 'wc_shortcodes_post_slider', __('Angie Makes - Post Slider'), $widget_ops );
11
  }
12
 
13
  function widget($args, $instance) {
209
  <script type="text/javascript">
210
  /* <![CDATA[ */
211
  jQuery(document).ready(function($){
212
+ $('#wc-shortcodes-post-slider-widget-<?php echo $this->number; ?>').accordion({heightStyle: "content", collapsible: true}).wcPostsWidget();
213
  });
214
  /* ]]> */
215
  </script>
public/widgets/widget-posts.php CHANGED
@@ -180,7 +180,7 @@ class WPC_Shortcodes_Widget_Posts extends WPC_Shortcodes_Widget_Base {
180
  <script type="text/javascript">
181
  /* <![CDATA[ */
182
  jQuery(document).ready(function($){
183
- $('#wc-shortcodes-posts-widget-<?php echo $this->number; ?>').accordion({heightStyle: "content"}).wcPostsWidget();
184
  });
185
  /* ]]> */
186
  </script>
180
  <script type="text/javascript">
181
  /* <![CDATA[ */
182
  jQuery(document).ready(function($){
183
+ $('#wc-shortcodes-posts-widget-<?php echo $this->number; ?>').accordion({heightStyle: "content", collapsible: true}).wcPostsWidget();
184
  });
185
  /* ]]> */
186
  </script>
public/widgets/widget-social-icons.php CHANGED
@@ -15,6 +15,9 @@ class WPC_Shortcodes_Widget_Social_Icons extends WP_Widget {
15
 
16
  $shortcode = array();
17
  foreach ( $instance as $key => $value ) {
 
 
 
18
  $shortcode[] = $key . '="' . $value . '"';
19
  }
20
 
15
 
16
  $shortcode = array();
17
  foreach ( $instance as $key => $value ) {
18
+ if ( 'title' == $key ) {
19
+ continue;
20
+ }
21
  $shortcode[] = $key . '="' . $value . '"';
22
  }
23
 
readme.txt CHANGED
@@ -113,6 +113,15 @@ See our help article on [how to manually upload a plugin](http://knowledgebase.a
113
 
114
  == Changelog ==
115
 
 
 
 
 
 
 
 
 
 
116
  = Version 3.24 =
117
 
118
  * smoother masonry loading
113
 
114
  == Changelog ==
115
 
116
+ = Version 3.26 =
117
+
118
+ * Added featured posts widget
119
+
120
+ = Version 3.25 =
121
+
122
+ * added image links shortcode and widget
123
+ * added max height rule when default is set.
124
+
125
  = Version 3.24 =
126
 
127
  * smoother masonry loading
wc-shortcodes.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://angiemakes.com/feminine-wordpress-blog-themes-women/
5
  Description: A plugin that adds a useful family of shortcodes to your WordPress theme.
6
  Author: Chris Baldelomar
7
  Author URI: http://angiemakes.com/
8
- Version: 3.24
9
  License: GPLv2 or later
10
  */
11
 
5
  Description: A plugin that adds a useful family of shortcodes to your WordPress theme.
6
  Author: Chris Baldelomar
7
  Author URI: http://angiemakes.com/
8
+ Version: 3.26
9
  License: GPLv2 or later
10
  */
11