/** * Get rendered controls * * @param array $controls * * @return string */ public function getControls($controls) { if (!is_array($controls) || empty($controls)) { return ''; } $buttons = array(); $editAccess = vc_user_access_check_shortcode_edit($this->shortcode); $allAccess = vc_user_access_check_shortcode_all($this->shortcode); foreach ($controls as $control) { switch ($control) { case 'add': if ($allAccess) { $buttons[] = '<a class="vc_control-btn vc_control-btn-add" href="#" title="' . __('Add to this grid item', 'js_composer') . '" data-vc-control="add"><i class="vc_icon"></i></a>'; } break; case 'edit': if ($editAccess) { $buttons[] = '<a class="vc_control-btn vc_control-btn-edit" href="#" title="' . __('Edit this grid item', 'js_composer') . '" data-vc-control="edit"><i class="vc_icon"></i></a>'; } break; case 'delete': if ($allAccess) { $buttons[] = '<a class="vc_control-btn vc_control-btn-delete" href="#" title="' . __('Delete this grid item ', 'js_composer') . '" data-vc-control="delete"><i class="vc_icon"></i></a>'; } break; } } $html = '<div class="vc_controls vc_controls-dark vc_controls-visible">' . implode(' ', $buttons) . '</div>'; return $html; }
/** * @param $controls * @param string $extended_css * * @return string */ public function getColumnControls($controls, $extended_css = '') { $output = '<div class="vc_controls vc_control-column vc_controls-visible controls' . (!empty($extended_css) ? " {$extended_css}" : '') . '">'; $controls_end = '</div>'; if (' bottom-controls' === $extended_css) { $control_title = __('Append to this column', 'js_composer'); } else { $control_title = __('Prepend to this column', 'js_composer'); } if (vc_user_access()->part('shortcodes')->checkStateAny(true, 'custom', null)->get()) { $controls_add = '<a class="vc_control column_add vc_column-add" data-vc-control="add" href="#" title="' . $control_title . '"><i class="vc_icon"></i></a>'; } else { $controls_add = ''; } $controls_edit = '<a class="vc_control column_edit vc_column-edit" data-vc-control="edit" href="#" title="' . __('Edit this column', 'js_composer') . '"><i class="vc_icon"></i></a>'; $controls_delete = '<a class="vc_control column_delete vc_column-delete" data-vc-control="delete" href="#" title="' . __('Delete this column', 'js_composer') . '"><i class="vc_icon"></i></a>'; $editAccess = vc_user_access_check_shortcode_edit($this->shortcode); $allAccess = vc_user_access_check_shortcode_all($this->shortcode); if (is_array($controls) && !empty($controls)) { foreach ($controls as $control) { if ('add' === $control || $editAccess && 'edit' === $control || $allAccess) { $method_name = vc_camel_case('output-editor-control-' . $control); if (method_exists($this, $method_name)) { $output .= $this->{$method_name}(); } else { $control_var = 'controls_' . $control; if (isset(${$control_var})) { $output .= ${$control_var}; } } } } return $output . $controls_end; } elseif (is_string($controls) && 'full' === $controls) { if ($allAccess) { return $output . $controls_add . $controls_edit . $controls_delete . $controls_end; } elseif ($editAccess) { return $output . $controls_add . $controls_edit . $controls_end; } else { return $output . $controls_add . $controls_end; } return $output . $controls_end; } elseif (is_string($controls)) { $control_var = 'controls_' . $controls; if ('add' === $controls || ($editAccess && 'edit' == $controls || $allAccess) && isset(${$control_var})) { return $output . ${$control_var} . $controls_end; } return $output . $controls_end; } if ($allAccess) { return $output . $controls_add . $controls_edit . $controls_delete . $controls_end; } elseif ($editAccess) { return $output . $controls_add . $controls_edit . $controls_end; } else { return $output . $controls_add . $controls_end; } return $output . $controls_end; }
public function getColumnControls($controls, $extended_css = '') { $output = '<div class="vc_controls vc_controls-row controls controls_row vc_clearfix">'; $controls_end = '</div>'; //Create columns $controls_layout = $this->getLayoutsControl(); $controls_move = ' <a class="vc_control column_move vc_column-move" href="#" title="' . __('Drag row to reorder', 'js_composer') . '" data-vc-control="move"><i class="vc_icon"></i></a>'; $controls_add = ' <a class="vc_control column_add vc_column-add" href="#" title="' . __('Add column', 'js_composer') . '" data-vc-control="add"><i class="vc_icon"></i></a>'; $controls_delete = '<a class="vc_control column_delete vc_column-delete" href="#" title="' . __('Delete this row', 'js_composer') . '" data-vc-control="delete"><i class="vc_icon"></i></a>'; $controls_edit = ' <a class="vc_control column_edit vc_column-edit" href="#" title="' . __('Edit this row', 'js_composer') . '" data-vc-control="edit"><i class="vc_icon"></i></a>'; $controls_clone = ' <a class="vc_control column_clone vc_column-clone" href="#" title="' . __('Clone this row', 'js_composer') . '" data-vc-control="clone"><i class="vc_icon"></i></a>'; $controls_toggle = ' <a class="vc_control column_toggle vc_column-toggle" href="#" title="' . __('Toggle row', 'js_composer') . '" data-vc-control="toggle"><i class="vc_icon"></i></a>'; $editAccess = vc_user_access_check_shortcode_edit($this->shortcode); $allAccess = vc_user_access_check_shortcode_all($this->shortcode); if (is_array($controls) && !empty($controls)) { foreach ($controls as $control) { $control_var = 'controls_' . $control; if ($editAccess && 'edit' == $control || $allAccess) { if (isset(${$control_var})) { $output .= ${$control_var}; } } } $output .= $controls_end; } elseif (is_string($controls)) { $control_var = 'controls_' . $controls; if ($editAccess && 'edit' === $controls || $allAccess) { if (isset(${$control_var})) { $output .= ${$control_var} . $controls_end; } } } else { $row_edit_clone_delete = '<span class="vc_row_edit_clone_delete">'; if ($allAccess) { $row_edit_clone_delete .= $controls_delete . $controls_clone . $controls_edit; } elseif ($editAccess) { $row_edit_clone_delete .= $controls_edit; } $row_edit_clone_delete .= $controls_toggle; $row_edit_clone_delete .= '</span>'; if ($allAccess) { $output .= $controls_move . $controls_layout . $controls_add . $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; }
/** * Does user has access to modify/clone/delete/add shortcode * * @param $shortcode * * @todo fix_roles and maybe remove/@deprecate this * @since 4.5 * @return bool */ public function userHasAccess($shortcode) { if ($this->isCheckForAccess()) { if (isset($this->hasAccess[$shortcode])) { return $this->hasAccess[$shortcode]; } else { $this->hasAccess[$shortcode] = vc_user_access_check_shortcode_edit($shortcode); } return $this->hasAccess[$shortcode]; } return true; }
/** * @param $controls * @param string $extended_css * * @return string */ public function getColumnControls($controls = 'full', $extended_css = '') { $controls_start = '<div class="vc_controls vc_controls-visible controls controls_column' . (!empty($extended_css) ? " {$extended_css}" : '') . '">'; $controls_end = '</div>'; if ('bottom-controls' === $extended_css) { $control_title = sprintf(__('Append to this %s', 'js_composer'), strtolower($this->settings('name'))); } else { $control_title = sprintf(__('Prepend to this %s', 'js_composer'), strtolower($this->settings('name'))); } $controls_move = '<a class="vc_control column_move" data-vc-control="move" href="#" title="' . sprintf(__('Move this %s', 'js_composer'), strtolower($this->settings('name'))) . '"><span class="vc_icon"></span></a>'; $controls_add = '<a class="vc_control column_add" data-vc-control="add" href="#" title="' . $control_title . '"><span class="vc_icon"></span></a>'; $controls_edit = '<a class="vc_control column_edit" data-vc-control="edit" href="#" title="' . sprintf(__('Edit this %s', 'js_composer'), strtolower($this->settings('name'))) . '"><span class="vc_icon"></span></a>'; $controls_clone = '<a class="vc_control column_clone" data-vc-control="clone" href="#" title="' . sprintf(__('Clone this %s', 'js_composer'), strtolower($this->settings('name'))) . '"><span class="vc_icon"></span></a>'; $controls_delete = '<a class="vc_control column_delete" data-vc-control="delete" href="#" title="' . sprintf(__('Delete this %s', 'js_composer'), strtolower($this->settings('name'))) . '"><span class="vc_icon"></span></a>'; $controls_full = $controls_move . $controls_add . $controls_edit . $controls_clone . $controls_delete; $editAccess = vc_user_access_check_shortcode_edit($this->shortcode); $allAccess = vc_user_access_check_shortcode_all($this->shortcode); if (!empty($controls)) { if (is_string($controls)) { $controls = array($controls); } $controls_string = $controls_start; foreach ($controls as $control) { $control_var = 'controls_' . $control; if ($editAccess && 'edit' == $control || $allAccess) { if (isset(${$control_var})) { $controls_string .= ${$control_var}; } } } return $controls_string . $controls_end; } if ($allAccess) { return $controls_start . $controls_full . $controls_end; } elseif ($editAccess) { return $controls_start . $controls_edit . $controls_end; } return $controls_start . $controls_end; }
<?php $editAccess = vc_user_access_check_shortcode_edit($shortcode); $allAccess = vc_user_access_check_shortcode_all($shortcode); ?> <div class="vc_controls<?php echo !empty($extended_css) ? ' ' . $extended_css : ''; ?> "> <div class="vc_controls-<?php echo $position; ?> "> <a class="vc_element-name"> <span class="vc_btn-content"><?php echo $name; ?> </span> </a> <?php foreach ($controls as $control) { ?> <?php if ('add' === $control && vc_user_access()->part('shortcodes')->checkStateAny(true, 'custom', null)->get()) { ?> <a class="vc_control-btn vc_control-btn-prepend vc_edit" href="#" title="<?php printf(__('Prepend to %s', 'js_composer'), $name); ?> "><span class="vc_btn-content"><span class="icon"></span></span></a>