1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
<?php if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); }
/** * WPBakery WPBakery Page Builder section * * @package WPBakeryPageBuilder * */ class WPBakeryShortCode_Vc_Section extends WPBakeryShortCodesContainer { /** * @param $width * @param $i * @return string */ public function containerHtmlBlockParams( $width, $i ) { return 'class="vc_section_container vc_container_for_children"'; }
/** * @param $settings */ public function __construct( $settings ) { parent::__construct( $settings ); $this->shortcodeScripts(); }
protected function shortcodeScripts() { wp_register_script( 'vc_jquery_skrollr_js', vc_asset_url( 'lib/bower/skrollr/dist/skrollr.min.js' ), array( 'jquery-core' ), WPB_VC_VERSION, true ); wp_register_script( 'vc_youtube_iframe_api_js', 'https://www.youtube.com/iframe_api', array(), WPB_VC_VERSION, true ); }
/** * @return string * @throws \Exception */ public function cssAdminClass() { $sortable = ( vc_user_access_check_shortcode_all( $this->shortcode ) ? ' wpb_sortable' : ' ' . $this->nonDraggableClass );
return 'wpb_' . $this->settings['base'] . $sortable . '' . ( ! empty( $this->settings['class'] ) ? ' ' . $this->settings['class'] : '' ); }
/** * @param string $controls * @param string $extended_css * @return string * @throws \Exception */ public function getColumnControls( $controls = 'full', $extended_css = '' ) { $controls_start = '<div class="vc_controls vc_controls-visible controls_column' . ( ! empty( $extended_css ) ? " {$extended_css}" : '' ) . '">';
$output = '<div class="vc_controls vc_controls-row controls_row vc_clearfix">'; $controls_end = '</div>'; // Create columns $controls_move = ' <a class="vc_control column_move vc_column-move" href="#" title="' . esc_attr__( 'Drag row to reorder', 'js_composer' ) . '" data-vc-control="move"><i class="vc-composer-icon vc-c-icon-dragndrop"></i></a>'; $moveAccess = vc_user_access()->part( 'dragndrop' )->checkStateAny( true, null )->get(); if ( ! $moveAccess ) { $controls_move = ''; } $controls_add = ' <a class="vc_control column_add vc_column-add" href="#" title="' . esc_attr__( 'Add column', 'js_composer' ) . '" data-vc-control="add"><i class="vc-composer-icon vc-c-icon-add"></i></a>'; $controls_delete = '<a class="vc_control column_delete vc_column-delete" href="#" title="' . esc_attr__( 'Delete this row', 'js_composer' ) . '" data-vc-control="delete"><i class="vc-composer-icon vc-c-icon-delete_empty"></i></a>'; $controls_edit = ' <a class="vc_control column_edit vc_column-edit" href="#" title="' . esc_attr__( 'Edit this row', 'js_composer' ) . '" data-vc-control="edit"><i class="vc-composer-icon vc-c-icon-mode_edit"></i></a>'; $controls_clone = ' <a class="vc_control column_clone vc_column-clone" href="#" title="' . esc_attr__( 'Clone this row', 'js_composer' ) . '" data-vc-control="clone"><i class="vc-composer-icon vc-c-icon-content_copy"></i></a>'; $editAccess = vc_user_access_check_shortcode_edit( $this->shortcode ); $allAccess = vc_user_access_check_shortcode_all( $this->shortcode ); $row_edit_clone_delete = '<span class="vc_row_edit_clone_delete">';
if ( 'add' === $controls ) { return $controls_start . $controls_add . $controls_end; } if ( $allAccess ) { $row_edit_clone_delete .= $controls_delete . $controls_clone . $controls_edit; } elseif ( $editAccess ) { $row_edit_clone_delete .= $controls_edit; } $row_edit_clone_delete .= '</span>';
if ( $allAccess ) { $output .= '<div>' . $controls_move . $controls_add . '</div>' . $row_edit_clone_delete . $controls_end; } elseif ( $editAccess ) { $output .= $row_edit_clone_delete . $controls_end; } else { $output .= $row_edit_clone_delete . $controls_end; }
return $output; }
/** * @param $atts * @param null $content * @return string * @throws \Exception */ public function contentAdmin( $atts, $content = null ) { $width = ''; $atts = shortcode_atts( $this->predefined_atts, $atts );
$output = '';
$column_controls = $this->getColumnControls();
$output .= '<div data-element_type="' . $this->settings['base'] . '" class="' . $this->cssAdminClass() . '">'; $output .= str_replace( '%column_size%', 1, $column_controls ); $output .= '<div class="wpb_element_wrapper">'; if ( isset( $this->settings['custom_markup'] ) && '' !== $this->settings['custom_markup'] ) { $markup = $this->settings['custom_markup']; $output .= $this->customMarkup( $markup ); } else { $output .= '<div ' . $this->containerHtmlBlockParams( $width, 1 ) . '>'; $output .= do_shortcode( shortcode_unautop( $content ) ); $output .= '</div>'; } if ( isset( $this->settings['params'] ) ) { $inner = ''; foreach ( $this->settings['params'] as $param ) { if ( ! isset( $param['param_name'] ) ) { continue; } $param_value = isset( $atts[ $param['param_name'] ] ) ? $atts[ $param['param_name'] ] : ''; if ( is_array( $param_value ) ) { // Get first element from the array reset( $param_value ); $first_key = key( $param_value ); $param_value = $param_value[ $first_key ]; } $inner .= $this->singleParamHtmlHolder( $param, $param_value ); } $output .= $inner; } $output .= '</div>'; if ( $this->backened_editor_prepend_controls ) { $output .= $this->getColumnControls( 'add', 'vc_section-bottom-controls bottom-controls' ); } $output .= '</div>';
return $output; } }
|