Completed
Push — master ( ce8812...6ecfc3 )
by
unknown
02:08
created

editor-modules.php ➔ lasso_editor_newpost_modal()   C

Complexity

Conditions 7
Paths 17

Size

Total Lines 73
Code Lines 35

Duplication

Lines 13
Ratio 17.81 %

Importance

Changes 0
Metric Value
cc 7
eloc 35
nc 17
nop 0
dl 13
loc 73
rs 6.6896
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
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 16 and the first side effect is on line 15.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
3
/**
4
 * These functions are then localized and then appended with JS in enter-editor.js
5
 *  All are protectd under a capability and logged in check using a filterable function lasso_user_can()
6
 *
7
 * @since 1.0
8
 */
9
10
/**
11
 * Add the editor controls to any singular post object
12
 *
13
 * @since 1.0
14
 */
15
add_action( 'wp_footer', 'lasso_editor_controls' );
16
function lasso_editor_controls() {
17
18
	global $post;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
19
20
	if ( lasso_user_can('edit_posts') ) {
21
22
		$status = get_post_status( get_the_ID() );
23
24
		// let users add custom css classes
25
		$custom_classes = apply_filters( 'lasso_control_classes', '' );
26
27
		$post_access_class   = '';
28
		$post_new_disabled   = lasso_editor_get_option( 'post_adding_disabled', 'lasso_editor' );
29
		$post_settings_disabled = lasso_editor_get_option( 'post_settings_disabled', 'lasso_editor' );
30
		$shortcodify_disabled = lasso_editor_get_option( 'shortcodify_disabled', 'lasso_editor' );
31
32
33
		// CSS class if adding new post objects is disabled
34
		if ( 'on' == $post_new_disabled ) { $post_access_class = 'lasso--post-new-disabled'; }
35
36
		// CSS class if adjust settings is disabled
37
		if ( 'on' == $post_settings_disabled ) { $post_access_class = 'lasso--post-settings-disabled'; }
38
39
		// CSS class if adding new post objects AND settings are disabled
40
		if ( 'on' == $post_new_disabled && 'on' == $post_settings_disabled ) { $post_access_class = 'lasso--post-all-disabled'; }
41
42
		// CSS class if shortcodify or (Aesop Shortcode Conversion) is disabled
43
		$sc_saving_class = 'on' == $shortcodify_disabled ? 'shortcodify-disabled' : 'shortcodify-enabled';
44
45
		// user is capable
46
		$is_capable = is_singular() && lasso_user_can('edit_post');
47
		$is_mobile = wp_is_mobile();
48
		
49
		$mobile_style = $is_mobile ? 'style="bottom:0px;"' : null;
50
		
51
52
		?><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();?>" >
53
54
			<ul class="lasso--controls__center lasso-editor-controls lasso-editor-controls--wrap <?php echo $post_access_class;?> "  <?php echo $mobile_style ?> >
55
56
				<?php do_action( 'lasso_editor_controls_before' );
57
58
				if ( $is_capable ) { ?>
59
60
					<li id="lasso--edit" title="<?php esc_attr_e( 'Edit Post', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
61
62
					<?php if ( 'off' == $post_settings_disabled || empty( $post_settings_disabled ) ) { ?>
63
						<li id="lasso--post-settings" title="<?php esc_attr_e( 'Post Settings', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
64
					<?php }
65
66
				} ?>
67
68
				<li id="lasso--post-all" title="<?php esc_attr_e( 'All Posts', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
69
70
				<?php if ( $is_capable && wp_revisions_enabled( $post ) ) { ?>
71
					<li id="lasso--post-revisions" title="<?php esc_attr_e( 'Revisions', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
72
				<?php } ?>
73
74
				<?php if ( ( 'off' == $post_new_disabled || empty( $post_new_disabled ) && lasso_user_can('publish_posts') ) ) { ?>
75
					<li id="lasso--post-new" title="<?php esc_attr_e( 'Add Post', 'lasso' );?>"><a href="#" class="lasso--button__primary"></a></li>
76
				<?php } ?>
77
78
				<?php do_action( 'lasso_editor_controls_after' );?>
79
80
			</ul>
81
82 View Code Duplication
			<?php if ( is_singular() && !$is_mobile ) { ?>
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...
83
84
				<div class="lasso--controls__right" data-posttype="<?php echo get_post_type( get_the_ID() );?>" data-status="<?php echo $status;?>">
85
86
					<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>
87
88
					<?php if ( 'draft' == $status && ( lasso_user_can('publish_posts') || lasso_user_can('publish_pages') )  ) { ?>
89
						<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>
90
					<?php } ?>
91
92
				</div>
93
94
			<?php } ?>
95
96
		</div>
97
98
	<?php }
99
}
100
101
/**
102
 * Draw the side panel that houses the component settings
103
 * This is opened when the settings icon is clicked on a single component
104
 * 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
105
 *
106
 * @since 1.0
107
 */
108
function lasso_editor_component_sidebar() {
109
110
	ob_start();
111
112
	if ( !lasso_user_can() )
113
		return;
114
115
	// let users add custom css classes
116
	$custom_classes = apply_filters( 'lasso_sidebar_classes', '' );
117
	?>
118
	<div id="lasso--sidebar" class="<?php echo sanitize_html_class( $custom_classes );?>" >
119
		<div class="lasso--sidebar__inner">
120
			<div id="lasso--component__settings"></div>
121
		</div>
122
	</div>
123
124
	<?php return ob_get_clean();
125
}
126
127
/**
128
 * Draw the main toolbar used to edit the text
129
 *
130
 * @since 1.0
131
 */
132
function lasso_editor_text_toolbar() {
133
134
	ob_start();
135
136
	if ( !lasso_user_can() )
137
		return;
138
	
139
	$is_mobile = wp_is_mobile();
140
141
	// check for lasso story engine and add a class doniting this
142
	$ase_status = class_exists( 'Aesop_Core' ) || defined( 'LASSO_CUSTOM' ) ? 'ase-active' : 'ase-not-active';
143
144
	// let users add custom css classes
145
	$custom_classes = apply_filters( 'lasso_toolbar_classes', '' );
146
147
	// are toolbar headings enabled
148
	$toolbar_headings      = lasso_editor_get_option( 'toolbar_headings', 'lasso_editor' );
149
	$toolbar_headings_h4      = lasso_editor_get_option( 'toolbar_headings_h4', 'lasso_editor' );
150
151
	$toolbar_class  = $toolbar_headings ? 'toolbar-extended' : false;
152
	
153
	// mobile styles
154
    $mobile_class = $is_mobile ? 'lasso-mobile' : false;
155
	$mobile_style =$is_mobile ? 'style="bottom:0px;"' : null;
156
	
157
	//show color
158
	$show_color = lasso_editor_get_option('toolbar_show_color', 'lasso_editor');
159
	
160
	//show alignment
161
	$show_align = lasso_editor_get_option('toolbar_show_alignment', 'lasso_editor');
162
	
163
	$status = get_post_status( get_the_ID() );
164
165
166
	?>
167
	<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 ?>>
168
		<ul class="lasso--toolbar__inner lasso-editor-controls" <?php if ($is_mobile) {echo 'style="float:left;"';}?>>
169
			<?php do_action( 'lasso_toolbar_components_before' );?>
170
		    <li id="lasso-toolbar--bold" title="<?php esc_attr_e( 'Bold', 'lasso' );?>"></li>
171
		    <li id="lasso-toolbar--underline" title="<?php esc_attr_e( 'Underline', 'lasso' );?>"></li>
172
		    <li id="lasso-toolbar--italic" title="<?php esc_attr_e( 'Italicize', 'lasso' );?>"></li>
173
		    <li id="lasso-toolbar--strike" title="<?php esc_attr_e( 'Strikethrough', 'lasso' );?>"></li>
174
			<li id="lasso-toolbar--components" title="<?php esc_attr_e( 'Insert Component', 'lasso' );?>" style="color:#ffffa0;">
175
			    <ul id="lasso-toolbar--components__list" style="display:none;color:white;">
176
			    	<?php if ( 'ase-active' == $ase_status ): ?>
177
						<li data-type="image" title="<?php esc_attr_e( 'Image', 'lasso' );?>" class="lasso-toolbar--component__image"></li>
178
						<li data-type="character" title="<?php esc_attr_e( 'Character', 'lasso' );?>" class="lasso-toolbar--component__character"></li>
179
						<li data-type="quote" title="<?php esc_attr_e( 'Quote', 'lasso' );?>"  class="lasso-toolbar--component__quote"></li>
180
						<li data-type="content" title="<?php esc_attr_e( 'Content', 'lasso' );?>"  class="lasso-toolbar--component__content"></li>
181
						<li data-type="chapter" title="<?php esc_attr_e( 'Chapter', 'lasso' );?>"  class="lasso-toolbar--component__chapter"></li>
182
						<li data-type="parallax" title="<?php esc_attr_e( 'Parallax', 'lasso' );?>"  class="lasso-toolbar--component__parallax"></li>
183
						<li data-type="audio" title="<?php esc_attr_e( 'Audio', 'lasso' );?>"  class="lasso-toolbar--component__audio"></li>
184
						<li data-type="video" title="<?php esc_attr_e( 'Video', 'lasso' );?>"  class="lasso-toolbar--component__video"></li>
185
						<li data-type="map" title="<?php esc_attr_e( 'Map', 'lasso' );?>"  class="lasso-toolbar--component__map"></li>
186
						<li data-type="timeline_stop" title="<?php esc_attr_e( 'Timeline', 'lasso' );?>"  class="lasso-toolbar--component__timeline"></li>
187
						<li data-type="document" title="<?php esc_attr_e( 'Document', 'lasso' );?>"  class="lasso-toolbar--component__document"></li>
188
						<li data-type="collection" title="<?php esc_attr_e( 'Collection', 'lasso' );?>"  class="lasso-toolbar--component__collection"></li>
189
						<li data-type="gallery" title="<?php esc_attr_e( 'Gallery', 'lasso' );?>"  class="lasso-toolbar--component__gallery"></li>
190
						<?php if ( class_exists ('Aesop_GalleryPop') ) { ?>
191
						     <li data-type="gallery" title="<?php esc_attr_e( 'Gallery Pop', 'lasso' );?>"  class="lasso-toolbar--component__gallerypop"></li>
192
						<?php }?>
193
						<?php if ( class_exists ('Aesop_Events') ) { ?>
194
						     <li data-type="events" title="<?php esc_attr_e( 'Event', 'lasso' );?>"  class="lasso-toolbar--component__event"></li>
195
						<?php }?>
196 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...
197
						<li data-type="wpimg" title="<?php esc_attr_e( 'WordPress Image', 'lasso' );?>" class="image lasso-toolbar--component__image"></li>
198
						<li data-type="wpquote" title="<?php esc_attr_e( 'WordPress Quote', 'lasso' );?>" class="quote lasso-toolbar--component__quote"></li>
199
						<!--li data-type="wpvideo" title="<?php esc_attr_e( 'WordPress Video', 'lasso' );?>" class="video lasso-toolbar--component__video"></li-->
200
					<?php endif; ?>
201
					<?php do_action( 'lasso_toolbar_components' );?>
202
			    </ul>
203
			</li>
204
		    <?php if ( $toolbar_headings ): ?>
205
		    <li id="lasso-toolbar--h2" title="<?php esc_attr_e( 'H2 Heading', 'lasso' );?>"></li>
206
		    <li id="lasso-toolbar--h3" title="<?php esc_attr_e( 'H3 Heading', 'lasso' );?>"></li>
207
			<?php endif; ?>
208 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...
209
		    <li id="lasso-toolbar--h4" title="<?php esc_attr_e( 'H4 Heading', 'lasso' );?>"></li>
210
		    <li id="lasso-toolbar--h5" title="<?php esc_attr_e( 'H5 Heading', 'lasso' );?>"></li>
211
			<li id="lasso-toolbar--h6" title="<?php esc_attr_e( 'H6 Heading', 'lasso' );?>"></li>
212
			<?php endif; ?>
213
			
214
			<?php if ( $show_color ): ?>
215
		    <li id="lasso-toolbar--color-set" title="<?php esc_attr_e( 'Set Text Color', 'lasso' );?>"></li>
216
		    <li id="lasso-toolbar--color-pick" title="<?php esc_attr_e( 'Choose Color', 'lasso' );?>"></li>
217
			<?php endif; ?>
218
					
219
		    
220
			<li id="lasso-toolbar--link" title="<?php esc_attr_e( 'Anchor Link', 'lasso' );?>">
221
		    	<div id="lasso-toolbar--link__wrap" <?php echo $mobile_style ?> >
222
		    		<div id="lasso-toolbar--link__inner" contenteditable="true" placeholder="<?php esc_attr_e( 'http://url.com', 'lasso' );?>"></div>
223
		    		<a href="#" title="<?php esc_attr_e( 'Create Link', 'lasso' );?>" class="lasso-toolbar--link__control" id="lasso-toolbar--link__create" ></a>
224
					<input class="styled-checkbox" type="checkbox" id="aesop-toolbar--link_newtab" checked/>
225
                    <label for="aesop-toolbar--link_newtab">Open in Another Tab</label>
226
		    	</div>
227
		    </li>
228
		    <?php do_action( 'lasso_toolbar_components_after' );?>
229
		    <li id="lasso-toolbar--html" title="<?php esc_attr_e( 'Insert HTML', 'lasso' );?>">
230
		    	<div id="lasso-toolbar--html__wrap" <?php echo $mobile_style ?>>
231
		    		<div id="lasso-toolbar--html__inner" contenteditable="true" placeholder="<?php esc_attr_e( 'Enter HTML to insert', 'lasso' );?>"></div>
232
		    		<div id="lasso-toolbar--html__footer">
233
					<div id="lasso-toolbar--html__footer_desc" >
234
					<?php esc_attr_e( 'Enter HTML to insert', 'lasso' );?><br>
235
					<?php esc_attr_e( 'You can also use Shortcodes', 'lasso' );?>
236
					</div>
237
		    			<ul class="lasso-toolbar--html-snips">
238
						
239
		    				<?php if ( !$toolbar_headings ): ?>
240
		    				<li id="lasso-html--h2" title="<?php esc_attr_e( 'H2 Heading', 'lasso' );?>">
241
		    				<li id="lasso-html--h3" title="<?php esc_attr_e( 'H3 Heading', 'lasso' );?>">
242
		    				<?php endif; ?>
243
		    				<li id="lasso-html--ul" title="<?php esc_attr_e( 'Unordered List', 'lasso' );?>">
244
		    				<li id="lasso-html--ol" title="<?php esc_attr_e( 'Ordered List', 'lasso' );?>">
245
		    			</ul>
246
		    			<a class="lasso-toolbar--html__control lasso-toolbar--html__cancel" href="#"><?php _e( 'Cancel', 'lasso' );?></a>
247
		    			<a href="#" title="<?php esc_attr_e( 'Insert HTML', 'lasso' );?>" class="lasso-toolbar--html__control" id="lasso-toolbar--html__insert" ><?php _e( 'Insert', 'lasso' );?></a>
248
		    		</div>
249
		    	</div>
250
		    </li>
251 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...
252
		    <li id="lasso-toolbar--left-align" title="<?php esc_attr_e( 'Text Left Align', 'lasso' );?>"></li>
253
		    <li id="lasso-toolbar--center-align" title="<?php esc_attr_e( 'Text Center Align', 'lasso' );?>"></li>
254
			<li id="lasso-toolbar--right-align" title="<?php esc_attr_e( 'Text Right Align', 'lasso' );?>"></li>
255
			<?php endif; ?>
256
		</ul>
257 View Code Duplication
		<?php if ( is_singular() && $is_mobile ) { ?>
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...
258
259
				<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;">
260
261
					<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>
0 ignored issues
show
Bug introduced by
The variable $sc_saving_class does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
262
263
					<?php if ( 'draft' == $status && ( lasso_user_can('publish_posts') || lasso_user_can('publish_pages') )  ) { ?>
264
						<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>
265
					<?php } ?>
266
267
				</div>
268
269
		<?php } ?>
270
	</div>
271
272
	<?php return ob_get_clean();
273
}
274
275
/**
276
 * Draw the controls used for teh component settings within each component
277
 *
278
 * @since 1.0
279
 */
280
function lasso_editor_settings_toolbar() {
281
282
	$delete_nonce = wp_create_nonce( 'lasso-delete-nonce' );
283
284
	ob_start();
285
286
	if ( !lasso_user_can() )
287
		return;
288
289
	// let users add custom css classes
290
	$custom_classes = apply_filters( 'lasso_component_classes', '' );
291
292
	?>
293
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
294
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
295
		<li id="lasso-component--settings__trigger" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
296
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
297
		<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>
298
	</ul>
299
300
	<?php return ob_get_clean();
301
}
302
303
/**
304
 * Draws the controls used for changing the featured image
305
 *   These controls are appended based on the class set in the define
306
 *
307
 * @since 1.0
308
 */
309
function lasso_editor_image_controls() {
310
311
	ob_start();
312
313
	if ( !lasso_user_can() )
314
		return;
315
316
	// has post thumbnail
317
	$has_thumbnail = has_post_thumbnail( get_the_ID() ) ? 'class="lasso--featImg--has-thumb"' : false;
318
319
	?>
320
	<ul id="lasso--featImgControls" <?php echo $has_thumbnail;?>>
321
		<li id="lasso--featImgUpload"><a title="<?php esc_attr_e( 'Replace Image', 'lasso' );?>" href="#"><i class="lasso-icon-image"></i></a></li>
322
		<li id="lasso--featImgDelete"><a title="<?php esc_attr_e( 'Delete Image', 'lasso' );?>" href="#"><i class="lasso-icon-bin2"></i></a></li>
323
		<li id="lasso--featImgSave"><a href="#"><?php esc_attr_e( 'save', 'lasso' );?></a></li>
324
	</ul>
325
326
	<?php return ob_get_clean();
327
}
328
329
330
/**
331
 * Used to house post settings like scheduling, slugs and draft status
332
 * Note: the "add new" will use the same object as the currently shown. For example, if the user
333
 * is currently on a post, and clicks add new, then it'll add a new post. If the user is on a
334
 * post type like "dog", then it will create a new post type called "dog"
335
 *
336
 * @since 1.0
337
 */
338
function lasso_editor_component_modal() {
339
340
	ob_start();
341
342
	if ( !lasso_user_can() )
343
		return;
344
345
	global $post;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
346
347
	$postid = get_the_ID();
348
349
	$status = get_post_status( $postid );
350
	$nonce = wp_create_nonce( 'lasso-update-post-settings' );
351
352
	// let users add custom css classes
353
	$custom_classes = apply_filters( 'lasso_modal_settings_classes', '' );
354
355
	// objects categories
356
	$categories 		= lasso_get_post_objects( $postid, 'category' );
357
	$tags 				= lasso_get_post_objects( $postid, 'tag' );
358
359
	// modal tabs
360
	$tabs  				= lasso_modal_addons('tab');
361
	$content 			= lasso_modal_addons('content');
362
	
363
	//editor options
364
	$allow_change_date = lasso_editor_get_option('allow_change_date', 'lasso_editor');
365
366
	// are we singular
367
	$is_singular 		= is_singular();
368
	$is_singular_class 	= $is_singular ? 'lasso--postsettings__2col' : 'lasso--postsettings__1col';
369
	$has_thumb_class    = has_post_thumbnail() ? 'has-thumbnail' : 'no-thumbnail';
370
	$theme_supports     = current_theme_supports('post-thumbnails');
371
	$default_image 		= LASSO_URL.'/admin/assets/img/empty-img.png';
372
373
?>
374
	<div id="lasso--post-settings__modal" class="lasso--modal lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>">
375
		<div class="lasso--modal__inner">
376
377
			<?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...
378
379
			<div class="lasso--modal__content modal__content--core visible" data-addon-content="core">
380
				<form id="lasso--postsettings__form" enctype="multipart/form-data" class="lasso--post-form <?php echo $is_singular_class.' '.$has_thumb_class;?>" >
381
382
					<?php if ( $is_singular && $theme_supports ) : ?>
383
					<div class="lasso--postsettings__left">
384
						<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>
385
						<div class="lasso--post-thumb" data-default-thumb="<?php echo esc_url( $default_image );?>">
386
387
							<div id="lasso--post-thumb__controls" class="lasso--post-thumb__controls">
388
								<i id="lasso--post-thumb__add" title="<?php _e('Change Featured Image','lasso');?>" class="dashicons dashicons-edit"></i>
389
								<i id="lasso--post-thumb__delete" title="<?php _e('Delete Featured Image','lasso');?>" class="dashicons dashicons-no-alt"></i>
390
								<i id="lasso--save-status" class="lasso-icon lasso-icon-spinner6 not-visible"></i>
391
							</div>
392
393
							<?php echo has_post_thumbnail() ? get_the_post_thumbnail( $post->ID, 'medium' ) : '<img src="'.$default_image.'">'; ?>
394
395
						</div>
396
						<div id="lasso--featImgSave"><a href="#" class="not-visible">Save</a></div>
397
398
					</div>
399
					<?php endif; ?>
400
401
					<div class="lasso--postsettings__right">
402
403
						<?php if( lasso_user_can('publish_posts') || lasso_user_can('publish_pages') ): ?>
404
						<div class="lasso--postsettings__option story-status-option">
405
							<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>
406
							<ul class="story-status story-status-<?php echo sanitize_html_class( $status );?>">
407
								<li id="lasso--status-draft"><?php _e( 'Draft', 'lasso' );?></li>
408
								<li id="lasso--status-publish"><?php _e( 'Publish', 'lasso' );?></li>
409
							</ul>
410
							<div class="lasso--slider_wrap">
411
								<div id="lasso--slider"></div>
412
							</div>
413
						</div>
414
						<?php endif; ?>
415
416
						<?php if ( 'publish' == $status ): ?>
417
						<div class="lasso--postsettings__option story-slug-option">
418
							<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>
419
							<input class="lasso--modal__trigger-footer" type="text" name="story_slug" value="<?php echo isset( $post ) ? esc_attr( $post->post_name ) : false;?>">
420
						</div>
421
						<?php endif; ?>
422
423
					</div>
424
425
					<div class="lasso--postsettings__middle">
426
427
						<div class="lasso--postsettings__option story-categories-option">
428
							<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>
429
							<input id="lasso--cat-select" class="lasso--modal__trigger-footer" type="hidden" name="story_cats" value="<?php echo $categories;?>">
430
						</div>
431
432
						<div class="lasso--postsettings__option story-tags-option">
433
							<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>
434
							<input id="lasso--tag-select" class="lasso--modal__trigger-footer" type="hidden" name="story_tags" value="<?php echo $tags;?>">
435
						</div>
436
						<?php 
437
						if ($allow_change_date) { 
438
						    $dateformat = get_option( 'date_format' ); 
439
						?>
440
						    <label><?php _e( 'Post Date', 'lasso' ); ?></label>
441
							<input type="text" class="editus_custom_date" name="post_date" value="<?php echo get_the_time($dateformat, $postid);?>"/>
442
						<?php
443
						}?>
444
445
					</div>
446
					<!-- alternate way to display categories disabled now -->
447
					<!--div style="max-height:300px;overflow-y: scroll;"-->
448
                    <?php
449
							/*$allcats = explode(",",lasso_get_objects('category'));
0 ignored issues
show
Unused Code Comprehensibility introduced by
56% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
450
							$currcats = explode(",",$categories);
451
							foreach ( $allcats  as $category ) {
452
								if (empty($category)) continue;
453
							   $checked ="";
454
							   if (  in_array( $category, $currcats ) ) {
455
									$checked = 'checked="checked"';
456
									
457
							   }
458
							   echo '<label><input type="checkbox" '.$checked.' name="categories" id="'.$category.'" >'.$category.'</label>';
459
							}*/
460
					?>
461
					<!--/div-->
462
463
					<?php do_action( 'lasso_modal_post_form' ); // action ?>
464
465
					<div class="lasso--postsettings__footer" >
466
						<a href="#" class="lasso--postsettings-cancel"><?php _e( 'Cancel', 'lasso' );?></a>
467
						<input type="hidden" name="status" value="">
468
						<input type="hidden" name="categories" value="">
469
						<input type="hidden" name="postid" value="<?php echo get_the_ID();?>">
470
						<input type="hidden" name="action" value="process_update-object_post">
471
						<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
472
						<?php do_action( 'lasso_modal_post_form_footer' ); // action ?>
473
						<input type="submit" value="<?php esc_attr_e( 'Save', 'lasso' );?>">
474
					</div>
475
476
				</form>
477
			</div>
478
479
			<?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...
480
481
		</div>
482
483
	</div>
484
	<div id="lasso--modal__overlay"></div>
485
486
	<?php return ob_get_clean();
487
}
488
489
/**
490
 * Used to house the form for creating a new post within amodal
491
 *
492
 * @since 1.0
493
 */
494
function lasso_editor_newpost_modal() {
495
496
	global $post;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
497
498
	ob_start();
499
500
	if ( !lasso_user_can('edit_posts') )
501
		return;
502
503
	$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...
504
505
	$nonce = wp_create_nonce( 'lasso-editor-new-post' );
506
507
	// let users add custom css classes
508
	$custom_classes = apply_filters( 'lasso_modal_post_classes', '' );
509
510
	// return the post type
511
	$type = get_post_type( get_the_ID() );
512
513
	$mobile_style = "";
514
	if (wp_is_mobile()) {
515
		$mobile_style = 'style="top:140px !important;"';
516
	}
517
	?>
518
	<div id="lasso--post-new__modal" class="lasso--modal lasso--modal__med lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>" <?php echo $mobile_style;?>">
519
		<div class="lasso--modal__inner lasso--hasnewform">
520
521
			<form id="lasso--postnew__form" enctype="multipart/form-data" class="lasso--post-form">
522
523
				<div class="lasso--postsettings__option story-slug-option lasso--last-option">
524
					<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>
525
					<input class="lasso--modal__trigger-footer" type="text" required name="story_title" value="" placeholder="<?php esc_attr_e( 'Grump Wizards Make Toxic Brew', 'lasso' );?>">
526
						<div class="lasso--select-wrap" style="width:90px">
527
						<select id="lasso--select-type" name="story_type">
528
529
							<?php
530
								$types = lasso_post_types();
531 View Code Duplication
								if ( !empty( $types ) ) {
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...
532
									foreach( $types as $type ) {					
533
										$type = preg_replace( '/s\b/','', $type );
534
										printf( '<option value="%s">%s</option>', lcfirst( esc_attr( $type ) ) , ucfirst( esc_attr( $type ) ) );
535
									}
536
537
								}
538
							?>
539
540
						</select>
541
					</div>
542
				</div>
543
544
				<div class="lasso--postsettings__footer" style="<?php if (!wp_is_mobile()) {echo 'display:none;';} ?>">
545
					<a href="#" class="lasso--postsettings-cancel"><?php _e( 'Cancel', 'lasso' );?></a>
546
					<input type="hidden" name="action" value="process_new-object_post">
547
					<?php
548 View Code Duplication
						if ( !empty( $types ) ) {
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...
549
							// get the first element
550
						    $type = reset($types);							
551
							$type = preg_replace( '/s\b/','', $type );
552
							printf( '<input type="hidden" name="object" value="%s">', lcfirst( esc_attr( $type ) ) );		
553
						}
554
					?>
555
					<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
556
					<input type="submit" value="<?php esc_attr_e( 'Create', 'lasso' );?>">
557
				</div>
558
559
			</form>
560
561
		</div>
562
	</div>
563
	<div id="lasso--modal__overlay"></div>
564
565
	<?php return ob_get_clean();
566
}
567
568
/**
569
 * Used to house the all posts pop-up
570
 *
571
 * @since 0.9.3
572
 */
573
function lasso_editor_allpost_modal() {
574
575
	global $post;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
576
	
577
	global $wp_post_types;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
578
    $labels = &$wp_post_types['post']->labels;
579
    $labels->name = 'Articles';
580
581
	ob_start();
582
583
	// post status
584
	$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...
585
586
	// let users add custom css classes
587
	$custom_classes = apply_filters( 'lasso_modal_all_post_classes', '' );
588
589
	?>
590
	<div id="lasso--all-posts__modal" class="lasso--modal lasso--modal__full lassoShowAnimate <?php echo sanitize_html_class( $custom_classes );?>" style="max-height:100%">
591
		<div class="lasso--modal__inner">
592
593
			<div class="lasso--post-filtering not-visible">
594
				<div class="lasso--search__results">
595
					<span id="lasso--results-found"></span><?php _e('results found','lasso');?>
596
				</div>
597
				<div class="lasso--search">
598
					<i id="lasso--search__toggle" class="dashicons dashicons-search"></i>
599
					<input id="lasso--search-field" type="text" placeholder="search...">
600
				</div>
601
			</div>
602
603
			<ul class="lasso--post-object-list">
604
				<?php
605
606
				$post_types = lasso_post_types_names();
607
				$rest_bases = lasso_post_types_rest_base();
608
609
				if ( ! empty( $post_types ) ) {
610
					$first = 'active';
611
					foreach( $post_types as $name => $label ) {
612
						if (array_key_exists($name, $rest_bases)) {
613
							printf( '<li class="%1s lasso--show-objects" data-post-type="%2s">%3s</li>', esc_attr( $first), esc_attr( $rest_bases[$name] ), esc_attr( $label ) );
614
						}
615
						$first = '';
616
					}
617
618
				}
619
620
				do_action('lasso_modal_post_objects');?>
621
622
			</ul>
623
			<div id="lasso--loading" class="lasso--loading"><div class="lasso--loader"></div></div>
624
625
			<ul id="lasso--post-list" class="lasso--post-list"></ul>
626
627
		</div>
628
	</div>
629
	<div id="lasso--modal__overlay"></div>
630
631
	<?php return ob_get_clean();
632
}
633
634 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...
635
636
	ob_start();
637
638
	if ( !lasso_user_can() )
639
		return;
640
641
	// let users add custom css classes
642
	$custom_classes = apply_filters( 'lasso_wpimg_classes', '' );
643
644
	?>
645
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
646
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
647
		<li id="lasso--wpimg-edit" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
648
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
649
		<li class="lasso-delete" title="<?php esc_attr_e( 'Delete', 'lasso' );?>"></li>
650
	</ul>
651
652
	<?php return ob_get_clean();
653
}
654
655 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...
656
657
	ob_start();
658
659
	if ( !lasso_user_can() )
660
		return;
661
662
	// let users add custom css classes
663
	$custom_classes = apply_filters( 'lasso_wpimg_classes', '' );
664
665
	?>
666
	<ul class="lasso-component--controls <?php echo sanitize_html_class( $custom_classes );?>" contenteditable="false">
667
		<li class="lasso-drag" title="<?php esc_attr_e( 'Move', 'lasso' );?>"></li>
668
		<li id="lasso--wpvideo-edit" class="lasso-settings" title="<?php esc_attr_e( 'Settings', 'lasso' );?>"></li>
669
		<li class="lasso-clone" title="<?php esc_attr_e( 'Clone', 'lasso' );?>"></li>
670
		<li class="lasso-delete" title="<?php esc_attr_e( 'Delete', 'lasso' );?>"></li>
671
	</ul>
672
673
	<?php return ob_get_clean();
674
}
675
676
/**
677
 * Used to house the hidden input fields for actions and process saving for the map component
678
 *
679
 * @since 1.0
680
 */
681
function lasso_map_form_footer() {
682
683
	$nonce = wp_create_nonce( 'lasso-process-map' );
684
685
	ob_start();
686
687
	?>
688
	<div class="lasso--map-form__footer">
689
		<input type="hidden" name="postid" value="<?php echo get_the_ID();?>">
690
		<input type="hidden" name="nonce" value="<?php echo $nonce;?>">
691
		<input type="hidden" name="action" value="process_map_save">
692
		<input type="submit" class="lasso--map-form__submit" value="<?php esc_attr_e( 'Save Locations', 'lasso' );?>">
693
	</div>
694
695
	<?php return ob_get_clean();
696
697
}
698
699
/**
700
 * Some things aren't real-time updatable so we need to append a message in certain areas on certain actions
701
 *
702
 * @since 1.0
703
 */
704
function lasso_editor_refresh_message() {
705
706
	ob_start();
707
708
	?>
709
	<div id="lasso--pagerefresh" class="visible">
710
		<?php _e( 'Save this post and refesh the page to see these changes.', 'lasso' );?>
711
	</div>
712
713
	<?php return ob_get_clean();
714
}
715
716
/**
717
 * Draw out the settings field based on the shortcodes array with options foudn in Lasso Story Engine
718
 *  This was mostly backported from lasso story engine and modified to allow for non lasso shortcodes and components
719
 *
720
 * @since 1.0
721
 */
722
function lasso_editor_options_blob() {
723
724
	$codes   = function_exists( 'aesop_shortcodes' ) ? aesop_shortcodes() : apply_filters( 'lasso_custom_options', '' );
725
	$galleries  = function_exists( 'lasso_editor_galleries_exist' ) && lasso_editor_galleries_exist() ? 'has-galleries' : 'creating-gallery';
726
727
	$nonce = wp_create_nonce( 'lasso_gallery' );
728
729
	$blob = array();
730
731
	if ( empty( $codes ) )
732
		return;
733
734
	foreach ( $codes as $slug => $shortcode ) {
735
		$return = '';
736
		// Shortcode has atts
737
738
		if ( count( $shortcode['atts'] ) && $shortcode['atts'] ) {
739
740
			foreach ( $shortcode['atts'] as $attr_name => $attr_info ) {
741
742
743
				$prefix = isset( $attr_info['prefix'] ) ? sprintf( '<span class="lasso-option-prefix">%s</span>', $attr_info['prefix'] ) : null;
744
745
				$return .= '<form id="lasso--component-settings-form" class="'.$galleries.'" method="post">';
746
				$return .= '<p data-option="'.$attr_name.'" class="lasso-option lasso-'.$slug.'-'.$attr_name.'">';
747
				$return .= '<label for="lasso-generator-attr-' . $attr_name . '">' . $attr_info['desc'] . '</label>';
748
				$return .= '<small class="lasso-option-desc">'.$attr_info['tip'].'</small>';
749
				// Select
750
751
				if ( isset( $attr_info['values'] ) ) {
752
753
					$return .= '<select name="' . $attr_name . '" id="lasso-generator-attr-' . $attr_name . '" class="lasso-generator-attr">';
754
755
					$i=0;
756
757
					foreach ( $attr_info['values'] as $attr_value ) {
758
						$attr_value_selected = $attr_info['default'] == $attr_value ? ' selected="selected"' : '';
759
760
						$return .= '<option value="'.$attr_info['values'][$i]['value'].'" ' . $attr_value_selected . '>'.$attr_info['values'][$i]['name'].'</option>';
761
762
						$i++;
763
					}
764
765
					$return .= '</select>';
766
767
				} else {
768
769
					$attr_field_type = isset( $attr_info['type'] ) ? $attr_info['type'] : 'text';
770
771
					// image upload
772
					if ( 'media_upload' == $attr_info['type'] ) {
773
774
						$return .= '<input type="' . $attr_field_type . '" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="lasso-generator-attr-' . $attr_name . '" class="lasso-generator-attr lasso-generator-attr-'.$attr_field_type.'" />';
775
						$return .= '<a href="#" id="lasso-upload-img" class="lasso-option-button" /></a>';
776
777
					} elseif ( 'color' == $attr_info['type'] ) {
778
779
						$return .= '<input type="color" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="lasso-generator-attr-' . $attr_name . '" class="lasso-generator-attr lasso-generator-attr-'.$attr_field_type.'" />';
780
781
					} elseif ( 'text_area' == $attr_info['type'] ) {
782
783
						$return .= '<textarea name="' . $attr_name . '" id="lasso-generator-attr-' . $attr_name . '" class="lasso-generator-attr lasso-generator-attr-'.$attr_field_type.'" placeholder="'.$attr_info['default'].'" /></textarea>'.$prefix.'';
784
785
					} else {
786
						$return .= '<input type="' . $attr_field_type . '" name="' . $attr_name . '" value="'.$attr_info['default'].'" id="lasso-generator-attr-' . $attr_name . '" class="lasso-generator-attr lasso-generator-attr-'.$attr_field_type.'" />'.$prefix.'';
787
					}
788
				}
789
				$return .= '</p>';
790
791
			}
792
		}
793
794
		///////////////////////////
795
		// START GALLERY AND MAP FRONT END STUFFS
796
		///////////////////////////
797
		if ( isset( $shortcode['front'] ) && true == $shortcode['front'] ) {
798
799
			if ( 'gallery' == $shortcode['front_type'] ) {
800
801
				$return .= lasso_gallery_editor_module();
802
803
			}
804
		}
805
		///////////////////////////
806
		// END GALLERY AND MAP FRONT END STUFFS
807
		///////////////////////////
808
809
		// Single shortcode (not closed)
810
		if ( 'single' == $shortcode['type'] ) {
811
812
			$return .= '<input type="hidden" name="lasso-generator-content" id="lasso-generator-content" value="false" />';
813
814
		} else {
815
816
			$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>';
817
		}
818
819
		$return .= '<p class="lasso-buttoninsert-wrap"><a href="#" class="lasso-generator-cancel" id="lasso--sidebar__close">Cancel
820
</a><input type="submit" id="lasso-generator-insert" value="Save Settings"></p>';
821
		$return .= '<input class="component_type" type="hidden" name="component_type" value="">';
822
		$return .= '<input type="hidden" name="unique" value="">';
823
		$return .= '<input type="hidden" name="nonce" id="lasso-generator-nonce" value="'.$nonce.'" />';
824
		$return .= '</form>';
825
826
		$blob[$slug] = $return;
827
	}
828
829
	return $blob;
830
}
831
832
/**
833
 * Revisions modal
834
 *
835
 * @since 0.9.8
836
 *
837
 * @return string
838
 */
839
function lasso_editor_revision_modal() {
840
841
	ob_start();
842
	?>
843
		<div id="lasso--revision__modal" class="lasso--modal lassoShowAnimate ">
844
845
			<div class="lasso--modal__inner">
846
				<div id="lasso--loading" class="lasso--loading"><div class="lasso--loader"></div></div>
847
				<div id="lasso--hide" style="display:none;" class="lasso--post-form">
848
					<i class="lasso-icon lasso-icon-move"></i>
849
					<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>
850
					<div class="lasso--slider_wrap">
851
						<div id="lasso--slider"></div>
852
					</div>
853
					<ul id="lasso--revision-list"></ul>
854
					<div class="lasso--btn-group lasso--btn-group-small">
855
						<a href="#" class="lasso--btn-secondary" id="lasso--close-modal">Cancel</a>
856
						<a href="#" class="lasso--btn-primary" id="lasso--select-revision">Select</a>
857
					</div>
858
				</div>
859
860
			</div>
861
		</div>
862
	<?php
863
	return ob_get_clean();
864
}
865