HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/test.kaunokolegija.lt/kk_wp_content/updraft/plugins-old/shortcode-tinyMCE/index.php
<?php
/*
Plugin Name: Shortcodes in editor
Author: ito
Author URI: http://www.ito.lt
Version: 1.0
*/

class Shortcode_Tinymce
{
	public function __construct()
	{
		add_action('admin_init', array($this, 'shortcode_button'));
		add_action('admin_footer', array($this, 'get_shortcodes'));
	}

	/**
	 * Create a shortcode button for tinymce
	 *
	 * @return [type] [description]
	 */
	public function shortcode_button()
	{
		if( current_user_can('edit_posts') &&  current_user_can('edit_pages') )
		{
			add_filter( 'mce_external_plugins', array($this, 'add_buttons' ));
			add_filter( 'mce_buttons', array($this, 'register_buttons' ));
		}
	}

	/**
	 * Add new Javascript to the plugin scrippt array
	 *
	 * @param  Array $plugin_array - Array of scripts
	 *
	 * @return Array
	 */
	public function add_buttons( $plugin_array )
	{
		$plugin_array['pushortcodes'] = plugin_dir_url( __FILE__ ) . 'js/shortcode-tinymce-button.js';

		return $plugin_array;
	}

	/**
	 * Add new button to tinymce
	 *
	 * @param  Array $buttons - Array of buttons
	 *
	 * @return Array
	 */
	public function register_buttons( $buttons )
	{
		array_push( $buttons, 'separator', 'pushortcodes' );
		return $buttons;
	}

	/**
	 * Add shortcode JS to the page
	 *
	 * @return HTML
	 */
	public function get_shortcodes() {
		global $shortcode_tags;

		echo '<script type="text/javascript">

        var shortcodes_button = [];';

		$count = 0;

		foreach($shortcode_tags as $tag => $code)
		{

            switch($tag) {
                case "vc_pagrindiniai_igudžiai" :
                break;

                case "vc_bazine_informacija":
                break;

                case "vc_egzaminu_lentele":
                break;

                case "vc_mygtukas":
                break;

                case "vc_semestru_lentele":
                break;

                case "vc_teksto_dezute":
                break;

                default:
                echo "shortcodes_button[{$count}] = '{$tag}';";

            }

			$count++;
		}


		echo ' 
            shortcodes_button = shortcodes_button.filter(function(n){ return n != undefined }); 
            var sort_shortcode = shortcodes_button.sort(); </script>';
	}
}

new Shortcode_Tinymce();