initial commit

This commit is contained in:
2024-04-29 13:12:44 +05:45
commit 34887303c5
19300 changed files with 5268802 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,44 @@
/* Meta boxes */
#sharethis-meta-box .button-check-wrap {
display: block;
margin-bottom: .5rem;
}
#sharethis-meta-box .sharethis-shortcode {
background: #ffffff;
border: 1px solid #b4b9be;
width: 100%;
margin-right: 1rem;
}
#sharethis-meta-box .under-message {
font-style: italic;
color: #979797;
}
#sharethis-meta-box #sticky {
margin-bottom: 1rem;
}
/* Block styles */
.inline-share-button-block img {
max-width: 37px;
margin-right: 10px;
display: inline-block;
vertical-align: middle;
background-color: #a4d94a;
padding: 10px;
}
.inline-share-button-block {
font-size: 20px;
font-family: sans-serif;
border-bottom: 2px solid #93d227;
border-top: 2px solid #93d227;
padding: 10px;
color: #93d227;
text-align: center;
max-width: 400px;
margin: auto;
}

View File

@@ -0,0 +1 @@
/* Hide sticky buttons */

View File

@@ -0,0 +1,29 @@
<?php
/**
* Instantiates the ShareThis Share Buttons plugin
*
* @package ShareThisShareButtons
*/
namespace ShareThisShareButtons;
global $sharethis_share_buttons_plugin;
require_once __DIR__ . '/php/class-plugin-base.php';
require_once __DIR__ . '/php/class-plugin.php';
require_once __DIR__ . '/php/class-button-widget.php';
require_once __DIR__ . '/php/class-minute-control.php';
require_once __DIR__ . '/php/class-share-buttons.php';
$sharethis_share_buttons_plugin = new Plugin();
/**
* ShareThis Share Buttons Plugin Instance
*
* @return Plugin
*/
function get_plugin_instance() {
global $sharethis_share_buttons_plugin;
return $sharethis_share_buttons_plugin;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
/* global wp:wp */
/**
* This section of code registers the sharethis share buttons blocks.
*/
const shareregisterBlockType = wp.blocks.registerBlockType;
const sharecreateElement = wp.element.createElement;
const shareicon = sharecreateElement('div', { style: {
background: `url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")`,
width: '24px',
height: '24px',
backgroundRepeat: 'no-repeat',
backgroundPosition: 'center',
backgroundColor: '#93d227'
} } );
/**
* Share Buttons Block
*/
shareregisterBlockType('st/sharebuttons', {
title: 'Inline Share Buttons',
icon: shareicon,
category: 'st-blocks',
edit() {
return (
sharecreateElement(
'div',
{className:'inline-share-button-block'},
sharecreateElement(
'img',
{src:'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=='}
),
'Share Buttons Display Here'
)
);
},
save() {
return (
'[sharethis-inline-buttons]'
);
}
});

View File

@@ -0,0 +1,75 @@
/**
* Minute Control.
*
* @package ShareThisShareButtons
*/
/* exported MinuteControl */
var MinuteControl = ( function( $, wp ) {
'use strict';
return {
/**
* Holds data.
*/
data: {},
/**
* Boot plugin.
*
* @param data
*/
boot: function( data ) {
this.data = data;
$( document ).ready( function() {
this.init();
}.bind( this ) );
},
/**
* Initialize plugin.
*/
init: function() {
this.$container = $( '#sharethis-meta-box' );
this.listen();
},
/**
* Initiate listeners.
*/
listen: function() {
var self = this;
// When checking an option in the meta box.
this.$container.on( 'click', '#sharethis-bottom-post, #sharethis-top-post, #sharethis-sticky-show', function() {
var checked = $( this ).prop( 'checked' ),
type = $( this ).closest( '.button-setting-wrap' ).attr( 'id' ),
placement = $( this ).attr( 'class' );
self.updateList( type, checked, placement );
} );
},
/**
* Add / remove post to list.
*
* @param type
* @param checked
* @param placement
*/
updateList: function( type, checked, placement ) {
// Update specifide list per checked.
wp.ajax.post( 'update_list', {
postid: this.data.postid,
type: type,
checked: checked,
placement: placement,
nonce: this.data.nonce
} ).always( function() {
} );
}
};
} )( window.jQuery, window.wp );

View File

@@ -0,0 +1,694 @@
/**
* Credentials
*
* @package ShareThisShareButtons
*/
/* exported Credentials */
var Credentials = ( function( $, wp ) {
'use strict';
return {
/**
* Holds data.
*/
data: {},
/**
* Boot plugin.
*
* @param data
*/
boot: function( data ) {
this.data = data;
$( document ).ready( function() {
this.init();
}.bind( this ) );
},
/**
* Initialize plugin.
*/
init: function() {
this.$connection = $( '.sharethis-connection-wrap' );
this.$createConfig = '';
this.listen();
this.loadPreview( 'initial' );
this.checkAdBlock();
},
/**
* Listener.
*/
listen: function() {
var self = this;
// Create new account.
this.$connection.on( 'click', '.create-account', function() {
var email = $( '#st-email' ).val(),
pw = $( '#st-password' ).val();
$( '.st-loading-gif' ).fadeIn();
// Set default WP config.
wp.ajax.post( 'set_default_settings', {
type: 'both',
nonce: self.data.nonce
} ).always( function( link ) {
self.registerAccount( email, pw );
}.bind( self ) );
} );
// Login to account.
this.$connection.on( 'click', '.login-account', function( e ) {
e.preventDefault();
var email = $( '#st-login-email' ).val(),
pw = $( '#st-login-password' ).val();
// Set default WP config.
wp.ajax.post( 'set_default_settings', {
type: 'both',
nonce: self.data.nonce
} ).always( function( link ) {
self.loginAccount( email, pw );
}.bind( self ) );
} );
this.$connection.on( 'click', '#connect-property', function( e ) {
e.preventDefault();
$( '.st-loading-gif' ).fadeIn();
var secret = $( '#sharethis-properties option:selected' ).val(),
property = $( '#sharethis-properties option:selected' ).attr( 'data-prop' ),
token = $( '#st-user-cred' ).val(),
config = $( '#sharethis-properties option:selected' ).attr( 'data-config' ).replace( /'/g, '"' ),
button = $( '#sharethis-properties option:selected' ).attr( 'data-first' ).replace( '-share-buttons', '' ),
theData = JSON.stringify( { is_wordpress: true } ),
callExtra = 'secret=' + secret;
if ( 'undefined' === secret ) {
callExtra = 'token=' + token;
}
wp.ajax.post( 'set_button_config', {
button: button,
config: config,
type: 'login',
nonce: self.data.nonce
} ).always( function() {
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property/?id=' + property + '&' + callExtra,
method: 'PUT',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function() {
self.setCredentials( secret, property, token, 'login' );
}
} );
} );
} );
// Create property based on site url.
this.$connection.on( 'click', '#create-new-property', function( e ) {
e.preventDefault();
$( '.st-loading-gif' ).fadeIn();
var secret = $( '#sharethis-properties option:selected' ).val(),
property = $( '#sharethis-properties option:selected' ).attr( 'data-prop' ),
token = $( '#st-user-cred' ).val(),
config = $( '#sharethis-properties option:selected' ).attr( 'data-config' ).replace( /'/g, '"' ),
button = $( '#sharethis-properties option:selected' ).attr( 'data-first' ).replace( '-share-buttons', '' ),
theData = JSON.stringify( { is_wordpress: true } ),
callExtra = 'secret=' + secret;
if ( 'undefined' === secret ) {
callExtra = 'token=' + token;
}
wp.ajax.post( 'set_button_config', {
button: button,
config: config,
type: 'login',
nonce: self.data.nonce
} ).always( function( results ) {
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property/?id=' + property + '&' + callExtra,
method: 'PUT',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function() {
self.$createConfig = JSON.parse( config );
self.$createButton = button;
self.createProperty( token, self.data.url, 'create' );
}
} );
} );
} );
$( 'body' ).on( 'click', '.item label', function() {
var checked = $( this ).siblings( 'input' ).is( ':checked' );
$( '.sharethis-inline-share-buttons' ).removeClass( 'st-has-labels' );
if ( ! checked ) {
$( this ).closest( '.st-radio-config' ).find( '.item' ).each( function() {
$( this ).find( 'input' ).prop( 'checked', false );
} );
$( this ).siblings( 'input' ).prop( 'checked', true );
}
self.loadPreview( '' );
} );
// All levers.
this.$connection.on( 'click', '.item div.switch', function() {
self.loadPreview( '' );
} );
// Minimum count.
this.$connection.on( 'change', 'input.minimum-count, #radius-selector, .vertical-alignment, .mobile-breakpoint, #st-language', function() {
self.loadPreview( '' );
} );
// Button alignment.
this.$connection.on( 'click', '.button-alignment .alignment-button', function() {
$( '.button-alignment .alignment-button[data-selected="true"]' )
.attr( 'data-selected', 'false' );
$( '.sharethis-inline-share-buttons' ).removeClass( 'st-justified' );
$( this ).attr( 'data-selected', 'true' );
self.loadPreview( '' );
} );
// Select or deselect a network.
this.$connection.on( 'click', '.share-buttons .share-button', function() {
var selection = $( this ).attr( 'data-selected' ),
network = $( this ).attr( 'data-network' );
if ( 'true' === selection ) {
$( this ).attr( 'data-selected', 'false' );
$( '.sharethis-selected-networks > div > div div[data-network="' + network + '"]' ).remove();
} else {
$( this ).attr( 'data-selected', 'true' );
$( '.sharethis-selected-networks > div > div' ).append( '<div class="st-btn" data-network="' + network + '" style="display: inline-block;"></div>' );
}
self.loadPreview( '' );
} );
// Add class to preview when scrolled to.
$( window ).on( 'scroll', function() {
if ( undefined === $( '.selected-button' ).offset() ) {
return;
}
var stickyTop = $( '.selected-button' ).offset().top;
if ( $( window ).scrollTop() >= stickyTop ) {
$( '.sharethis-selected-networks' ).addClass( 'sharethis-prev-stick' );
} else {
$( '.sharethis-selected-networks' ).removeClass( 'sharethis-prev-stick' );
}
} );
// If register button is clicked. submit button configurations.
this.$connection.on( 'click', '#sharethis-step-two-wrap .st-rc-link', function() {
$( '.st-loading-gif' ).fadeIn();
self.loadPreview( 'submit' );
} );
},
/**
* Send hash data to credential setting.
*
* @param secret
* @param propertyid
* @param token
* @param type
*/
setCredentials: function( secret, propertyid, token, type ) {
var propSecret = propertyid + '-' + secret;
// If hash exists send it to credential setting.
wp.ajax.post( 'set_credentials', {
data: propSecret,
token: token,
nonce: this.data.nonce
} ).always( function( link ) {
if ( 'login' !== type ) {
this.setButtonConfig( secret, propertyid, token, type );
} else {
window.location = '?page=sharethis-share-buttons';
}
}.bind( this ) );
},
/**
* Login to your account.
*
* @param email
* @param pw
*/
loginAccount: function( email, pw ) {
var self = this,
theData = JSON.stringify( {
email: email,
password: pw
} );
$.ajax( {
url: 'https://sso.sharethis.com/login',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function( results ) {
$( '#st-user-cred' ).val( results.token );
// Get full info.
self.getProperty( results.token );
},
error: function( xhr, status, error ) {
$( '.st-loading-gif' ).hide();
var message = xhr.responseJSON.message;
$( 'div.error-message' ).html( '' );
$( '.login-account.st-rc-link' ).after(
'<div class="error-message" style="text-align: center; margin: 1rem 0;">' +
message +
'</div>'
);
}
} );
},
/**
* Register new account.
*
* @param email
* @param pw
*/
registerAccount: function( email, pw ) {
var result = null,
self = this,
url = this.data.url,
button = this.data.firstButton,
theData = JSON.stringify( {
email: email,
password: pw,
custom: {
onboarding_product: button + '-share-buttons',
onboarding_domain: url,
is_wordpress: true
}
} );
$.ajax( {
url: 'https://sso.sharethis.com/register',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function( results ) {
result = results;
// Create property.
self.createProperty( result, url, '' );
},
error: function( xhr, status, error ) {
$( '.st-loading-gif' ).hide();
var message = xhr.responseJSON.message;
$( 'div.error-message' ).html( '' );
$( '.sharethis-account-creation small' ).after(
'<div class="error-message" style="text-align: center; margin: 1rem 0;">' +
message +
'</div>'
);
}
} );
},
/**
* Create property for new account.
*
* @param accountInfo
* @param url
*/
createProperty: function( accountInfo, url, type ) {
var result = null,
self = this,
token = accountInfo.token,
button = this.data.firstButton,
theData;
if ( 'string' === typeof accountInfo ) {
token = accountInfo;
}
theData = JSON.stringify( {
token: token,
product: button + '-share-buttons',
domain: url,
is_wordpress: true
} );
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function( results ) {
result = results;
self.setCredentials( result.secret, result._id, token, type );
}
} );
},
/**
* Load preview buttons.
*
* @param type
*/
loadPreview: function( type ) {
var button = $( '.selected-button' ).attr( 'id' ),
bAlignment = $( '.button-alignment .alignment-button[data-selected="true"]' )
.attr( 'data-alignment' ),
sAlignment = $( '.sticky-alignment' ).find( 'input' ).is( ':checked' ),
bSize = $( '.button-size .item input:checked' ).siblings( 'label' ).html(),
bLabels = $( '.button-labels .item input:checked' )
.siblings( 'label' )
.attr( 'id' ),
bCount = $( 'input.minimum-count' ).val(),
showTotal = $( 'span.show-total-count' )
.siblings( 'div.switch' )
.find( 'input' )
.is( ':checked' ),
extraSpacing = $( 'span.extra-spacing' )
.siblings( 'div.switch' )
.find( 'input' )
.is( ':checked' ),
showMobile = $( 'span.show-on-mobile' )
.find( 'input' )
.is( ':checked' ),
showDesktop = $( 'span.show-on-desktop' )
.find( 'input' )
.is( ':checked' ),
vertAlign = $( '.vertical-alignment' ).val() + 'px',
mobileBreak = $( '.mobile-breakpoint' ).val(),
spacing = 0,
bRadius = $( '#radius-selector' ).val() + 'px',
networks = [],
language = $( '#st-language option:selected' ).val(),
self = this,
size,
padding,
fontSize,
config;
if ( undefined === button ) {
return;
}
if ( 'initial' === type ) {
$( '.share-buttons .share-button[data-selected="true"]' ).each( function( index ) {
networks[ index ] = $( this ).attr( 'data-network' );
} );
} else {
$( '.sharethis-selected-networks > div > div .st-btn' ).each( function( index ) {
networks[ index ] = $( this ).attr( 'data-network' );
} );
}
// If true alignment is right else its left.
if ( sAlignment ) {
sAlignment = 'right';
} else {
sAlignment = 'left';
}
if ( 'Small' === bSize ) {
size = 32;
fontSize = 11;
padding = 8;
$( '#radius-selector' ).attr( 'max', 16 );
}
if ( 'Medium' === bSize ) {
size = 40;
fontSize = 12;
padding = 10;
$( '#radius-selector' ).attr( 'max', 20 );
}
if ( 'Large' === bSize ) {
size = 48;
fontSize = 16;
padding = 12;
$( '#radius-selector' ).attr( 'max', 26 );
}
if ( extraSpacing ) {
spacing = 8;
}
if ( 'Inline' === button ) {
config = { alignment: bAlignment,
enabled: true,
font_size: fontSize,
labels: bLabels,
min_count: bCount,
padding: padding,
radius: bRadius,
networks: networks,
show_total: showTotal,
show_mobile_buttons: true,
size: size,
spacing: spacing,
language: language
};
} else {
config = { alignment: sAlignment,
enabled: true,
labels: bLabels,
min_count: bCount,
radius: bRadius,
networks: networks,
mobile_breakpoint: mobileBreak,
top: vertAlign,
show_mobile: showMobile,
show_total: showTotal,
show_desktop: showDesktop,
show_mobile_buttons: true,
spacing: 0,
language: language
};
}
if ( 'submit' === type ) {
wp.ajax.post( 'set_button_config', {
button: button,
config: config,
nonce: this.data.nonce
} ).always( function( results ) {
window.location.href = '?page=sharethis-general&s=3';
} );
} else {
$( '#' + button + '-8' ).html( '' );
config.container = button + '-8';
window.__sharethis__.href = 'https://www.sharethis.com/';
window.__sharethis__.load( button.toLowerCase() + '-share-buttons', config );
$( '.sharethis-selected-networks > div > div' ).sortable( {
stop: function( event, ui ) {
self.loadPreview( '' );
}
} );
}
},
/**
* Get user information and property
*
* @param token
*/
getProperty: function( token ) {
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/me?token=' + token,
method: 'Get',
async: false,
contentType: 'application/json; charset=utf-8',
success: function( result ) {
$( '#sharethis-login-wrap' ).hide();
$( '#sharethis-property-select-wrap' ).show();
$( '#sharethis-properties' ).html( '' );
$.each( result.properties, function( index, value ) {
var config = { inline: value['inline-share-buttons'], sticky: value['sticky-share-buttons'] },
firstProduct = value['onboarding_product'],
inline = value['inline-share-buttons'],
sticky = value['sticky-share-buttons'];
if ( undefined !== sticky && 'sop' === firstProduct && sticky.enabled ) {
firstProduct = 'sticky';
}
if ( undefined !== inline && 'sop' === firstProduct && inline.enabled ) {
firstProduct = 'inline';
}
if ( undefined === inline && undefined === sticky ) {
firstProduct = 'inline';
config = { 'inline': { alignment: 'center',
enabled: true,
font_size: 11,
labels: 'cta',
min_count: 10,
padding: 8,
radius: 4,
networks: ['facebook', 'twitter', 'pinterest', 'email', 'sms', 'sharethis'],
show_total: true,
size: 32,
spacing: 8,
language: 'en',
} };
}
$( '#sharethis-properties' ).append( '<option data-first="' + firstProduct + '" data-config="' + JSON.stringify( config ).replace( /"/g, "'" ) + '" data-prop="' + value._id + '" value="' + value.secret + '">' + value.domain + '</option>' );
} );
}
} );
},
/**
* Set button configurations
*/
setButtonConfig: function( secret, propertyid, token, type ) {
var button = this.data.firstButton,
config = this.data.buttonConfig,
self = this,
gdprEnabled = $( '#gdpr-checkbox' ).attr( 'checked' );
if ( 'create' === type ) {
config = this.$createConfig;
button = 'inline';
}
// Make sure info is in proper case type.
if ( 'inline' === button ) {
config[ button ].size = parseInt( config[ button ].size );
config[ button ].padding = parseInt( config[ button ].padding );
config[ button ]['font_size'] = parseInt( config[ button ]['font_size'] );
}
// Make sure radius is sent in proper format.
config[ button ].radius = parseInt( config[ button ].radius.toString().replace( 'px', '' ) );
// Remove the preview override for mobile buttons.
delete config[ button ]['show_mobile_buttons'];
// Send new button status value.
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify( {
'secret': secret,
'id': propertyid,
'product': button + '-share-buttons',
'config': config[ button ]
} )
} ).always( function( results ) {
if ( 'create' === type ) {
button = 'sticky';
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify( {
'secret': secret,
'id': propertyid,
'product': button + '-share-buttons',
'config': config[ button ]
} )
} ).always( function( results ) {
} );
}
if ( gdprEnabled ) {
self.enableGDPR( token, propertyid );
} else {
window.location = '?page=sharethis-share-buttons';
}
} );
},
/**
* Enable GDPR Compliance Tool
*/
enableGDPR: function ( token, property ) {
var config = {
color: '#09cd18',
display: 'always',
enabled: true,
language: 'en',
publisher_name: '',
publisher_purposes: [],
scope: 'publisher'
},
self = this;
// Send new button status value.
$.ajax( {
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify( {
'token': token,
'id': property,
'product': 'gdpr-compliance-tool-v2',
'config': config
} )
} ).always( function ( configResults ) {
wp.ajax.post( 'set_gdpr_config', {
config: config,
first: true,
nonce: self.data.nonce
} ).always( function( results ) {
window.location = '?page=sharethis-share-buttons';
} );
} );
},
/**
* Check if ad blocker exists and notify if so.
*/
checkAdBlock: function() {
$(document).ready(function(){
if($("#detectadblock").height() > 0) {
} else {
$('#adblocker-notice').show();
}
});
}
};
} )( window.jQuery, window.wp );

View File

@@ -0,0 +1,87 @@
<?php
/**
* Button Widget.
*
* @package ShareThisShareButtons
*/
namespace ShareThisShareButtons;
/**
* Cart Widget Class
*
* @package ShareThisShareButtons
*/
class Button_Widget extends \WP_Widget {
/**
* Plugin instance.
*
* @var object
*/
public $plugin;
/**
* Class constructor.
*
* @param object $plugin Plugin class.
*/
public function __construct( $plugin ) {
$this->plugin = $plugin;
$widget_options = array(
'classname' => 'st_button_widget',
'description' => esc_html__( 'Add ShareThis share buttons to your sidebar.', 'sharethis-share-buttons' ),
);
parent::__construct(
'st_button_widget',
'ShareThis Buttons',
$widget_options
);
}
/**
* Create the widget output.
*
* @param array $args Widget output arguments.
* @param array $instance The widget instance.
*/
public function widget( $args, $instance ) {
global $post;
$data_url = '';
if ( is_archive() || is_front_page() || is_tag() ) {
$data_url = 'data-url=' . get_permalink( $post->ID );
}
// Add buttons.
?>
<div class="sharethis-inline-share-buttons" <?php echo esc_attr( $data_url ); ?>></div>
<?php
}
/**
* The widget form.
*
* @param array $instance The current widget instance.
*/
public function form( $instance ) {
return '';
}
/**
* Update database with new info
*
* @param array $new_instance The new instance of the widget values.
* @param array $old_instance The old instance of the widget values.
*
* @return array
*/
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
return $instance;
}
}

View File

@@ -0,0 +1,518 @@
<?php
/**
* Minute Control.
*
* @package ShareThisShareButtons
*/
namespace ShareThisShareButtons;
/**
* Minute Control Class
*
* @package ShareThisShareButtons
*/
class Minute_Control {
/**
* Plugin instance.
*
* @var object
*/
public $plugin;
/**
* Class constructor.
*
* @param object $plugin Plugin class.
*/
public function __construct( $plugin ) {
$this->plugin = $plugin;
}
/**
* Register the new share buttons metabox.
*
* @action add_meta_boxes
*/
public function share_buttons_metabox() {
// Get all post types available.
$post_types = array( 'post', 'page' );
// Add the Share Buttons meta box to editor pages.
add_meta_box( 'sharethis_share_buttons', esc_html__( 'Share Buttons', 'sharethis-share-buttons' ), array( $this, 'share_buttons_custom_box' ), $post_types, 'side', 'high' );
}
/**
* Enqueue admin assets.
*
* @action admin_enqueue_scripts
* @param string $hook The page hook name.
*/
public function enqueue_admin_assets( $hook ) {
global $post;
// Enqueue the assets on editor pages.
if ( in_array( $hook, array( 'post.php', 'post-new.php' ), true ) ) {
wp_enqueue_style( "{$this->plugin->assets_prefix}-meta-box" );
wp_enqueue_script( "{$this->plugin->assets_prefix}-meta-box" );
wp_add_inline_script(
"{$this->plugin->assets_prefix}-meta-box",
sprintf(
'MinuteControl.boot( %s );',
wp_json_encode(
array(
'postid' => $post->ID,
'nonce' => wp_create_nonce( $this->plugin->meta_prefix ),
)
)
)
);
}
}
/**
* Call back function for the share buttons metabox.
*/
public function share_buttons_custom_box() {
global $post_type;
switch ( $post_type ) {
case 'post':
$iptype = 'post_';
$sptype = 'posts';
break;
case 'page':
$iptype = 'page_';
$sptype = 'pages';
break;
default:
$iptype = 'post_';
$sptype = 'posts';
break;
}
// Get all needed options for meta boxes.
$inline_options = get_option( 'sharethis_inline_settings' );
$sticky_options = get_option( 'sharethis_sticky_settings' );
$inline_enable = get_option( 'sharethis_inline' );
$sticky_enable = get_option( 'sharethis_sticky' );
// Include the meta box template.
include_once "{$this->plugin->dir_path}/templates/minute-control/meta-box.php";
}
/**
* AJAX Call back function to add a post / page to ommit / show list.
*
* @action wp_ajax_update_list
*/
public function update_list() {
check_ajax_referer( $this->plugin->meta_prefix, 'nonce' );
if ( ! isset( $_POST['type'], $_POST['checked'], $_POST['placement'], $_POST['postid'] ) || '' === $_POST['type'] ) { // WPCS: input var okay.
wp_send_json_error( 'Add to list failed.' );
}
// Set and sanitize post values.
$type = sanitize_text_field( wp_unslash( $_POST['type'] ) ); // WPCS: input var okay.
$onoff = 'true' === sanitize_text_field( wp_unslash( $_POST['checked'] ) ) ? 'on' : 'off'; // WPCS: input var okay.
$opposite = 'true' === sanitize_text_field( wp_unslash( $_POST['checked'] ) ) ? 'off' : 'on'; // WPCS: input var okay.
$placement = '' !== sanitize_text_field( wp_unslash( $_POST['placement'] ) ) ? '_' . sanitize_text_field( wp_unslash( $_POST['placement'] ) ) : ''; // WPCS: input var okay.
$postid = intval( wp_unslash( $_POST['postid'] ) ); // WPCS: input var okay.
// Create remaining variables needed for list placement.
$post_info = get_post( $postid );
$post_type = $post_info->post_type;
$option = 'sharethis_' . $type . '_' . $post_type . $placement . '_' . $onoff;
$oppose = 'sharethis_' . $type . '_' . $post_type . $placement . '_' . $opposite;
$title = $post_info->post_title;
// Get current list and opposing list options.
$current_list = get_option( $option );
$current_oppose = get_option( $oppose );
$current_list = isset( $current_list ) && null !== $current_list && false !== $current_list ? $current_list : '';
$current_oppose = isset( $current_oppose ) && null !== $current_oppose && false !== $current_oppose ? $current_oppose : '';
// Add post id and title to current list.
if ( is_array( $current_list ) && array() !== $current_list ) {
$current_list[ $title ] = (int) $postid;
} else {
$current_list = array(
$title => (int) $postid,
);
}
// Remove item from opposing list.
if ( is_array( $current_oppose ) && array() !== $current_oppose && in_array( (int) $postid, array_map( 'intval', $current_oppose ), true ) ) {
unset( $current_oppose[ $title ] );
delete_option( $oppose );
}
// Update both list options.
update_option( $option, $current_list );
update_option( $oppose, $current_oppose );
}
/**
* Helper function to determine whether to check box or not.
*
* @param string $type The type of button.
* @param string $placement The position of the button in question.
*/
private function is_box_checked( $type, $placement = '' ) {
global $post, $post_type;
$options = array(
'true' => 'sharethis_' . $type . '_' . $post_type . $placement . '_on',
'false' => 'sharethis_' . $type . '_' . $post_type . $placement . '_off',
);
$default_option = get_option( 'sharethis_' . $type . '_settings' );
$default_option = isset( $default_option ) && null !== $default_option && false !== $default_option ? $default_option : '';
$default = $default_option[ "sharethis_{$type}_{$post_type}{$placement}" ];
foreach ( $options as $answer => $option ) {
$current_list = get_option( $option );
$current_list = isset( $current_list ) && null !== $current_list && false !== $current_list ? $current_list : '';
$answer_minute = (
is_array( $current_list )
&&
in_array( (int) $post->ID, array_map( 'intval', $current_list ), true )
);
if ( $answer_minute ) {
return $answer;
}
}
return $default;
}
/**
* Register the inline share button shortcode
*
* @shortcode sharethis-inline-buttons
* @param array $atts The shortcode attributes.
*
* @return string
*/
public function inline_shortcode( $atts ) {
global $post;
$data_url = isset( $atts['url'] ) ? esc_attr( 'data-url="' . $atts['url'] . '"' ) : '';
if ( is_archive() || is_front_page() || is_tag() ) {
$data_url = esc_attr( 'data-url=' . get_permalink( $post->ID ) );
}
// Build container.
return '<div class="sharethis-inline-share-buttons" ' . $data_url . '></div>';
}
/**
* Set inline container based on plugin config.
*
* @param string $content The post's content.
*
* @filter the_content
*
* @return string
*/
public function set_inline_content( $content ) {
global $post;
// Get inline settings.
$inline_settings = get_option( 'sharethis_inline_settings' );
$excerpt = null !== $inline_settings && false !== $inline_settings && 'true' === $inline_settings['sharethis_excerpt'] ? true : false;
if ( $excerpt && is_archive() || $excerpt && is_home() ) {
return $content . $this->get_inline_container( $inline_settings, 'sharethis_excerpt', $post );
}
if ( null !== $inline_settings && false !== $inline_settings && is_array( $inline_settings ) ) {
foreach ( $inline_settings as $type => $value ) {
$position = $this->get_position( $type, $value );
$container = $this->get_inline_container( $inline_settings, $type );
if ( '' !== $position ) {
switch ( $position ) {
case 'top':
$content = $container . $content;
break;
case 'bottom':
$content = $content . $container;
break;
}
}
}
}
return $content;
}
/**
* Helper function to determine the inline button container.
*
* @param array $settings The current inline settings.
* @param string $type The type of button setting.
* @param object $post The current post object.
*
* @return string
*/
private function get_inline_container( $settings, $type, $post = '' ) {
$data_url = 'sharethis_excerpt' === $type && '' !== $post ? esc_attr( 'data-url=' . get_permalink( $post->ID ) ) : '';
$margin_t = isset( $settings[ "{$type}_margin_top" ] ) ? $settings[ "{$type}_margin_top" ] . 'px' : '';
$margin_b = isset( $settings[ "{$type}_margin_bottom" ] ) ? $settings[ "{$type}_margin_bottom" ] . 'px' : '';
$margin = '';
if ( ! in_array( '', array( $margin_t, $margin_b ), true ) ) {
$margin = 'margin-top: ' . $margin_t . '; margin-bottom: ' . $margin_b . ';';
}
return '<div style="' . esc_attr( $margin ) . '" class="sharethis-inline-share-buttons" ' . $data_url . '></div>';
}
/**
* Hide sticky if configured.
*
* @action wp_enqueue_scripts
*/
public function set_sticky_visibility() {
// Enqueue the blank style sheet.
wp_enqueue_style( "{$this->plugin->assets_prefix}-sticky" );
// Get sticky settings.
$settings = get_option( 'sharethis_sticky_settings' );
$settings = null !== $settings && false !== $settings && is_array( $settings ) ? $settings : array();
$hide_sticky = '.st-sticky-share-buttons{ display: none!important; }';
// Get hide status.
foreach ( $settings as $type => $value ) {
$hide = $this->get_hide_status( $type, $value );
if ( $hide ) {
wp_add_inline_style( "{$this->plugin->assets_prefix}-sticky", $hide_sticky );
}
}
}
/**
* Helper function to get the hide status for sticky buttons.
*
* @param string $type The button setting.
* @param string $value The setting value.
*
* @return bool
*/
private function get_hide_status( $type, $value ) {
global $post;
if ( ! isset( $post->ID ) ) {
return false;
}
// The non post id dependant types.
$alternate_types = array( 'sharethis_sticky_home', 'sharethis_sticky_category', 'sharethis_sticky_tags', 'sharethis_sticky_author', 'sharethis_sticky_custom_posts' );
$alternate_pages = (
! is_front_page()
&&
! is_archive()
&&
! is_author()
&&
! is_tag()
);
if ( in_array( $type, $alternate_types, true ) ) {
return $this->get_alternate_hide( $type, $value );
}
$page_option_on = get_option( $type . '_on' );
$page_option_off = get_option( $type . '_off' );
if ( ! is_array( $page_option_off ) &&
! is_array( $page_option_on ) &&
'false' === $value &&
$alternate_pages &&
in_array( $post->post_type, explode( '_', $type ), true )
) {
$hide = true;
} elseif ( isset( $post->ID ) ) {
$hide = (
is_array( $page_option_on )
&&
'false' === $value
&&
! in_array( (int) $post->ID, array_map( 'intval', $page_option_on ), true )
&&
$alternate_pages
&&
in_array( $post->post_type, explode( '_', $type ), true )
||
is_array( $page_option_off )
&&
in_array( (int) $post->ID, array_map( 'intval', $page_option_off ), true )
&&
$alternate_pages
&&
in_array( $post->post_type, explode( '_', $type ), true )
);
}
return $hide;
}
/**
* Get the hide values for the non post or page types.
*
* @param string $type The setting type.
* @param string $value The value of the option.
*
* @return bool
*/
private function get_alternate_hide( $type, $value ) {
$value = 'true' === $value ? false : true;
switch ( $type ) {
case 'sharethis_sticky_home':
if ( is_front_page() ) {
return $value;
}
break;
case 'sharethis_sticky_category':
$current_cats = get_option( 'sharethis_sticky_category_off' );
$current_cats = is_array( $current_cats ) ? $current_cats : array();
$queried_object = get_queried_object();
if ( true === is_archive()
&& true === is_object( $queried_object )
&& true === property_exists( $queried_object, 'term_id' )
) {
if ( false === in_array( (string) $queried_object->term_id, array_values( $current_cats ), true ) ) {
return $value;
} else {
return true;
}
}
break;
case 'sharethis_sticky_author':
if ( is_author() ) {
return $value;
}
break;
case 'sharethis_sticky_tags':
if ( is_tag() ) {
return $value;
}
break;
case 'sharethis_sticky_custom_posts':
if ( ! is_singular( array( 'post', 'page' ) ) ) {
return $value;
}
break;
}
return false;
}
/**
* Set inline container based on plugin config.
*
* @param string $excerpt The excerpt of the post.
*
* @filter get_the_excerpt
*
* @return string
*/
public function set_inline_excerpt( $excerpt ) {
global $post;
if ( is_admin() && ! wp_doing_ajax() ) {
return;
}
// Get inline settings.
$inline_settings = get_option( 'sharethis_inline_settings' );
$container = $this->get_inline_container( $inline_settings, 'sharethis_excerpt', $post );
if ( null === $inline_settings || false === $inline_settings || ! is_array( $inline_settings ) ) {
return $excerpt;
}
$excerpt = isset( $inline_settings['sharethis_excerpt'] ) && 'true' === $inline_settings['sharethis_excerpt'] ? $excerpt . $container : $excerpt;
return $excerpt;
}
/**
* Determine the position of the inline buttons.
*
* @param string $type The button type.
* @param string $value The value of the button.
*
* @return string
*/
private function get_position( $type, $value ) {
global $post;
if ( ! isset( $post->ID ) ) {
return;
}
$page_option_on = get_option( $type . '_on' );
$page_option_off = get_option( $type . '_off' );
$page_option_on = is_array( $page_option_on ) ? array_values( $page_option_on ) : array();
$page_option_off = is_array( $page_option_off ) ? array_values( $page_option_off ) : array();
$type_array = explode( '_', $type );
$position = '';
$show = (
'true' === $value
&&
! in_array( (int) $post->ID, $page_option_off, true )
||
in_array( (int) $post->ID, $page_option_on, true ) );
if ( in_array( 'top', $type_array, true ) && in_array( $post->post_type, $type_array, true ) ) {
$position = 'top';
} elseif ( in_array( 'bottom', explode( '_', $type ), true ) && in_array( $post->post_type, $type_array, true ) ) {
$position = 'bottom';
}
if ( $show ) {
return $position;
}
return '';
}
/**
* Enqueue the custom gutenberg block script.
*
* @action enqueue_block_editor_assets
*/
public function enqueue_custom_blocks() {
wp_enqueue_script( "{$this->plugin->assets_prefix}-blocks", "{$this->plugin->dir_url}js/blocks.js", array( 'wp-blocks', 'wp-editor', 'wp-element', 'wp-components' ), time(), true );
}
/**
* Register new block category for share buttons.
*
* @param array $categories The current block categories.
* @param \WP_Post $post Post object.
*
* @filter block_categories
*/
public function st_block_category( $categories, $post ) {
return array_merge(
$categories,
array(
array(
'slug' => 'st-blocks',
'title' => __( 'ShareThis Blocks', 'sharethis-share-buttons' ),
),
)
);
}
}

View File

@@ -0,0 +1,288 @@
<?php
/**
* Class Plugin_Base
*
* @package ShareThisShareButtons
*/
namespace ShareThisShareButtons;
/**
* Class Plugin_Base
*
* @package ShareThisShareButtons
*/
abstract class Plugin_Base {
/**
* Plugin config.
*
* @var array
*/
public $config = array();
/**
* Plugin slug.
*
* @var string
*/
public $slug;
/**
* Plugin directory path.
*
* @var string
*/
public $dir_path;
/**
* Plugin directory URL.
*
* @var string
*/
public $dir_url;
/**
* Directory in plugin containing autoloaded classes.
*
* @var string
*/
protected $autoload_class_dir = 'php';
/**
* Autoload matches cache.
*
* @var array
*/
protected $autoload_matches_cache = array();
/**
* Required instead of a static variable inside the add_doc_hooks method
* for the sake of unit testing.
*
* @var array
*/
protected $called_doc_hooks = array();
/**
* Plugin_Base constructor.
*/
public function __construct() {
$location = $this->locate_plugin();
$this->slug = $location['dir_basename'];
$this->dir_path = $location['dir_path'];
$this->dir_url = $location['dir_url'];
spl_autoload_register( array( $this, 'autoload' ) );
$this->add_doc_hooks();
}
/**
* Plugin_Base destructor.
*/
public function __destruct() {
$this->remove_doc_hooks();
}
/**
* Get reflection object for this class.
*
* @return \ReflectionObject
*/
public function get_object_reflection() {
static $reflection;
if ( empty( $reflection ) ) {
$reflection = new \ReflectionObject( $this );
}
return $reflection;
}
/**
* Autoload for classes that are in the same namespace as $this.
*
* @param string $class Class name.
* @return void
*/
public function autoload( $class ) {
if ( ! isset( $this->autoload_matches_cache[ $class ] ) ) {
if ( ! preg_match( '/^(?P<namespace>.+)\\\\(?P<class>[^\\\\]+)$/', $class, $matches ) ) {
$matches = false;
}
$this->autoload_matches_cache[ $class ] = $matches;
} else {
$matches = $this->autoload_matches_cache[ $class ];
}
if ( empty( $matches ) ) {
return;
}
if ( $this->get_object_reflection()->getNamespaceName() !== $matches['namespace'] ) {
return;
}
$class_name = $matches['class'];
$class_path = \trailingslashit( $this->dir_path );
if ( $this->autoload_class_dir ) {
$class_path .= \trailingslashit( $this->autoload_class_dir );
}
$class_path .= sprintf( 'class-%s.php', strtolower( str_replace( '_', '-', $class_name ) ) );
if ( is_readable( $class_path ) ) {
require_once $class_path;
}
}
/**
* Version of plugin_dir_url() which works for plugins installed in the plugins directory,
* and for plugins bundled with themes.
*
* @return array
*/
public function locate_plugin() {
$dir_url = trailingslashit( substr( plugins_url( '', __FILE__ ), 0, - 4 ) );
$dir_path = trailingslashit( substr( __DIR__, 0, - 4 ) );
$dir_basename = basename( $dir_path );
return compact( 'dir_url', 'dir_path', 'dir_basename' );
}
/**
* Hooks a function on to a specific filter.
*
* @param string $name The hook name.
* @param array $callback The class object and method.
* @param array $args An array with priority and arg_count.
*
* @return mixed
*/
public function add_filter( $name, $callback, $args = array() ) {
// Merge defaults.
$args = array_merge(
array(
'priority' => 10,
'arg_count' => PHP_INT_MAX,
),
$args
);
return $this->add_hook( 'filter', $name, $callback, $args );
}
/**
* Hooks a function on to a specific action.
*
* @param string $name The hook name.
* @param array $callback The class object and method.
* @param array $args An array with priority and arg_count.
*
* @return mixed
*/
public function add_action( $name, $callback, $args = array() ) {
// Merge defaults.
$args = array_merge(
array(
'priority' => 1,
'arg_count' => PHP_INT_MAX,
),
$args
);
return $this->add_hook( 'action', $name, $callback, $args );
}
/**
* Hooks a function on to a specific shortcode.
*
* @param string $name The shortcode name.
* @param array $callback The class object and method.
*
* @return mixed
*/
public function add_shortcode( $name, $callback ) {
return $this->add_hook( 'shortcode', $name, $callback );
}
/**
* Hooks a function on to a specific action/filter.
*
* @param string $type The hook type. Options are action/filter.
* @param string $name The hook name.
* @param array $callback The class object and method.
* @param array $args An array with priority and arg_count.
*
* @return mixed
*/
protected function add_hook( $type, $name, $callback, $args = array() ) {
$priority = isset( $args['priority'] ) ? $args['priority'] : 10;
$arg_count = isset( $args['arg_count'] ) ? $args['arg_count'] : PHP_INT_MAX;
$fn = sprintf( '\add_%s', $type );
$retval = \call_user_func( $fn, $name, $callback, $priority, $arg_count );
return $retval;
}
/**
* Add actions/filters/shortcodes from the methods of a class based on DocBlocks.
*
* @param object $object The class object.
*/
public function add_doc_hooks( $object = null ) {
if ( is_null( $object ) ) {
$object = $this;
}
$class_name = get_class( $object );
if ( isset( $this->called_doc_hooks[ $class_name ] ) ) {
$notice = sprintf( 'The add_doc_hooks method was already called on %s. Note that the Plugin_Base constructor automatically calls this method.', $class_name );
// @codingStandardsIgnoreStart
trigger_error( esc_html( $notice ), \E_USER_NOTICE );
// @codingStandardsIgnoreEnd
return;
}
$this->called_doc_hooks[ $class_name ] = true;
$reflector = new \ReflectionObject( $object );
foreach ( $reflector->getMethods() as $method ) {
$doc = $method->getDocComment();
$arg_count = $method->getNumberOfParameters();
if ( preg_match_all( '#\* @(?P<type>filter|action|shortcode)\s+(?P<name>[a-z0-9\-\._]+)(?:,\s+(?P<priority>\d+))?#', $doc, $matches, PREG_SET_ORDER ) ) {
foreach ( $matches as $match ) {
$type = $match['type'];
$name = $match['name'];
$priority = empty( $match['priority'] ) ? 10 : intval( $match['priority'] );
$callback = array( $object, $method->getName() );
call_user_func( array( $this, "add_{$type}" ), $name, $callback, compact( 'priority', 'arg_count' ) );
}
}
}
}
/**
* Removes the added DocBlock hooks.
*
* @param object $object The class object.
*/
public function remove_doc_hooks( $object = null ) {
if ( is_null( $object ) ) {
$object = $this;
}
$class_name = get_class( $object );
$reflector = new \ReflectionObject( $object );
foreach ( $reflector->getMethods() as $method ) {
$doc = $method->getDocComment();
if ( preg_match_all( '#\* @(?P<type>filter|action|shortcode)\s+(?P<name>[a-z0-9\-\._]+)(?:,\s+(?P<priority>\d+))?#', $doc, $matches, PREG_SET_ORDER ) ) {
foreach ( $matches as $match ) {
$type = $match['type'];
$name = $match['name'];
$priority = empty( $match['priority'] ) ? 10 : intval( $match['priority'] );
$callback = array( $object, $method->getName() );
call_user_func( "remove_{$type}", $name, $callback, $priority );
}
}
}
unset( $this->called_doc_hooks[ $class_name ] );
}
}

View File

@@ -0,0 +1,131 @@
<?php
/**
* Bootstraps the ShareThis Share Buttons plugin.
*
* @package ShareThisShareButtons
*/
namespace ShareThisShareButtons;
/**
* Main plugin bootstrap file.
*/
class Plugin extends Plugin_Base {
/**
* Plugin assets prefix.
*
* @var string Lowercased dashed prefix.
*/
public $assets_prefix;
/**
* Plugin meta prefix.
*
* @var string Lowercased underscored prefix.
*/
public $meta_prefix;
/**
* Plugin constructor.
*/
public function __construct() {
parent::__construct();
// Global.
$button_widget = new Button_Widget( $this );
// Initiate classes.
$classes = array(
new Share_Buttons( $this, $button_widget ),
$button_widget,
new Minute_Control( $this ),
);
// Add classes doc hooks.
foreach ( $classes as $instance ) {
$this->add_doc_hooks( $instance );
}
// Define some prefixes to use througout the plugin.
$this->assets_prefix = strtolower( preg_replace( '/\B([A-Z])/', '-$1', __NAMESPACE__ ) );
$this->meta_prefix = strtolower( preg_replace( '/\B([A-Z])/', '_$1', __NAMESPACE__ ) );
}
/**
* Register MU Script
*
* @action wp_enqueue_scripts
*/
public function register_assets() {
$propertyid = get_option( 'sharethis_property_id' );
$propertyid = false !== $propertyid && null !== $propertyid ? explode( '-', $propertyid, 2 ) : array();
$first_prod = get_option( 'sharethis_first_product' );
$first_prod = false !== $first_prod && null !== $first_prod ? $first_prod : '';
if ( is_array( $propertyid ) && array() !== $propertyid ) {
wp_register_script(
"{$this->assets_prefix}-mu",
"//platform-api.sharethis.com/js/sharethis.js#property={$propertyid[0]}&product={$first_prod}-buttons",
array(),
SHARETHIS_SHARE_BUTTONS_VERSION,
false
);
}
// Register style sheet for sticky hiding.
wp_register_style(
"{$this->assets_prefix}-sticky",
"{$this->dir_url}css/mu-style.css",
array(),
filemtime( "{$this->dir_path}css/mu-style.css" )
);
}
/**
* Register admin scripts/styles.
*
* @action admin_enqueue_scripts
*/
public function register_admin_assets() {
wp_register_script(
"{$this->assets_prefix}-mua",
'//platform-api.sharethis.com/js/sharethis.js?product=inline-share-buttons',
array(),
SHARETHIS_SHARE_BUTTONS_VERSION,
false
);
wp_register_script(
"{$this->assets_prefix}-admin",
"{$this->dir_url}js/admin.js",
array( 'jquery', 'jquery-ui-sortable', 'wp-util' ),
filemtime( "{$this->dir_path}js/admin.js" ),
false
);
wp_register_script(
"{$this->assets_prefix}-meta-box",
"{$this->dir_url}js/meta-box.js",
array( 'jquery', 'wp-util' ),
filemtime( "{$this->dir_path}js/meta-box.js" ),
false
);
wp_register_script(
"{$this->assets_prefix}-credentials",
"{$this->dir_url}js/set-credentials.js",
array( 'jquery', 'jquery-ui-sortable', 'wp-util' ),
time(),
false
);
wp_register_style(
"{$this->assets_prefix}-admin",
"{$this->dir_url}css/admin.css",
array(),
filemtime( "{$this->dir_path}css/admin.css" )
);
wp_register_style(
"{$this->assets_prefix}-meta-box",
"{$this->dir_url}css/meta-box.css",
array(),
filemtime( "{$this->dir_path}css/meta-box.css" )
);
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,154 @@
=== ShareThis Share Buttons ===
Plugin Name: ShareThis Share Buttons
Contributors: sharethis, scottstorebloom, scottmweaver
Tags: social buttons, sharethis, share this, social sharing, share buttons, social media buttons, sharing tools
Author URI: https://sharethis.com/
Author: ShareThis
Requires at least: 4.5
Tested up to: 5.9.2
Stable tag: 1.5.7
Version: 1.5.7
License: GPLv2 or later
Grow your website traffic with share buttons for 40+ social channels including Facebook, LinkedIn, Twitter, WhatsApp, and more.
== Description ==
ShareThis - the original embeddable share buttons. We've rebuilt our buttons from the ground up, and they're better than ever. Try them today!
Our share buttons feature all of the most popular social networks, including mobile choices like SMS and WhatsApp. Our buttons are mobile optimized, enabling visitors to share your content from any device. Our code is lightweight and wont bog down your site. Did we mention theyre beautiful too? Get crisp logos at any size, plus bold, eye catching colors and labels. Customize a set today to make them your own.
The ShareThis Share Buttons plugin allows WordPress websites to quickly configure and install ShareThis share buttons. All of the functionality found in the manual installation can be accomplished using this plugin, and more! Take complete control over where and how your share buttons appear on your WordPress site.
== WordPress Features ==
**Inline Share Buttons**
* Enable or disable inline share buttons at the top and bottom of post and page bodies.
* Pixel perfect placement with top and bottom margin controls.
* Shortcode and PHP snippets.
* Page and post editor controls let you enable or disable inline share buttons on specific posts and pages regardless of your default settings.
**Sticky Share Buttons**
* Enable or disable sticky share buttons on the home page, all pages, all posts, custom posts, author pages, as well as tag and category archives.
* Exclude sticky share buttons on specific pages and category archives with a searchable page exception.
* Page and post editor controls let you enable or disable sticky share buttons on specific posts and pages regardless of your default settings.
== Screenshots ==
1. Inline share button settings.
2. Inline share button design options.
3. Sticky share button settings.
4. Sticky share button design options.
5. Share button controls included on post and page editors.
6. Example of Inline share buttons.
7. Example of Sticky share buttons.
== Installation ==
Install ShareThis Share Buttons just like any other plugin. Simply download the file directly from this page or search for us in the WordPress directory and click "Install". After you install and activate the plugin, simply configure your buttons and create an account.
If youre already using the new ShareThis buttons, and want to migrate to our WordPress plugin, weve got your back. Install the plugin, then from the first configuration screen click, connect to an existing property. Login, and select your property from the list. Well sync your settings from our platform. Dont forget to remove the hard coded JS, and any hard coded inline share button divs!
== Privacy ==
By creating an account with ShareThis you agree to our [terms of use](http://www.sharethis.com/publisher-terms-of-use/).
Included in those terms is our ability to keep track of user interactions with our buttons. You can read all about our privacy policy here: [https://www.sharethis.com/privacy/](https://www.sharethis.com/privacy/).
== Frequently Asked Questions ==
**I reconfigured my buttons on the ShareThis platform, but nothing happened on my site. Whats going on here?**
We cache your ShareThis platform button configurations (social networks, button size, labels etc.) to optimize their performance. Sometimes changes you make on the ShareThis platform take a couple minutes to update on your site. Also, if you activate a new button type from the settings page you may experience a similar lag.
== Changelog ==
= 1.5.7 =
* Fix critical error.
* Test with WordPress 5.9.2.
* Remove random gif.
= 1.5.6 =
* Sanitize inputs/outputs and improve code quality.
* Test with WordPress 5.9.1.
= 1.5.5 =
* Fix Ajax
* Test with WordPress 5.9.
= 1.5.4 =
* Fix markup for data-url output.
= 1.5.3 =
* Fix jquery attr call and php warning.
* Remove GDPR global scope.
= 1.5.2 =
* Add Snapchat, BLM and Live Journal network options.
= 1.5.1 =
* Fix position config update save.
= 1.5.0 =
* Fix missing update in stick config.
* Fix language selector.
= 1.4.1 =
* Fix GDPR compliance on/off.
= 1.4.0 =
* Added GDPR compliance tool option and config.
= 1.3.0 =
* Fix registration sticky configurations.
* Add DB data removal on deactivate.
* Add new companies to network list.
* Add notice for ad blockers.
= 1.2.10 =
* Fix endpoint update.
= 1.2.9 =
* Add German to language list.
* Remove Native counts.
* Replace api endpoints.
= 1.2.8 =
* Made WordPress 5+ compatible.
* Added new Gutenberg block category and block for adding inline buttons.
* Fixed backwards compatibility for accounts without secrets.
= 1.1.8 =
* Added multi-language options for translating share buttons.
= 1.1.7 =
* Added loading gifs to registration to avoid user double clicks.
* Added new Messenger button to network list.
= 1.1.6 =
* Menu logic for use by future ShareThis plugins.
* Fix button size selector.
= 1.1.5 =
* Create an account and design your share buttons without leaving the plugin!
* Link the plugin and sync buttons settings with an existing property on our Platform.
= 1.0.5 =
* Add a widget for sidebars to include buttons.
= 1.0.4 =
* Added data-url attribute to non the-excerpt filter excerpts.
= 1.0.3 =
* Fixed random share buttons on homepage base issue.
= 1.0.2 =
* Changed first product set function to add if doesn't exist instead of looking at transient.
= 1.0.1 =
* Fixed excerpt filter solving excerpt display issue.
= 1.0.0 =
* Brand new plugin submission.

View File

@@ -0,0 +1,86 @@
<?php
/**
* Plugin Name: ShareThis Share Buttons
* Plugin URI: https://sharethis.com/
* Description: Grow your website traffic with share buttons for 40+ social channels including Facebook, LinkedIn, Twitter, WhatsApp, and more.
* Version: 1.5.7
* Author: ShareThis
* Author URI: https://sharethis.com/
* Text Domain: sharethis-share-buttons
* Domain Path: /languages
* License: GPL v2 or later
*
* Copyright 2022 ShareThis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* @package ShareThisShareButtons
*/
/**
* Plugin version constant.
*/
const SHARETHIS_SHARE_BUTTONS_VERSION = '1.5.7';
if ( version_compare( phpversion(), '5.3', '>=' ) ) {
require_once __DIR__ . '/instance.php';
} else {
if ( defined( 'WP_CLI' ) ) {
WP_CLI::warning( _sharethis_share_buttons_php_version_text() );
} else {
add_action( 'admin_notices', '_sharethis_share_buttons_php_version_error' );
}
}
/**
* Admin notice for incompatible versions of PHP.
*/
function _sharethis_share_buttons_php_version_error() {
printf( '<div class="error"><p>%s</p></div>', esc_html( _sharethis_share_buttons_php_version_text() ) );
}
/**
* String describing the minimum PHP version.
*
* @return string
*/
function _sharethis_share_buttons_php_version_text() {
return __(
'ShareThis Share Buttons plugin error: Your version of PHP is too old to run this plugin. You must be running PHP 5.3 or higher.',
'sharethis-share-buttons'
);
}
/**
* The helper function to insert the proper inline button container.
*
* @return string
*/
function sharethis_inline_buttons() {
return '<div class="sharethis-inline-share-buttons"></div>';
}
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), '_sharethis_share_buttons_add_action_links' );
/**
* Add a link to the settings page.
*
* @param string $links The links shown in the plugin page.
*
* @return array
*/
function _sharethis_share_buttons_add_action_links( $links ) {
$mylinks = array(
'<a href="' . admin_url( 'admin.php?page=sharethis-general' ) . '">Settings</a>',
);
return array_merge( $links, $mylinks );
}

View File

@@ -0,0 +1,50 @@
<?php
/**
* Connection Template
*
* The template wrapper for the property id connection page.
*
* @package ShareThisShareButtons
*/
?>
<div id="detectadblock">
<div class="adBanner">
</div>
</div>
<div id="adblocker-notice" class="notice notice-error is-dismissible">
<p>
<?php echo esc_html__( 'It appears you have an ad blocker enabled. To avoid affecting this plugin\'s functionality, please disable while using its admin configurations and registrations. Thank you.', 'sharethis-share-buttons' ); ?>
</p>
</div>
<hr class="wp-header-end" style="display:none;">
<div class="wrap sharethis-connection-wrap">
<div class="sharethis-setup-logo">
<img src="<?php echo esc_url( "{$this->plugin->dir_url}/assets/sharethis-setup-logo.png" ); ?>">
</div>
<div id="sharethis-steps">
<?php
switch ( $page ) {
case 'first':
include "{$this->plugin->dir_path}/templates/general/setup/step-one.php";
break;
case 'second':
include "{$this->plugin->dir_path}/templates/general/setup/step-two.php";
break;
case 'third':
include "{$this->plugin->dir_path}/templates/general/setup/step-three.php";
break;
case 'login':
include "{$this->plugin->dir_path}/templates/general/setup/login.php";
break;
case 'property':
include "{$this->plugin->dir_path}/templates/general/setup/property-select.php";
break;
}
?>
</div>
<div class="st-loading-gif">
<img src="<?php echo esc_url( "{$this->plugin->dir_url}/assets/st-loading.gif" ); ?>">
</div>
</div>

View File

@@ -0,0 +1,59 @@
<?php
/**
* Configure tool template for gdpr onboarding
*
* @package ShareThisShareButtons
*/
?>
<div class="vendor-exclusion">
<div class="vendor-table">
<div class="st-box ">
<div class="vendor-table-header">
<div class="vendor-name">
<h3>
<?php esc_html_e( 'Vendor names', 'sharethis-share-buttons' ); ?>
</h3>
<div class="st-input vendor-search">
<input autocomplete="off" id="vendor-search " placeholder="Search for vendor" type="text">
</div>
</div>
</div>
<p class="vendor-info">
<?php esc_html_e( 'Manage third-party vendors asking for consent across your sites.', 'sharethis-share-buttons' ); ?>
</p>
</div>
<div class="vendor-table-body">
<?php foreach ( $vendors as $vendor ) : ?>
<div class="vendor-table-cell">
<a name="<?php echo esc_html( strtolower( $vendor['name'] ) ); ?>"></a>
<a name="<?php echo esc_html( strtolower( explode( ' ', $vendor['name'] )[0] ) ); ?>"></a>
<div class="vendor-table-cell-wrapper switch">
<label>
<input data-id="<?php echo esc_attr( $vendor['id'] ); ?>" type="checkbox" name="vendor[<?php echo esc_attr( $vendor['id'] ); ?>]" value="consent" />
<span class="lever"></span>
<strong><?php echo esc_html( $vendor['name'] ); ?></strong>
</label>
<div class="vendor-accor">
<p>
<strong><?php esc_html_e( 'Privacy Policy: ', 'sharethis-share-buttons' ); ?></strong>
<?php
echo '<a href="' . esc_url( $vendor['policyUrl'] ) . '" target="_blank">' .
esc_html( $vendor['policyUrl'] ) . '</a>';
?>
</p>
<p>
<strong><?php esc_html_e( 'Purposes: ', 'sharethis-share-buttons' ); ?></strong>
<div class="vendor-purpose-list">
<?php foreach ( $vendor['purposes'] as $purpose ) : ?>
<p><?php echo esc_html( $purposes[ $purpose ] ); ?></p>
<?php endforeach; ?>
</div>
</p>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>

View File

@@ -0,0 +1,100 @@
<?php
/**
* Configure tool template for gdpr onboarding
*
* @package ShareThisShareButtons
*/
?>
<div class="gdpr-platform platform-config-wrapper">
<hr>
<h4 style="text-align: left; font-size: 15px;"><?php echo esc_html__( 'Configure', 'sharethis-share-buttons' ); ?></h4>
<div class="st-design-message"><?php echo esc_html__( 'Use the settings below to configure your GDPR compliance tool popup.', 'sharethis-share-buttons' ); ?></div>
<div id="starter-questions">
<label>
<?php
echo esc_html__(
'PUBLISHER NAME * (this will be displayed in the consent tool)',
'sharethis-share-buttons'
);
?>
</label>
<input type="text" id="sharethis-publisher-name" placeholder="Enter your company name">
<label>
<?php
echo esc_html__(
'WHICH USERS SHOULD BE ASKED FOR CONSENT?',
'sharethis-share-buttons'
);
?>
</label>
<select id="sharethis-user-type">
<?php foreach ( $user_types as $user_value => $name ) : ?>
<option value="<?php echo esc_attr( $user_value ); ?>">
<?php echo esc_html( $name ); ?>
</option>
<?php endforeach; ?>
</select>
<label>
<?php echo esc_html__( 'SELECT LANGUAGE', 'sharethis-share-buttons' ); ?>
</label>
<select id="st-language">
<?php foreach ( $languages as $language => $code ) : ?>
<option value="<?php echo esc_attr( $code ); ?>">
<?php echo esc_html( $language ); ?>
</option>
<?php endforeach; ?>
</select>
<p class="form-color">
<label>
<?php
echo esc_html__(
'CHOOSE FORM COLOR',
'gdpr-complianc-tool'
);
?>
</label>
<div id="sharethis-form-color">
<?php foreach ( $colors as $color ) : ?>
<div class="color"
data-value="<?php echo esc_attr( $color ); ?>"
style="max-width: 30px; max-height: 30px; overflow: hidden;">
<span style="content: ' '; background-color:<?php echo esc_html( $color ); ?>; padding: 40px;"></span>
</div>
<?php endforeach; ?>
</div>
</p>
</div>
<div class="accor-wrap switch" id="purposes">
<div class="accor-tab">
<span class="accor-arrow">&#9658;</span>
<?php echo esc_html__( 'WHY ARE YOU COLLECTING CUSTOMER DATA?', 'sharethis-share-buttons' ); ?>
</div>
<div class="accor-content" id="publisher-purpose" class="switch">
<?php require $this->plugin->dir_path . '/templates/general/gdpr/purposes.php'; ?>
</div>
</div>
<?php if ( isset( $vendor_data ) ) : ?>
<div class="accor-wrap restrict-vendors">
<div class="accor-tab">
<span class="accor-arrow">&#9658;</span>
<?php echo esc_html__( 'VENDOR EXCLUSIONS', 'sharethis-share-buttons' ); ?>
</div>
<div class="accor-content">
<div class="well">
<?php include $this->plugin->dir_path . '/templates/general/gdpr/exclusions.php'; ?>
</div>
</div>
</div>
<?php endif; ?>
</div>

View File

@@ -0,0 +1,207 @@
<?php
/**
* GDPR Purposes.
*
* @package ShareThisShareButtons
*/
?>
<div class="empty-choices">
<a id="see-st-choices" class="st-rc-link medium-btn" href="#">See ShareThis Choices</a>
<a id="clear-choices" class="st-rc-link medium-btn" href="#">Clear Choices</a>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'1) Store and/or access information on a device (Do you collect information on users on your site through cookies or site identifiers?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="1" type="checkbox" name="purposes[1]" value="consent" checked/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'2) Select basic ads (Do you serve ads on your site?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="2" type="radio" name="purposes[2]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="2" type="radio" name="purposes[2]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'3) Create a personalised ads profile (Do you create personalised advertising profiles associated with users on your site (ie: profiles based on demographic information, location, users activity)?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="3" type="radio" name="purposes[3]" value="consent" checked/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="3" type="radio" name="purposes[3]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'4) Select personalised ads (Do you show ads to users based on this user profile)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="4" type="radio" name="purposes[4]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="4" type="radio" name="purposes[4]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'5) Create a personalised content profile (Do you build a personalized content profile associated with users on your site based on the type of content they have viewed?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="5" type="radio" name="purposes[5]" value="consent" checked />
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="5" type="radio" name="purposes[5]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'6) Select personalised content (Do you serve content to the user on your site based on your recorded content interests)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="6" type="radio" name="purposes[6]" value="consent" checked />
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="6" type="radio" name="purposes[6]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'7) Measure ad performance (Do you measure the performance of advertisements on your site)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="7" type="radio" name="purposes[7]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="7" type="radio" name="purposes[7]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'8) Measure content performance (Do you measure the performance of content served to your site visitors?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="8" type="radio" name="purposes[8]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="8" type="radio" name="purposes[8]" value="legitimate"/>
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'9) Apply market research to generate audience insights (Do you aggregate reporting on the ads or content show to your site visitors to advertisers)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="9" type="radio" name="purposes[9]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="9" type="radio" name="purposes[9]" value="legitimate" checked />
<span class="lever"></span>
</label>
</div>
<div class="purpose-item">
<div class="title">
<?php
echo esc_html__(
'10) Develop and improve products (Do you use data collected on your site visitors to improve your systems or software or create new products?)',
'gdpr-complianc-tool'
);
?>
</div>
<label>
<?php echo esc_html__( 'Consent', 'sharethis-share-buttons' ); ?>
<input data-id="10" type="radio" name="purposes[10]" value="consent"/>
<span class="lever"></span>
</label>
<label>
<?php echo esc_html__( 'Legitimate Interest', 'sharethis-share-buttons' ); ?>
<input data-id="10" type="radio" name="purposes[10]" value="legitimate" checked/>
<span class="lever"></span>
</label>
</div>

View File

@@ -0,0 +1,64 @@
<?php
/**
* General Settings Template
*
* The template wrapper for the general settings page.
*
* @package ShareThisShareButtons
*/
?>
<div id="detectadblock">
<div class="adBanner">
</div>
</div>
<div id="adblocker-notice" class="notice notice-error is-dismissible">
<p>
<?php echo esc_html__( 'It appears you have an ad blocker enabled. To avoid affecting this plugin\'s functionality, please disable while using its admin configurations and registrations. Thank you.', 'sharethis-share-buttons' ); ?>
</p>
</div>
<div class="wrap sharethis-general-wrap">
<h1>
<?php echo esc_html( get_admin_page_title() ); ?>
</h1>
<h4>
<?php
// translators: User display name.
printf( esc_html__( 'Hi there, %1$s!', 'sharethis-share-buttons' ), esc_html( $current_user->display_name ) );
?>
<?php
// translators: Contact link.
printf( esc_html__( 'Thanks for using ShareThis. If you have any questions please don\'t hesitate to %1$s contact our support %2$s We\'re here for you!', 'sharethis-share-buttons' ), '<a class="st-contact" href="https://www.sharethis.com/contact?utm_source=sharethis-plugin&utm_medium=sharethis-plugin-page&utm_campaign=support" target="_blank">', '</a>' );
?>
</h4>
<form action="options.php" method="post">
<?php
settings_fields( $this->menu_slug . '-general' );
do_settings_sections( $this->menu_slug . '-general' );
submit_button( esc_html__( 'Update', 'sharethis-share-buttons' ) );
?>
</form>
<table class="random-form-table">
<tbody>
<tr>
<th scope="row">
<span>
<?php esc_html_e( 'Re-read our', 'sharethis-share-buttons' ); ?>
<a href="https://www.sharethis.com/privacy?utm_source=sharethis-plugin&utm_medium=sharethis-plugin-page&utm_campaign=Legal" target="_blank">
<?php esc_html_e( 'Privacy Notice', 'sharethis-share-buttons' ); ?></a>,
<a href="https://www.sharethis.com/publisher-terms-of-use?utm_source=sharethis-plugin&utm_medium=sharethis-plugin-page&utm_campaign=Legal" target="_blank">
<?php esc_html_e( 'Publisher Terms of User', 'sharethis-share-buttons' ); ?></a>,
<?php esc_html_e( 'and', 'sharethis-share-buttons' ); ?>
<a href="https://www.sharethis.com/publisher?utm_source=sharethis-plugin&utm_medium=sharethis-plugin-page&utm_campaign=Legal" target="_blank">
<?php esc_html_e( 'Publisher Information', 'sharethis-share-buttons' ); ?></a>
<?php esc_html_e( 'pages.', 'sharethis-share-buttons' ); ?>
</span>
</th>
</tr>
</tbody>
</table>
</div>

View File

@@ -0,0 +1,12 @@
<?php
/**
* Property Settings Template
*
* The template wrapper for the property setting.
*
* @package ShareThisShareButtons
*/
?>
<?php echo wp_kses_post( $error_message ); ?>
<input type="text" name="sharethis_property_id" placeholder="Enter Property ID" value="<?php echo esc_attr( $credential ); ?>" size="72">

View File

@@ -0,0 +1,66 @@
<?php
/**
* Login Template
*
* The template wrapper for the login set up page.
*
* @package ShareThisShareButtons
*/
?>
<a href="?page=sharethis-general" class="st-rc-back" type="button">BACK</a>
<div id="sharethis-login-wrap">
<h4>
<?php echo esc_html__( 'Login to your account.', 'sharethis-share-buttons' ); ?>
</h4>
<div class="sharethis-login-form">
<div class="page-content" data-size="small" style="text-align: left;">
<span>
<div class="c-red text-center lh-18 h-18"></div>
</span>
<div class="input">
<label name="email" class="">Email</label>
<input type="text" id="st-login-email" name="email">
</div>
<div class="" style="height: 16px; width: 100%;"></div>
<div class="input " style="margin-bottom: 10px;">
<label name="password">Password</label>
<input type="password" id="st-login-password" name="password">
</div>
<a class="login-account st-rc-link" href="#">
<?php esc_html_e( 'LOGIN', 'sharethis-share-buttons' ); ?>
</a>
<p>
Need an account? <a href="?page=sharethis-general">Get started!</a>
</p>
</div>
</div>
</div>
<div id="sharethis-property-select-wrap">
<h4>
<?php echo esc_html__( 'Select your property to connect to WordPress, or create a new property.', 'sharethis-share-buttons' ); ?>
</h4>
<div class="sharethis-login-form property-connect">
<div class="page-content" data-size="small">
<select id="sharethis-properties">
<option>No Properties Available</option>
</select>
<a id="connect-property" class="st-rc-link" href="#">
<?php esc_html_e( 'CONNECT PROPERTY', 'sharethis-share-buttons' ); ?>
</a>
<a id="create-new-property" class="st-rc-link" href="#">
<?php esc_html_e( 'CREATE NEW PROPERTY', 'sharethis-share-buttons' ); ?>
</a>
<input type="hidden" id="st-user-cred">
</div>
</div>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
* Property Select Template
*
* The template wrapper for the property selector set up page.
*
* @package ShareThisShareButtons
*/
?>
<div id="sharethis-property-select-wrap">
<h4>
<?php echo esc_html__( 'Select your property to connect to WordPress, or create a new property.', 'sharethis-share-buttons' ); ?>
</h4>
<div class="sharethis-login-form">
<div class="page-content" data-size="small" style="text-align: left;">
<select id="sharethis-properties">
<option>No Properties Available</option>
</select>
<a id="connect-property" class="login-account st-rc-link" href="#">
<?php esc_html_e( 'CONNECT PROPERTY', 'sharethis-share-buttons' ); ?>
</a>
<a class="login-account st-rc-link" href="#">
<?php esc_html_e( 'CREATE NEW PROPERTY', 'sharethis-share-buttons' ); ?>
</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,63 @@
<?php
/**
* Step One Template
*
* The template wrapper for the step one set up page.
*
* @package ShareThisShareButtons
*/
?>
<div id="sharethis-step-one-wrap">
<div class="sharethis-setup-steps">
<?php
foreach ( $setup_steps as $num => $step ) :
$step_class = 1 === $num ? 'current-step' : '';
?>
<span class="step-num <?php echo esc_attr( $step_class ); ?>"><?php echo esc_html( $num ); ?></span>
<div class="step-description"><?php echo esc_html( $step ); ?></div>
<span class="step-spacer"></span>
<?php endforeach; ?>
</div>
<h1><?php echo esc_html__( 'Let\'s get started!', 'sharethis-share-buttons' ); ?></h1>
<h4>
<?php echo esc_html__( 'Thanks for choosing ShareThis! To get started, select a type of share button. You can always add a second type later.', 'sharethis-share-buttons' ); ?>
</h4>
<div class="button-choices-wrap">
<div class="sharethis-button-option">
<img src="<?php echo esc_url( "{$this->plugin->dir_url}/assets/inline-setup-logo.png" ); ?>">
<span>
<?php echo esc_html__( 'Use inline to place buttons at specific locations, such as under headlines.', 'sharethis-share-buttons' ); ?>
</span>
<a href="?page=sharethis-general&s=2&b=i">
<?php echo esc_html__( 'GET INLINE SHARE BUTTONS', 'sharethis-share-buttons' ); ?>
</a>
</div>
<div class="sharethis-button-option">
<img src="<?php echo esc_url( "{$this->plugin->dir_url}/assets/sticky-setup-logo.png" ); ?>">
<span>
<?php echo esc_html__( 'Sticks to the left or the right side of the screen on desktop and the bottom of mobile.', 'sharethis-share-buttons' ); ?>
</span>
<a href="?page=sharethis-general&s=2&b=s">
<?php echo esc_html__( 'GET STICKY SHARE BUTTONS', 'sharethis-share-buttons' ); ?>
</a>
</div>
</div>
<div class="sharethis-login-message">
<?php echo esc_html__( 'Already have a ShareThis account?', 'sharethis-share-buttons' ); ?>
<a href="?page=sharethis-general&l=t">
<?php echo esc_html__( 'Login and connect your property', 'sharethis-share-buttons' ); ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,62 @@
<?php
/**
* Step Three Template
*
* The template wrapper for the step three set up page.
*
* @package ShareThisShareButtons
*/
?>
<div id="sharethis-step-three-wrap">
<div class="sharethis-setup-steps">
<?php
foreach ( $setup_steps as $num => $step ) :
$step_class = 3 === $num ? 'current-step' : '';
$step_class = 1 === $num || 2 === $num ? 'finished-step' : $step_class;
$num = 1 === $num || 2 === $num ? '<img src="' . esc_url( "{$this->plugin->dir_url}/assets/finished-step.png" ) . '">' : $num;
?>
<span class="step-num <?php echo esc_attr( $step_class ); ?>"><?php echo wp_kses_post( $num ); ?></span>
<div class="step-description"><?php echo esc_html( $step ); ?></div>
<span class="step-spacer"></span>
<?php endforeach; ?>
</div>
<h4>
<?php echo esc_html__( 'You\'re almost done! Create an account then configure your WordPress settings.', 'sharethis-share-buttons' ); ?>
</h4>
<div class="sharethis-account-creation">
<div class="page-content" data-size="small" style="text-align: left;">
<span>
<div class="c-red text-center lh-18 h-18"></div>
</span>
<div class="input">
<label name="email" class="">Email</label>
<input type="text" id="st-email" name="email">
</div>
<div class="" style="height: 16px; width: 100%;"></div>
<div class="input " style="margin-bottom: 10px;">
<label name="password">Create a password</label>
<input type="password" id="st-password" name="password" minlength="6">
<small><?php echo esc_html__( 'Password must be at least six characters.', 'sharethis-share-buttons' ); ?></small>
</div>
<p style="font-size:.8rem;margin: 20px auto;max-width: 85%;">
<?php echo esc_html__( 'By clicking "Register & Configure", you certify that you are agreeing to our', 'sharethis-share-buttons' ); ?>
<a href="https://sharethis.com/privacy/" target="_blank" rel="nofollow">Privacy Policy</a> and
<a href="https://sharethis.com/publisher-terms-of-use/" target="_blank" rel="nofollow">Terms of Service</a> for
Publishers.
</p>
<a class="create-account st-rc-link" href="#">
<?php esc_html_e( 'REGISTER & CONFIGURE', 'sharethis-share-buttons' ); ?>
</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,310 @@
<?php
/**
* Step Two Template
*
* The template wrapper for the step one set up page.
*
* @package ShareThisShareButtons
*/
?>
<a href="?page=sharethis-general" class="st-rc-back" type="button">BACK</a>
<div id="sharethis-step-two-wrap">
<a href="#" class="st-rc-link set-config" type="button">REGISTER</a>
<div class="sharethis-setup-steps">
<?php
foreach ( $setup_steps as $num => $step ) :
$step_class = 2 === $num ? 'current-step' : '';
$step_class = 1 === $num ? 'finished-step' : $step_class;
$num = 1 === $num ? '<img src="' . esc_url( "{$this->plugin->dir_url}/assets/finished-step.png" ) . '">' : $num;
?>
<span class="step-num <?php echo esc_attr( $step_class ); ?>"><?php echo wp_kses_post( $num ); ?></span>
<div class="step-description"><?php echo esc_html( $step ); ?></div>
<span class="step-spacer"></span>
<?php endforeach; ?>
</div>
<h4 class="selected-button" id="<?php echo esc_attr( $button ); ?>">
<?php echo esc_html( $button . __( ' buttons, excellent! Now its time to design.', 'sharethis-share-buttons' ) ); ?>
</h4>
<div class="sharethis-selected-networks">
<div id="<?php echo esc_attr( $button ); ?>-8" class="sharethis-<?php echo esc_attr( strtolower( $button ) ); ?>-share-buttons"></div>
</div>
<?php if ( 'Inline' === $button ) : ?>
<p class="st-preview-message">
⇧ <?php echo esc_html__( 'Preview: click and drag to reorder' ); ?> ⇧
</p>
<?php endif; ?>
<div class="button-configuration-wrap">
<h2><?php echo esc_html__( 'Social networks', 'sharethis-share-buttons' ); ?></h2>
<span>Click a network to add or remove it from your preview. We've already included the most popular networks.</span>
<div class="share-buttons">
<?php
foreach ( $networks as $network_name => $network_info ) :
$viewbox = isset( $network_info['viewbox'] ) ? '0 0 60 60' : '0 0 40 40';
$viewbox = isset( $network_info['viewbox-total'] ) ? esc_attr( $network_info['viewbox-total'] ) : $viewbox;
?>
<div class="share-button" data-color="<?php echo esc_attr( $network_info['color'] ); ?>" data-selected="<?php echo esc_attr( $network_info['selected'] ); ?>" data-network="<?php echo esc_attr( $network_name ); ?>" title="<?php echo esc_attr( $network_name ); ?>" style="background: rgb(<?php echo esc_attr( $network_info['color-rgba'] ); ?>);">
<?php if ( isset( $network_info['full-svg'] ) ) : ?>
<?php echo wp_kses_post( $network_info['full-svg'] ); ?>
<?php else : ?>
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="2em" width="2em" viewBox="<?php echo esc_attr( $viewbox ); ?>">
<?php echo ! empty( $network_info['shape'] ) ? wp_kses_post( $network_info['shape'] ) : ''; ?>
<g>
<?php if ( is_array( $network_info['path'] ) ) : ?>
<?php foreach ( $network_info['path'] as $path_code ) : ?>
<path d="<?php echo esc_attr( $path_code ); ?>"></path>
<?php endforeach; ?>
<?php else : ?>
<path d="<?php echo esc_attr( $network_info['path'] ); ?>"></path>
<?php endif; ?>
</g>
</svg>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<span>
<div class="notes">
<span style="background: rgb(255, 189, 0); border-radius: 20px; font-size: 20px; margin: 0 .5rem; padding: 6px 0 0 5px;">
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="1em" width="1em" viewBox="0 0 40 40">
<g>
<path d="M29.577,23.563 C27.233,23.563 25.935,22.138 25.935,22.138 L27.22,20.283 C27.22,20.283 28.349,21.315 29.605,21.315 C30.108,21.315 30.652,21.12 30.652,20.52 C30.652,19.334 26.158,19.376 26.158,16.306 C26.158,14.464 27.707,13.25 29.688,13.25 C31.839,13.25 32.898,14.38 32.898,14.38 L31.866,16.376 C31.866,16.376 30.861,15.497 29.661,15.497 C29.159,15.497 28.6,15.72 28.6,16.278 C28.6,17.534 33.094,17.311 33.094,20.464 C33.094,22.125 31.824,23.563 29.577,23.563 L29.577,23.563 Z M23.027,23.394 L22.721,18.901 C22.665,18.147 22.721,17.227 22.721,17.227 L22.692,17.227 C22.692,17.227 22.356,18.273 22.134,18.901 L21.088,21.79 L18.994,21.79 L17.947,18.901 C17.724,18.273 17.389,17.227 17.389,17.227 L17.361,17.227 C17.361,17.227 17.417,18.147 17.361,18.901 L17.055,23.394 L14.598,23.394 L15.422,13.417 L18.073,13.417 L19.524,17.631 C19.748,18.273 20.026,19.278 20.026,19.278 L20.055,19.278 C20.055,19.278 20.334,18.273 20.557,17.631 L22.008,13.417 L24.66,13.417 L25.469,23.394 L23.027,23.394 Z M10.548,23.563 C8.204,23.563 6.906,22.138 6.906,22.138 L8.19,20.283 C8.19,20.283 9.32,21.315 10.576,21.315 C11.078,21.315 11.623,21.12 11.623,20.52 C11.623,19.334 7.129,19.376 7.129,16.306 C7.129,14.464 8.678,13.25 10.66,13.25 C12.808,13.25 13.869,14.38 13.869,14.38 L12.836,16.376 C12.836,16.376 11.832,15.497 10.632,15.497 C10.129,15.497 9.571,15.72 9.571,16.278 C9.571,17.534 14.064,17.311 14.064,20.464 C14.064,22.125 12.795,23.563 10.548,23.563 L10.548,23.563 Z M32.814,6 L7.185,6 C5.437,6 4,7.438 4,9.213 L4,28.99 C4,30.756 5.426,32.203 7.185,32.203 L10.61,32.203 L12.445,34.295 C13.086,34.952 14.117,34.949 14.755,34.295 L16.59,32.203 L32.814,32.203 C34.562,32.203 36,30.764 36,28.99 L36,9.213 C36,7.446 34.574,6 32.814,6 L32.814,6 Z"></path>
</g>
</svg>
</span>
<?php echo esc_html__( 'The sms button only appears on mobile devices. It is included in your desktop preview for reference only.', 'sharethis-share-buttons' ); ?>
</div>
</span>
<hr>
<?php if ( 'Inline' === $button ) : ?>
<div class="button-alignment">
<h3>Alignment</h3>
<div class="alignment-button" data-alignment="left" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom">Left</div>
</div>
<div class="alignment-button" data-alignment="center" data-selected="true">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom">Center</div>
</div>
<div class="alignment-button" data-alignment="right" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div><div class="bottom">Right</div>
</div>
<div class="alignment-button" data-alignment="justified" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom">Justified</div>
</div>
</div>
<hr>
<?php endif; ?>
<div class="row">
<?php if ( 'Inline' === $button ) : ?>
<div class="st-radio-config button-config button-size">
<h3>Size</h3>
<div class="item">
<input type="radio" class="with-gap" value="on" checked="checked">
<label>Small</label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label>Medium</label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label>Large</label>
</div>
<?php else : ?>
<div class="button-config">
<h3>Alignment</h3>
<div class="item">
<label>
<span>Left</span>
<div class="switch sticky-alignment">
<label>
<input type="checkbox" value="on">
<span class="lever"></span>
</label>
</div>
<span>Right</span>
</label>
</div>
<div class="item">
<span class="lbl">Vertical Alignment</span>
<input class="vertical-alignment" type="text" value="160">
</div>
<div class="item">
<span class="lbl">Mobile Breakpoint</span>
<input class="mobile-breakpoint" type="text" value="1024">
</div>
<?php endif; ?>
</div>
<div class="st-radio-config button-config button-labels">
<h3>Labels</h3>
<div class="item">
<input type="radio" class="with-gap" value="on" checked="checked">
<label id="cta">Call to Action</label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="counts">Share Counts</label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="none">None</label>
</div>
</div>
<div class="button-config">
<h3>Counts</h3>
<div class="item">
<span class="lbl show-total-count">Show total count</span>
<div class="switch">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<div class="item tooltip">
<span class="lbl">
Minimum Count
<span class="tooltip-icon tooltipped" data-delay="50" data-position="right" data-tooltip="This is the minimum number of shares a page needs to have before we'll show your share counts." data-tooltip-id="233a37b7-7c96-eb8b-128e-80c62a922f41">
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="1em" width="1em" viewBox="0 0 40 40">
<g>
<path d="m23.2 28v5.4q0 0.4-0.3 0.6t-0.6 0.3h-5.3q-0.4 0-0.7-0.3t-0.2-0.6v-5.4q0-0.3 0.2-0.6t0.7-0.3h5.3q0.4 0 0.6 0.3t0.3 0.6z m7.1-13.4q0 1.2-0.4 2.3t-0.8 1.7-1.2 1.3-1.3 1-1.3 0.8q-0.9 0.5-1.6 1.4t-0.6 1.5q0 0.4-0.2 0.8t-0.7 0.3h-5.3q-0.4 0-0.6-0.4t-0.2-0.8v-1q0-1.9 1.4-3.5t3.2-2.5q1.3-0.6 1.9-1.2t0.5-1.7q0-0.9-1-1.7t-2.4-0.7q-1.4 0-2.4 0.7-0.8 0.5-2.4 2.5-0.3 0.4-0.7 0.4-0.2 0-0.5-0.2l-3.7-2.8q-0.3-0.2-0.3-0.5t0.1-0.6q3.5-6 10.3-6 1.8 0 3.6 0.7t3.3 1.9 2.4 2.8 0.9 3.5z"></path>
</g>
</svg>
</span>
<div class="material-tooltip"><span>This is the minimum number of shares a page needs to have before we'll show your share counts.</span><div class="backdrop" style="top: -7px; left: 0px; width: 14px; height: 14px; border-radius: 0px 14px 14px 0px; transform-origin: 5% 50% 0px; margin-top: 31px; margin-left: 0px; display: none; opacity: 0; transform: scaleX(1) scaleY(1);"></div></div>
</span>
<input class="minimum-count" type="text" value="10">
</div>
</div>
<hr>
<div class="button-config">
<h3 class="center"><?php echo esc_html__( 'Corners', 'sharethis-share-buttons' ); ?></h3>
<span><?php echo esc_html__( 'Square', 'sharethis-share-buttons' ); ?></span>
<span class="range-field">
<input type="range" min="0" max="16" value="4" id="radius-selector" style="width: 200px; margin: 5px;">
<span class="thumb">
<span class="value"></span>
</span>
</span>
<span><?php echo esc_html__( 'Rounded', 'sharethis-share-buttons' ); ?></span>
</div>
<div class="button-config">
<h3><?php echo esc_html__( 'Extras', 'sharethis-share-buttons' ); ?></h3>
<?php if ( 'Inline' === $button ) : ?>
<div class="item">
<span class="lbl extra-spacing"><?php echo esc_html__( 'Add Spacing', 'sharethis-share-buttons' ); ?></span>
<div class="switch">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<?php else : ?>
<div class="item">
<span class="lbl show-on-mobile"><?php echo esc_html__( 'Show on mobile', 'sharethis-share-buttons' ); ?></span>
<div class="switch">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<div class="item">
<span class="lbl show-on-desktop"><?php echo esc_html__( 'Hide on desktop', 'sharethis-share-buttons' ); ?></span>
<div class="switch">
<label>
<input type="checkbox" value="on">
<span class="lever"></span>
</label>
</div>
</div>
<?php endif; ?>
</div>
<div class="button-config">
<h3 class="center"><?php echo esc_html__( 'Languages', 'sharethis-share-buttons' ); ?></h3>
<span class="select-field">
<select id="st-language">
<?php foreach ( $languages as $language_name => $code ) : ?>
<option class="language-option" value="<?php echo esc_attr( $code ); ?>">
<?php echo esc_html( $language_name ); ?>
</option>
<?php endforeach; ?>
</select>
</span>
</div>
</div>
</div>
<h4><?php echo esc_html__( 'Ooooo that\'s hot. Click register & configure to complete installation!', 'sharethis-share-buttons' ); ?></h4>
<a href="#" class="st-rc-link set-congif">REGISTER</a>
</div>

View File

@@ -0,0 +1,58 @@
<?php
/**
* Meta Box Template
*
* The template wrapper for post/page meta box.
*
* @package ShareThisShareButtons
*/
?>
<div id="sharethis-meta-box">
<?php if ( ! in_array( $inline_enable, array( null, false, 'false' ), true ) ) : ?>
<div id="inline" class="button-setting-wrap">
<h3><?php esc_html_e( 'Inline share buttons', 'sharethis-share-buttons' ); ?></h3>
<div class="button-check-wrap">
<input class="top" type="checkbox" id="sharethis-top-post" <?php echo checked( 'true', $this->is_box_checked( 'inline', '_top' ) ); ?>>
<label for="sharethis-top-post">
<?php
// translators: The post type.
printf( esc_html__( 'Include at top of %1$s content', 'sharethis-share-buttons' ), esc_html( $post_type ) );
?>
</label>
</div>
<div class="button-check-wrap">
<input class="bottom" type="checkbox" id="sharethis-bottom-post" <?php echo checked( 'true', $this->is_box_checked( 'inline', '_bottom' ) ); ?>>
<label for="sharethis-bottom-post">
<?php
// translators: The post type.
printf( esc_html__( 'Include at bottom of %1$s content', 'sharethis-share-buttons' ), esc_html( $post_type ) );
?>
</label>
</div>
<input type="text" class="sharethis-shortcode" readonly value="[sharethis-inline-buttons]">
<span class="under-message"><?php esc_html_e( 'Inline share button shortcode.', 'sharethis-share-buttons' ); ?></span>
</div>
<?php endif; ?>
<?php if ( ! in_array( $sticky_enable, array( null, false, 'false' ), true ) ) : ?>
<div id="sticky" class="button-setting-wrap">
<h3><?php esc_html_e( 'Sticky share buttons', 'sharethis-share-buttons' ); ?></h3>
<input class="" type="checkbox" id="sharethis-sticky-show" <?php echo checked( 'true', $this->is_box_checked( 'sticky' ) ); ?>>
<label for="sharethis-sticky-show">
<?php
// translators: The post type.
printf( esc_html__( 'Include on this %1$s', 'sharethis-share-buttons' ), esc_html( $post_type ) );
?>
</label>
</div>
<?php endif; ?>
<a href="<?php echo esc_url( admin_url( 'admin.php?page=sharethis-share-buttons' ) ); ?>">
<?php esc_html_e( 'Update your default settings', 'sharethis-share-buttons' ); ?>
</a>
</div>

View File

@@ -0,0 +1,289 @@
<?php
/**
* Platform button configurations
*
* The template wrapper for the platform button configurations.
*
* @package ShareThisShareButtons
*/
$button = 'share_button_section_2' === $button['id'] ? 'sticky' : 'inline';
?>
<div class="<?php echo esc_attr( strtolower( $button ) ); ?>-platform platform-config-wrapper">
<hr>
<h4 style="text-align: left; font-size: 15px;"><?php echo esc_html__( 'Design', 'sharethis-share-buttons' ); ?></h4>
<div class="st-design-message"><?php echo esc_html__( 'Use the settings below to update the look of your share buttons. We cache your button configurations to improve their performance. Any changes you make in the section may take up to five minutes to appear on your site.', 'sharethis-share-buttons' ); ?></div>
<div class="sharethis-selected-networks">
<div id="<?php echo esc_attr( strtolower( $button ) ); ?>-8" class="sharethis-<?php echo esc_attr( $button ); ?>-share-buttons"></div>
</div>
<?php if ( 'inline' === $button ) : ?>
<p class="st-preview-message">
⇧ <?php echo esc_html__( 'Preview: click and drag to reorder' ); ?> ⇧
</p>
<?php endif; ?>
<div id="<?php echo esc_attr( strtolower( $button ) ); ?>" class="button-configuration-wrap selected-button">
<h3><?php echo esc_html__( 'Social networks', 'sharethis-share-buttons' ); ?></h3>
<span class="config-desc">click a network to add or remove it from your preview. We've already included the most popular networks.</span>
<div class="<?php echo esc_attr( $button ); ?>-network-list share-buttons">
<?php
foreach ( $networks as $network_name => $network_info ) :
$viewbox = isset( $network_info['viewbox'] ) ? '0 0 100 100' : '0 0 70 70';
$viewbox = isset( $network_info['viewbox-total'] ) ? esc_attr( $network_info['viewbox-total'] ) : $viewbox;
?>
<div class="share-button" data-color="<?php echo esc_attr( $network_info['color'] ); ?>" data-selected="<?php echo esc_attr( $network_info['selected'] ); ?>" data-network="<?php echo esc_attr( $network_name ); ?>" title="<?php echo esc_attr( $network_name ); ?>" style="background: rgb(<?php echo esc_attr( $network_info['color-rgba'] ); ?>);">
<?php if ( isset( $network_info['full-svg'] ) ) : ?>
<?php echo wp_kses_post( $network_info['full-svg'] ); ?>
<?php else : ?>
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="2em" width="2em" viewBox="<?php echo esc_attr( $viewbox ); ?>">
<?php echo ! empty( $network_info['shape'] ) ? wp_kses_post( $network_info['shape'] ) : ''; ?>
<g>
<?php if ( is_array( $network_info['path'] ) ) : ?>
<?php foreach ( $network_info['path'] as $path_code ) : ?>
<path d="<?php echo esc_attr( $path_code ); ?>"></path>
<?php endforeach; ?>
<?php else : ?>
<path d="<?php echo esc_attr( $network_info['path'] ); ?>"></path>
<?php endif; ?>
</g>
</svg>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<span>
<div class="notes">
<span style="background: rgb(255, 189, 0); border-radius: 20px; font-size: 20px; margin: 0 .5rem; padding: 6px 0 0 5px;">
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="1em" width="1em" viewBox="0 0 40 40">
<g>
<path d="M29.577,23.563 C27.233,23.563 25.935,22.138 25.935,22.138 L27.22,20.283 C27.22,20.283 28.349,21.315 29.605,21.315 C30.108,21.315 30.652,21.12 30.652,20.52 C30.652,19.334 26.158,19.376 26.158,16.306 C26.158,14.464 27.707,13.25 29.688,13.25 C31.839,13.25 32.898,14.38 32.898,14.38 L31.866,16.376 C31.866,16.376 30.861,15.497 29.661,15.497 C29.159,15.497 28.6,15.72 28.6,16.278 C28.6,17.534 33.094,17.311 33.094,20.464 C33.094,22.125 31.824,23.563 29.577,23.563 L29.577,23.563 Z M23.027,23.394 L22.721,18.901 C22.665,18.147 22.721,17.227 22.721,17.227 L22.692,17.227 C22.692,17.227 22.356,18.273 22.134,18.901 L21.088,21.79 L18.994,21.79 L17.947,18.901 C17.724,18.273 17.389,17.227 17.389,17.227 L17.361,17.227 C17.361,17.227 17.417,18.147 17.361,18.901 L17.055,23.394 L14.598,23.394 L15.422,13.417 L18.073,13.417 L19.524,17.631 C19.748,18.273 20.026,19.278 20.026,19.278 L20.055,19.278 C20.055,19.278 20.334,18.273 20.557,17.631 L22.008,13.417 L24.66,13.417 L25.469,23.394 L23.027,23.394 Z M10.548,23.563 C8.204,23.563 6.906,22.138 6.906,22.138 L8.19,20.283 C8.19,20.283 9.32,21.315 10.576,21.315 C11.078,21.315 11.623,21.12 11.623,20.52 C11.623,19.334 7.129,19.376 7.129,16.306 C7.129,14.464 8.678,13.25 10.66,13.25 C12.808,13.25 13.869,14.38 13.869,14.38 L12.836,16.376 C12.836,16.376 11.832,15.497 10.632,15.497 C10.129,15.497 9.571,15.72 9.571,16.278 C9.571,17.534 14.064,17.311 14.064,20.464 C14.064,22.125 12.795,23.563 10.548,23.563 L10.548,23.563 Z M32.814,6 L7.185,6 C5.437,6 4,7.438 4,9.213 L4,28.99 C4,30.756 5.426,32.203 7.185,32.203 L10.61,32.203 L12.445,34.295 C13.086,34.952 14.117,34.949 14.755,34.295 L16.59,32.203 L32.814,32.203 C34.562,32.203 36,30.764 36,28.99 L36,9.213 C36,7.446 34.574,6 32.814,6 L32.814,6 Z"></path>
</g>
</svg>
</span>
<?php echo esc_html__( 'The sms button only appears on mobile devices. It is included in your desktop preview for reference only.', 'sharethis-share-buttons' ); ?>
</div>
</span>
<hr>
<?php if ( 'inline' === $button ) : ?>
<div class="button-alignment">
<h3><?php echo esc_html__( 'Alignment', 'sharethis-share-buttons' ); ?></h3>
<div class="alignment-button" data-alignment="left" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom"><?php echo esc_html__( 'Left', 'sharethis-share-buttons' ); ?></div>
</div>
<div class="alignment-button" data-alignment="center" data-selected="true">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom"><?php echo esc_html__( 'Center', 'sharethis-share-buttons' ); ?></div>
</div>
<div class="alignment-button" data-alignment="right" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div><div class="bottom"><?php echo esc_html__( 'Right', 'sharethis-share-buttons' ); ?></div>
</div>
<div class="alignment-button" data-alignment="justified" data-selected="false">
<div class="top">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="bottom"><?php echo esc_html__( 'Justified', 'sharethis-share-buttons' ); ?></div>
</div>
</div>
<hr>
<?php endif; ?>
<div class="row">
<?php if ( 'inline' === $button ) : ?>
<div class="st-radio-config button-config button-size">
<h3><?php echo esc_html__( 'Size', 'sharethis-share-buttons' ); ?></h3>
<div class="item">
<input type="radio" class="with-gap" value="on" checked="checked">
<label id="small"><?php echo esc_html__( 'Small', 'sharethis-share-buttons' ); ?></label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="medium"><?php echo esc_html__( 'Medium', 'sharethis-share-buttons' ); ?></label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="large"><?php echo esc_html__( 'Large', 'sharethis-share-buttons' ); ?></label>
</div>
<?php else : ?>
<div class="button-config">
<h3><?php echo esc_html__( 'Alignment', 'sharethis-share-buttons' ); ?></h3>
<div class="item">
<label>
<span><?php echo esc_html__( 'Left', 'sharethis-share-buttons' ); ?></span>
<div class="switch sticky-alignment">
<label>
<input type="checkbox" value="on">
<span class="lever"></span>
</label>
</div>
<span><?php echo esc_html__( 'Right', 'sharethis-share-buttons' ); ?></span>
</label>
</div>
<div class="item">
<span class="lbl"><?php echo esc_html__( 'Vertical Alignment', 'sharethis-share-buttons' ); ?></span>
<input class="vertical-alignment" type="text" value="160">
</div>
<div class="item">
<span class="lbl"><?php echo esc_html__( 'Mobile Breakpoint', 'sharethis-share-buttons' ); ?></span>
<input class="mobile-breakpoint" type="text" value="1024">
</div>
<?php endif; ?>
</div>
<div class="st-radio-config button-config button-labels">
<h3><?php echo esc_html__( 'Labels', 'sharethis-share-buttons' ); ?></h3>
<div class="item">
<input type="radio" class="with-gap" value="on" checked="checked">
<label id="cta"><?php echo esc_html__( 'Call to Action', 'sharethis-share-buttons' ); ?></label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="counts"><?php echo esc_html__( 'Share Counts', 'sharethis-share-buttons' ); ?></label>
</div>
<div class="item">
<input type="radio" class="with-gap" value="on">
<label id="none"><?php echo esc_html__( 'None', 'sharethis-share-buttons' ); ?></label>
</div>
</div>
<div class="button-config">
<h3><?php echo esc_html__( 'Counts', 'sharethis-share-buttons' ); ?></h3>
<div class="item">
<span class="lbl show-total-count"><?php echo esc_html__( 'Show total count', 'sharethis-share-buttons' ); ?></span>
<div class="switch">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<div class="item tooltip">
<span class="lbl">
<?php echo esc_html__( 'Minimum Count', 'sharethis-share-buttons' ); ?>
<span class="tooltip-icon tooltipped" data-delay="50" data-position="right" data-tooltip="This is the minimum number of shares a page needs to have before we'll show your share counts." data-tooltip-id="233a37b7-7c96-eb8b-128e-80c62a922f41">
<svg fill="#fff" preserveAspectRatio="xMidYMid meet" height="1em" width="1em" viewBox="0 0 40 40">
<g>
<path d="m23.2 28v5.4q0 0.4-0.3 0.6t-0.6 0.3h-5.3q-0.4 0-0.7-0.3t-0.2-0.6v-5.4q0-0.3 0.2-0.6t0.7-0.3h5.3q0.4 0 0.6 0.3t0.3 0.6z m7.1-13.4q0 1.2-0.4 2.3t-0.8 1.7-1.2 1.3-1.3 1-1.3 0.8q-0.9 0.5-1.6 1.4t-0.6 1.5q0 0.4-0.2 0.8t-0.7 0.3h-5.3q-0.4 0-0.6-0.4t-0.2-0.8v-1q0-1.9 1.4-3.5t3.2-2.5q1.3-0.6 1.9-1.2t0.5-1.7q0-0.9-1-1.7t-2.4-0.7q-1.4 0-2.4 0.7-0.8 0.5-2.4 2.5-0.3 0.4-0.7 0.4-0.2 0-0.5-0.2l-3.7-2.8q-0.3-0.2-0.3-0.5t0.1-0.6q3.5-6 10.3-6 1.8 0 3.6 0.7t3.3 1.9 2.4 2.8 0.9 3.5z"></path>
</g>
</svg>
</span>
<div class="material-tooltip"><span><?php echo esc_html__( 'This is the minimum number of shares a page needs to have before we\'ll show your share counts.', 'sharethis-share-buttons' ); ?></span><div class="backdrop" style="top: -7px; left: 0px; width: 14px; height: 14px; border-radius: 0px 14px 14px 0px; transform-origin: 5% 50% 0px; margin-top: 31px; margin-left: 0px; display: none; opacity: 0; transform: scaleX(1) scaleY(1);"></div></div>
</span>
<input class="minimum-count" type="text" value="10">
</div>
</div>
<hr>
<div class="button-config">
<h3 class="center"><?php echo esc_html__( 'Corners', 'sharethis-share-buttons' ); ?></h3>
<span><?php echo esc_html__( 'Square', 'sharethis-share-buttons' ); ?></span>
<span class="range-field">
<input type="range" min="0" max="16" value="4" id="radius-selector" style="width: 200px; margin: 5px;">
<span class="thumb">
<span class="value"></span>
</span>
</span>
<span><?php echo esc_html__( 'Rounded', 'sharethis-share-buttons' ); ?></span>
</div>
<div class="button-config">
<h3><?php echo esc_html__( 'Extras', 'sharethis-share-buttons' ); ?></h3>
<?php if ( 'inline' === $button ) : ?>
<div class="item">
<span class="lbl"><?php echo esc_html__( 'Add Spacing', 'sharethis-share-buttons' ); ?></span>
<div class="switch extra-spacing">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<?php else : ?>
<div class="item">
<span class="lbl"><?php echo esc_html__( 'Show on mobile', 'sharethis-share-buttons' ); ?></span>
<div class="switch show-on-mobile">
<label>
<input type="checkbox" value="on" checked="checked">
<span class="lever"></span>
</label>
</div>
</div>
<div class="item">
<span class="lbl"><?php echo esc_html__( 'Hide on desktop', 'sharethis-share-buttons' ); ?></span>
<div class="switch show-on-desktop">
<label>
<input type="checkbox" value="on">
<span class="lever"></span>
</label>
</div>
</div>
<?php endif; ?>
</div>
<div class="button-config">
<h3 class="center"><?php echo esc_html__( 'Languages', 'sharethis-share-buttons' ); ?></h3>
<span class="select-field">
<select id="st-language-<?php echo esc_attr( $button ); ?>">
<?php foreach ( $languages as $language_name => $code ) : ?>
<option class="language-option" value="<?php echo esc_attr( $code ); ?>">
<?php echo esc_html( $language_name ); ?>
</option>
<?php endforeach; ?>
</select>
</span>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,21 @@
<?php
/**
* Enable Button Template
*
* The template wrapper for the enable button settings.
*
* @package ShareThisShareButtons
*/
$option_value = get_option( 'sharethis_' . $id );
?>
<div id="<?php echo esc_attr( ucfirst( $id ) ); ?>" class="enable-buttons">
<label class="share-on">
<input type="radio" id="sharethis_<?php echo esc_attr( $id ); ?>_on" name="sharethis_<?php echo esc_attr( $id ); ?>" value="true" <?php echo esc_attr( checked( 'true', $option_value, false ) ); ?>>
<div class="label-text"><?php esc_html_e( 'On', 'sharethis-share-buttons' ); ?></div>
</label>
<label class="share-off">
<input type="radio" id="sharethis_<?php echo esc_attr( $id ); ?>_off" name="sharethis_<?php echo esc_attr( $id ); ?>" value="false" <?php echo esc_attr( checked( 'false', $option_value, false ) ); ?>>
<div class="label-text"><?php esc_html_e( 'Off', 'sharethis-share-buttons' ); ?></div>
</label>
</div>

View File

@@ -0,0 +1,28 @@
<?php
/**
* List Template
*
* The template wrapper for the list of pages / categories used for exclusion.
*
* @package ShareThisShareButtons
*/
?>
<div class="list-wrapper">
<h4>
<?php
// translators: The list type plural.
printf( esc_html__( 'Exclude specific %1$s', 'sharethis-share-buttons' ), esc_html( $type['multi'] ) );
?>
</h4>
<input id="<?php echo esc_attr( $type['single'] ); ?>-ta" type="text" placeholder="
<?php
// translators: The list type singular.
printf( esc_html__( 'Search for a %1$s', 'sharethis-share-buttons' ), esc_html( $type['single'] ) );
?>
" size="40" autocomplete="off">
<span id="<?php echo esc_attr( $type['single'] ); ?>" class="search-st-icon"></span>
<ul id="<?php echo esc_attr( $type['single'] ); ?>-result-wrapper"></ul>
<ul id="<?php echo esc_attr( $type['single'] ); ?>-current-omit"><?php echo wp_kses( $current_omit, $allowed ); ?></ul>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/**
* On Off Button Template
*
* The template wrapper for the On Off button settings.
*
* @package ShareThisShareButtons
*/
?>
<div class="onoff-buttons">
<label class="share-on">
<input type="radio" id="sharethis_<?php echo esc_attr( $type ); ?>_settings_<?php echo esc_attr( $option ); ?>_on" name="sharethis_<?php echo esc_attr( $type ); ?>_settings[<?php echo esc_attr( $option ); ?>]" value="true" <?php echo false !== $option_value[ $option ] && 'true' === $option_value[ $option ] ? 'checked="checked"' : esc_attr( $default['true'] ); ?>>
<div class="label-text"><?php esc_html_e( 'On', 'sharethis-share-buttons' ); ?></div>
</label>
<label class="share-off">
<input type="radio" id="sharethis_<?php echo esc_attr( $type ); ?>_settings_<?php echo esc_attr( $option ); ?>_off" name="sharethis_<?php echo esc_attr( $type ); ?>_settings[<?php echo esc_attr( $option ); ?>]" value="false" <?php echo false !== $option_value[ $option ] && 'false' === $option_value[ $option ] ? 'checked="checked"' : esc_attr( $default['false'] ); ?>>
<div class="label-text"><?php esc_html_e( 'Off', 'sharethis-share-buttons' ); ?></div>
</label>
<div class="option-title"><?php echo esc_html( $title ); ?></div>
<?php if ( $margin ) : ?>
<button class="margin-control-button<?php echo ' ' . esc_attr( $active['class'] ); ?>" type="button">
<?php esc_html_e( 'margin', 'sharethis-share-buttons' ); ?>
<span class="margin-on-off"><?php echo esc_html( $active['onoff'] ); ?></span>
</button>
<div class="margin-input-fields">
<?php esc_html_e( 'top', 'sharethis-share-buttons' ); ?> <input id="sharethis_<?php echo esc_attr( $type ); ?>_settings_<?php echo esc_attr( $option ); ?>_margin_top" name="sharethis_<?php echo esc_attr( $type ); ?>_settings[<?php echo esc_attr( $option ); ?>_margin_top]" type="number" value="<?php echo intval( $option_value[ $option . '_margin_top' ] ); ?>" min="0"> px
<span class="margin-input-spacer">|</span>
<?php esc_html_e( 'bottom', 'sharethis-share-buttons' ); ?> <input id="sharethis_<?php echo esc_attr( $type ); ?>_settings_<?php echo esc_attr( $option ); ?>_margin_bottom" name="sharethis_<?php echo esc_attr( $type ); ?>_settings[<?php echo esc_attr( $option ); ?>_margin_bottom]" type="number" value="<?php echo intval( $option_value[ $option . '_margin_bottom' ] ); ?>" min="0"> px
</div>
<?php endif; ?>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
* Share Button Settings Template
*
* The template wrapper for the share buttons settings page.
*
* @package ShareThisShareButtons
*/
?>
<div id="detectadblock">
<div class="adBanner">
</div>
</div>
<div id="adblocker-notice" class="notice notice-error is-dismissible">
<p>
<?php echo esc_html__( 'It appears you have an ad blocker enabled. To avoid affecting this plugin\'s functionality, please disable while using its admin configurations and registrations. Thank you.', 'sharethis-share-buttons' ); ?>
</p>
</div>
<hr class="wp-header-end" style="display:none;">
<div class="wrap sharethis-wrap">
<?php echo wp_kses_post( $description ); ?>
<form action="options.php" method="post">
<?php
settings_fields( $this->menu_slug . '-share-buttons' );
do_settings_sections( $this->menu_slug . '-share-buttons' );
submit_button( esc_html__( 'Update', 'sharethis-share-buttons' ) );
?>
</form>
</div>

View File

@@ -0,0 +1,16 @@
<?php
/**
* Shortcode Template
*
* The template wrapper for inline share button shortcode.
*
* @package ShareThisShareButtons
*/
?>
<textarea id="holdtext" style="display:none;"></textarea>
<div class="readonly-input-field">
<input type="text" id="inline-<?php echo esc_attr( $type['type'] ); ?>" value="<?php echo esc_attr( $type['value'] ); ?>" readonly size="40"/>
<button type="button" id="copy-<?php echo esc_attr( $type['type'] ); ?>"><?php esc_html_e( 'Copy', 'sharethis-share-buttons' ); ?></button>
</div>