Guenni007

avia-special-characters-plugin

Sep 18th, 2020 (edited)
2,485
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /*
  3. Plugin Name: Avia Special Character Converter Plugin
  4. Plugin URI: www.kriesi.at
  5. Description: Replaces special characters that break layout or Enfold Advanced Layout Editor
  6. Version: 1.0.1
  7. Author: Guenter for www.kriesi.at
  8. Author URI: www.kriesi.at
  9. Text Domain: avia_special_characters
  10. @requires:  PHP 5.3   (anonymous functions)
  11. @requires:  WP 4.7
  12. */
  13.  
  14. /*  
  15.  * Copyright 2018
  16. */
  17.  
  18. if ( ! defined( 'ABSPATH' ) ) {   exit;  } // Exit if accessed directly
  19.  
  20.  
  21. if( ! class_exists( 'avia_special_characters' ) )
  22. {
  23.    
  24.     class avia_special_characters
  25.     {
  26.         /**
  27.          *
  28.          * @since 1.0.0
  29.          * @var array
  30.          */
  31.         protected $translate;
  32.  
  33.  
  34.         /**
  35.          *
  36.          * @since 1.0.0
  37.          */
  38.         public function __construct()
  39.         {
  40.             $this->translate = array(
  41.                 '#lt#'      => '<',
  42.                 '#le#'      => '≤',
  43.                 '#gt#'      => '>',
  44.                 '#ge#'      => '≥',
  45.                 '#amp#'     => '&',
  46.                 '#91#'      => '[',
  47.                 '#93#'      => ']',
  48.                 '#quot#'    => '"',
  49.                 '#34#'      => "'",
  50.                 '#br#'      => '<br/>',
  51.                 '#p#'       => "<&#65279;p&#65279;>",
  52.                 '#shy#'     => '&#173;',
  53.                 '#nbsp#'    => '&#160;',
  54.                 '#sbsp#'    => '&#8239;',
  55.                 '#nbhyp#'   => '&#8209;',
  56.                 '#1/2#'     => '½',
  57.                 '#1/3#'     => '⅓',
  58.                 '#1/4#'     => '¼',
  59.                 '#1/5#'     => '⅕',
  60.                 '#2/3#'     => '⅔',
  61.                 '#3/4#'     => '¾',
  62.             );
  63.  
  64.             add_filter( 'the_content', array( $this, 'handler_the_content' ), 9999999, 1 );
  65.             add_filter( 'avf_text_to_preview', array( $this, 'handler_the_content' ), 9999999, 1 );
  66.         }
  67.  
  68.         /**
  69.          *
  70.          * @since 1.0.0
  71.          */
  72.         public function __destruct()
  73.         {
  74.             unset( $this->translate );
  75.         }
  76.  
  77.         /**
  78.          * Replace the special characters
  79.          *
  80.          * @since 1.0.0
  81.          * @param string $content
  82.          * @return string
  83.          */
  84.         public function handler_the_content( $content )
  85.         {
  86.             /**
  87.              *
  88.              * @since 1.0.0
  89.              * Add additional special characters to translate
  90.              */
  91.             $this->translate = apply_filters( 'avia_special_characters_translations', $this->translate );
  92.  
  93.             $search = array_keys( $this->translate );
  94.             $replace = array_values( $this->translate );
  95.  
  96.             $new_content = str_replace( $search, $replace, $content );
  97.  
  98.             return $new_content;
  99.         }
  100.  
  101.     }
  102.  
  103.     $avia_special_characters = new avia_special_characters();
  104.  
  105. }   //  class exists
RAW Paste Data