Completed
Push — master ( 019e58...ee1edc )
by
unknown
01:39
created

editor-modules.php ➔ add_wpimg_options()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 56

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 56
rs 8.9599
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * These functions are then localized and then appended with JS in enter-editor.js
5
 *
6
 * @since 1.0
7
 */
8
9
/**
10
 * Add the editor controls to any singular post object
11
 *
12
 * @since 1.0
13
 */
14
add_action( 'wp_footer', 'lasso_editor_controls' );
15
function lasso_editor_controls() {
16
17
	global $post;
18
19
	if ( lasso_user_can('edit_posts') ) {
20
21
		$status = get_post_status( get_the_ID() );
22
		$use_old_ui   = lasso_editor_get_option( 'use_old_ui', 'lasso_editor' );
23
		$button_color1 = lasso_editor_get_option('button-color1', 'lasso_editor','#0000ff');
24
		$button_color2 = lasso_editor_get_option('button-color2', 'lasso_editor','#000000');
25
		$dialog_color = lasso_editor_get_option('dialog-color', 'lasso_editor','#000055');
26
		$text_color = lasso_editor_get_option('text-color', 'lasso_editor','#ffffff');
27
		$hover_color1 = lasso_editor_adjustBrightness($button_color1, 50);
28
		$hover_color2 = lasso_editor_adjustBrightness($button_color2, 50);
29
30
		// let users add custom css classes
31
		$custom_classes = apply_filters( 'lasso_control_classes', '' );
32
33
		$post_access_class   = '';
34
		$post_new_disabled   = lasso_editor_get_option( 'post_adding_disabled', 'lasso_editor' );
35
		$post_settings_disabled = lasso_editor_get_option( 'post_settings_disabled', 'lasso_editor' );
36
		$shortcodify_disabled = lasso_editor_get_option( 'shortcodify_disabled', 'lasso_editor' );
37
38
39
		// CSS class if adding new post objects is disabled
40
		if ( 'on' == $post_new_disabled ) { $post_access_class = 'lasso--post-new-disabled'; }
41
42
		// CSS class if adjust settings is disabled
43
		if ( 'on' == $post_settings_disabled ) { $post_access_class = 'lasso--post-settings-disabled'; }
44
45
		// CSS class if adding new post objects AND settings are disabled
46
		if ( 'on' == $post_new_disabled && 'on' == $post_settings_disabled ) { $post_access_class = 'lasso--post-all-disabled'; }
47
48
		// CSS class if shortcodify or (Aesop Shortcode Conversion) is disabled
49
		$sc_saving_class = 'on' == $shortcodify_disabled ? 'shortcodify-disabled' : 'shortcodify-enabled';
50
51
		// user is capable
52
		$is_capable = is_singular() && lasso_user_can('edit_post');
53
		$is_mobile = wp_is_mobile();
54
		
55
		$mobile_style = $is_mobile ? 'style="bottom:0px;"' : null;
56
		$can_publish = lasso_user_can('publish_posts') || lasso_user_can('publish_pages');
57
		?>
58
		<style>
59
		#lasso-html--table:before {
60
			content: "<?php esc_attr_e( 'Table', 'lasso' );?>";
61
		}
62
		
63
		
64
		<?php
65
66
		if (!$use_old_ui) {
67
		?>
68
		
69
		.lasso-editor-controls--wrap, #lasso--post-settings2,#lasso--save,#lasso--post-delete,#lasso--exit,#lasso--publish {
70
			background-image: -webkit-linear-gradient(top,<?php echo $button_color1;?> 0,<?php echo $button_color2;?> 100%);
71
			background-image: -o-linear-gradient(top,<?php echo $button_color1;?> 0,<?php echo $button_color2;?> 100%);
72
			background-image: linear-gradient(to bottom,<?php echo $button_color1;?> 0,<?php echo $button_color2;?> 100%);
73
			color: <?php echo $text_color;?>;
74
		}
75
		
76
		.lasso--controls__right a:before, #lasso-toolbar--html__footer_desc, ul.lasso-editor-controls li:before,#lasso-side-comp-button.toolbar--side li:before
77
        {
78
			color: <?php echo $text_color;?> !important;
79
		}
80
		
81
		
82
		
83
		ul.lasso-editor-controls li:hover, #lasso--exit:hover,#lasso--post-settings2:hover,#lasso--post-delete:hover,#lasso--publish:hover,#lasso--save:hover {
84
			background-image: -webkit-linear-gradient(top,<?php echo $hover_color1;?> 0,<?php echo $hover_color2;?> 100%);
85
			background-image: -o-linear-gradient(top,<?php echo $hover_color1;?> 0,<?php echo $hover_color2;?> 100%);
86
			background-image: linear-gradient(to bottom,<?php echo $hover_color1;?> 0,<?php echo $hover_color2;?> 100%);
87
		}
88
		
89
		.lasso--modal__inner,.sweet-alert,#lasso-toolbar--components.toolbar--drop-up ul,#lasso-toolbar--components__list,#lasso-toolbar--html.html--drop-up #lasso-toolbar--html__wrap,
90
		#lasso-toolbar--link.link--drop-up #lasso-toolbar--link__wrap		{
91
			background: <?php echo $dialog_color;?>;
92
			color: <?php echo $text_color;?>;
93
		}
94
		.sweet-alert p,.lasso--modal__inner label,.lasso--toolbar__inner label {
95
			color: <?php echo $text_color;?> !important;
96
		}
97
		
98
		<?php if (!$is_mobile) { ?>
99
			.lasso-editor-controls--wrap {
100
				display:table;
101
			}
102
			ul.lasso-editor-controls {
103
				height:42px;
104
				font-size: 22px;
105
			}
106
			.lasso-editor-controls--wrap {
107
				height:42px;
108
			}
109
			#lasso--post-all:before {
110
				font-size: 22px;
111
			}
112
113
			ul.lasso-editor-controls li {
114
				height: 42px;
115
			}
116
		<?php
117
            } 
118
		} else { 
119
		?> 
120
121
            #lasso-toolbar--components__list {
122
                background:black !important;
123
            }
124
            
125
        <?php
126
        }
127
        ?>
128
        </style>
129
		<div id="lasso--controls" class="lasso-post-status--<?php echo sanitize_html_class( $status );?> <?php echo sanitize_html_class( $custom_classes );?>" data-post-id="<?php echo get_the_ID();?>" >
130
131
			<ul class="lasso--controls__center lasso-editor-controls lasso-editor-controls--wrap <?php echo $post_access_class;?> "  <?php echo $mobile_style ?> >
132
133
				<?php do_action( 'lasso_editor_controls_before' );
134
135
				if ( $is_capable ) { ?>
136
137
					<li id="lasso--edit" title="<?php esc_attr_e( 'Edit Post', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
138
139
					<?php if ( 'off' == $post_settings_disabled || empty( $post_settings_disabled ) ) { ?>
140
						<li id="lasso--post-settings" title="<?php esc_attr_e( 'Post Settings', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
141
					<?php }
142
143
				} ?>
144
145
				<li id="lasso--post-all" title="<?php esc_attr_e( 'All Posts', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
146
147
				<?php if ( $is_capable && wp_revisions_enabled( $post ) ) { ?>
148
					<li id="lasso--post-revisions" title="<?php esc_attr_e( 'Revisions', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
149
				<?php } ?>
150
151
				<?php if ( ( 'off' == $post_new_disabled || empty( $post_new_disabled ) && lasso_user_can('edit_posts') ) ) { ?>
152
					<li id="lasso--post-new" title="<?php esc_attr_e( 'Add Post', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
153
				<?php } ?>
154
155
				<?php do_action( 'lasso_editor_controls_after' );?>
156
157
			</ul>
158
159
			<?php if ( is_singular() && !$is_mobile ) { ?>
160
161
				<div class="lasso--controls__right" data-posttype="<?php echo get_post_type( get_the_ID() );?>" data-status="<?php echo $status;?>">
162
				
163
					<a href="#" title="<?php esc_attr_e( 'Delete Post', 'lasso' );?>" id="lasso--post-delete" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
164
					<a href="#" title="<?php esc_attr_e( 'Post Settings', 'lasso' );?>" id="lasso--post-settings2" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
165
166
167
					<a href="#" title="<?php esc_attr_e( 'Save Post', 'lasso' );?>" id="lasso--save" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
168
169
					<?php if ( ('draft' == $status ) || ('pending' == $status && $can_publish) ) { ?>
170
						<a href="#" title="<?php $can_publish ? esc_attr_e( 'Publish Post', 'lasso' ) : esc_attr_e( 'Submit For Review', 'lasso' );?>" id="lasso--publish" class="lasso-publish-post lasso--button <?php echo $sc_saving_class;?>"></a>
171
					<?php } ?>
172
					
173
174
				</div>
175
176
			<?php } ?>
177
178
		</div>
179
		
180
		
181
		<?php do_action( 'lasso_editor_controls_after_outside' );?>
182
183
	<?php }
184
}
185
186
/**
187
 * Draw the side panel that houses the component settings
188
 * This is opened when the settings icon is clicked on a single component
189
 * JS detects the type and will fill in the necessary options for the shortcode based on  lasso_editor_options_blob() at the end of this file
190
 *
191
 * @since 1.0
192
 */
193
function lasso_editor_component_sidebar() {
194
195
	ob_start();
196
197
198
	// let users add custom css classes
199
	$custom_classes = apply_filters( 'lasso_sidebar_classes', '' );
200
	?>
201
	<div id="lasso--sidebar" class="<?php echo sanitize_html_class( $custom_classes );?>" >
202
		<div class="lasso--sidebar__inner">
203
			<div id="aesop-generator-settings"><div id="lasso--component__settings"></div></div>
204
		</div>
205
	</div>
206
207
	<?php return ob_get_clean();
208
}
209
210
/**
211
 * Draw the main toolbar used to edit the text
212
 *
213
 * @since 1.0
214
 */
215
function lasso_editor_text_toolbar() {
216
217
	ob_start();
218
219
	
220
	$is_mobile = wp_is_mobile();
221
222
	// check for lasso story engine and add a class doniting this
223
	$ase_status = class_exists( 'Aesop_Core' ) || defined( 'LASSO_CUSTOM' ) ? 'ase-active' : 'ase-not-active';
224
225
	// let users add custom css classes
226
	$custom_classes = apply_filters( 'lasso_toolbar_classes', '' );
227
228
	// are toolbar headings enabled
229
	$toolbar_headings      = lasso_editor_get_option( 'toolbar_headings', 'lasso_editor' );
230
	$toolbar_headings_h4      = lasso_editor_get_option( 'toolbar_headings_h4', 'lasso_editor' );
231
	$toolbar_list      = lasso_editor_get_option( 'toolbar_list', 'lasso_editor' );
232
233
	$toolbar_class  = $toolbar_headings ? 'toolbar-extended' : false;
234
	
235
	// mobile styles
236
    $mobile_class = $is_mobile ? 'lasso-mobile' : false;
237
	$mobile_style =$is_mobile ? 'style="bottom:0px;"' : null;
238
	
239
	//show color
240
	$show_color = lasso_editor_get_option('toolbar_show_color', 'lasso_editor');
241
	
242
	//show alignment
243
	$show_align = lasso_editor_get_option('toolbar_show_alignment', 'lasso_editor');
244
	
245
	$status = get_post_status( get_the_ID() );
246
	
247
	$shortcodify_disabled = lasso_editor_get_option( 'shortcodify_disabled', 'lasso_editor' );
248
	
249
	$sc_saving_class = ('on' == $shortcodify_disabled || $ase_status == 'ase-not-active')  ? 'shortcodify-disabled' : 'shortcodify-enabled';
250
251
252
	?>
253
	<div class="lasso--toolbar_wrap lasso-editor-controls--wrap <?php echo $toolbar_class.' '.$mobile_class.' '.$ase_status.' '.sanitize_html_class( $custom_classes );?>" <?php echo $mobile_style ?>>
254
		<ul class="lasso--toolbar__inner lasso-editor-controls" <?php if ($is_mobile) {echo 'style="float:left;"';}?>>
255
			<?php do_action( 'lasso_toolbar_components_before' );?>
256
		    <li id="lasso-toolbar--bold" title="<?php esc_attr_e( 'Bold', 'lasso' );?>"></li>
257
		    <li id="lasso-toolbar--underline" title="<?php esc_attr_e( 'Underline', 'lasso' );?>"></li>
258
		    <li id="lasso-toolbar--italic" title="<?php esc_attr_e( 'Italicize', 'lasso' );?>"></li>
259
		    <li id="lasso-toolbar--strike" title="<?php esc_attr_e( 'Strikethrough', 'lasso' );?>"></li>
260
			<li id="lasso-toolbar--components" class="lasso-toolbar--components" title="<?php esc_attr_e( 'Insert Component', 'lasso' );?>" style="color:#ffffa0;">
261
			    <ul id="lasso-toolbar--components__list" style="display:none;color:white;">
262
			    	<?php if ( 'ase-active' == $ase_status ): ?>
263
						<li data-type="image" title="<?php esc_attr_e( 'Image', 'lasso' );?>" class="lasso-toolbar--component__image"></li>
264
						<li data-type="character" title="<?php esc_attr_e( 'Character', 'lasso' );?>" class="lasso-toolbar--component__character"></li>
265
						<li data-type="quote" title="<?php esc_attr_e( 'Quote', 'lasso' );?>"  class="lasso-toolbar--component__quote"></li>
266
						<li data-type="content" title="<?php esc_attr_e( 'Content', 'lasso' );?>"  class="lasso-toolbar--component__content"></li>
267
						<li data-type="chapter" title="<?php esc_attr_e( 'Chapter', 'lasso' );?>"  class="lasso-toolbar--component__chapter"></li>
268
						<li data-type="parallax" title="<?php esc_attr_e( 'Parallax', 'lasso' );?>"  class="lasso-toolbar--component__parallax"></li>
269
						<li data-type="audio" title="<?php esc_attr_e( 'Audio', 'lasso' );?>"  class="lasso-toolbar--component__audio"></li>
270
						<li data-type="video" title="<?php esc_attr_e( 'Video', 'lasso' );?>"  class="lasso-toolbar--component__video"></li>
271
						<li data-type="map" title="<?php esc_attr_e( 'Map', 'lasso' );?>"  class="lasso-toolbar--component__map"></li>
272
						<li data-type="timeline_stop" title="<?php esc_attr_e( 'Timeline', 'lasso' );?>"  class="lasso-toolbar--component__timeline"></li>
273
						<li data-type="document" title="<?php esc_attr_e( 'Document', 'lasso' );?>"  class="lasso-toolbar--component__document"></li>
274
						<li data-type="collection" title="<?php esc_attr_e( 'Collection', 'lasso' );?>"  class="lasso-toolbar--component__collection"></li>
275
						<li data-type="gallery" title="<?php esc_attr_e( 'Gallery', 'lasso' );?>"  class="lasso-toolbar--component__gallery"></li>
276
						<?php if ( class_exists ('Aesop_GalleryPop') ) { ?>
277
						     <li data-type="gallery" title="<?php esc_attr_e( 'Gallery Pop', 'lasso' );?>"  class="lasso-toolbar--component__gallerypop"></li>
278
						<?php }?>
279
						<?php if ( class_exists ('Aesop_Events') ) { ?>
280
						     <li data-type="events" title="<?php esc_attr_e( 'Event', 'lasso' );?>"  class="lasso-toolbar--component__event"></li>
281
						<?php }?>
282 View Code Duplication
					<?php else: ?>
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
283
						<li data-type="wpimg" title="<?php esc_attr_e( 'WordPress Image', 'lasso' );?>" class="image lasso-toolbar--component__image"></li>
284
						<li data-type="wpquote" title="<?php esc_attr_e( 'WordPress Quote', 'lasso' );?>" class="quote lasso-toolbar--component__quote"></li>
285
						<!--li data-type="wpvideo" title="<?php esc_attr_e( 'WordPress Video', 'lasso' );?>" class="video lasso-toolbar--component__video"></li-->
286
					<?php endif; ?>
287
					<?php do_action( 'lasso_toolbar_components' );?>
288
			    </ul>
289
			</li>
290
		    <?php if ( $toolbar_headings ): ?>
291
		    <li id="lasso-toolbar--h2" title="<?php esc_attr_e( 'H2 Heading', 'lasso' );?>"></li>
292
		    <li id="lasso-toolbar--h3" title="<?php esc_attr_e( 'H3 Heading', 'lasso' );?>"></li>
293
			<?php endif; ?>
294
			
295
			
296
			
297 View Code Duplication
			<?php if ( $toolbar_headings_h4 ): ?>
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
298
		    <li id="lasso-toolbar--h4" title="<?php esc_attr_e( 'H4 Heading', 'lasso' );?>"></li>
299
		    <li id="lasso-toolbar--h5" title="<?php esc_attr_e( 'H5 Heading', 'lasso' );?>"></li>
300
			<li id="lasso-toolbar--h6" title="<?php esc_attr_e( 'H6 Heading', 'lasso' );?>"></li>
301
			<?php endif; ?>
302
			
303
			<?php if ( $show_color ): ?>
304
		    <li id="lasso-toolbar--color-set" title="<?php esc_attr_e( 'Set Color for Selected Text', 'lasso' );?>"></li>
305
		    <li id="lasso-toolbar--color-pick" title="<?php esc_attr_e( 'Choose Color', 'lasso' );?>"></li>
306
			<?php endif; ?>
307
			
308
			<?php if ( $toolbar_list ): ?>
309
		    <li id="lasso-toolbar--ol" title="<?php esc_attr_e( 'Ordered List', 'lasso' );?>"></li>
310
		    <li id="lasso-toolbar--ul" title="<?php esc_attr_e( 'Unordered List', 'lasso' );?>"></li>
311
			<?php endif; ?>
312
					
313
		    
314
			<li id="lasso-toolbar--link" title="<?php esc_attr_e( 'Anchor Link', 'lasso' );?>">
315
		    	<div id="lasso-toolbar--link__wrap" <?php echo $mobile_style ?> >
316
		    		<div id="lasso-toolbar--link__inner" contenteditable="true" placeholder="<?php esc_attr_e( 'http://url.com', 'lasso' );?>"></div>
317
		    		<a href="#" title="<?php esc_attr_e( 'Create Link', 'lasso' );?>" class="lasso-toolbar--link__control" id="lasso-toolbar--link__create" ></a>
318
					<input class="styled-checkbox" type="checkbox" id="aesop-toolbar--link_newtab" checked/>
319
                    <label for="aesop-toolbar--link_newtab"><?php esc_attr_e( 'Open in a New Tab', 'lasso' );?></label>
320
		    	</div>
321
		    </li>
322
		    <?php do_action( 'lasso_toolbar_components_after' );?>
323
		    <li id="lasso-toolbar--html" title="<?php esc_attr_e( 'Insert HTML or Code', 'lasso' );?>">
324
		    	<div id="lasso-toolbar--html__wrap" <?php echo $mobile_style ?>>
325
		    		<div id="lasso-toolbar--html__inner" contenteditable="true" placeholder="<?php esc_attr_e( 'Enter HTML to insert', 'lasso' );?>"></div>
326
		    		<div id="lasso-toolbar--html__footer">
327
					<div id="lasso-toolbar--html__footer_desc" >
328
					<?php esc_attr_e( 'Enter HTML to insert', 'lasso' );?><br>
329
					<?php esc_attr_e( 'You can also use Shortcodes', 'lasso' );?><br>
330
					<?php esc_attr_e( 'You can also enter a URL to embed, such as Youtube, Vimeo and Twitter URLs.', 'lasso' );?>
331
					</div>
332
		    			<ul class="lasso-toolbar--html-snips">
333
						
334
		    				<?php if ( !$toolbar_headings ): ?>
335
		    				<li id="lasso-html--h2" title="<?php esc_attr_e( 'H2 Heading', 'lasso' );?>">
336
		    				<li id="lasso-html--h3" title="<?php esc_attr_e( 'H3 Heading', 'lasso' );?>">
337
		    				<?php endif; ?>
338
		    				<li id="lasso-html--ol" title="<?php esc_attr_e( 'Ordered List', 'lasso' );?>">
339
							<li id="lasso-html--ul" title="<?php esc_attr_e( 'Unordered List', 'lasso' );?>">
340
							
341
							<li id="lasso-html--table" title="<?php esc_attr_e( 'Table', 'lasso' );?>">
342
		    			</ul>
343
		    			<a class="lasso-toolbar--html__control lasso-toolbar--html__cancel" href="#"><?php _e( 'Cancel', 'lasso' );?></a>
344
		    			<a href="#" title="<?php esc_attr_e( 'Insert HTML or Code', 'lasso' );?>" class="lasso-toolbar--html__control" id="lasso-toolbar--html__insert" ><?php _e( 'Insert', 'lasso' );?></a>
345
		    		</div>
346
		    	</div>
347
		    </li>
348 View Code Duplication
			<?php if ( $show_align ): ?>
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
349
		    <li id="lasso-toolbar--left-align" title="<?php esc_attr_e( 'Text Left Align', 'lasso' );?>"></li>
350
		    <li id="lasso-toolbar--center-align" title="<?php esc_attr_e( 'Text Center Align', 'lasso' );?>"></li>
351
			<li id="lasso-toolbar--right-align" title="<?php esc_attr_e( 'Text Right Align', 'lasso' );?>"></li>
352
			<?php endif; ?>
353
		</ul>
354
		<?php if ( is_singular() && $is_mobile ) { ?>
355
356
				<div class="lasso--controls__right" data-posttype="<?php echo get_post_type( get_the_ID() );?>" data-status="<?php echo $status;?>" style="position:static;bottom:0px;right;0px;left:auto;">
357
358
					<a href="#" title="<?php esc_attr_e( 'Delete Post', 'lasso' );?>" id="lasso--post-delete" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
359
					<a href="#" title="<?php esc_attr_e( 'Post Settings', 'lasso' );?>" id="lasso--post-settings2" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
360
361
					<a href="#" title="<?php esc_attr_e( 'Save Post', 'lasso' );?>" id="lasso--save" class="lasso-save-post lasso--button <?php echo $sc_saving_class;?>"></a>
362
363
					<?php if ( 'draft' == $status && ( lasso_user_can('publish_posts') || lasso_user_can('publish_pages') )  ) { ?>
364
						<a href="#" title="<?php esc_attr_e( 'Publish Post', 'lasso' );?>" id="lasso--publish" class="lasso-publish-post lasso--button <?php echo $sc_saving_class;?>"></a>
365
					<?php } ?>
366
367
				</div>
368
369
		<?php } ?>
370
	</div>
371
372
	<?php return ob_get_clean();
373
}
374
375
/**
376
 * Draw the controls used for teh component settings within each component
377
 *
378
 * @since 1.0
379
 */
380
function lasso_editor_settings_toolbar() {
381
382
	$delete_nonce = wp_create_nonce( 'lasso-delete-nonce' );
383
384
	ob_start();
385
386
387
	// let users add custom css classes
388
	$custom_classes = apply_filters( 'lasso_component_classes', '' );
389
390
	?>
391
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
392
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
393
		<li id="lasso-component--settings__trigger" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
394
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
395
		<li class="lasso-delete" data-postid="<?php echo get_the_ID();?>" data-nonce="<?php echo $delete_nonce;?>" title="<?php esc_attr_e( 'Delete', 'lasso' );?>"></li>
396
	</ul>
397
398
	<?php return ob_get_clean();
399
}
400
401
/**
402
 * Draws the controls used for changing the featured image
403
 *   These controls are appended based on the class set in the define
404
 *
405
 * @since 1.0
406
 */
407
function lasso_editor_image_controls() {
408
409
	ob_start();
410
411
412
	// has post thumbnail
413
	$has_thumbnail = has_post_thumbnail( get_the_ID() ) ? 'class="lasso--featImg--has-thumb"' : false;
414
415
	?>
416
	<ul id="lasso--featImgControls" <?php echo $has_thumbnail;?>>
417
		<li id="lasso--featImgUpload"><a title="<?php esc_attr_e( 'Replace Image', 'lasso' );?>" href="#"><i class="lasso-icon-image"></i></a></li>
418
		<li id="lasso--featImgDelete"><a title="<?php esc_attr_e( 'Delete Image', 'lasso' );?>" href="#"><i class="lasso-icon-bin2"></i></a></li>
419
		<li id="lasso--featImgSave"><a href="#"><?php esc_attr_e( 'save', 'lasso' );?></a></li>
420
	</ul>
421
422
	<?php return ob_get_clean();
423
}
424
425
426
/**
427
 * Used to house post settings like scheduling, slugs and draft status
428
 * Note: the "add new" will use the same object as the currently shown. For example, if the user
429
 * is currently on a post, and clicks add new, then it'll add a new post. If the user is on a
430
 * post type like "dog", then it will create a new post type called "dog"
431
 *
432
 * @since 1.0
433
 */
434
function lasso_editor_component_modal() {
435
436
	ob_start();
437
438
439
	global $post;
440
441
	$postid = get_the_ID();
442
443
	$status = get_post_status( $postid );
444
	$nonce = wp_create_nonce( 'lasso-update-post-settings' );
445
446
	// let users add custom css classes
447
	$custom_classes = apply_filters( 'lasso_modal_settings_classes', '' );
448
449
	// objects categories
450
	$categories 		= lasso_get_post_objects( $postid, 'category' );
451
	$tags 				= lasso_get_post_objects( $postid, 'tag' );
452
453
	// modal tabs
454
	$tabs  				= lasso_modal_addons('tab');
455
	$content 			= lasso_modal_addons('content');
456
	
457
	//editor options
458
	$allow_change_date = lasso_editor_get_option('allow_change_date', 'lasso_editor');
459
    $allow_edit_excerpt = lasso_editor_get_option('allow_edit_excerpt', 'lasso_editor');
460
	$no_url_setting = lasso_editor_get_option('no_url_setting', 'lasso_editor');
461
462
	// are we singular
463
	$is_singular 		= is_singular();
464
	$is_singular_class 	= $is_singular ? 'lasso--postsettings__2col' : 'lasso--postsettings__1col';
465
	$has_thumb_class    = has_post_thumbnail() ? 'has-thumbnail' : 'no-thumbnail';
466
	$theme_supports     = current_theme_supports('post-thumbnails');
467
	$default_image 		= LASSO_URL.'/admin/assets/img/empty-img.png';
468
	
469
	// do we support pending status
470
	$no_pending_status = lasso_editor_get_option('no_pending_status', 'lasso_editor');
471
    
472
    $excerpt = $post->post_excerpt;
473
474
?>
475
	<div id="lasso--post-settings__modal" class="lasso--modal lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>">
476
		<div class="lasso--modal__inner">
477
478
			<?php if( $tabs ) { echo $tabs; } ?>
0 ignored issues
show
Bug Best Practice introduced by
The expression $tabs of type string|false is loosely compared to true; this is ambiguous if the string can be empty. You might want to explicitly use !== false instead.

In PHP, under loose comparison (like ==, or !=, or switch conditions), values of different types might be equal.

For string values, the empty string '' is a special case, in particular the following results might be unexpected:

''   == false // true
''   == null  // true
'ab' == false // false
'ab' == null  // false

// It is often better to use strict comparison
'' === false // false
'' === null  // false
Loading history...
479
480
			<div class="lasso--modal__content modal__content--core visible" data-addon-content="core">
481
				<form id="lasso--postsettings__form" enctype="multipart/form-data" class="lasso--post-form <?php echo $is_singular_class.' '.$has_thumb_class;?>" >
482
483
					<?php if ( $is_singular && $theme_supports ) : ?>
484
					<div class="lasso--postsettings__left">
485
						<label><?php _e( 'Featured Image', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Change the featured image for this post.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
486
						<div class="lasso--post-thumb" data-default-thumb="<?php echo esc_url( $default_image );?>">
487
488
							<div id="lasso--post-thumb__controls" class="lasso--post-thumb__controls">
489
								<i id="lasso--post-thumb__add" title="<?php _e('Change Featured Image','lasso');?>" class="dashicons dashicons-edit"></i>
490
								<i id="lasso--post-thumb__delete" title="<?php _e('Delete Featured Image','lasso');?>" class="dashicons dashicons-no-alt"></i>
491
								<i id="lasso--save-status" class="lasso-icon lasso-icon-spinner6 not-visible"></i>
492
							</div>
493
494
							<?php echo has_post_thumbnail() ? get_the_post_thumbnail( $post->ID, 'medium' ) : '<img src="'.$default_image.'">'; ?>
495
496
						</div>
497
						<div id="lasso--featImgSave"><a href="#" class="not-visible">Save</a></div>
498
499
					</div>
500
					<?php endif; ?>
501
502
					<div class="lasso--postsettings__right">
503
504
						<?php if( lasso_user_can('publish_posts') || lasso_user_can('publish_pages') ): ?>
505
						<div class="lasso--postsettings__option story-status-option">
506
							<label><?php _e( 'Status', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Change the status of the post to draft or publish.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
507
							<ul class="story-status story-status-<?php echo sanitize_html_class( $status );?>">
508
								<li id="lasso--status-draft"><?php _e( 'Draft', 'lasso' );?></li>
509
								<?php if( !$no_pending_status ): ?>								
510
								<li id="lasso--status-pending"><?php _e( 'Pending', 'lasso' );?></li>
511
								<?php endif; ?>
512
								<li id="lasso--status-publish"><?php _e( 'Publish', 'lasso' );?></li>
513
							</ul>
514
							<div class="lasso--slider_wrap">
515
								<div id="lasso--slider"></div>
516
							</div>
517
						</div>
518
						<?php endif; ?>
519
520
						<?php if ( 'publish' == $status  && !$no_url_setting): ?>
521
						<div class="lasso--postsettings__option story-slug-option">
522
							<label><?php _e( 'Post URL', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Change the URL (slug) of this post.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
523
							<input class="lasso--modal__trigger-footer" type="text" name="story_slug" value="<?php echo isset( $post ) ? esc_attr( $post->post_name ) : false;?>">
524
						</div>
525
						<?php endif; ?>
526
527
					</div>
528
529
					<div class="lasso--postsettings__middle">
530
531
						<div class="lasso--postsettings__option story-categories-option">
532
							<label style="width:120px;"><?php _e( 'Categories', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Type a category name and press enter.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
533
							<input id="lasso--cat-select" class="lasso--modal__trigger-footer" type="hidden" name="story_cats" value="<?php echo $categories;?>">
534
						</div>
535
536
						<div class="lasso--postsettings__option story-tags-option">
537
							<label><?php _e( 'Tags', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Type a tag name and press enter.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
538
							<input id="lasso--tag-select" class="lasso--modal__trigger-footer" type="hidden" name="story_tags" value="<?php echo $tags;?>">
539
						</div>
540
                        <?php 
541
						if ($allow_edit_excerpt) { 
542
						?>
543
                        <div class="lasso--postsettings__option story-excerpt-option">
544
							<label><?php _e( 'Excerpt', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Edit excerpt', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
545
							<input id="lasso--excerpt" class="lasso--modal__trigger-footer" type="text" name="excerpt" value="<?php echo $excerpt;?>" style="width:100%">
546
						</div>
547
                        <?php
548
						}?>
549
						<?php 
550
						if ($allow_change_date) { 
551
						    $dateformat = get_option( 'date_format' ); 
552
						?>
553
						    <label><?php _e( 'Post Date', 'lasso' ); ?></label>
554
							<input type="text" class="editus_custom_date" name="post_date" value="<?php echo get_the_time($dateformat, $postid);?>"/>
555
							<a href="#" id="lasso--postsettings-setnow"><?php _e( 'Set to Now', 'lasso' ); ?></a>
556
						<?php
557
						}?>
558
559
					</div>
560
					<!-- alternate way to display categories disabled now -->
561
					<!--div style="max-height:300px;overflow-y: scroll;"-->
562
                    <?php
563
							/*$allcats = explode(",",lasso_get_objects('category'));
564
							$currcats = explode(",",$categories);
565
							foreach ( $allcats  as $category ) {
566
								if (empty($category)) continue;
567
							   $checked ="";
568
							   if (  in_array( $category, $currcats ) ) {
569
									$checked = 'checked="checked"';
570
									
571
							   }
572
							   echo '<label><input type="checkbox" '.$checked.' name="categories" id="'.$category.'" >'.$category.'</label>';
573
							}*/
574
					?>
575
					<!--/div-->
576
577
					<?php do_action( 'lasso_modal_post_form' ); // action ?>
578
579
					<div class="lasso--postsettings__footer" >
580
						<a href="#" class="lasso--postsettings-cancel"><?php _e( 'Cancel', 'lasso' );?></a>
581
						<input type="hidden" name="status" value="">
582
						<input type="hidden" name="categories" value="">
583
						<input type="hidden" name="postid" value="<?php echo get_the_ID();?>">
584
						<input type="hidden" name="action" value="process_update-object_post">
585
						<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
586
						<?php do_action( 'lasso_modal_post_form_footer' ); // action ?>
587
						<input type="submit" id="lasso--postsettings-submit" value="<?php esc_attr_e( 'Save', 'lasso' );?>">
588
					</div>
589
590
				</form>
591
			</div>
592
593
			<?php if( $tabs ) { echo $content; } ?>
0 ignored issues
show
Bug Best Practice introduced by
The expression $tabs of type string|false is loosely compared to true; this is ambiguous if the string can be empty. You might want to explicitly use !== false instead.

In PHP, under loose comparison (like ==, or !=, or switch conditions), values of different types might be equal.

For string values, the empty string '' is a special case, in particular the following results might be unexpected:

''   == false // true
''   == null  // true
'ab' == false // false
'ab' == null  // false

// It is often better to use strict comparison
'' === false // false
'' === null  // false
Loading history...
594
595
		</div>
596
597
	</div>
598
	<div id="lasso--modal__overlay"></div>
599
600
	<?php return ob_get_clean();
601
}
602
603
/**
604
 * Used to house the form for creating a new post within amodal
605
 *
606
 * @since 1.0
607
 */
608
function lasso_editor_newpost_modal() {
609
610
	global $post;
611
612
	ob_start();
613
614
615
	$status = get_post_status( get_the_ID() );
0 ignored issues
show
Unused Code introduced by
$status is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
616
617
	$nonce = wp_create_nonce( 'lasso-editor-new-post' );
618
619
	// let users add custom css classes
620
	$custom_classes = apply_filters( 'lasso_modal_post_classes', '' );
621
622
	// return the post type
623
	$type = get_post_type( get_the_ID() );
0 ignored issues
show
Unused Code introduced by
$type is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
624
625
	$mobile_style = "";
626
	if (wp_is_mobile()) {
627
		//$mobile_style = 'style="top:140px !important;"';
628
	}
629
	?>
630
	<div id="lasso--post-new__modal" class="lasso--modal lasso--modal__med lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>" <?php echo $mobile_style;?>">
631
		<div class="lasso--modal__inner lasso--hasnewform">
632
633
			<form id="lasso--postnew__form" enctype="multipart/form-data" class="lasso--post-form">
634
635
				<div class="lasso--postsettings__option story-slug-option lasso--last-option">
636
					<label><?php esc_attr_e( 'New <span>post</span> title', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Specify title for new post, then save to edit.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
637
					<input class="lasso--modal__trigger-footer" type="text" required name="story_title" value="" placeholder="<?php esc_attr_e( 'Type Your Title Here', 'lasso' );?>">
638
						<div class="lasso--select-wrap" style="width:90px">
639
						<select id="lasso--select-type" name="story_type">
640
641
							<?php
642
								$types = lasso_post_types_names();
643
								if ( !empty( $types ) ) {
644
									foreach( $types as $name => $label ) {										
645
										$type = preg_replace( '/s\b/','', $name );
646
										if ($type == 'page' && !current_user_can('edit_pages')) {
647
											continue;
648
										}
649
										printf( '<option value="%s">%s</option>', lcfirst( esc_attr( $type ) ) , ucfirst( esc_attr( $label ) ) );
650
									}
651
652
								}
653
							?>
654
655
						</select>
656
					</div>
657
				</div>
658
659
				<div class="lasso--postsettings__footer">
660
					<a href="#" class="lasso--postsettings-cancel"><?php _e( 'Cancel', 'lasso' );?></a>
661
					<input type="hidden" name="action" value="process_new-object_post">
662
					<?php
663
						if ( !empty( $types ) ) {
664
							// get the first element
665
							$keys = array_keys($types);
666
						    $type =$keys[0];						
667
							$type = preg_replace( '/s\b/','', $type );
668
							printf( '<input type="hidden" name="object" value="%s">', lcfirst( esc_attr( $type ) ) );		
669
						}
670
					?>
671
					<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
672
					<input type="submit" value="<?php esc_attr_e( 'Create', 'lasso' );?>">
673
				</div>
674
675
			</form>
676
677
		</div>
678
	</div>
679
	<div id="lasso--modal__overlay"></div>
680
681
	<?php return ob_get_clean();
682
}
683
684
/**
685
 * Used to house the all posts pop-up
686
 *
687
 * @since 0.9.3
688
 */
689
function lasso_editor_allpost_modal() {
690
691
	global $post;
692
	
693
	global $wp_post_types;
694
    $labels = &$wp_post_types['post']->labels;
695
    $labels->name = 'Articles';
696
697
	ob_start();
698
699
	// post status
700
	$status = get_post_status( get_the_ID() );
0 ignored issues
show
Unused Code introduced by
$status is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
701
702
	// let users add custom css classes
703
	$custom_classes = apply_filters( 'lasso_modal_all_post_classes', '' );
704
705
	?>
706
	<div id="lasso--all-posts__modal" class="lasso--modal lasso--modal__full lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>" style="max-height:100%">
707
		<div class="lasso--modal__inner">
708
709
			<div class="lasso--post-filtering not-visible">
710
				<div class="lasso--search__results">
711
					<span id="lasso--results-found"></span><?php _e('results found','lasso');?>
712
				</div>
713
				<div class="lasso--search">
714
					<i id="lasso--search__toggle" class="dashicons dashicons-search"></i>
715
					<input id="lasso--search-field" type="text" placeholder="search...">
716
				</div>
717
			</div>
718
719
			<ul class="lasso--post-object-list">
720
				<?php
721
722
				$post_types = lasso_post_types_names();
723
				$rest_bases = lasso_post_types_rest_base();
724
725
				if ( ! empty( $post_types ) ) {
726
					$first = 'active';
727
					foreach( $post_types as $name => $label ) {
728
						if (array_key_exists($name, $rest_bases)) {
729
							printf( '<li class="%1s lasso--show-objects" data-post-type="%2s">%3s</li>', esc_attr( $first), esc_attr( $rest_bases[$name] ), esc_attr( $label ) );
730
						}
731
						$first = '';
732
					}
733
734
				}
735
736
				do_action('lasso_modal_post_objects');?>
737
738
			</ul>
739
			<div id="lasso--loading" class="lasso--loading"><div class="lasso--loader"></div></div>
740
741
			<ul id="lasso--post-list" class="lasso--post-list"></ul>
742
743
		</div>
744
	</div>
745
	<div id="lasso--modal__overlay"></div>
746
747
	<?php return ob_get_clean();
748
}
749
750 View Code Duplication
function lasso_editor_wpimg_edit() {
0 ignored issues
show
Duplication introduced by
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
751
752
	ob_start();
753
754
755
	// let users add custom css classes
756
	$custom_classes = apply_filters( 'lasso_wpimg_classes', '' );
757
758
	?>
759
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
760
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
761
		<!--li id="lasso--wpimg-edit" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li-->
762
        <li id="lasso-component--settings__trigger" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
763
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
764
		<li class="lasso-delete" title="<?php esc_attr_e( 'Delete', 'lasso' );?>"></li>
765
	</ul>
766
767
	<?php return ob_get_clean();
768
}
769
770 View Code Duplication
function lasso_editor_wpvideo_edit() {
0 ignored issues
show
Duplication introduced by
This function seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
771
772
	ob_start();
773
774
775
	// let users add custom css classes
776
	$custom_classes = apply_filters( 'lasso_wpimg_classes', '' );
777
778
	?>
779
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
780
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
781
		<li id="lasso--wpvideo-edit" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
782
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
783
		<li class="lasso-delete" title="<?php esc_attr_e( 'Delete', 'lasso' );?>"></li>
784
	</ul>
785
786
	<?php return ob_get_clean();
787
}
788
789
/**
790
 * Used to house the hidden input fields for actions and process saving for the map component
791
 *
792
 * @since 1.0
793
 */
794
function lasso_map_form_footer() {
795
796
	$nonce = wp_create_nonce( 'lasso-process-map' );
797
798
	ob_start();
799
800
	?>
801
	<div class="lasso--map-form__footer">
802
		<input type="hidden" name="postid" value="<?php echo get_the_ID();?>">
803
		<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
804
		<input type="hidden" name="action" value="process_map_save">
805
		<input type="submit" class="lasso--map-form__submit" value="<?php esc_attr_e( 'Save Locations', 'lasso' );?>">
806
	</div>
807
808
	<?php return ob_get_clean();
809
810
}
811
812
/**
813
 * Some things aren't real-time updatable so we need to append a message in certain areas on certain actions
814
 *
815
 * @since 1.0
816
 */
817
function lasso_editor_refresh_message() {
818
819
	ob_start();
820
821
	?>
822
	<div id="lasso--pagerefresh" class="visible">
823
		<?php _e( 'Save this post and refesh the page to see these changes.', 'lasso' );?>
824
	</div>
825
826
	<?php return ob_get_clean();
827
}
828
829
/**
830
 * Draw out the settings field based on the shortcodes array with options foudn in Aesop Story Engine
831
 *  This was mostly backported from aesop story engine and modified to allow for non aesop shortcodes and components
832
 *
833
 * @since 1.0
834
 */
835
function lasso_editor_options_blob() {
836
837
	$codes   = function_exists( 'aesop_shortcodes' ) ? aesop_shortcodes() : array();
0 ignored issues
show
Unused Code introduced by
$codes is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
838
    $codes   = add_wpimg_options( array() );
839
    $codes   = apply_filters( 'lasso_custom_options', $codes );
840
	$galleries  = function_exists( 'lasso_editor_galleries_exist' ) && lasso_editor_galleries_exist() ? 'has-galleries' : 'creating-gallery';
841
842
	$nonce = wp_create_nonce( 'lasso_gallery' );
843
844
	$blob = array();
845
846
	if ( empty( $codes ) )
847
		return;
848
849
	foreach ( $codes as $slug => $shortcode ) {
850
		$return = '';
851
		// Shortcode has atts
852
853
		if ( count( $shortcode['atts'] ) && $shortcode['atts'] ) {
854
855
			foreach ( $shortcode['atts'] as $attr_name => $attr_info ) {
856
857
858
				$prefix = isset( $attr_info['prefix'] ) ? sprintf( '<span class="lasso-option-prefix">%s</span>', $attr_info['prefix'] ) : null;
859
860
				$return .= '<form id="aesop-generator-settings" class="lasso--component-settings-form" class="'.$galleries.'" method="post">';
861
				$return .= '<p data-option="'.$attr_name.'" class="lasso-option aesop-'.$slug.'-'.$attr_name.'">';
862
				$return .= '<label for="aesop-generator-attr-' . $attr_name . '">' . $attr_info['desc'] . '</label>';
863
				$return .= '<small class="lasso-option-desc">'.$attr_info['tip'].'</small>';
864
				// Select
865
866
				if ( isset( $attr_info['values'] ) ) {
867
868
					$return .= '<select name="' . $attr_name . '" id="aesop-generator-attr-' . $attr_name . '" class="lasso-generator-attr">';
869
870
					$i=0;
871
872
					foreach ( $attr_info['values'] as $attr_value ) {
873
						$attr_value_selected = $attr_info['default'] == $attr_value ? ' selected="selected"' : '';
874
875
						$return .= '<option value="'.$attr_info['values'][$i]['value'].'" ' . $attr_value_selected . '>'.$attr_info['values'][$i]['name'].'</option>';
876
877
						$i++;
878
					}
879
880
					$return .= '</select>';
881
882
				} else {
883
884
					$attr_field_type = isset( $attr_info['type'] ) ? $attr_info['type'] : 'text';
885
886
					// image upload
887
					if ( 'media_upload' == $attr_info['type'] ) {
888
889
						$return .= '<input type="' . $attr_field_type . '" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="aesop-generator-attr-' . $attr_name . '" class="lasso-generator-attr aesop-generator-attr-'.$attr_field_type.'" />';
890
						$return .= '<a href="#" id="lasso-upload-img" class="lasso-option-button" /></a>';
891
892
					} elseif ( 'color' == $attr_info['type'] ) {
893
894
						$return .= '<input type="color" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="aesop-generator-attr-' . $attr_name . '" class="lasso-generator-attr aesop-generator-attr-'.$attr_field_type.'" />';
895
896
					} elseif ( 'text_area' == $attr_info['type'] ) {
897
898
						$return .= '<textarea name="' . $attr_name . '" id="aesop-generator-attr-' . $attr_name . '" class="lasso-generator-attr aesop-generator-attr-'.$attr_field_type.'" placeholder="'.$attr_info['default'].'" /></textarea>'.$prefix.'';
899
900
					} else {
901
						$return .= '<input type="' . $attr_field_type . '" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="aesop-generator-attr-' . $attr_name . '" class="lasso-generator-attr aesop-generator-attr-'.$attr_field_type.'" />'.$prefix.'';
902
					}
903
				}
904
				$return .= '</p>';
905
906
			}
907
		}
908
909
		///////////////////////////
910
		// START GALLERY AND MAP FRONT END STUFFS
911
		///////////////////////////
912
		if ( isset( $shortcode['front'] ) && true == $shortcode['front'] ) {
913
914
			if ( 'gallery' == $shortcode['front_type'] ) {
915
916
				$return .= lasso_gallery_editor_module();
917
918
			}
919
		}
920
		///////////////////////////
921
		// END GALLERY AND MAP FRONT END STUFFS
922
		///////////////////////////
923
924
		// Single shortcode (not closed)
925
		if ( 'single' == $shortcode['type'] ) {
926
927
			$return .= '<input type="hidden" name="lasso-generator-content" id="lasso-generator-content" value="false" />';
928
929
		} else {
930
931
			$return .= '<p data-option="content" class="lasso-option lasso-c-comp-text"><label>' . __( 'Content', 'lasso' ) . '</label><textarea type="text" name="lasso-generator-content" id="lasso-generator-content" value="' . $shortcode['content'] . '" /></textarea></p>';
932
		}
933
934
		$return .= '<p class="lasso-buttoninsert-wrap"><a href="#" class="lasso-generator-cancel" id="lasso--sidebar__close">Cancel</a><input type="submit" id="lasso-generator-insert" value="Save Settings"></p>';
935
		$return .= '<input class="component_type" type="hidden" name="component_type" value="">';
936
		$return .= '<input type="hidden" name="unique" value="">';
937
		$return .= '<input type="hidden" name="nonce" id="lasso-generator-nonce" value="'.$nonce.'" />';
938
		$return .= '</form>';
939
940
		// extra JS codes
941
        if (isset($shortcode['codes'])) {
942
		    $return .= $shortcode['codes'];
943
        }
944
		$blob[$slug] = $return;
945
	}
946
947
	return $blob;
948
}
949
950
951
function add_wpimg_options( $shortcodes ) {
952
953
    $custom = array(
954
        'wpimg'    => array(
955
            'name'     => __( 'Image', 'lasso' ),
956
            'type'     => 'single',
957
            'atts'     => array(
958
                'img'    => array(
959
                    'type'  => 'media_upload',
960
                    'default'  => '',
961
                    'desc'   => __( 'Image URL', 'lasso' ),
962
                    'tip'  => __( 'URL for the image. Click <em>Select Media</em> to open the WordPress Media Library.', 'aesop-core' )
963
                ),
964
                
965
                'imgwidth'    => array(
966
                    'type'  => 'text_small',
967
                    'default'  => '300px',
968
                    'desc'   => __( 'Image Width', 'lasso' ),
969
                    'tip'  => __( 'Width of the image. You can enter the size in pixels or percentage such as <code>40%</code> or <code>500px</code>.', 'aesop-core' )
970
                ),
971
                'imgheight'    => array(
972
                    'type'  => 'text_small',
973
                    'default'  => '',
974
                    'desc'   => __( 'Image Height', 'lasso' ),
975
                    'tip'  => __( 'Used only for the Panorama mode. Can be set using pixel values such as <code>500px</code>. If unspecified, the original height would be used. ', 'aesop-core' )
976
                ),					
977
                
978
                'link'    => array(
979
                    'type'  => 'text',
980
                    'default'  => '',
981
                    'desc'   => __( 'Link', 'lasso' ),
982
                    'tip'  => __( 'URL link', 'lasso' )
983
                ),
984
                'alt'    => array(
985
                    'type'  => 'text',
986
                    'default'  => '',
987
                    'desc'   => __( 'Image ALT', 'lasso' ),
988
                    'tip'  => __( 'ALT tag used for the image. Primarily used for SEO purposes.', 'lasso' )
989
                ),
990
                
991
                'caption'    => array(
992
                    'type'  => 'text_area',
993
                    'default'  => '',
994
                    'desc'   => __( 'Caption', 'lasso' ),
995
                    'tip'  => __( 'Optional caption for the image.', 'lasso' )
996
                ),
997
                
998
999
            ),
1000
            'desc'     => __( 'An image.', 'aesop-core' ),
1001
            'codes'    => ''
1002
        )
1003
    );
1004
1005
    return array_merge( $shortcodes, $custom );
1006
}
1007
1008
/**
1009
 * Revisions modal
1010
 *
1011
 * @since 0.9.8
1012
 *
1013
 * @return string
1014
 */
1015
function lasso_editor_revision_modal() {
1016
1017
	ob_start();
1018
	?>
1019
		<div id="lasso--revision__modal" class="lasso--modal lassoShowAnimate ">
1020
1021
			<div class="lasso--modal__inner">
1022
				<div id="lasso--loading" class="lasso--loading"><div class="lasso--loader"></div></div>
1023
				<div id="lasso--hide" style="display:none;" class="lasso--post-form">
1024
					<i class="lasso-icon lasso-icon-move"></i>
1025
					<label><?php _e( 'Revisions', 'lasso' );?><span class="lasso-util--help lasso-util--help-top" data-tooltip="<?php esc_attr_e( 'Use the slider to view the revision live on the page.', 'lasso' );?>"><i class="lasso-icon-help"></i></span></label>
1026
					<div class="lasso--slider_wrap">
1027
						<div id="lasso--slider"></div>
1028
					</div>
1029
					<ul id="lasso--revision-list"></ul>
1030
					<div class="lasso--btn-group lasso--btn-group-small">
1031
						<a href="#" class="lasso--btn-secondary" id="lasso--close-modal"><?php _e( 'Cancel', 'lasso' );?></a>
1032
						<a href="#" class="lasso--btn-primary" id="lasso--select-revision"><?php _e( 'Select', 'lasso' );?></a>
1033
					</div>
1034
				</div>
1035
1036
			</div>
1037
		</div>
1038
	<?php
1039
	return ob_get_clean();
1040
}
1041
1042
/**
1043
 * 
1044
 * Takes a color code and returns an adjusted value
1045
 * @since 1.0.0
1046
 * Steps should be between -255 and 255. Negative = darker, positive = lighter
1047
 * @return string
1048
 */
1049
function lasso_editor_adjustBrightness($hex, $steps) { 
1050
    $steps = max(-255, min(255, $steps));
1051
1052
    // Normalize into a six character long hex string
1053
    $hex = str_replace('#', '', $hex);
1054
    if (strlen($hex) == 3) {
1055
        $hex = str_repeat(substr($hex,0,1), 2).str_repeat(substr($hex,1,1), 2).str_repeat(substr($hex,2,1), 2);
1056
    }
1057
1058
    // Split into three parts: R, G and B
1059
    $color_parts = str_split($hex, 2);
1060
    $return = '#';
1061
1062
    foreach ($color_parts as $color) {
1063
        $color   = hexdec($color); // Convert to decimal
1064
        $color   = max(0,min(255,$color + $steps)); // Adjust color
1065
        $return .= str_pad(dechex($color), 2, '0', STR_PAD_LEFT); // Make two char hex code
1066
    }
1067
1068
    return $return;
1069
}
1070