| Server IP : 146.59.209.152 / Your IP : 216.73.216.46 Web Server : Apache System : Linux webm005.cluster131.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : infrafs ( 43850) PHP Version : 8.2.29 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/infrafs/www/wp-content/plugins/wp-store-locator/admin/ |
Upload File : |
<?php
/**
* Shortcode Generator class
*
* @author Tijmen Smit
* @since 2.2.10
*/
if ( !defined( 'ABSPATH' ) ) exit;
if ( !class_exists( 'WPSL_Shortcode_Generator' ) ) {
/**
* Handle the generation of the WPSL shortcode through the media button
*
* @since 2.2.10
*/
class WPSL_Shortcode_Generator {
/**
* Constructor
*/
public function __construct() {
add_action( 'media_buttons', array( $this, 'add_wpsl_media_button' ) );
add_action( 'admin_init', array( $this, 'show_thickbox_iframe_content' ) );
}
/**
* Add the WPSL media button to the media button row
*
* @since 2.2.10
* @return void
*/
public function add_wpsl_media_button() {
global $pagenow, $typenow;
/* Make sure we're on a post/page or edit screen in the admin area */
if ( in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) && $typenow != 'wpsl_stores' ) {
$changelog_link = self_admin_url( '?wpsl_media_action=store_locator&KeepThis=true&TB_iframe=true&width=783&height=800' );
echo '<a href="' . esc_url( $changelog_link ) . '" class="thickbox button wpsl-thickbox" name="' . __( 'WP Store Locator' ,'wpsl' ) . '">' . __( 'Insert Store Locator', 'wpsl' ) . '</a>';
}
}
/**
* Show the shortcode thickbox content
*
* @since 2.2.10
* @return void
*/
function show_thickbox_iframe_content() {
global $wpsl_settings, $wpsl_admin;
if ( empty( $_REQUEST['wpsl_media_action'] ) ) {
return;
}
if ( !current_user_can( 'edit_pages' ) ) {
wp_die( __( 'You do not have permission to perform this action', 'wpsl' ), __( 'Error', 'wpsl' ), array( 'response' => 403 ) );
}
$min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
// Make sure the required JS / CSS files are loaded in the Thickbox iframe
wp_print_scripts( 'jquery-ui-core' );
wp_print_scripts( 'jquery-ui-tabs' );
wp_print_scripts( 'media-upload' );
?>
<script type="text/javascript" src="<?php echo plugins_url( '/js/wpsl-shortcode-generator' . $min . '.js?ver='. WPSL_VERSION_NUM .'', __FILE__ ); ?>"></script>
<?php
wp_print_styles('buttons' );
wp_print_styles('forms' );
?>
<link rel="stylesheet" type="text/css" href="<?php echo plugins_url( '/css/style' . $min . '.css?ver='. WPSL_VERSION_NUM .'', __FILE__ ); ?>" media="all" />
<style>
body {
color: #444;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 13px;
margin: 0;
}
#wpsl-media-tabs .ui-tabs-nav {
padding-left: 15px;
background: #fff !important;
border-bottom: 1px solid #dfdfdf;
border-collapse: collapse;
padding-top: .2em;
}
#wpsl-media-tabs .ui-tabs-nav::after {
clear: both;
content: "";
display: table;
border-collapse: collapse;
}
#wpsl-media-tabs .ui-tabs-nav li {
list-style: none;
float: left;
position: relative;
top: 0;
margin: 1px .2em 0 0;
padding: 0;
white-space: nowrap;
border-bottom-width: 0;
}
#wpsl-media-tabs .ui-tabs-anchor {
float: left;
padding: .5em 1em;
text-decoration: none;
font-size: 14.3px;
}
#wpsl-media-tabs .ui-tabs-active a {
color: #212121;
cursor: text;
}
#wpsl-media-tabs .ui-tabs .ui-tabs-anchor {
float: left;
padding: .5em 1em;
text-decoration: none;
}
#wpsl-media-tabs.ui-widget-content {
border: none;
padding: 10px 0 0 0;
}
#wpsl-media-tabs .ui-tabs-anchor {
outline: none;
}
#wpsl-shortcode-config tr > td {
width: 25%;
}
#wpsl-markers-tab .wpsl-marker-list {
display: block;
overflow: hidden;
padding: 0;
list-style-type: none;
}
#wpsl-markers-tab .wpsl-marker-list li input {
padding: 0;
margin: 0;
}
#wpsl-shortcode-config .form-table,
#wpsl-shortcode-config .form-table td,
#wpsl-shortcode-config .form-table th,
#wpsl-shortcode-config .form-table td p {
font-size: 13px;
}
#wpsl-shortcode-config .ui-tabs .ui-tabs-nav {
padding-left: 15px;
border-radius: 0;
margin: 0;
}
.wpsl-shortcode-markers {
padding: 0 10px;
margin-top: 27px;
font-size: 13px;
}
#wpsl-insert-shortcode {
margin-left: 19px;
}
#wpsl-shortcode-config .ui-state-default {
border: 1px solid #d3d3d3;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
background: none;
}
#wpsl-shortcode-config .ui-state-default a {
color: #909090;
}
#wpsl-shortcode-config .ui-state-default.ui-tabs-active a {
color: #212121;
}
#wpsl-shortcode-config .ui-state-hover {
border-bottom: none;
}
#wpsl-shortcode-config .ui-state-hover a {
color: #72777c;
}
#wpsl-media-tabs .ui-state-active {
border: 1px solid #aaa;
border-bottom: 1px solid #fff;
padding-bottom: 0;
}
#wpsl-shortcode-config li.ui-tabs-active.ui-state-hover,
#wpsl-shortcode-config li.ui-tabs-active {
border-bottom: 1px solid #fff;
padding-bottom: 0;
}
#wpsl-media-tabs li.ui-tabs-active {
margin-bottom: -1px;
}
#wpsl-general-tab,
#wpsl-markers-tab {
border: 0;
padding: 1em 1.4em;
background: none;
}
@media ( max-width: 782px ) {
#wpsl-shortcode-config tr > td {
width: 100%;
}
}
</style>
<div id="wpsl-shortcode-config" class="wp-core-ui">
<div id="wpsl-media-tabs">
<ul>
<li><a href="#wpsl-general-tab"><?php _e( 'General Options', 'wpsl' ); ?></a></li>
<li><a href="#wpsl-markers-tab"><?php _e('Markers', 'wpsl' ); ?></a></li>
</ul>
<div id="wpsl-general-tab">
<table class="form-table wpsl-shortcode-config">
<tbody>
<tr>
<td><label for="wpsl-store-template"><?php _e('Select the used template', 'wpsl' ); ?></label></td>
<td><?php echo $wpsl_admin->settings_page->show_template_options(); ?></td>
</tr>
<tr>
<td><label for="wpsl-start-location"><?php _e( 'Start point', 'wpsl' ); ?></label><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If nothing it set, then the start point from the %ssettings%s page is used.', '' ), '<a href=' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings#wpsl-map-settings' ) . '>', '</a>' ); ?></span></span></p></td>
<td><input type="text" placeholder="Optional" value="" id="wpsl-start-location"></td>
</tr>
<tr>
<td>
<label for="wpsl-auto-locate"><?php _e( 'Attempt to auto-locate the user', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Most modern browsers %srequire%s a HTTPS connection before the Geolocation feature works.', 'wpsl_csv' ), '<a href="https://wpstorelocator.co/document/html-5-geolocation-not-working/">', '</a>' ); ?></span></span></label>
</td>
<td><input type="checkbox" value="" <?php checked( $wpsl_settings['auto_locate'], true ); ?> name="wpsl_map[auto_locate]" id="wpsl-auto-locate"></td>
</tr>
<?php
$terms = get_terms( 'wpsl_store_category', 'hide_empty=1' );
if ( $terms ) {
?>
<tr>
<td><label for="wpsl-cat-filter-types"><?php _e( 'Category filter type', 'wpsl' ); ?></label></p></td>
<td>
<select id="wpsl-cat-filter-types" autocomplete="off">
<option value="" selected="selected"><?php _e( 'None', 'wpsl' ); ?></option>
<option value="dropdown"><?php _e( 'Dropdown', 'wpsl' ); ?></option>
<option value="checkboxes"><?php _e( 'Checkboxes', 'wpsl' ); ?></option>
</select>
</td>
</tr>
<tr class="wpsl-cat-restriction">
<td style="vertical-align:top;"><label for="wpsl-cat-restriction"><?php _e('Automatically restrict the returned results to one or more categories?', 'wpsl' ); ?></label></td>
<td>
<?php
$cat_restricton = '<select id="wpsl-cat-restriction" multiple="multiple" autocomplete="off">';
foreach ( $terms as $term ) {
$cat_restricton .= '<option value="' . esc_attr( $term->slug ) . '">' . esc_html( $term->name ) . '</option>';
}
$cat_restricton .= '</select>';
echo $cat_restricton;
?>
</td>
</tr>
<tr class="wpsl-cat-selection wpsl-hide">
<td style="vertical-align:top;"><label for="wpsl-cat-selection"><?php _e('Set a selected category?', 'wpsl' ); ?></label></td>
<td>
<?php
$cat_selection = '<select id="wpsl-cat-selection" autocomplete="off">';
$cat_selection .= '<option value="" selected="selected">' . __( 'Select category', 'wpsl' ) . '</option>';
foreach ( $terms as $term ) {
$cat_selection .= '<option value="' . esc_attr( $term->slug ) . '">' . esc_html( $term->name ) . '</option>';
}
$cat_selection .= '</select>';
echo $cat_selection;
?>
</td>
</tr>
<?php
}
?>
<tr class="wpsl-checkbox-options wpsl-hide">
<td><label for="wpsl-checkbox-columns"><?php _e('Checkbox columns', 'wpsl' ); ?></label></td>
<td>
<?php
echo '<select id="wpsl-checkbox-columns">';
$i = 1;
while ( $i <= 4 ) {
$selected = ( $i == 3 ) ? "selected='selected'" : ''; // 3 is the default
echo '<option value="' . $i . '" ' . $selected . '>' . $i . '</option>';
$i++;
}
echo '</select>';
?>
</td>
</tr>
<tr class="wpsl-checkbox-selection wpsl-hide">
<td><label for="wpsl-checkbox-columns"><?php _e('Set selected checkboxes', 'wpsl' ); ?></label></td>
<td>
<?php
$checkbox_selection = '<select id="wpsl-checkbox-selection" multiple="multiple" autocomplete="off">';
foreach ( $terms as $term ) {
$checkbox_selection .= '<option value="' . esc_attr( $term->slug ) . '">' . esc_html( $term->name ) . '</option>';
}
$checkbox_selection .= '</select>';
echo $checkbox_selection;
?>
</td>
</tr>
<tr>
<td><label for="wpsl-map-type"><?php _e( 'Map type', 'wpsl' ); ?>:</label></td>
<td><?php echo $wpsl_admin->settings_page->create_dropdown( 'map_types' ); ?></td>
</tr>
</tbody>
</table>
</div>
<div id="wpsl-markers-tab">
<div class="wpsl-shortcode-markers">
<?php echo $wpsl_admin->settings_page->show_marker_options(); ?>
</div>
</div>
</div>
<p class="submit">
<input type="button" id="wpsl-insert-shortcode" class="button-primary" value="<?php echo _e( 'Insert Store Locator', 'wpsl' ); ?>" onclick="WPSL_InsertShortcode();" />
</p>
</div>
<?php
exit();
}
}
new WPSL_Shortcode_Generator();
}