Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-content
/
plugins
/
social-warfare
/
lib
/
frontend-output
/
File Content:
SWP_Shortcode.php
<?php /** * A class of functions used to render shortcodes for the user * * The SWP_Shortcodes Class used to add our shorcodes to WordPress * registry of registered functions. * * @package SocialWarfare\Frontend-Output * @copyright Copyright (c) 2018, Warfare Plugins, LLC * @license GPL-3.0+ * @since 1.0.0 * @since 3.0.0 | 19 FEB 2018 | Refactored into a class-based system * */ class SWP_Shortcode { /** * Constructs a new SWP_Shortcodes instance * * This function is used to add our shortcodes to WordPress' registry of * shortcodes and to map our functions to each one. * * @since 3.0.0 * @param none * @return none * */ public function __construct() { add_shortcode( 'total_shares', array ( $this, 'post_total_shares' ) ); add_shortcode( 'sitewide_shares', array ( $this, 'sitewide_total_shares' ) ); add_shortcode( 'click_to_tweet', array( $this, 'click_to_tweet' ) ); /** * These are old legacy shortcodes that have been replaced with the ones seen above. * We're leaving these here to ensure that it won't break for anyone who has used these * ones in the past. The ones above adhere to our code style guide. * */ add_shortcode( 'clickToTweet', array( $this, 'click_to_tweet' ) ); } /** * This is used to process the total shares across all tracked * social networks for any given WordPress post. * * This function will accept an array of arguments which WordPress * will create from the shortcode attributes. However, it doesn't actually * use any parameters. It is only included to prevent throwing an error * in the event that someone tries to input a parameter on it. * * @since 3.0.0 * @param $atts Array An array converted from shortcode attributes. * @return string A string of text representing the total shares for the post. * */ public function post_total_shares( $settings ) { $unformatted_total_shares = get_post_meta( get_the_ID(), '_total_shares', true ); $formatted_total_shares = SWP_Utility::kilomega( $unformatted_total_shares ); return $formatted_total_shares; } /** * This is used to process the total shares across all tracked * social networks for all posts across the site as an aggragate count. * * This function will accept an array of arguments which WordPress * will create from the shortcode attributes. However, it doesn't actually * use any parameters. It is only included to prevent throwing an error * in the event that someone tries to input a parameter on it. * * @since 3.0.0 * @param $atts Array An array converted from shortcode attributes. * @return string A string of text representing the total sitewide shares. * */ public function sitewide_total_shares( $settings ) { global $wpdb; $sum = $wpdb->get_results( "SELECT SUM(meta_value) AS total FROM $wpdb->postmeta WHERE meta_key = '_total_shares'" ); return SWP_Utility::kilomega( $sum[0]->total ); } /** * The function to build the click to tweets * * @param array $atts The shortcode key/value attributes. * @return string The html of a click to tweet * */ function click_to_tweet( $atts ) { global $post; // This is the Add Post editor for a new post, so no $post. if ( !is_object( $post ) ) { return $atts; } /** * If they included a link in the tweet text, we need to not pass a URL * parameter over to Twitter. * * Twitter will diregard value if it is: empty, a whitespace, or %20. * Instead, give it an invalid URL! It achieves the targeted effect. * * This means that Twitter will not add a URL to the end of the tweet * which is the desired effect since the author added a link within the * tweet itself. * */ $url = '&url=' . SWP_Link_Manager::process_url( get_permalink() , 'twitter' , get_the_ID() ); if ( strpos( $atts['tweet'], 'http' ) > -1 ) { $url = '&url=x'; } // Generate the @via for the author of this $post, or an empty string. $via = SWP_Twitter::get_via_parameter( $post ); /** * If a theme was passed into the shortcode via a parameter, we'll use * that theme. If a theme was not passed in, or if the theme is set to * 'default', or if an empty string was passed in, then we'll use the * global theme which is set on the plugin's options page. * */ $theme = SWP_Utility::get_option( 'ctt_theme' ); if ( !empty( $atts['theme'] ) && $atts['theme'] != 'default' ) { $theme = $atts['theme']; } /** * If the Theme is set to false, it means that the user is on the free * version of the plugin and as such, the only available theme is the * first/default theme. * */ if( false === $theme ) { $theme = 'style1'; } /** * This will generate the user's custom Tweet that will be used to * prepopulate the share dialogue box when an end user clicks on the * actual Click to Tweet. * */ $tweet = $this->get_tweet( $atts ); /** * Now that all the information has been processed, we generate the * actual string of html that will be returned and output to the screen. * */ $html = '<div class="sw-tweet-clear"></div>'; $html .= '<a class="swp_CTT ' . $theme; $html .= '" href="https://twitter.com/share?text=' . $tweet . $via . $url; $html .= '" data-link="https://twitter.com/share?text=' . $tweet . $via . $url; $html .= '" rel="nofollow noreferrer noopener" target="_blank">'; $html .= '<span class="sw-click-to-tweet">'; $html .= '<span class="sw-ctt-text">'; $html .= $atts['quote']; $html .= '</span>'; $html .= '<span class="sw-ctt-btn">'; $html .= __( 'Click To Tweet','social-warfare' ); $html .= '<i class="sw swp_twitter_icon"></i>'; $html .= '</span>'; $html .= '</span>'; $html .= '</a>'; return $html; } /** * * Retrieves tweet from database and converts to UTF-8 for Twitter. * * @since 3.3.0 | 16 AUG 2018 | Created. Ported code from $this->generate_share_link. * @param array $atts Shortcode attributes. * * @return string $tweet The encoded tweet text. * */ protected function get_tweet( $atts ) { $max_tweet_length = 240; // Check for a custom tweet from the shortcode attributes. . $tweet = $atts['tweet']; if ( function_exists( 'mb_convert_encoding' ) ) : $tweet = mb_convert_encoding( $tweet, 'UTF-8', get_bloginfo( "charset" ) ); endif; $html_safe_tweet = htmlentities( $tweet, ENT_COMPAT, 'UTF-8' ); $tweet = urlencode( $tweet ); return $tweet; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
SWP_Header_Output.php
5594 bytes
0644
SWP_Script.php
12169 bytes
0644
SWP_Shortcode.php
6721 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500.php
48544 bytes
0644
N4ST4R_ID | Naxtarrr