????JFIF??x?x????'
Server IP : 104.21.96.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/pontiacques.org/wp-content/plugins/column-shortcodes/ |
Upload File : |
<?php /* Plugin Name: Column Shortcodes Version: 1.0.1 Description: Adds shortcodes to easily create columns in your posts or pages Author: Codepress Author URI: https://www.admincolumns.com/ Plugin URI: https://wordpress.org/plugins/column-shortcodes Text Domain: column-shortcodes Domain Path: /languages License: GPLv2 Copyright 2011-2023 Codepress [email protected] This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. 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. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ // Long posts should require a higher limit, see http://core.trac.wordpress.org/ticket/8553 @ini_set( 'pcre.backtrack_limit', 500000 ); /** * Column Shortcodes * * @since 0.1 */ class Codepress_Column_Shortcodes { /** * @var string */ private $version; /** * Constructor * * @since 0.1 */ public function __construct() { add_action( 'admin_init', array( $this, 'add_editor_buttons' ) ); add_action( 'admin_footer', array( $this, 'popup' ) ); add_action( 'plugins_loaded', array( $this, 'translations' ) ); add_action( 'wp_loaded', array( $this, 'add_shortcodes' ) ); // styling add_action( 'admin_print_styles', array( $this, 'admin_styles' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_plugins_scripts' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'frontend_styles' ) ); // scripts, only load when editor is available add_filter( 'tiny_mce_plugins', array( $this, 'admin_scripts' ) ); } /** * @since 1.0 */ public function translations() { load_plugin_textdomain( 'column-shortcodes', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } /** * @return string */ private function get_url() { return plugin_dir_url( __FILE__ ); } /** * @return string */ public function get_version() { if ( null === $this->version ) { $this->version = $this->get_plugin_version( __FILE__ ); } return $this->version; } /** * @param string $file * * @since 3.0 */ private function get_plugin_version( $file ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; $plugin = get_plugin_data( $file, false, false ); return isset( $plugin['Version'] ) ? $plugin['Version'] : false; } /** * Prefix * * @since 0.6.3 */ private function get_prefix() { return apply_filters( 'cpsh_prefix', '' ); } /** * Register admin css * * @since 0.1 */ public function admin_styles() { if ( $this->has_permissions() && $this->is_edit_screen() ) { wp_enqueue_style( 'cpsh-admin', $this->get_url() . 'assets/css/admin.css', array(), $this->get_version(), 'all' ); if ( is_rtl() ) { wp_enqueue_style( 'cpsh-admin-rtl', $this->get_url() . 'assets/css/admin-rtl.css', array(), $this->get_version(), 'all' ); } } } /** * Register admin scripts for the editor * * @param array $plugins * * @since 0.1 */ public function admin_scripts( $plugins ) { if ( $this->has_permissions() && $this->is_edit_screen() ) { wp_enqueue_script( 'cpsh-admin', $this->get_url() . 'assets/js/admin.js', array( 'jquery' ), $this->get_version() ); wp_enqueue_script( 'jquery-cookie', $this->get_url() . 'assets/js/jquery.ck.js', array( 'jquery' ), $this->get_version() ); } return $plugins; } /** * Register admin scripts for the plugins page * * @since 1.0 */ public function admin_plugins_scripts() { if ( $this->is_plugins_screen() ) { wp_enqueue_script( 'cpsh-admin-plugins', $this->get_url() . 'assets/js/plugins.js', array( 'jquery' ), $this->get_version() ); } } /** * Register frontend styles * * @since 0.1 */ public function frontend_styles() { if ( apply_filters( 'cpsh_load_styles', true ) ) { if ( is_rtl() ) { wp_enqueue_style( 'cpsh-shortcodes-rtl', $this->get_url() . 'assets/css/shortcodes-rtl.css', array(), $this->get_version(), 'all' ); } else { wp_enqueue_style( 'cpsh-shortcodes', $this->get_url() . 'assets/css/shortcodes.css', array(), $this->get_version(), 'all' ); } } } /** * Add shortcodes * * @since 0.1 */ public function add_shortcodes() { foreach ( $this->get_shortcodes() as $shortcode ) { add_shortcode( $shortcode['name'], array( $this, 'columns' ) ); } } /** * Insert Markup * * @since 0.1 * * @param array $atts * @param string $content * @param string $name * * @return string Column HTML output */ public function columns( $atts, $content = null, $name = '' ) { $atts = shortcode_atts( array( "id" => '', "class" => '', "padding" => '', ), $atts ); $id = sanitize_text_field( $atts['id'] ); $class = sanitize_text_field( $atts['class'] ); $padding = sanitize_text_field( $atts['padding'] ); $id = ( $id <> '' ) ? " id='" . esc_attr( $id ) . "'" : ''; $class = ( $class <> '' ) ? esc_attr( ' ' . $class ) : ''; $content = $this->content_helper( $content ); // padding generator if ( $padding <> '' ) { $parts = explode( " ", $padding ); // check for '0' values. if true we will split padding attributes into top,right,bottom and left. if ( $parts && in_array( '0', $parts ) ) { $padding = ! empty( $parts[0] ) ? "padding-top:{$parts[0]};" : ''; $padding .= ! empty( $parts[1] ) ? "padding-right:{$parts[1]};" : ''; $padding .= ! empty( $parts[2] ) ? "padding-bottom:{$parts[2]};" : ''; $padding .= ! empty( $parts[3] ) ? "padding-left:{$parts[3]};" : ''; } else { $padding = "padding:{$padding};"; } // wraps the content in an extra div with padding applied $content = '<div style="' . esc_attr( $padding ) . '">' . $content . '</div>'; } // last class $pos = strpos( $name, '_last' ); if ( false !== $pos ) { $name = str_replace( '_last', ' last_column', $name ); } // remove prefix from class name if ( $this->get_prefix() ) { $name = str_replace( $this->get_prefix(), '', $name ); } $output = "<div{$id} class='content-column {$name}{$class}'>{$content}</div>"; if ( false !== $pos ) { $output .= "<div class='clear_column'></div>"; } return $output; } /** * Is edit screen * * @since 0.4 */ private function is_plugins_screen() { global $pagenow; return 'plugin-install.php' === $pagenow; } /** * Is edit screen * * @since 0.4 */ private function is_edit_screen() { global $pagenow; $allowed_screens = apply_filters( 'cpsh_allowed_screens', array( 'post-new.php', 'page-new.php', 'post.php', 'page.php', 'profile.php', 'user-edit.php', 'user-new.php' ) ); return in_array( $pagenow, $allowed_screens ); } /** * has permissions * * @since 0.4 */ private function has_permissions() { return current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' ); } /** * Add buttons to TinyMCE * * @since 0.1 */ public function add_editor_buttons() { if ( $this->has_permissions() && $this->is_edit_screen() ) { if ( apply_filters( 'add_shortcode_html_buttons', false ) ) { add_action( 'admin_head', array( $this, 'add_html_buttons' ) ); } add_action( 'media_buttons', array( $this, 'add_shortcode_button' ), 100 ); } } /** * Add shortcode button to TinyMCE * * @since 0.1 * * @param string $page * @param string $target */ public function add_shortcode_button( $page = null, $target = null ) { ?> <a href="#TB_inline?width=753&height=573&inlineId=cpsh-wrap" class="thickbox button" title="<?php _e( 'Select shortcode', 'column-shortcodes' ); ?>" data-page="<?php echo $page; ?>" data-target="<?php echo $target; ?>"> <img src="<?php echo $this->get_url() . "/assets/images/shortcode.png"; ?>" alt=""/> </a> <?php } /** * @since 1.0 */ private function display_shortcode_buttons() { foreach ( $this->get_shortcodes() as $button ) { $open_tag = str_replace( '\n', '', $button['options']['open_tag'] ); $close_tag = str_replace( '\n', '', $button['options']['close_tag'] ); ?> <a href='javascript:;' rel='<?php echo esc_attr( $open_tag . $close_tag ); ?>' data-tag='<?php echo esc_attr( $open_tag . $close_tag ); ?>' class='cp-<?php echo esc_attr( $button['class'] ); ?> columns insert-shortcode'> <?php echo esc_html( $button['options']['display_name'] ); ?> </a> <?php } } /** * TB window Popup * * @since 0.1 */ public function popup() { ?> <div id="cpsh-wrap" style="display:none"> <div id="cpsh"> <div id="cpsh-generator-shell"> <div id="cpsh-generator-header"> <div class="cpsh-shortcodes"> <h2 class="cpsh-title"><?php _e( "Column shortcodes", 'column-shortcodes' ); ?></h2> <?php $this->display_shortcode_buttons(); ?> </div> <?php if ( ! apply_filters( 'cpsh_hide_padding_settings', false ) ) : ?> <div class="cpsh-settings"> <h2 class="cpsh-title"><?php _e( "Column padding ( optional )", 'column-shortcodes' ); ?></h2> <p class="description"> <?php _e( "Use the input fields below to customize the padding of your column shortcode.", 'column-shortcodes' ); ?> <?php _e( "Enter padding first, then select your column shortcode.", 'column-shortcodes' ); ?> </p> <div id="preview-padding"> <div class="column-container"> <div class="column-inner"> </div> <div class="padding-fields"> <input id="padding-top" placeholder="0" value=""/> <input id="padding-right" placeholder="0" value=""/> <input id="padding-bottom" placeholder="0" value=""/> <input id="padding-left" placeholder="0" value=""/> </div> </div> <a class="padding-reset" href="javascript:;"><?php _e( "reset", 'column-shortcodes' ); ?></a> </div> </div><!--.cpsh-settings--> <?php endif; ?> </div><!--cpsh-generator-header--> <div id="cpsh-generator-sidebar"> <div class="sidebox" id="cpsh-sidebox-feedback"> <div id="feedback-choice"> <h3><?php _e( 'Are you happy with Columns Shortcodes?', 'column-shortcodes' ); ?></h3> <div class="inside"> <a href="#" class="yes"><?php _e( 'Yes' ); ?></a> <a href="#" class="no"><?php _e( 'No' ); ?></a> </div> </div> <div id="feedback-support"> <div class="inside"> <p> <?php _e( "What's wrong? Need help? Let us know: please open a support topic on WordPress.org!", 'column-shortcodes' ); ?> </p> <ul class="share"> <li> <a href="https://wordpress.org/support/plugin/column-shortcodes#new-post" target="_blank"> <div class="dashicons dashicons-wordpress"></div> <?php _e( 'Support Forums', 'column-shortcodes' ); ?> </a> </li> </ul> <div class="clear"></div> </div> </div> <div id="feedback-rate"> <div class="inside"> <p> <?php _e( "Woohoo! We're glad to hear that!", 'column-shortcodes' ); ?> </p> <p> <?php _e( 'We would really love it if you could show your appreciation by giving us a rating on WordPress.org or tweet about Column Shortcodes!', 'column-shortcodes' ); ?> </p> <ul class="share"> <li> <a href="http://wordpress.org/support/view/plugin-reviews/column-shortcodes#new-post" target="_blank"> <div class="dashicons dashicons-star-empty"></div> <?php _e( 'Rate', 'column-shortcodes' ); ?> </a> </li> <li> <a href="<?php echo esc_url( add_query_arg( array( 'hashtags' => 'columnshortcodes', 'text' => urlencode( __( "I'm using Column Shortcodes for WordPress!", 'column-shortcodes' ) ), 'url' => urlencode( 'https://wordpress.org/plugins/column-shortcodes' ) ), 'https://twitter.com/intent/tweet' ) ); ?>" target="_blank"> <div class="dashicons dashicons-twitter"></div> <?php _e( 'Tweet', 'column-shortcodes' ); ?> </a> </li> </ul> <div class="clear"></div> </div> </div> </div><!--cpsh-sidebox-feedback--> <?php if ( $this->show_banner() ) : ?> <div class="cs-acsidebox"> <div class="cs-acsidebox__wrapper"> <p class="cs-acsidebox__intro"> <?php printf( __( 'Be sure to check out other plugins by Codepress, such as %s. It adds custom columns to your posts, users, comments and media overview in your admin. Get more insight in your content now!', 'column-shortcodes' ), '<a target="_blank" href="https://wordpress.org/plugins/codepress-admin-columns/" class="cs-acsidebox__link">Admin Columns</a>' ); ?> </p> <a href="<?php echo esc_url( add_query_arg( array( 's' => 'Admin Columns', 'tab' => 'search', 'type' => 'term' ), admin_url( 'plugin-install.php' ) ) ); ?>#install_admin_columns" target="_blank" class="cs-acsidebox__button"> <img src="<?php echo $this->get_url() . "/assets/images/ac_vignet_grey.svg"; ?>" alt="" class="cs-acsidebox__button__logo"/> <?php _e( 'Download for Free', 'column-shortcodes' ); ?> </a> <div class="cs-acsidebox__stars"> <?php for ( $i = 1; $i <= 5; $i++ ) : ?> <span class="dashicons dashicons-star-filled"></span> <?php endfor; ?> <span class="cs-acsidebox__stars__count">(<?php echo $this->get_num_ratings(); ?>)</span> </div> <p class="cs-acsidebox__footer"> <?php printf( __( "%s Active Installs", 'column-shortcodes' ), '<em>' . $this->get_active_installs() . '+</em>' ); ?> </p> </div> </div><!--cpsh-sidebox-admin-columns--> <?php endif; ?> </div><!--cpsh-generator-sidebar--> </div><!--cpsh-generator-shell--> </div> </div> <?php } /** * @return bool True when banner is shown */ private function show_banner() { $show_banner = true; // Plugin is already installed if ( class_exists( 'CPAC' ) || class_exists( 'ACP_Full' ) ) { $show_banner = false; } return apply_filters( 'cpsh_show_banner', $show_banner ); } /** * @return false|stdClass Plugin info object */ private function get_plugin_info() { $data = get_transient( 'cpsh_plugin_admin_columns_info' ); if ( false === $data && ! get_transient( 'cpsh_plugin_timeout' ) ) { include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $info = plugins_api( 'plugin_information', array( 'slug' => 'codepress-admin-columns', 'fields' => array( 'rating' => true, 'ratings' => true, 'active_installs' => true, 'short_description' => false, 'sections' => false, 'requires' => false, 'downloaded' => false, 'last_updated' => false, 'added' => false, 'tags' => false, 'compatibility' => false, 'homepage' => false, 'donate_link' => false, 'versions' => false, ), ) ); if ( $info && ! is_wp_error( $info ) && isset( $info->name ) ) { set_transient( 'cpsh_plugin_admin_columns_info', $info, DAY_IN_SECONDS * 7 ); // 7 day cache $data = $info; } // Limit request in case API is not responding set_transient( 'cpsh_plugin_timeout', true, HOUR_IN_SECONDS * 4 ); // 4 hours } return $data; } /** * @return string Active install count */ private function get_active_installs() { $active_installs = 90000; // fallback if ( $data = $this->get_plugin_info() ) { $active_installs = $data->active_installs; } return number_format( $active_installs ); } /** * @return string Number of ratings */ private function get_num_ratings() { $active_installs = 730; // fallback if ( $data = $this->get_plugin_info() ) { $active_installs = $data->num_ratings; } return number_format( $active_installs ); } /** * get shortcodes * * @since 0.1 */ private function get_shortcodes() { $shortcodes = array(); $column_shortcodes = apply_filters( 'cpsh_column_shortcodes', array( 'full_width' => array( 'display_name' => __( 'full width', 'column-shortcodes' ) ), 'one_half' => array( 'display_name' => __( 'one half', 'column-shortcodes' ) ), 'one_third' => array( 'display_name' => __( 'one third', 'column-shortcodes' ) ), 'one_fourth' => array( 'display_name' => __( 'one fourth', 'column-shortcodes' ) ), 'two_third' => array( 'display_name' => __( 'two third', 'column-shortcodes' ) ), 'three_fourth' => array( 'display_name' => __( 'three fourth', 'column-shortcodes' ) ), 'one_fifth' => array( 'display_name' => __( 'one fifth', 'column-shortcodes' ) ), 'two_fifth' => array( 'display_name' => __( 'two fifth', 'column-shortcodes' ) ), 'three_fifth' => array( 'display_name' => __( 'three fifth', 'column-shortcodes' ) ), 'four_fifth' => array( 'display_name' => __( 'four fifth', 'column-shortcodes' ) ), 'one_sixth' => array( 'display_name' => __( 'one sixth', 'column-shortcodes' ) ), 'five_sixth' => array( 'display_name' => __( 'five sixth', 'column-shortcodes' ) ), ) ); foreach ( $column_shortcodes as $short => $options ) { // add prefix $shortcode = $this->get_prefix() . $short; $shortcodes[] = array( 'name' => $shortcode, 'class' => $short, 'options' => array( 'display_name' => $options['display_name'], 'open_tag' => '\n' . "[{$shortcode}]", 'close_tag' => "[/{$shortcode}]" . '\n', 'key' => '', ), ); if ( 'full_width' === $short ) { continue; } $shortcodes[] = array( 'name' => "{$shortcode}_last", 'class' => "{$short}_last", 'options' => array( 'display_name' => $options['display_name'] . ' (' . __( 'last', 'column-shortcodes' ) . ')', 'open_tag' => '\n' . "[{$shortcode}_last]", 'close_tag' => "[/{$shortcode}_last]" . '\n', 'key' => '', ), ); } return $shortcodes; } /** * Add buttons to TinyMCE HTML tab * * @since 0.1 */ public function add_html_buttons() { wp_print_scripts( 'quicktags' ); // output script $script_buttons = array(); foreach ( $this->get_shortcodes() as $shortcode ) { $options = $shortcode['options']; $script_buttons[] = "edButtons[edButtons.length] = new edButton('ed_{$shortcode['name']}' ,'{$shortcode['name']}' ,'{$options['open_tag']}' ,'{$options['close_tag']}' ,'{$options['key']}' ); \n"; } ?> <script type='text/javascript'> <?php echo implode( $script_buttons ); ?> </script> <?php } /** * Content Helper * * @since 0.1 * * @param string $content * @param bool $paragraph_tag Filter p-tags * @param bool $br_tag Filter br-tags * * @return string Shortcode */ private function content_helper( $content, $paragraph_tag = false, $br_tag = false ) { $content = preg_replace( '#^<\/p>|^<br \/>|<p>$#', '', $content ); if ( $br_tag ) { $content = preg_replace( '#<br \/>#', '', $content ); } if ( $paragraph_tag ) { $content = preg_replace( '#<p>|</p>#', '', $content ); } return do_shortcode( shortcode_unautop( trim( $content ) ) ); } } new Codepress_Column_Shortcodes();