_version = $version;
$this->_token = 'autoshortcoder';
$this->done = false;
// Load plugin environment variables
$this->file = $file;
$this->dir = dirname( $this->file );
$this->assets_dir = trailingslashit( $this->dir ) . 'assets';
$this->assets_url = esc_url( trailingslashit( plugins_url( '/assets/', $this->file ) ) );
$this->script_suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
register_activation_hook( $this->file, array( $this, 'install' ) );
// Load admin JS & CSS
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 10, 1 );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 10, 1 );
// Load API for generic admin functions
if ( is_admin() ) {
$this->admin = new autoshortcoder_Admin_API();
}
//add_action( 'init', array( $this, 'load_localisation' ), 0 );
add_filter( 'the_content', array( $this, 'add_shortcodes'));
} // End __construct ()
public function get_tagarray () {
$options = get_option('autoshortcode_autoshortcode_settings');
$options = explode("\n", str_replace("\r", "", $options));
$opt=array();
foreach($options as $optline) {
$optarray = explode("|", $optline);
$tag = trim($optarray[0]);
if(count($optarray) > 2) {
$title=$optarray[1];
$shortcode=$optarray[2];
} else {
$title=false;
$shortcode=$optarray[1];
}
if(!in_array($tag, $opt))
$opt[$tag] = array();
$opt[$tag][] = array('title' => $title, 'shortcode' => $shortcode);
}
//print_r($opt);
return $opt;
}
public function add_shortcodes ( $content ) {
if(!$this->done) {
$tags = wp_get_post_tags($GLOBALS['post']->ID, array('fields' => 'names'));
$opts = $this->get_tagarray();
foreach($opts as $tagname => $tagcontent)
{
if (in_array($tagname, $tags)) {
foreach($tagcontent as $addcode) {
$content.="
";
if($addcode['title']) {
$content.=''.$addcode['title'].'
';
}
$content.=do_shortcode($addcode['shortcode']);
$content.="
";
}
}
}
}
$this->done=true;
return $content;
}
/**
* Load admin CSS.
* @access public
* @since 1.0.0
* @return void
*/
public function admin_enqueue_styles ( $hook = '' ) {
wp_register_style( $this->_token . '-admin', esc_url( $this->assets_url ) . 'css/admin.css', array(), $this->_version );
wp_enqueue_style( $this->_token . '-admin' );
} // End admin_enqueue_styles ()
/**
* Load admin Javascript.
* @access public
* @since 1.0.0
* @return void
*/
public function admin_enqueue_scripts ( $hook = '' ) {
wp_register_script( $this->_token . '-admin', esc_url( $this->assets_url ) . 'js/admin' . $this->script_suffix . '.js', array( 'jquery' ), $this->_version );
wp_enqueue_script( $this->_token . '-admin' );
} // End admin_enqueue_scripts ()
/**
* Main autoshortcoder Instance
*
* Ensures only one instance of autoshortcoder is loaded or can be loaded.
*
* @since 1.0.0
* @static
* @see autoshortcoder()
* @return Main autoshortcoder instance
*/
public static function instance ( $file = '', $version = '1.0.0' ) {
if ( is_null( self::$_instance ) ) {
self::$_instance = new self( $file, $version );
}
return self::$_instance;
} // End instance ()
/**
* Cloning is forbidden.
*
* @since 1.0.0
*/
public function __clone () {
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->_version );
} // End __clone ()
/**
* Unserializing instances of this class is forbidden.
*
* @since 1.0.0
*/
public function __wakeup () {
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->_version );
} // End __wakeup ()
/**
* Installation. Runs on activation.
* @access public
* @since 1.0.0
* @return void
*/
public function install () {
$this->_log_version_number();
} // End install ()
/**
* Log the plugin version number.
* @access public
* @since 1.0.0
* @return void
*/
private function _log_version_number () {
update_option( $this->_token . '_version', $this->_version );
} // End _log_version_number ()
}