Completed
Push — master ( 8d9355...4de7f8 )
by
unknown
01:45
created

editus_paragraph::scripts()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 *
4
 *
5
 * @package   Editus
6
 * @author    Hyun Supul <[email protected]>, Nick Haskins <[email protected]>
7
 * @link      http://edituswp.com
8
 * @copyright 2015-2021 Aesopinteractive 
9
 *
10
 * Plugin Name:       Editus
11
 * Plugin URI:        http://edituswp.com
12
 * Description:       Front-end editor and story builder.
13
 * Version:           1.3.7
14
 * Author:            Aesopinteractive 
15
 * Author URI:        http://aesopinteractive.com
16
 * Text Domain:       lasso
17
 * Domain Path:       /languages
18
 */
19
20
// If this file is called directly, abort.
21
if ( ! defined( 'WPINC' ) ) {
22
	die;
23
}
24
25
// Set some constants
26
define( 'LASSO_VERSION', '1.3.7' );
27
define( 'LASSO_DIR', plugin_dir_path( __FILE__ ) );
28
define( 'LASSO_URL', plugins_url( '', __FILE__ ) );
29
define( 'LASSO_FILE', __FILE__ );
30
31
/**
32
 * Load plugin if PHP version is 5.4 or later.
33
 */
34
if ( version_compare( PHP_VERSION, '5.4.0', '>=' ) ) {
35
36
	include_once( LASSO_DIR . '/bootstrap.php' );
37
38
} else {
39
40
	add_action('admin_head', 'lasso_fail_notice');
41
	function lasso_fail_notice(){
42
43
		printf('<div class="error"><p>Editus requires PHP 5.4 or higher.</p></div>');
44
45
	}
46
}
47
48
add_filter('register_post_type_args', 'lasso_show_in_rest', 10, 2);
49
function lasso_show_in_rest($args, $post_type){
50
 
51
    $allowed_post_types = lasso_editor_get_option( 'allowed_post_types', 'lasso_editor', array( ) );
0 ignored issues
show
Documentation introduced by
array() is of type array, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
52
	$allowed_post_types = apply_filters( 'lasso_allowed_post_types', $allowed_post_types );
53
	if (in_array( $post_type,$allowed_post_types)) {
54
		$args['show_in_rest'] = true;
55
		if ($post_type != 'post' && $post_type != 'page') {
56
			$args['rest_base'] = $post_type;
57
		}
58
	}
59
 
60
    return $args;
61
}
62
63
64 View Code Duplication
function lasso_editor_get_option( $option, $section, $default = '' ) {
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...
65
66
	if ( empty( $option ) )
67
		return;
68
69
	if ( function_exists( 'is_multisite' ) && is_multisite() ) {
70
71
		$options = get_site_option( $section );
72
73
	} else {
74
75
		$options = get_option( $section );
76
	}
77
78
	if ( isset( $options[$option] ) ) {
79
		return $options[$option];
80
	}
81
82
	return $default;
83
}
84
85
register_meta('user', 'lasso_hide_tour', array(
86
  "type" => "string",
87
  "show_in_rest" => true // this is the key part
88
));
89
90
// Gutenberg
91
if( function_exists( 'is_gutenberg_page' ) ) {
92
	function add_raw_to_post( $response, $post, $request ) {
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
93
		$response_data = $response->get_data();
94
		if ( is_array( $response_data['content'] )) {
95
			$response_data['content']['raw'] =  $post->post_content ;
96
			$response->set_data( $response_data );
97
		}
98
99
		return $response;
100
	}
101
	add_filter( "rest_prepare_post", 'add_raw_to_post', 10, 3 );
102
}
103
104
105
106
//table codes to be added
107
class editus_table {
108
    
109
    public function __construct(){
110
        $add_table = lasso_editor_get_option('add_table', 'lasso_editor', false);
0 ignored issues
show
Documentation introduced by
false is of type boolean, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
111
        if ($add_table) {
112
            add_action('wp_enqueue_scripts', array($this,'scripts'));
113
            
114
        }
115
	}
116
    
117
    function scripts()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
118
    {
119
        add_action('lasso_editor_controls_after_outside', array($this,'editus_table_edit_menu'));
120
            add_filter('lasso_components',array($this,'editus_components_add_table'),10,1);
121
            add_action( 'lasso_toolbar_components', array($this,'editus_toolbar_components_add_table'), 10 );
122
            wp_enqueue_style( 'editus-table-style', LASSO_URL.  '/public/assets/css/editus-table-edit-public.css', LASSO_VERSION, true );
123
            wp_enqueue_script( 'editus_table',  LASSO_URL. '/public/assets/js/editus-table-edit-public.js', array( 'jquery' ), LASSO_VERSION, true );
124
    }
125
    
126
    function editus_table_edit_menu()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
127
    { ?>
128
129
        <ul class='editus-table-menu'>
130
          <li data-action="insertcol"><?php echo __('Insert Column','lasso')?></li>
131
          <li data-action="insertrow"><?php echo __('Insert Row','lasso')?></li>
132
          <li data-action="delcol"><?php echo __('Delete Column','lasso')?></li>
133
          <li data-action="delrow"><?php echo __('Delete Row','lasso')?></li>
134
          <li data-action="deltable"><?php echo __('Delete Table','lasso')?></li
135
        </ul>
136
    <?php
137
    }
138
    
139
    
140
    function editus_html_table()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
141
    {   
142
        return '<figure class="wp-block-table"><table><tr><th>Cell 1</th><th>Cell 2</th></tr><tr><td>Cell 3</td><td>Cell 4</td></tr></table></figure><p><br></p>';
143
    }
144
145
146 View Code Duplication
    function editus_components_add_table( $array ){
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
Duplication introduced by
This method 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...
147
        $custom = array(
148
               'htmltable' => array(
149
                         'name'    => __('HTML Table','lasso'),
150
                          'content' => self::editus_html_table(),
151
                )
152
        );
153
        return array_merge( $array, $custom );
154
    }
155
156
157
    function editus_toolbar_components_add_table( ) {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
158
          ?>
159
          <li data-type="htmltable" title="<?php esc_attr_e( 'HTML Table', 'lasso' );?>" class="quote lasso-toolbar--component__htmltable dashicons dashicons-grid-view"></li>
160
          <?php
161
    }
162
}
163
164
165
new editus_table();
166
167
168
169
//table codes to be added
170
class editus_paragraph {
171
    
172
    public function __construct(){
173
        add_action('wp_enqueue_scripts', array($this,'scripts'));
174
	}
175
    
176
    function scripts()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
177
    {
178
            add_action('lasso_editor_controls_after_outside', array($this,'editus_paragraph_style'));
179
            add_filter('lasso_components',array($this,'editus_components_add_paragraph'),10,1);
180
            add_action( 'lasso_toolbar_components', array($this,'editus_toolbar_components_add_paragraph'), 10 );
181
            //wp_enqueue_style( 'editus-table-style', LASSO_URL.  '/public/assets/css/editus-table-edit-public.css', LASSO_VERSION, true );
182
            //wp_enqueue_script( 'editus_table',  LASSO_URL. '/public/assets/js/editus-table-edit-public.js', array( 'jquery' ), LASSO_VERSION, true );
183
    }
184
   
185 View Code Duplication
    function editus_components_add_paragraph( $array ){
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
Duplication introduced by
This method 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...
186
        $custom = array(
187
               'htmlparagraph' => array(
188
                         'name'    => __('HTML Paragraph','lasso'),
189
                          'content' => self::editus_html_paragraph(),
190
                )
191
        );
192
        return array_merge( $array, $custom );
193
    }
194
    
195
    
196
    function editus_html_paragraph()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
197
    {   
198
        return '<p contenteditable="true"><br></p>';
199
    }
200
201
    function editus_paragraph_style()
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
202
    { ?>
203
        <style>
204
        #lasso-toolbar--components__list .lasso-toolbar--component__htmlparagraph:before
205
        { 
206
            content: "\f476";
207
            font-family: 'dashicons' !important; 
208
        }
209
        </style>
210
    <?php
211
    }
212
    
213
214
    function editus_toolbar_components_add_paragraph( ) {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
215
          ?>
216
          <li data-type="htmlparagraph" title="<?php esc_attr_e( 'HTML Paragraph', 'lasso' );?>" class="quote lasso-toolbar--component__htmlparagraph dashicons dashicons-editor-paragraph"></li>
217
          <?php
218
    }
219
}
220
221
//Disable it for now
222
//new editus_paragraph();
223
224
225
226