%PDF- %PDF-
| Direktori : /home/dopla/www/wp-content/plugins/kingcomposer/includes/ |
| Current File : /home/dopla/www/wp-content/plugins/kingcomposer/includes/kc.mapper.php |
<?php
/**
*
* King Composer
* (c) KingComposer.com
*
*/
if(!defined('KC_FILE')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
global $kc;
ob_start();
?>
<div class="wrap about-wrap">
<h1><?php _e('KC Shortcode Mapper', 'kingcomposer'); ?></h1>
<p class="about-text">
<?php _e('Mapping custom 3rd party shortcodes to add & edit by KingComposer', 'kingcomposer'); ?>.
<br />
<?php _e('Shortcodes need to be installed, or you can do it by following', 'kingcomposer'); ?>
<a href="http://docs.kingcomposer.com/display-the-output-of-the-shortcode/" target=_blank>
<?php _e('This Article', 'kingcomposer'); ?>
</a>
</p>
<div id="kc-mapper-list">
<div class="item add-new">
<i class="sl-plus"></i>
<br />
<?php _e('New Shortcode', 'kingcomposer'); ?>
</div>
<div class="item import-export">
<i class="sl-refresh"></i>
<br />
<?php _e('Import / Export', 'kingcomposer'); ?>
</div>
</div>
<pre class=kc-mapper-pre>
// Data stored in wp option "kc_shortcodes_mapper: get_option('kc_shortcodes_mapper', true);
// Use method "kc_include_map" to include exported_map_file in your theme: kc_include_map($path);
</pre>
</div>
<div id="kc-mapper-overlay">
<div id="kc-mapper-settings">
<div id="kc-mapper-screen-add-new" class="kc-mapper-screen">
<h2 class="mp-title"><?php _e('Add new shortcode map', 'kingcomposer'); ?></h2>
<p class="error"></p>
<strong><?php _e('Enter shortcode name or full shortcode string', 'kingcomposer'); ?>:</strong>
<textarea id="kc-mapper-string" class="mmp"></textarea>
<p class="desc">
<?php _e('Example', 'kingcomposer'); ?>: <strong>contact-form-7</strong>
<?php _e('or full string', 'kingcomposer'); ?>
<strong>[contact-form-7 id="1" title="Contact form 1"]</strong>
</p>
<p>
<button class="color mbtn" id="kc-mapper-parse"><i class="fa-flash"></i> <?php _e('Parse Shortcode', 'kingcomposer'); ?></button>
<button class="kc-mapper-settings-close mbtn"><i class="fa-times"></i> <?php _e('Cancel', 'kingcomposer'); ?></button>
</p>
</div>
<div id="kc-mapper-screen-edit" class="kc-mapper-screen">
<div id="kc-mapper-shortcode-info">
<div class="kc-mp-sc-icon">
<div class="icons-preview">
<i class="fa-star"></i>
</div>
<input type="hidden" name="icon" class="kc-param kc-param-icons infp" />
</div>
<div class="kc-mp-sc-info">
<label><?php _e('Shortcode Tag', 'kingcomposer'); ?>:</label>
<input type="text" name="tag" class="infp" />
</div>
<div class="kc-mp-sc-info">
<label><?php _e('Name', 'kingcomposer'); ?>:</label>
<input type="text" name="name" class="infp" />
</div>
<div class="kc-mp-sc-info">
<label><?php _e('Category', 'kingcomposer'); ?>:</label>
<input type="text" name="category" class="infp" />
</div>
<div class="kc-mp-sc-info desc">
<label><?php _e('Description', 'kingcomposer'); ?>:</label>
<input type="text" name="description" class="infp" />
</div>
<div class="kc-mp-sc-info">
<label><?php _e('Include content into', 'kingcomposer'); ?>?:</label>
<input type="checkbox" name="is_container" class="infp" />
</div>
<div class="kc-mp-sc-shortcode-string">
</div>
</div>
<div id="kc-mapper-fields"></div>
<div id="kc-mapper-fields-preview" class="m-p-body"></div>
<div id="kc-mapper-fields-btn">
<button class="save-fields color mbtn"><i class="fa-check"></i> <?php _e('Save', 'kingcomposer'); ?></button>
<button class="kc-mapper-settings-close mbtn"><i class="fa-times"></i> <?php _e('Cancel', 'kingcomposer'); ?></button>
<button class="kc-mapper-settings-delete mbtn delete"><i class="fa-trash"></i> <?php _e('Delete', 'kingcomposer'); ?></button>
<p>
<?php _e('Need help how to display output of shortcode?', 'kingcomposer'); ?>
<a href="http://docs.kingcomposer.com" target=_blank><?php _e('Check docs', 'kingcomposer'); ?></a>
</p>
</div>
</div>
<div id="kc-mapper-screen-import-export" class="kc-mapper-screen">
<h2 class="mp-title">
<a href="#export" class="active"><?php _e('Export', 'kingcomposer'); ?></a>
<a href="#import"><?php _e('Import', 'kingcomposer'); ?></a>
</h2>
<div class="tab export" style="display: block;">
<h2><?php _e('Export shortcodes mapper', 'kingcomposer'); ?>:</h2>
<textarea name="export" class="mmp"></textarea>
<p class="mmp-files">
<input type="text" name="export-name" placeholder="<?php _e('Enter file name', 'kingcomposer'); ?>" value="shortcode_maps_<?php echo date("F-j-Y-gi"); ?>" class="mmp" />
<button class="mbtn color do-export">
<i class="fa-download"></i> <?php _e('Download File', 'kingcomposer'); ?> (*.kc)
</button>
<button class="kc-mapper-settings-close mbtn">
<i class="fa-times"></i> <?php _e('Cancel', 'kingcomposer'); ?>
</button>
<a href="" class="download-anchor"></a>
</p>
<pre>
// After download exported file, use method kc_include_map($path); to add maps automatically.
// $path is the absolute path of exported_file.kc
</pre>
</div>
<div class="tab import">
<h2><?php _e('Import shortcodes mapper', 'kingcomposer'); ?>:</h2>
<textarea name="import" placeholder="<?php _e('Enter your maps here', 'kingcomposer'); ?>" class="mmp"></textarea>
<p>
<strong><?php _e('Upload the maps file to import', 'kingcomposer'); ?> (*.kc):</strong><br />
<input type="file" class="mbtn" />
</p>
<p>
<input type="checkbox" class="mbtn" id="kc-mapper-import-overwrite" />
<label for="kc-mapper-import-overwrite"><?php _e('Overwrite shortcode if exists?', 'kingcomposer'); ?></label>
</p>
<p>
<button class="mbtn color do-import">
<i class="fa-upload"></i> <?php _e('Import Now', 'kingcomposer'); ?>
</button>
<button class="kc-mapper-settings-close mbtn">
<i class="fa-times"></i> <?php _e('Cancel', 'kingcomposer'); ?>
</button>
</p>
</div>
</div>
</div>
</div>
<?php
$kc_shortcodes_mapper = ob_get_contents();
ob_end_clean();
echo $kc->apply_filters('kc_shortcodes_mapper', $kc_shortcodes_mapper);
?>
<div style="display: none;"><?php wp_editor('', 'kc-editor-preload'); ?></div>
<script type="text/javascript" src="<?php echo esc_url(KC_URL); ?>/assets/js/kc.mapper.js"></script>
<script type="text/javascript">
var kc_mapper_shortcodes = <?php
$mapper = get_option('kc_shortcodes_mapper', true);
if (!$mapper || !is_array($mapper))
echo '{}';
else echo json_encode($mapper);
?>, kc_mapper_nonce = '<?php echo wp_create_nonce( "kc-mapper-nonce" ); ?>';
</script>
<script type="text/html" id="tmpl-kc-mapper-field-template">
<div class="field_row field_row_param<# if (data.name == 'content'){ #> content_include<# } #>">
<h3 class="field-heading">
<span>{{(data.label !== '') ? data.label : data.name}}</span>
<i class="fa-times" data-action="delete-field" title="Delete param"></i>
</h3>
<div class="field-row-body">
<div class="values-fields">
<label><?php _e('Param name', 'kingcomposer'); ?>:</label>
<input name="name" value="{{data.name}}" class="kc-mapper-inp" type="text" <# if (data.name == 'content'){ #> disabled<# } #> />
<p><?php _e('The id of param', 'kingcomposer'); ?></p>
<label><?php _e('Param label', 'kingcomposer'); ?>:</label>
<input name="label" value="{{data.label}}" class="kc-mapper-inp" type="text" />
<p><?php _e('Heading of param', 'kingcomposer'); ?></p>
<label><?php _e('Field type', 'kingcomposer'); ?>:</label>
<#
if (data.level == 1)
{
if (data.name == 'content'){
var fields_support = {
textarea_html: 'Textarea Html',
text: 'Text field',
textarea: 'Textarea',
}
}else{
var fields_support = {
text: 'Text field',
textarea: 'Textarea',
toggle: 'Toggle',
dropdown: 'Dropdown',
radio: 'Radio',
checkbox: 'Checkbox',
radio_image: 'Radio Image',
group: 'Group Fields',
editor: 'Editor',
color_picker: 'Color Picker',
date_picker: 'Date Picker',
icon_picker: 'Icon Picker',
post_taxonomy: 'Post Taxonomy',
number_slider: 'Number Slider',
link: 'Link',
autocomplete: 'Autocomplete',
attach_image: 'Media (return ID)',
attach_images: 'Multiple Media (return IDs)',
attach_image_url: 'Media (return url)',
hidden: 'Hidden'
}
}
} else {
// fields level 2 into group
var fields_support = {
text: 'Text field',
textarea: 'Textarea',
toggle: 'Toggle',
dropdown: 'Dropdown',
radio: 'Radio',
checkbox: 'Checkbox',
radio_image: 'Radio Image',
editor: 'Editor',
color_picker: 'Color Picker',
date_picker: 'Date Picker',
icon_picker: 'Icon Picker',
post_taxonomy: 'Post Taxonomy',
number_slider: 'Number Slider',
link: 'Link',
autocomplete: 'Autocomplete',
attach_image: 'Media (return ID)',
attach_images: 'Multiple Media (return IDs)',
attach_image_url: 'Media (return url)',
hidden: 'Hidden'
}
}
#>
<select name="type" class="kc-mapper-inp">
<#
for (n in fields_support) {
#><option value="{{n}}"<# if (data.type == n){ #> selected<# } #>>{{fields_support[n]}}</option><#
}
#>
</select>
<p><?php _e('Select type for field', 'kingcomposer'); ?></p>
<# if (data.level == 1){ #>
<label><?php _e('Default value', 'kingcomposer'); ?>:</label>
<input name="value" value="{{data.value}}" class="kc-mapper-inp" type="text" />
<p><?php _e('The default value of field', 'kingcomposer'); ?></p>
<label><?php _e('Admin label', 'kingcomposer'); ?>:</label>
<p class="rdo">
<# var randip = parseInt(Math.random()*10000); #>
<input name="admin_label" value="1" <#
if (data.admin_label === true){ #> checked<# }
#> class="kc-mapper-inp" type="checkbox" id="kc-mapper-field-admin-label-{{randip}}" />
<label for="kc-mapper-field-admin-label-{{randip}}">
<?php _e('The value will show in preview', 'kingcomposer'); ?>
</label>
</p>
<# }else{ #>
<p>
<?php _e('Need help how to set default value for field group?', 'kingcomposer'); ?>
<a href="http://docs.kingcomposer.com/available-param-types/group-fields/" target=_blank><?php _e('Check docs', 'kingcomposer'); ?></a>
</p>
<# } #>
<div class="dropdown-relation-hidden"<#
if(['dropdown', 'radio', 'checkbox', 'number_slider', 'autocomplete', 'radio_image'].indexOf(data.type) > -1){
#> style="display: block;"<#
}
#>>
<label><?php _e('Options', 'kingcomposer'); ?>:</label>
<#
var str = "";
if (data.options !== '') {
for (var n in data.options) {
str += n+':'+data.options[n]+"\n"
}
}
#>
<textarea name="options" class="kc-mapper-inp" data-std-type="{{data.type}}" data-std-ops="{{str}}">{{{str}}}</textarea>
<p><?php _e('Separate options by enter new line', 'kingcomposer'); ?></p>
</div>
<label><?php _e('Description', 'kingcomposer'); ?>:</label>
<textarea name="description" class="kc-mapper-inp">{{data.description}}</textarea>
<p><?php _e('Param Description', 'kingcomposer'); ?></p>
<# if (data.level == 1 && data.name != 'content'){ #>
<label><?php _e('Relation', 'kingcomposer'); ?>:</label>
<#
str = "";
if (data.relation !== '') {
for (var n in data.relation) {
str += n+':'+data.relation[n]+"\n"
}
}
#>
<p class="rdo">
<# randip = parseInt(Math.random()*10000); #>
<input name="relation-op" value="1" <#
if (str !== ''){ #> checked<# }
#> class="kc-mapper-inp" type="checkbox" id="kc-mapper-field-admin-label-{{randip}}" />
<label for="kc-mapper-field-admin-label-{{randip}}">
<?php _e('Show or hide depending on the another field (Note: parent field must be placed above this field)', 'kingcomposer'); ?>
</label>
<textarea name="relation" class="kc-mapper-inp" data-std-vl="{{{str}}}" style="margin-top:10px;<#
if (str === ''){ #> display: none;<# }
#>">{{{str}}}</textarea>
<# } #>
</p>
</div>
<div class="groupfields-relation-hidden"<# if (data.type == 'group'){ #> style="display: block;"<#} #>>
<strong><?php _e('Children fields', 'kingcomposer'); ?>:</strong>
<input type="hidden" name="params" value="{{(data.params!=='')?JSON.stringify(data.params):''}}" class="kc-mapper-inp" />
<div class="kc-group-fields-render"></div>
</div>
</div>
</div>
<#
data.callback = function(wrp, data) {
wrp.find('>.field-heading').on('mousedown', function(e)
{
this.clientX = e.clientX;
this.clientY = e.clientY;
}).on('mouseup', function(e) {
if (this.clientX == e.clientX && this.clientY == e.clientY)
{
if (e.target.getAttribute('data-action') == 'delete-field') {
kc_mapper.field.delete(this);
return;
}
var $this = jQuery(this),
cur = $this.parent().find('>.field-row-body').css('display');
$this.parent().parent().find('>.field_row>.field-row-body').hide();
if (cur === 'block')
cur = 'hidden';
else cur = 'block';
$this.parent().find('>.field-row-body').css('display', cur);
}
});
wrp.find('.kc-mapper-inp').on('change', kc_mapper.field.change);
if (data.type == 'group' && data.params !== '' && Object.keys(data.params).length > 0) {
kc_mapper.field.render(
wrp.find('.kc-group-fields-render'),
data.params
);
}
}
#>
</script>