403Webshell
Server IP : 104.21.93.192  /  Your IP : 216.73.216.73
Web Server : LiteSpeed
System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
User : redwjova ( 1790)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : OFF |  Pkexec : OFF
Directory :  /home/redwjova/fyntric.com/wp-content/themes/smart-mag/lib/vendor/plugins/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/redwjova/fyntric.com/wp-content/themes/smart-mag/lib/vendor/plugins/bunyad-shortcodes.zip
PK03Y���g��bunyad-shortcodes/admin.php<?php

class Bunyad_Admin_ShortCodes
{
	public function __construct()
	{
		if (!current_user_can('edit_pages') && !current_user_can('edit_posts')) {
			return;
		}
		
		add_filter('mce_buttons', array($this, 'tinymce_button'));
		add_filter('mce_external_plugins', array($this, 'tinymce_plugin'));
		
		
		// add dynamic js handlers (via admin-ajax.php)
		require_once dirname(__FILE__) . '/admin/tinymce/shortcode-popup.php';
		require_once dirname(__FILE__) . '/admin/tinymce/editor-plugin.php';
		
		add_action('wp_ajax_bunyad_shortcode_popup', 'bunyad_shortcode_popup');
		add_action('wp_ajax_bunyad_shortcode_editor_plugin', 'bunyad_shortcode_editor_plugin');
	}
	
	/**
	 * Callback: Add shortcode list button to tinymce
	 * 
	 * @param array $buttons
	 */
	public function tinymce_button($buttons)
	{
		array_push($buttons, 'separator', 'bunyad_shortcodes');
		return $buttons;
	}
	
	/**
	 * Callback: Register tinyMCE custom plugin
	 * 
	 * @param array $plugins
	 */
	public function tinymce_plugin($plugins)
	{
		//$plugins['bunyad_shortcodes'] = plugin_dir_url(__FILE__). 'admin/tinymce/editor-plugin.js.php';
		$plugins['bunyad_shortcodes'] = admin_url('admin-ajax.php') . '?action=bunyad_shortcode_editor_plugin';
		return $plugins;
	}
}PK03Y��ˆ}M}M'bunyad-shortcodes/bunyad-shortcodes.php<?php
/*
Plugin Name: Bunyad Shortcodes (Legacy)
Plugin URI: http://theme-sphere.com
Description: Legacy plugin for old compatiblity only. Adds shortcodes to classic editor. 
Version: 1.1.0
Author: ThemeSphere
Author URI: http://theme-sphere.com
License: GPL2
*/

$bunyad_sc = Bunyad_ShortCodes::getInstance();
add_action('after_setup_theme', array($bunyad_sc, 'setup'));

/**
 * Shortcode handlers
 */
class Bunyad_ShortCodes
{
	protected static $instance;
	protected $_conf = [
		'font_icons'    => true,
		'social_font'   => true,
		'button_colors' => ['default', 'red', 'orange', 'yellow', 'blue', 'black'],
	];

	protected $_open = array();
	
	public $counter = 0; // number of shortcodes processed - not implemented
	public $temp = array();
	public $shortcodes = array();
	public $blocks = array(); // shortcodes to be handled with a file
	

	public function setup()
	{
		// bunyad framework available? optional but good extras
		if (class_exists('Bunyad')) {

			if (!Bunyad::options()->legacy_mode) {
				return;
			}
		}
		else {
			return;
			
			// This plugin has been deprecated. No more keep it enabled without SmartMag.
			// // bunyad framework themes implement it in main css for both speed and maintainability
			// wp_enqueue_style('bunyad-shortcodes', plugin_dir_url(__FILE__) . 'css/shortcodes.css');
			
			// // include framework dependencies
			// require_once plugin_dir_path(__FILE__) . '/lib/bunyad.php';
		}
				
		$this->add_blocks(apply_filters('bunyad_shortcode_default_blocks', []));
		
		/*
		 * Admin area?
		 */
		if (is_admin()) { 
			require_once plugin_dir_path(__FILE__)  . 'admin.php';
			$sc = new Bunyad_Admin_ShortCodes;	
		}
		
		// add cleanup
		add_filter('the_content', array($this, 'cleanup'));
		add_filter('shortcode_cleanup', array($this, 'cleanup'));
		
		// init / register shortcodes
		add_action('init', array($this, 'register_all'), 50);
		
		// i18n
		load_plugin_textdomain('bunyad-shortcodes', false, basename(dirname(__FILE__)) . '/languages');
	}
	
	public function __construct()
	{
		// TODO: implement attributes
		$this->shortcodes = array(
		
			'Typography' => array(
				'pullquote'   => array('label' => 'Pull Quote', 'callback' => 'pull_quote'),
				'dropcap' => array('label' => 'Dropcap', 'callback' => 'dropcap'),
			),

			'default' => array(
				'tabs'  => array('label' => 'Tabs', 'callback' => 'tabs', 'dialog' => 'tabs', 'child' => 'tab'),
				   'tab'   => array('callback' => 'tab'),
				
				'columns' => array('label' => 'Columns', 'callback' => 'columns', 'dialog' => 'columns', 'child' => 'column'),
				   'column'  => array('callback' => 'column'),
				
				'button'  => array('label' => 'Button', 'callback' => 'button', 'dialog' => 'button'),
			
				'accordions' => array('label' => 'Accordions', 'callback' => 'accordions', 'dialog' => 'accordions', 'child' => 'accordion'),
					'accordion'  => array('callback' => 'accordion_pane'),
			
				'toggle'  => array('label' => 'Toggle Box', 'callback' => 'toggle', 'dialog' => 'toggles'),
			
				// custom lists
				'list'    => array('label' => 'Custom List', 'callback' => 'list', 'dialog' => 'lists', 'child' => 'li'),
					'li' => array('callback' => 'list_item'),
			
				// non-printables / no GUI dialog boxes
				'social' => array('callback' => 'social_icons', 'child' => 'social_icon'),
				'social_icon' => array('callback' => 'social_icon'),
				
				'separator' => array('callback' => 'separator'),
				'feedburner' => array('callback' => 'feedburner_form'),
			)
		);
	}

	/**
	 * Register shortcodes with WordPress Shortcodes API
	 */
	public function register_all() 
	{
		// add shortcodes
		$this->shortcodes = apply_filters('bunyad_shortcodes_list', $this->shortcodes); 
		foreach ($this->shortcodes as $value) 
		{
			foreach ($value as $key => $shortcode) {
				add_shortcode($key, array($this, 'sc_' . $shortcode['callback']));
			}
		}
		
		// preserve dropcap
		add_filter('bunyad_excerpt_pre_strip_shortcodes', array($this, 'preserve_dropcap'));
	}
	
	public function get_all() 
	{
		return $this->shortcodes;
	}
	
	public function get_one($id)
	{
		// add shortcodes
		foreach ($this->shortcodes as $value) 
		{
			foreach ($value as $key => $shortcode) {
				if ($key === $id) {
					return $shortcode;
				}
			}
		}
	}

	/**
	 * Clean up shortcodes wrapped in incorrect tags
	 * 
	 * @param string $content
	 */
	public function cleanup($content)
	{
		// remove p wrapping around shortcodes and remove any br right after a shortcode
		$content = preg_replace("#(<p>)?\[([a-z_]+)(\s[^\]]+)?\]\s*(</p>|<br />)?#","[\\2\\3]",$content);
		$content = preg_replace("#(<p>)?\[\/([a-z_]+)\](<\/p>|<br \/>)?#","[/\\2]", $content);
		
		return $content;
	}
	
	/**
	 * Add a special kind of shortcode that's handled by an included php file
	 * 
	 * Note: Use this only for including big chunks of HTML using shortcode system
	 * 
	 * @param array $shortcodes
	 */
	public function add_blocks($shortcodes)
	{		
		$this->blocks = array_merge($this->blocks, $shortcodes);
		
		foreach ($shortcodes as $tag => $shortcode) {
			add_shortcode($tag, array($this, 'sc_block_' . $tag));
		}
		
		return $this;
	}
	
	/**
	 * Magic handler for blocks
	 */
	public function __call($name, $args = array())
	{		
		if (!stristr($name, 'sc_block_')) {
			return false;
		}
		
		$tag   = str_replace('sc_block_', '', $name);
		$block = $this->blocks[$tag];
		
		// get attributes and content from the args array
		$atts    = $args[0]; // intentionally supporting non-listed atts
		$content = $args[1];
		
		// extract attributes
		if (isset($block['attribs']) && is_array($block['attribs'])) {
			$atts = shortcode_atts($block['attribs'], $atts);
		}

		extract($atts, EXTR_SKIP);
		
		/*
		 * String replacement
		 */
		if (isset($block['template'])) {
			
			$atts['content'] = $content;
			
			foreach ($atts as $key => $val) {
				$block['template'] = str_replace('%' . $key . '%', $val, $block['template']);
			}
			
			return do_shortcode($block['template']);
		}
		
		
		/*
		 * File based
		 */
		
		// include block file from within plugin if no path is specified
		if (!isset($block['render']) OR !strstr($block['render'], '/')) {
			$block_file = plugin_dir_path(__FILE__) . 'blocks/' . sanitize_file_name(str_replace('_', '-', $block['render'])) . '.php';	
		} 
		else {
			$block_file = $block['render'];
		}
		
		// no file
		if (!is_array($block) OR !file_exists($block_file)) {
			return false;
		}
		
		$atts['block_file'] = $block_file;
		
		// save the current block in registry
		if (class_exists('Bunyad_Registry')) {
			Bunyad::registry()
				->set('block', $block)
				->set('block_atts', $atts);
		}
		
		// get file content
		ob_start();
		
		include apply_filters('bunyad_block_file', $block_file, $block);
		
		$block_content = ob_get_clean();
		
		return do_shortcode($block_content);
	}
	

	/**
	 * Shortcode: Pull Quote
	 */
	public function sc_pull_quote($atts, $content = null) {
		extract(shortcode_atts(array('style' => 1), $atts), EXTR_SKIP);

		return '<aside class="sc-pullquote alignright">' . do_shortcode($content) . '</aside>';
	}
	
	/**
	 * Shortcode: Drop Cap
	 */
	public function sc_dropcap($atts, $content = null) {
		extract(shortcode_atts(array('style' => 1), $atts), EXTR_SKIP);

		$class = 'drop-caps';
		
		if ($style === 'square') {
			$class .= ' square';
		}
		
		return '<span class="'. $class .'">' . do_shortcode($content) . '</span>';
	}
	
	/**
	 * Filter callback: Preserve dropcaps in excerpts
	 */
	public function preserve_dropcap($content) 
	{
		return preg_replace('#(?:\[/?)dropcap[^\]]*/?\]#is', '', $content); 
	}
	
	/**
	 * Shortcode: Separator
	 */
	public function sc_separator($atts, $content = null) {
		extract(shortcode_atts(array('class' => '', 'type' => 'line'), $atts), EXTR_SKIP);
		
		$classes = array('separator');

		switch ($type) {
			case 'half-line':
				$classes[] = 'half';
				break;
				
			case 'half-space':
				$classes = array_merge($classes, array('half', 'no-line'));
				break;
			
			case 'space':
				$classes[] = 'no-line';
				break;
				
			default:
				break;
		}
		
		$class .= implode(' ', $classes);		
		
		return '<hr class="'. esc_attr($class) .'" />';
	}
	
	
	/**
	 * Shortcode: List
	 */
	public function sc_list($atts, $content = null)
	{
		extract(shortcode_atts(array('style' => '', 'ordered' => false, 'type' => ''), $atts), EXTR_SKIP);
		
		$class = (!empty($style) ? ' sc-list-' . $style : '');
		
		if ($this->get_config('font_icons') && empty($type)) {
			$class .= ' fa-ul';
		}
		
		$this->_open['list_style'] = $style;

		// process shortcodes
		$content = do_shortcode($content);
		$content = preg_replace('#^<\/p>|^<br \/>|<div>|<\/div>|<p>$#', '', $content);
		
		// no list?
		if (!preg_match('#<(ul|ol)[^<]*>#i', $content)) {
			
			// ordered?
			$tag = ($ordered ? 'ol' : 'ul');
			
			$content = "<{$tag} class='". esc_attr($type) ."'>"  . $content . "</{$tag}>";
		}
		
		return '<div class="sc-list'. esc_attr($class) .'">'. $content .'</div>';
	}
	
	/**
	 * Shortcode Child: List 
	 */
	public function sc_list_item($atts, $content = null)
	{
		extract(shortcode_atts(array('style' => ''), $atts), EXTR_SKIP);
		
		// inherit style from ul
		if (!$style && $this->_open['list_style']) {
			$style = $this->_open['list_style'];
		}
		
		// use an icon if style doesn't contain type - which would denote a special case
		$icon = '';
		if ($this->get_config('font_icons') && !empty($style)) {
			$icon = '<i class="fa fa-'. esc_attr($style).'"></i>';
		}
		
		return '<li>' . $icon . do_shortcode($content) .'</li>';	
	}
	
	/**
	 * Shortcode: Social Icons
	 */
	public function sc_social_icons($atts, $content = null)
	{
		extract(shortcode_atts(array('align' => '', 'type' => '', 'backgrounds' => ''), $atts), EXTR_SKIP);
	
		
		// add style such as align
		$style = '';
		if (in_array($align, array('left', 'none', 'right'))) {
			$style = ' style="float: ' . esc_attr($align) . '"';
		}
		
		// has type? add as class
		$class = '';
		if ($type) {
			$class = ' ' . $type;
		}
		
		// enable preset background colors?
		if ($backgrounds) {
			$class .= ' box-bg';
		}
		
		return '<ul class="social-icons cf'. esc_attr($class) .'"'. $style  .'>'. do_shortcode($content) .'</ul>';
	}
	
	/**
	 * Shortcode: Social Icon
	 */
	public function sc_social_icon($atts, $content = null)
	{
		extract(
			shortcode_atts(array('link' => '', 'title' => '', 'type' => '', 'bg' => '', 'color' => '', 'size' => ''), $atts), 
			EXTR_SKIP
		);
		
		// invalid type?
		if (!$type) {
			return '';
		}
		
		// using fontawesome?
		if ($this->get_config('social_font')) 
		{
			// custom background?
			$style = array();
			if ($bg) {
				$style[] = 'background-color: ' . esc_attr($bg);
			}
			
			// color?
			if ($color) {
				$style[] = 'color: '. esc_attr($color);
			}
			
			// add inline style
			$style = (count($style) ? ' style="' . implode('; ', $style) .'"' : '');
			
			return '<li><a href="'. esc_attr($link) .'" class="icon fa fa-'. esc_attr($type) .'" title="' . esc_attr($title) .'"'. $style . '>' 
				 . '<span class="visuallyhidden">' . esc_html($title) . '</span></a></li>';
		}

		// using normal image
		return '<li><a href="'. esc_attr($link) .'" class="ir icon '. esc_attr($type) .'" title="' . esc_attr($title) .'">' . esc_html($title) . '</a></li>'; 
	}
	
	/**
	 * Shortcode: Box
	 */
	public function sc_box($atts, $content = null)
	{
		extract(shortcode_atts(array(
			'style'  => 'info',
			'color'  => '',
			'border' => '',
		), $atts), EXTR_SKIP);
		
		$css = array();
		$extra_attribs = '';
		
		if ($color) {
			$css[] = 'background: ' . esc_attr($color);
		}
		
		if ($border) {
			$css[] = 'border-color: ' . esc_attr($border);
		}
		
		// add css
		if ($css) {
			$extra_attribs = ' style="' . implode(';', $css) . '"';
		}
		
		return '<div class="sc-box sc-box-' . esc_attr($style) .'"'. $extra_attribs .'>'. wpautop($content) .'</div>';
	}
	
	/**
	 * Shortcode: Accordion
	 */
	public function sc_accordions($atts, $content = null)
	{
		$this->temp['accordion_panes'] = array();
		do_shortcode($content);
		
		$output = '<dl class="sc-accordions">';
		
		// get our panes
		$count = 0;
		foreach ($this->temp['accordion_panes'] as $pane) {
			$count++;

			$active = ($pane['load'] == 'show' ? ' active' : '');
			
			$output .= '<dt class="sc-accordion-title' . $active . '"><a href="#">'. $pane['title'] .'</a></dt>'
					.  '<dd class="sc-accordion-pane' . $active . '">' . $pane['content'] . "</dd>\n";  
		}

		unset($this->temp['accordion_panes']);
		
		return $output . '</dl>';
	}
	
	/**
	 * Helper: Accordion
	 */
	public function sc_accordion_pane($atts, $content = null)
	{
		extract(shortcode_atts(array('title' => '', 'load' => 'hide'), $atts), EXTR_SKIP);
		$this->temp['accordion_panes'][] = array('title' => $title, 'load' => $load, 'content' => do_shortcode($content));
	}
	
	/**
	 * Shortcode: Toggle
	 */
	public function sc_toggle($atts, $content = null)
	{
		extract(shortcode_atts(array('title' => '', 'load' => 'hide'), $atts), EXTR_SKIP);
		
		 $active = ($load == 'show' ? ' active' : '');
		
		return '<div class="sc-toggle"><div class="sc-toggle-title' . $active . '"><a href="#">' . $title . '</a></div>'
			.  '<div class="sc-toggle-content' . $active . '">' . do_shortcode($content) . "</div></div>\n";
	}
	
	/**
	 * Shortcode: Button
	 */
	public function sc_button($atts, $content = null)
	{
		extract(shortcode_atts(array(
			'color' => 'default', // for default hover styling
			'link' => '#',
			'border' => '',
			'text_color' => '',
			'size' => '',
			'target' => ''
		), $atts));
		
		// deafult classes
		$classes = array('sc-button');
		
		// get supported colors by this theme
		$styled_colors = $this->get_config('button_colors');

		// custom color? - not defined in theme supported colors?
		$extra_attribs = '';
		if (!in_array($color, $styled_colors)) {
			$css[] = 'background: ' . esc_attr($color);
			
			if ($border) {
				$css[] = 'border-color: ' . esc_attr($border);
			}
			
			if ($text_color) {
				$css[] = 'color: ' . esc_attr($text_color);
			}

			$extra_attribs = ' style="' . implode(';', $css) . '"';
		}
		else {
			$classes[] = 'sc-button-' . $color;
		}
		
		// size?
		if ($size) {
			$classes[] = 'sc-button-' . $size;
		}
		
		// new window?
		if ($target == 'new') {
			$extra_attribs .= ' target="_blank"';
		}
		
		// don't run inner shortcodes here
		return '<a href="' . esc_attr($link) . '" class="' . esc_attr(implode(' ', $classes)) . '"' . $extra_attribs .'><span>' . shortcode_unautop($content) . '</span></a>';
	}
	
	/**
	 * Shortcode: Columns
	 */
	public function sc_columns($atts, $content = null)
	{
	
		extract(shortcode_atts(array('class' => ''), $atts));
		
		$classes = $this->get_config('row_classes', array('row', 'cf'));
		
		if ($class) {
			$classes = array_merge($classes, explode(' ', $class));
		}
		
		$output  = '<div class="'. implode(' ', $classes) .'">';
		
		$this->temp['columns'] = array();

		// parse inner shortcodes 
		do_shortcode($content);
		
		// strip <br /> tags somehow
		
		foreach ($this->temp['columns'] as $column) {
			$output .= $column;
		}
		
		unset($this->temp['columns']);
		
		return $output .'</div>';
	}
	
	/**
	 * Helper: Column
	 */
	public function sc_column($atts, $content = null)
	{
		extract(shortcode_atts(array('size' => '1/1', 'class' => '', 'text_align' => ''), $atts), EXTR_SKIP);
		
		$classes = array('column');
		
		if ($class) {
			$classes = array_merge($classes, explode(' ', $class));
		}
		
		// check n/n ratio
		if (stristr($size, '/')) 
		{
			$nth   = explode('/', $size);
			$ratio = $nth[0] / $nth[1];
			
			unset($size);
			
			if ($ratio == 0.5) {
				$size = 'half';
			}
			else {
				$size = str_replace(array(1, 2, 3, 4, 5), array('one', 'two', 'three', 'four', 'five'), $nth[0]) .'-'
					  . str_replace(array(3, 4, 5), array('third', 'fourth', 'fifth'), $nth[1]);
			}
		}

		// add to classes
		array_push($classes, $size);
		
		// add style such as text-align
		$style = '';
		if (in_array($text_align, array('left', 'center', 'right'))) {
			//$style = ' style="text-align: ' . esc_attr($text_align) . '"';
			array_push($classes, esc_attr(strip_tags($text_align)));
		}
		
		// strip off 
		//$content = preg_replace('#(^<br />|<br />$)#', '', $content);
		$this->temp['columns'][] = $column = '<div class="'. implode(' ', $classes) .'"'. $style . '>' . do_shortcode($content) . '</div>'; 

		return $column;
	}
	
	/**
	 * Shortcode: Tabs
	 */
	public function sc_tabs($atts, $content = null)
	{
		extract(shortcode_atts(array('type' => ''), $atts));

		$this->temp['tab_count'] = 0;

		// nesting - parser will store tabs inside in memory - $this->temp
		do_shortcode($content);

		if (is_array($this->temp['tabs'])) 
		{
			$count = 0;
			foreach ($this->temp['tabs'] as $tab) 
			{
				$count++;
				
				$active = ($count == 1 ? ' class="active"' : '');
				
				$tabs[]  = '<li'. $active .'><a href="#" data-id="'. $count .'">' . $tab['title'] . '</a></li>';
				$panes[] = '<li id="sc-pane-'. $count .'"'. $active .'>'. $tab['content'] . '</li>';
			}
			
			// vertical tabs?
			$class = ($type == 'vertical' ? ' vertical' : '');
			
			$return = '<div class="sc-tabs-wrap'. $class .'"><ul class="sc-tabs">' . implode('', $tabs) . '</ul><ul class="sc-tabs-panes">' . implode("\n", $panes) . '</ul></div>';
		}

		unset($this->temp['tabs'], $this->temp['tab_count']);

		return $return;
	}
	
	/**
	 * Helper: Tab - part of tabs
	 */
	public function sc_tab($atts, $content = null)
	{
		extract(shortcode_atts(array('title' => 'Tab %d'), $atts), EXTR_SKIP);
		
		$this->temp['tabs'][$this->temp['tab_count']] = array('title' => sprintf($title, $this->temp['tab_count']), 'content' => do_shortcode($content));
		$this->temp['tab_count']++;
	}
	
	/**
	 * Shortcode: Subscription Form
	 */
	public function sc_feedburner_form($atts, $content = null)
	{
		extract(shortcode_atts(array('heading' => '', 'label' => '', 'button_text' => '', 'user' => ''), $atts), EXTR_SKIP);
		
		return '
		<div class="feedburner">
			<p class="heading">'. esc_html($heading) .'</p>
			<form method="post" action="//feedburner.google.com/fb/a/mailverify">
			
				<input type="hidden" value="'. esc_attr($user) .'" name="uri" />
				<input type="hidden" name="loc" value="en_US" />
			
				<label for="feedburner-email">' . esc_html($label) .'</label>
				<input type="text" id="feedburner-email" name="email" class="feedburner-email" placeholder="'. esc_attr($label) .'" />
				
				<input class="feedburner-subscribe" type="submit" name="submit" value="'. esc_attr($button_text) .'" />
				
			</form>
		</div>
		';
	}
	
	/**
	 * Add suffix to the CSS selector
	 * 
	 * @param  $selector
	 */
	public function css_suffix($selector) {
		return $selector . '-' . $this->counter;
	}
	
	/**
	 * Set configuration relating to shortcodes
	 * 
	 * @param string|array $key
	 * @param mixed $value
	 */
	public function set_config($key, $value = null) 
	{
		if (is_array($key)) {
			$this->_conf = array_merge($this->_conf, $key);
		}
		else {
			$this->_conf[$key] = $value;
		}
		
		return $this;
	}
	
	/**
	 * Get Configuration
	 * 
	 * @param string $key 
	 * @param mixed $default  default value to return
	 */
	public function get_config($key, $default = null)
	{
		if (isset($this->_conf[$key])) {
			return $this->_conf[$key];
		}
		
		return $default;
	}
	
	/**
	 * Singleton instance
	 */
	public static function getInstance() 
	{
		if (!isset(self::$instance)) {
			self::$instance = new self;
		}
		
		return self::$instance;
	}
	
	/**
	 * Override? Convert this class to a proxy
	 * 
	 * @param  $object   an object to set as the shortcode object
	 * @todo   Switch to Bunyad_Registry for dependencies
	 */
	public static function set_proxy($object)
	{
		self::$instance = $object;
	}
}PK03Yne��T"T"1bunyad-shortcodes/admin/tinymce/editor-plugin.php<?php 

//require_once('../../../../../wp-load.php');

// include admin features for plugin compatibility
//require_once('../../../../../wp-admin/includes/admin.php');

//do_action('admin_init');


function bunyad_shortcode_editor_plugin() 
{
	global $tinymce_version;
	
	// check auth
	if (!is_user_logged_in() OR !current_user_can('edit_posts')) {
		die('You do not have the right type of authorization. You must be logged in and be able to edit pages and posts.');
	}
	
	// javascript will be output
	header('Content-type: application/x-javascript');
	
	/*
	 * Create shortcode generator menu javascript calls
	 */
	$shortcodes = Bunyad_ShortCodes::getInstance()->get_all();
	$shortcode_menu = '';
	foreach ($shortcodes as $key => $value)
	{
		$output = ''; 
		$data = array();
		
		foreach ($value as $id => $shortcode) {
			
			// defaults
			$shortcode = array_merge(array('label' => null, 'dialog' => false, 'code' => null), $shortcode);
			
			if (!$shortcode['label']) {
				continue;
			}
			
			$dialog  = $shortcode['dialog'] ? true : false;
			$options = array('title' => $shortcode['label'], 'id' => $id, 'dialog' => $dialog);

			// no dialog? has a predefined code to insert by default?
			if (!$dialog && $shortcode['code']) {
				$options['insert_code'] = $shortcode['code'];
			}
		
			// add top-level to output; collect sub-menu items
			if ($key == 'default') {
				$output .= "add_dialog(list, ". json_encode($options) .");\n";
			}
			else {
				$data[] = $options;
			}
		}
		
		// top-level
		if ($key == 'default') {
			$shortcode_menu .= $output;
		}
		else { // sub-menu
			
			$shortcode_menu .= 'add_dialog(list, {title: "' . esc_attr($key) .'"}, ' . json_encode($data) . ");\n";
		}
	}
	
?>

(function() {
	//******* Load plugin specific language pack
	//tinymce.PluginManager.requireLangPack('example')
	
	<?php 
		if ($tinymce_version[0] >= 4): 

		/*
		 * Used for WordPress 3.9 and TinyMCE >= 4
		 */
	?>

		tinymce.PluginManager.add('bunyad_shortcodes', function(editor, url) {
	
				var list = [];
				
				var add_dialog = function(list, item, sub) {
				
					if (sub && sub.length > 0) {
											
						var sub_list = [];
						
						for (i in sub) {
							add_dialog(sub_list, sub[i]);
						}
						
						list[list.length] = {text: item.title, menu: sub_list};
						
						return;
					}
					
					list[list.length] = {text: item.title, onclick: function() { // onclick
						
						// TODO: add cache
						if (item.dialog === true) {
							//tb_show('<?php _e('Shortcode: ', 'bunyad-shortcodes')?>' + item.title, '<?php echo plugin_dir_url(__FILE__) . 'shortcode-popup.php?shortcode='; ?>' + item.id);
							tb_show('<?php _e('Shortcode: ', 'bunyad-shortcodes')?>' + item.title, '<?php echo admin_url('admin-ajax.php') . '?action=bunyad_shortcode_popup&shortcode='; ?>' + item.id);
							
							jQuery('#TB_ajaxContent').css({width: 'auto', height: '90%'});
							
							var counter = 0,
								set_height = function() { 
							
								var height = jQuery('#TB_window').height();
								counter++;
								
								if (counter > 20) {
									return;
								}
								
								if (height < 100) {
									window.setTimeout(set_height, 500);
								}
								
								jQuery('#TB_ajaxContent').css('height', jQuery('#TB_window').height() - 45 + 'px');
							};
							
							set_height();
							
						}
						else { // just insert
						
							var shortcode, selected, 
								ed = tinyMCE.activeEditor;
							
							selected = ed.selection.getContent();
							
							if (!item.insert_code) {
								shortcode = '[' + item.id + ']%selected%[/' + item.id + ']'; 
							}
	
							if (jQuery.trim(selected) === '') {
								selected = '<?php esc_attr_e('INSERT HERE', 'bunyad-shortcodes'); ?>'; 
							}
	
							shortcode = shortcode.replace('%selected%', selected);
							ed.execCommand('mceReplaceContent', false, shortcode);
						}						
					}};
				};
				
				<?php echo $shortcode_menu; ?>
	
				editor.addButton('bunyad_shortcodes', {
					type: 'menubutton',
					text: '<?php esc_attr_e('Shortcodes', 'bunyad-shortcodes'); ?>', 
					icon: false,
					menu: list
				});
		});
	
	<?php 
		else:
	/*
	 * Older than WordPress 3.8 Below - TinyMCE 3.x compat
	 */
	?>

	tinymce.create('tinymce.plugins.bunyad_shortcodes', {
		/**
		 * Initializes the plugin, this will be executed after the plugin has been created.
		 * This call is done before the editor instance has finished it's initialization so use the onInit event
		 * of the editor instance to intercept that event.
		 *
		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
		 * @param {string} url Absolute URL to where the plugin is located.
		 */
		init : function(ed, url) {
		
			// fix some styling issues and add correct wording
			ed.onPostRender.add(function(ed, cm) {
				var ele = jQuery('.mceAction .mce_bunyad_shortcodesList');
				ele.html('<?php _e('Shortcodes', 'bunyad-shortcodes'); ?>');
				
				ele.removeClass('mceAction').css({width: 'auto'});
				ele.parent().css({width: 'auto', 'line-height': '1.7em', 'padding': '1px 5px'});
			});			
		},

		/**
		 * Creates control instances based in the incomming name. This method is normally not
		 * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
		 * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
		 * method can be used to create those.
		 *
		 * @param {String} n Name of the control to create.
		 * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
		 * @return {tinymce.ui.Control} New control instance or null if no control was created.
		 */
		createControl : function(n, cm) {
			
			var add_dialog = function(list, item, sub) {
			
				if (sub && sub.length > 0) {
					var sub_list = list.addMenu({title: item.title});
					
					for (i in sub) {
						add_dialog(sub_list, sub[i]);
					}
					
					return;
				}
				
				list.add({title: item.title, onclick: function() { // onclick
					
					// TODO: add cache
					if (item.dialog === true) {
						tb_show('<?php _e('Shortcode: ', 'bunyad-shortcodes')?>' + item.title, '<?php echo admin_url('admin-ajax.php') . '?action=bunyad_shortcode_popup&shortcode='; ?>' + item.id);
						
						jQuery('#TB_ajaxContent').css({width: 'auto', height: '90%'});
						
						var counter = 0,
							set_height = function() { 
						
							var height = jQuery('#TB_window').height();
							counter++;
							
							if (counter > 20) {
								return;
							}
							
							if (height < 100) {
								window.setTimeout(set_height, 500);
							}
							
							jQuery('#TB_ajaxContent').css('height', jQuery('#TB_window').height() - 45 + 'px');
						};
						
						set_height();
						
						
					}
					else { // just insert
					
						var shortcode, selected, 
							ed = tinyMCE.activeEditor;
						
						selected = ed.selection.getContent();
						
						if (!item.insert_code) {
							shortcode = '[' + item.id + ']%selected%[/' + item.id + ']'; 
						}

						if (jQuery.trim(selected) === '') {
							selected = '<?php _e('INSERT HERE', 'bunyad-shortcodes'); ?>'; 
						}

						shortcode = shortcode.replace('%selected%', selected);
						ed.execCommand('mceReplaceContent', false, shortcode);
					}
					
					// open window
					/*tinyMCE.activeEditor.windowManager.open({
						url: '<?php echo plugin_dir_url(__FILE__) . 'shortcode-popup.php?shortcode='; ?>' + item.id,
						inline: 1,
						width: 500,
						height: parseInt(jQuery(window).height()) * 0.8,
					});*/		
					
				}}); 
				
				return list;
			};
		
			if (n == 'bunyad_shortcodes') {
			
				var button = cm.createSplitButton('bunyad_shortcodesList', {
					title: '<?php echo esc_attr__('Shortcodes', 'bunyad-shortcodes'); ?>',
					icons: false
				});
				
				button.onRenderMenu.add(function(c, list) {
				
				<?php echo $shortcode_menu; ?>
					
				});
	
                // Return the new listbox instance
                return button;
             }
             
             return null;
		},

		/**
		 * Returns information about the plugin as a name/value array.
		 * The current keys are longname, author, authorurl, infourl and version.
		 *
		 * @return {Object} Name/value array containing information about the plugin.
		 */
		getInfo : function() {
			return {
				longname : 'Shortcode selector',
				author : 'asad',
				authorurl : 'http://twitter.com/asadkn',
				infourl : '',
				version : "1.0"
			};
		}
	});

	// Register plugin
	tinymce.PluginManager.add('bunyad_shortcodes', tinymce.plugins.bunyad_shortcodes);
	
	<?php endif; // end version check ?>
	
})();

<?php
 
	die(); // end ajax request

} // end function

?>PK03Y��n���3bunyad-shortcodes/admin/tinymce/shortcode-popup.php<?php

/*require_once('../../../../../wp-load.php');
require_once('../../../../../wp-admin/includes/admin.php');

// check auth
if (!is_user_logged_in() OR !current_user_can('edit_pages') OR !current_user_can('edit_posts')) {
	die('You do not have the right type of authorization. You must be logged in and be able to edit pages and posts.');
}

do_action('admin_init');
*/

function bunyad_shortcode_popup()
{
	
	if (!is_user_logged_in() OR !current_user_can('edit_pages') OR !current_user_can('edit_posts')) {
		die('You do not have the right type of authorization. You must be logged in and be able to edit pages and posts.');
	}
	
	$shortcode   = array_merge(array('label' => null, 'child' => null), Bunyad_ShortCodes::getInstance()->get_one($_GET['shortcode']));
	$dialog_file = dirname(__FILE__) . '/shortcode-dialogs/' . $shortcode['dialog'] . '.php';
	
	if ($shortcode['dialog'] && file_exists($dialog_file)) {
		$shortcode_file = $dialog_file;
	}


?>
<!DOCTYPE html>
<html>
<head>
	
</head>

<body>

<style type="text/css">

.bunyad-sc-visual { margin-top: 10px; }
.bunyad-sc-visual .element-control { 
	position: relative;
	margin-bottom: 5px;
}

.bunyad-sc-visual .element-control:after {
	content: " "; 
	display: block; 
	clear: both;
}

.bunyad-sc-visual label {
	width: 150px;
	float: left;
	display: block;
	font-weight: bold;
	padding-right: 10px;
	line-height: 2em;
}

.bunyad-sc-visual .element-control input {
	float: left;
	display: block;
	width: 100%;
	max-width: 200px;
}

.bunyad-sc-visual textarea { 
	width: 400px;
	height: 150px;
}

.bunyad-sc-visual .buttons {
	padding-top: 20px;
}

.bunyad-sc-visual .help {
	line-height: 2.5em;
	padding-left: 10px;
	color: gray;
	font-size: 80%;
}

.element-control .color-picker-element {
	left: 375px; 
	top: 0;
}

.divider-or {
	position: relative;
	width: 100%;
	text-align: center;
	margin: 10px 0;
}

.divider-or span {
	background: #fff;
	padding: 0 5px;
}

.divider-or:before {
	display: block;
	position: absolute;
	top: 50%;
	content: " ";
	border-top: 1px solid #ccc;
	width: 100%;
	z-index: -1;
}

</style>

<script type="text/javascript">

	function Bunyad_Shortcodes_Helper($) {

		var self = this;
		this.form;
		this.shortcode;
		this.child_shortcode;
		
		this.init = function() {

			this.form = $('form.bunyad-sc-visual');
			
			// register simple shortcode handler by default
			this.form.submit(this.simple_shortcodes);
			$('#add-more-groups').click(this.insert_group);
		};

		/*
		 * Handler for simple shortcodes. Generator form will just have key => field pairs to use 
		 * as attributes in the shortcode.
		 *
		 * Creates shortcodes of form: [shortcode field1="value1" field2="value2"]content[/shortcode]
		 */
		this.simple_shortcodes = function(e) 
		{
			if (e.isPropagationStopped()) {
				return;
			}

			var params  = self.form_to_attribs($(this)),
				attribs = params[0].join(' '),
				enclose = params[1];
		

			var shortcode   = "<?php echo esc_attr($_GET['shortcode']); ?>";
			var insert_code = '[' + shortcode + (attribs ? ' ' + attribs : '') + ']' + enclose + '[/' + shortcode + ']';

			self.insert_close(insert_code);
			
			return false;
		};

		this.form_to_attribs = function(form, enclose) 
		{
			var params = form.serializeArray();
			var attribs = [], enclose = '';
	
			$.each(params, function(k, v) {
	
				// ignore the hidden field and empty values
				if (v.name === 'shortcode' || v.name.indexOf('[') !== -1 || $.trim(v.value) === '') {
					return;
				}
									
				if (v.name === 'enclose') {
					enclose = v.value.replace(/\r?\n/gi, '<br />'); // possibly multi-line 
				}
				else {
					attribs.push(v.name + '="' + v.value + '"');
				}
			});

			return [attribs, enclose];
		};
		
		this.advanced_shortcodes = function(e) {

			if (e.isPropagationStopped()) {
				return;
			}
			
			var group = [], parent = self.shortcode, shortcode = self.child_shortcode || parent;
			$(this).find('[name^="content["], [name^="sc-group["]').each(function() {

				var group_id = ($(this).attr('name')).replace(/.*\[([0-9]+)\]/, '$1'),
					attribs  = [],
					the_content,
					found_content = false;
				
				$(this).parent().parent().find('[name$="[' + group_id + ']"]').each(function() {
				
					var name = ($(this).attr('name')).replace(/(.*)\[([0-9]+)\]/, '$1');

					if (name == 'content') {
						found_content = true; 
						the_content = $(this).val();
						return;
					}
					else if (name == 'sc-group') {
						return;
					}

					if ($(this).val()) {
						attribs.push(name + '="' + $(this).val() + '"');
					}
				});
				
				// have title and content?
				if (!found_content || the_content) {
					group.push({attribs: attribs.join(' '), content: the_content || ''});
				}
			});

			var insert_code = '';

			// create one shortcode for each group
			$.each(group, function(k, v) 
			{
				var content = v.content.replace(/\r?\n/gi, '<br />'); // multi-line 
				insert_code += '[' + shortcode + (v.attribs ? ' ' + v.attribs : '') + ']' + (content ? content + '[/' + shortcode + "]" : '') + '<br />';  
			});

			// add wrapping parent tag if both shortcode (child) and parent available
			if (self.child_shortcode && parent) {

				var attribs = self.form_to_attribs($(this));
				attribs = attribs[0].join(' ');
				
				
				insert_code = '[' + parent + (attribs ? ' ' + attribs : '') + "]<br />" + insert_code + '[/' + parent + ']';
			}

			self.insert_close(insert_code);

			e.stopPropagation();
			return false;
		};

		this.insert_close = function(code) {
			// insert shortcode and remove popup
			tinyMCE.activeEditor.execCommand("mceInsertContent", false, code);
			tb_remove();
		};

		this.set_handler = function(handler) 
		{
			
			if (handler == 'advanced') {
				this.form.unbind('submit').submit(this.advanced_shortcodes);
			}
			else if ($.isFunction(handler)) {
				this.form.unbind('submit').submit(handler);
			}
		};

		this.insert_group = function(e) {

			// current tabs count
			var tabs_count = $(this).parent().data('bunyad_tabs') || 0;
			if (tabs_count === 0) {
				tabs_count = $(this).parent().parent().find('.title').length;
			}

			if (tabs_count >= 6) { 
				alert('Woah, slow down. Do you really wish to be adding that many tabs?');
			}
			
			tabs_count++;

			// get our template and modify it
			var html = $(this).parent().parent().find('.template-group-options').html();

			html = $(html);
			html.find('span').each(function() {
				var span_html = $(this).html();
				$(this).html(span_html.replace('%number%', tabs_count));
			});

			html.find('[name*="[%number%]"]').each(function() {
				var attr = $(this).attr('name');
				$(this).attr('name', attr.replace('%number%', tabs_count));
			});
			
			$(this).parent().before(html);

			// update counter
			$(this).parent().data('bunyad_tabs', tabs_count);

			if ($.wpColorPicker) {
				$('.colorpicker').wpColorPicker();
			}

			return false;	
		};

		$(function() {
			self.init();
		});
	}

	var Bunyad_Shortcodes_Helper = new Bunyad_Shortcodes_Helper(jQuery);

	// set shortcodes
	Bunyad_Shortcodes_Helper.shortcode = '<?php echo esc_attr(strip_tags($_GET['shortcode'])); ?>';
	Bunyad_Shortcodes_Helper.child_shortcode = '<?php echo esc_attr($shortcode['child']); ?>';

</script>

<form method="post" class="bunyad-sc-visual">
	<input type="hidden" name="shortcode" value="<?php echo esc_attr($_GET['shortcode']); ?>" />
	<?php
	if ($shortcode_file) {
		include_once $shortcode_file; 
	}
	?>

	<div class="buttons">
		<input type="submit" value="<?php _e('Insert ' . $shortcode['label'], 'bunyad-shortcodes'); ?>" class="button-primary" />
	</div>
	
</form>

<link rel="stylesheet" type="text/css" href="<?php echo admin_url() .'/css/farbtastic.css'; ?>" />
<script src="<?php echo admin_url() .'/js/farbtastic.js'; ?>"></script>
<script src="<?php echo get_template_directory_uri() .'/admin/js/options.js'; ?>"></script>
</body>
</html><?php

die;

} // function
?>PK03Y�C~~@bunyad-shortcodes/admin/tinymce/shortcode-dialogs/accordions.php<?php

$render  = Bunyad::factory('admin/option-renderer');

?>

<p><a href="#" id="add-more-groups"><?php _e('Add More Accordions', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<div class="divider-or"><span><?php _e('Accordion %number%'); ?></span></div>

	<div class="element-control">
		<label><?php _e('Title:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_text(array('name' => 'title[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Default:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_select(array('name' => 'load[%number%]', 'options' => array('hide' => 'Hide', 'show' => 'Show'))); ?>
		<span class="help"><?php _e('Whether to show or hide the content by default.', 'bunyad-shortcodes'); ?></span>
	</div>

	<div class="element-control">
		<label><?php _e('Content:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_textarea(array('name' => 'content[%number%]')); ?>
	</div>

	
</script>


<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');
});
</script>PK03Y6J\�mm9bunyad-shortcodes/admin/tinymce/shortcode-dialogs/box.php<?php
$render  = Bunyad::factory('admin/option-renderer');

// all the attributes
$options = array(
	array(
		'label' => __('Content', 'bunyad-shortcodes'),
		'type'  => 'text',
		'name'  => 'enclose'
	),
	
	array(
		'label' => __('Alert Type', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'style',
		'options' => array(
			'info' => __('Info', 'bunyad-shortcodes'),
			'warning' => __('Warning', 'bunyad-shortcodes'),
			'success' => __('Success', 'bunyad-shortcodes'),
			'error'   => __('Error', 'bunyad-shortcodes'),
			'download' => __('Download Arrow', 'bunyad-shortcodes'),
		),
	),

);

foreach ($options as $option) {
	echo $render->render($option);
}

?>

<script>
jQuery(function($) {

	// replace customized color - this will be hooked before main handler
	var button_handler = function() {
		
		var bg_color = $(this).find('input[name=color]'),
			preset = $(this).find('select[name=preset]');
		
		if (bg_color.val() == '') {
			bg_color.val(preset.val());
		}

		preset.remove();

		// don't return false or it will stop propagation
	};
	
	$('form.bunyad-sc-visual').submit(button_handler);
});
</script>
PK03Y��-�|
|
<bunyad-shortcodes/admin/tinymce/shortcode-dialogs/button.php<?php
$render  = Bunyad::factory('admin/option-renderer');

$button_colors = (array) Bunyad_ShortCodes::getInstance()->get_config('button_colors');
if (count($button_colors)) {
	$button_colors = array_combine($button_colors, array_map('ucfirst', $button_colors));
}
else {
	$button_colors = array();
}

// all the attributes
$options = apply_filters('bunyad_shortcodes_button_options', array(
	'link' => array(
		'label' => __('Link To', 'bunyad-shortcodes'),
		'type'  => 'text',
		'name'  => 'link',
		'html_post_output' => '<span class="help">' . __('Example: http://google.com.', 'bunyad-shortcodes') . '</span>'
	),
	
	'text' => array(
		'label' => __('Button Text', 'bunyad-shortcodes'),
		'type'  => 'text',
		'name'  => 'enclose'
	),
	
	'size' => array(
		'label' => __('Button Size', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'size',
		'options' => array('' => __('Small', 'bunyad-shortcodes'), 'medium' => __('Medium', 'bunyad-shortcodes'), 'large' => __('Large', 'bunyad-shortcodes')),
	),
	
	'preset' => array(
		'label' => __('Preset Styles', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'preset',
		'options' => $button_colors,
		'html_post_output' => '<span class="help">'. __('Either choose a pre-defined style or customize below.', 'bunyad-shortcodes') .'</span>'
	),
	
	'target' => array(
		'label' => __('Open In', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'target',
		'options' => array('' => __('Same Tab', 'bunyad-shortcodes'), 'new' => __('New Tab', 'bunyad-shortcodes')),
	),
	
	'sep' => array(
		'type' => 'html',
		'html' => '<div class="divider-or"><span>' .  __('Or Customize (Optional)', 'bunyad-shortcodes') . '</span></div>'
	),
	
	'text_color' => array(
		'label' => __('Text Color', 'bunyad-shortcodes'),
		'type'  => 'color',
		'name'  => 'text_color'
	),
	
	'bg_color' => array(
		'label' => __('Background Color', 'bunyad-shortcodes'),
		'type'  => 'color',
		'name'  => 'color',
		''
	),
));


if (empty($button_colors)) {
	unset($options['preset']);
}

foreach ($options as $option) {
	echo $render->render($option);
}

?>

<script>
jQuery(function($) {

	// replace customized color - this will be hooked before main handler
	var button_handler = function() {

		var bg_color = $(this).find('input[name=color]'),
			preset = $(this).find('select[name=preset]');
		
		if (bg_color.val() == '') {
			bg_color.val(preset.val());
		}

		preset.remove();

		// don't return false or it will stop propagation
	};

	$('form.bunyad-sc-visual').unbind('submit');
	$('form.bunyad-sc-visual').submit(button_handler);
	$('form.bunyad-sc-visual').submit(Bunyad_Shortcodes_Helper.simple_shortcodes);
});
</script>
PK03Y�	�1��=bunyad-shortcodes/admin/tinymce/shortcode-dialogs/columns.php<?php

$render  = Bunyad::factory('admin/option-renderer');

$size_options = array(
	
	'1/1' => 'Full Column', 
	'1/2' => 'Half Column (1/2)',

	'Three Columns' => array(
		'1/3' => 'One Third (1/3)',
		'2/3' => 'Two Thirds (2/3)'
	),
	
	'Four Columns' => array(
		'1/4' => 'One Fourth (1/4)',
		'1/2' => 'Two Fourths (Half)',
		'3/4' => 'Three Fourths (3/4)'
	),
	
	'Five Columns' => array(
		'1/5' => 'One Fifth (1/5)',
		'2/5' => 'Two Fifths (2/5)',
		'3/5' => 'Three Fifths (3/5)',
		'4/5' => 'Four Fifths (4/5)'
	),
);

?>

<p>
	<strong><?php _e('Pre-defined Examples:', 'bunyad-shortcodes'); ?></strong>
	<a href="#" class="predefined-cols" data-cols="3" data-val="1/3"><?php echo _e('Three equal columns', 'bunyad-shortcodes'); ?></a>, 
	<a href="#" class="predefined-cols" data-cols="4" data-val="1/4"><?php echo _e('Four equal columns', 'bunyad-shortcodes'); ?></a>,
	<a href="#" class="predefined-cols" data-cols="5" data-val="1/5"><?php echo _e('Five equal columns', 'bunyad-shortcodes'); ?></a>
</p>
 

<p><a href="#" id="add-more-groups"><?php _e('Add Another Column', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<div class="divider-or"><span><?php _e('Column %number%'); ?></span></div>

	<div class="element-control">
		<label><?php _e('Size:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_select(array('name' => 'size[%number%]', 'options' => $size_options)); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Content:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_textarea(array('name' => 'content[%number%]')); ?>
	</div>

	
</script>

<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');

	var predefined = function() {
		var columns = $(this).data('cols'), size = $(this).data('val');
		
		$('#add-more-groups').parent().data('bunyad_tabs', 0);
		
		$('.element-control, .divider-or').remove();

		for (i = 1; i <= columns; i++) {
			$('#add-more-groups').click();
		}
		
		$(this).parent().parent().find('[name^="size"]').val(size).change();
		
		return false;
	};
	
	$('.predefined-cols').click(predefined);
});
</script>PK03Y�R3�'';bunyad-shortcodes/admin/tinymce/shortcode-dialogs/lists.php<?php

$render  = Bunyad::factory('admin/option-renderer');

?>

<?php


$options = apply_filters('bunyad_shortcodes_lists_options', array(
	'style' => array(
		'name'  => 'style',
		'label' => __('List Style', 'bunyad-shortcodes'),
		'type'  => 'select',
		'options' => array(
			'check'   => __('Check', 'bunyad-shortcodes'),
			'edit'   => __('Edit', 'bunyad-shortcodes'),	
			'folder' => __('Folder', 'bunyad-shortcodes'),
			'file'   => __('File', 'bunyad-shortcodes'),
			'heart'  => __('Heart', 'bunyad-shortcodes'),
	)),
	
));

foreach ($options as $option) {
	echo $render->render($option);
}

?>
	
</p>

<p><a href="#" id="add-more-groups"><?php _e('Add More Items', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<?php echo $render->render(array('name' => 'content[%number%]', 'type' => 'text', 'label' => __('Item <span>%number%</span>:', 'bunyad-shortcodes'))); ?>
	
</script>

<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');
});
</script>PK03YWZ�
�
Bbunyad-shortcodes/admin/tinymce/shortcode-dialogs/social-icons.php<?php

$render = Bunyad::factory('admin/option-renderer');

// all the attributes
$options = array(
	array(
		'label' => __('Icons Size', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'type',
		'options' => array(
			'' => __('Small', 'bunyad-shortcodes'),
			'medium' => __('Medium', 'bunyad-shortcodes'),
			'large' => __('Large', 'bunyad-shortcodes'),
			'x-large' => __('Extra Large', 'bunyad-shortcodes'),
		),
	),
	
	array(
		'label' => __('Backgrounds', 'bunyad-shortcodes'),
		'type'  => 'select',
		'name'  => 'backgrounds',
		'options' => array(
			'' => __('Transparent', 'bunyad-shortcodes'),
			'1' => __('Colored', 'bunyad-shortcodes'),
		),
	),

);

foreach ($options as $option) {
	echo $render->render($option);
}

?>

<p><hr /></p>

<p><a href="#" id="add-more-groups"><?php _e('Add Icon', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<div class="container">
	<div class="element-control">
		<label><?php _e('Icon Type:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_select(array('name' => 'icon_type[]', 'options' => array(
			'' => __('- Select -', 'bunyad-shortcodes'),
			'facebook' => __('Facebook', 'bunyad-shortcodes'),
			'twitter' => __('Twitter', 'bunyad-shortcodes'),
			'linkedin' => __('LinkedIn', 'bunyad-shortcodes'),
			'google-plus' => __('Google+', 'bunyad-shortcodes'),
			'pinterest' => __('Pinterest', 'bunyad-shortcodes'),
			'dribbble' => __('Dribbble', 'bunyad-shortcodes'),
			'youtube' => __('YouTube', 'bunyad-shortcodes'),
			'instagram' => __('Instagram', 'bunyad-shortcodes'),
			
		))); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Icon Name:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_text(array('name' => 'type[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Link:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_text(array('name' => 'link[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Custom Text Color:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_color_picker(array('name'  => 'color[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Custom Background Color:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_color_picker(array('name'  => 'bg[%number%]')); ?>
	</div>

	<span><input type="hidden" name="sc-group[%number%]" /></span>

	<div style="padding-top:20px;"></div>
	</div>

</script>

<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');

	$(document).on('change', '[name^=icon_type]', function() {
		if (!$(this).val()) {
			return;
		}
		$(this).closest('.container').find('[name*=type]').val( $(this).val() );
	});
});
</script>PK03YA�h�&&:bunyad-shortcodes/admin/tinymce/shortcode-dialogs/tabs.php<?php

$render = Bunyad::factory('admin/option-renderer');

?>

<p><a href="#" id="add-more-groups"><?php _e('Add More Tabs', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<div class="element-control">
		<label><?php _e('Tab #<span>%number%</span> Title:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_text(array('name' => 'title[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Tab #<span>%number%</span> Content:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_textarea(array('name' => 'content[%number%]')); ?>
	</div>

	<div style="padding-top:20px;"></div>
</script>

<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');
});
</script>PK03YO�
{{=bunyad-shortcodes/admin/tinymce/shortcode-dialogs/toggles.php<?php

$render  = Bunyad::factory('admin/option-renderer');

?>

<p><a href="#" id="add-more-groups"><?php _e('Add More Toggles', 'bunyad-shortcodes'); ?></a></p>

<script type="text/html" class="template-group-options">

	<div class="divider-or"><span><?php _e('Toggle Box %number%'); ?></span></div>

	<div class="element-control">
		<label><?php _e('Title:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_text(array('name' => 'title[%number%]')); ?>
	</div>

	<div class="element-control">
		<label><?php _e('Default:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_select(array('name' => 'load[%number%]', 'options' => array('hide' => 'Hide', 'show' => 'Show'))); ?>
		<span class="help"><?php _e('Whether to show or hide the content by default.', 'bunyad-shortcodes'); ?></span>
	</div>

	<div class="element-control">
		<label><?php _e('Content:', 'bunyad-shortcodes'); ?></label>
		<?php echo $render->render_textarea(array('name' => 'content[%number%]')); ?>
	</div>

	
</script>

<script>
jQuery(function($) {
	$('#add-more-groups').click();
	Bunyad_Shortcodes_Helper.set_handler('advanced');
});
</script>PK03Y2��z5!5!$bunyad-shortcodes/css/shortcodes.css.sc-tabs { 
	overflow: hidden;
	margin-bottom: -1px; 
}

.post-content .sc-tabs {
	list-style-type: none;
	margin: 0 0 -1px 0;
	clear: both;
}
	
	.sc-tabs a { 
		float: left; 
		display: block;
		padding: 0.25em 1.25em;
		background: #fcfcfc;
		border-radius: 5px 5px 0 0;
		border: 1px solid #d6d6d6;
		
		background: #fcfcfc;
		background: -moz-linear-gradient(top, #fcfcfc 0%, #e8e8e8 100%);
		background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcfcfc), color-stop(100%,#e8e8e8));
		background: -webkit-linear-gradient(top, #fcfcfc 0%,#e8e8e8 100%);
		background: -o-linear-gradient(top, #fcfcfc 0%,#e8e8e8 100%);
		background: -ms-linear-gradient(top, #fcfcfc 0%,#e8e8e8 100%);
		background: linear-gradient(to bottom, #fcfcfc 0%,#e8e8e8 100%);
		filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfcfc', endColorstr='#e8e8e8',GradientType=0 );
				
		margin-right: 0.5em;
		
		color: #373737;
	}
		
	.sc-tabs .active a { 
		border-bottom: 1px solid #fcfcfc; 
		background: #fcfcfc;
		filter: none;
		color: #405d6f;
	}
		
	.sc-tabs a:hover { text-decoration: none; }
		
	.sc-tabs .active { margin-bottom: -3px; }
	

.sc-tabs-panes {
	background: #fcfcfc; 
	border: 1px solid #d6d6d6;
	margin-bottom: 1.5em;
}

.post-content .sc-tabs-panes { margin-left: 0; }
	.sc-tabs-panes li { padding: 1em 1em; display: none;}
	.sc-tabs-panes li.active { display: block; }


/* shortcode: column  - 1/2, 2/2, 1/3, 2/3, 3/3, 1/4, 2/4, 3/4, 4/4 */
.row { margin-bottom: 1.5em; }
.column:first-child { margin-left: 0; }
.column { float: left; margin-left: 4%; position: relative; width: 100%; }

.column.half { width: 48%; }
 
.column.one-third { width: 30.667%; }
.column.two-third { width: 65.333%; }

.column.one-fourth { width: 22%; }
.column.three-fourth { width: 74%; }

/* shortcode: buttons */
.sc-button {
	font-size: 1.1em;
	padding: 0.25em 1em;
	display: inline-block;

	background: #ececec;
	background: -moz-linear-gradient(top, #fcfcfc 0%, #ececec 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcfcfc), color-stop(100%,#ececec));
	background: -webkit-linear-gradient(top, #fcfcfc 0%,#ececec 100%);
	background: -ms-linear-gradient(top, #fcfcfc 0%,#ececec 100%);
	background: linear-gradient(to bottom, #fcfcfc 0%,#ececec 100%);
	
	border: 1px solid #a3a3a3;
	border-radius: 4px;
	
	box-shadow: inset 0 1px 0 rgba(255,255,255, 0.3); 
	
	text-decoration: none; 
	color: #3a3a3a;
	
	margin-bottom: 1.5em;
}

p > .sc-button { margin-bottom: 0; } 

.sc-button:hover { text-decoration: none; background: #ececec; }

.sc-button-red {
	background: #ee8282;
	background: -moz-linear-gradient(top, #ee8282 0%, #eb6666 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ee8282), color-stop(100%,#eb6666));
	background: -webkit-linear-gradient(top, #ee8282 0%,#eb6666 100%);
	background: -ms-linear-gradient(top, #ee8282 0%,#eb6666 100%);
	background: linear-gradient(to bottom, #ee8282 0%,#eb6666 100%);
	
	border-color: #a94d4d;
}
.sc-button-red:hover { background: #ee8282; }

.sc-button-blue { 
	background: #87c2ff;
	background: -moz-linear-gradient(top, #87c2ff 0%, #66a8eb 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#87c2ff), color-stop(100%,#66a8eb));
	background: -webkit-linear-gradient(top, #87c2ff 0%,#66a8eb 100%);
	background: -ms-linear-gradient(top, #87c2ff 0%,#66a8eb 100%);
	background: linear-gradient(to bottom, #87c2ff 0%,#66a8eb 100%);
	
	border-color: #4876a6;
}

.sc-button-blue:hover { background: #87c2ff; }

.sc-button-yellow { 
	background: #f6ce62;
	background: -moz-linear-gradient(top, #f6ce62 0%, #e5ba45 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f6ce62), color-stop(100%,#e5ba45));
	background: -webkit-linear-gradient(top, #f6ce62 0%,#e5ba45 100%);
	background: -ms-linear-gradient(top, #f6ce62 0%,#e5ba45 100%);
	background: linear-gradient(to bottom, #f6ce62 0%,#e5ba45 100%);
	
	border-color: #937d40;
}

.sc-button-yellow:hover { background: #f6ce62; }

.sc-button-green {
	background: #bad88b;
	background: -moz-linear-gradient(top, #bad88b 0%, #99be5e 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#bad88b), color-stop(100%,#99be5e));
	background: -webkit-linear-gradient(top, #bad88b 0%,#99be5e 100%);
	background: -ms-linear-gradient(top, #bad88b 0%,#99be5e 100%);
	background: linear-gradient(to bottom, #bad88b 0%,#99be5e 100%);
	
	border-color: #799d41;
}

.sc-button-green:hover { background: #bad88b; }

.sc-button-black {
	background: #525252;
	background: -moz-linear-gradient(top, #525252 0%, #3c3c3c 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#525252), color-stop(100%,#3c3c3c));
	background: -webkit-linear-gradient(top, #525252 0%,#3c3c3c 100%);
	background: -ms-linear-gradient(top, #525252 0%,#3c3c3c 100%);
	background: linear-gradient(to bottom, #525252 0%,#3c3c3c 100%);
	
	border-color: #3c3c3c;
}

.sc-button-black:hover { background: #525252; }


.sc-button-blue, .sc-button-red, .sc-button-yellow, .sc-button-green, .sc-button-black { 
	color: #fff;
	text-shadow: 0px 1px 0px rgba(0,0,0, 0.3);
}

/* shortcode: accordion / toggle */
.sc-accordions, .sc-toggle { margin-bottom: 1.5em; }

.sc-accordion-title, .sc-toggle-title {
	border-bottom: 1px solid #d6d6d6;
}

.sc-accordion-title a, .sc-toggle-title a { 
	display: block;
	font-size: 1.15em; 
	padding: 0.5em 1.5em;
	background: url('images/accordion-toggles.png') 100% -105px no-repeat;
	text-decoration: none;
	margin-right: 0.5em;
}

.sc-accordion-title.active a { 	background-position: 100% -160px; }

.sc-accordion-pane, .sc-toggle-content { 
	display: none;
	border: 1px solid #d6d6d6;
	border-top: 0;  
	padding: 1.5em;
	background: #fcfcfc;
}

/* shortcode: toggle */
.sc-toggle-title { 
	background: #e2e2e2;
	background: -moz-linear-gradient(top, #e2e2e2 0%, #dadada 100%);
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e2e2e2), color-stop(100%,#dadada));
	background: -webkit-linear-gradient(top, #e2e2e2 0%,#dadada 100%);
	background: -o-linear-gradient(top, #e2e2e2 0%,#dadada 100%);
	background: -ms-linear-gradient(top, #e2e2e2 0%,#dadada 100%);
	background: linear-gradient(to bottom, #e2e2e2 0%,#dadada 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2e2e2', endColorstr='#dadada',GradientType=0 );
	border: 1px solid #d6d6d6;
}

.sc-toggle-title a { background-position: 100% 8px; }
.sc-toggle-title.active a { background-position: 100% -52px; }

/* shortcode: list */
.sc-list { margin-bottom: 1.5em; }
.post-content .sc-list ul { list-style-type: none; }
.sc-column .sc-list { margin-bottom: 0; }
.sc-list li { padding-left: 1.75em; }

.sc-list li:before, .sc-list-arrow li:before { 
	content: " ";
	display: block;
	float: left;
	width: 20px;
	height: 20px;
	margin-left: -1.75em;
	background: url('images/sc-lists.png') 0px 4px no-repeat;
}

.sc-list-check li:before { background-position: -28px 3px; }
.sc-list-file li:before { background-position: -57px 3px; }
.sc-list-heart li:before { background-position: -85px 4px; }
.sc-list-folder li:before { background-position: -114px 4px; }
.sc-list-edit li:before { background-position: -143px 4px; }

/* shortcode: box */
.sc-box { 
	padding: 1em;
	margin-bottom: 1.5em;
	padding-left: 3.5em; 
	font-size: 1.1em;
}

.sc-box:before { 
	content: " ";
	display: block;
	float: left;
	width: 40px;
	height: 40px;
	margin-left: -3em;
	margin-top: -0.25em;
	background: url('images/sc-box-icons.png') 0px 0px no-repeat;
}

.sc-box p:last-child { margin-bottom: 0; }

.sc-box-info { background: #e8f8ff; border: 1px solid #d1dfe7; color: #5e747c; }
.sc-box-info:before { background-position: 0px 0px; }

.sc-box-error { background: #fbe9e2; border: 1px solid #ddcfca; }
.sc-box-error:before { background-position: -125px 0px; }

.sc-box-error {	background: #fbe9e2; border: 1px solid #ddcfca; color: #6a5b55; }
.sc-box-error:before { background-position: -125px 0px; }

.sc-box-warning { background: #faf5e1; border: 1px solid #ded9c5; color: #6e6a58; }
.sc-box-warning:before { background-position: -65px 0px; }

.sc-box-success { background: #eff6db; border: 1px solid #d4d9c4; color: #646b54; }
.sc-box-success:before { background-position: -185px 0px; }

.sc-box-download { background: #eef4a4; border: 1px solid #d2d796; color: #646b54; }
.sc-box-download:before { background-position: -240px 0px; }PK03Y�k2��1bunyad-shortcodes/languages/bunyad-shortcodes.pot# Copyright (C) 2017 Bunyad Shortcodes
# This file is distributed under the same license as the Bunyad Shortcodes package.
msgid ""
msgstr ""
"Project-Id-Version: Bunyad Shortcodes 1.0.9\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/bunyad-"
"shortcodes\n"
"POT-Creation-Date: 2017-11-16 19:10:37+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"

#: admin/tinymce/editor-plugin.php:106 admin/tinymce/editor-plugin.php:107
#: admin/tinymce/editor-plugin.php:218
msgid "Shortcode: "
msgstr ""

#: admin/tinymce/editor-plugin.php:143 admin/tinymce/editor-plugin.php:255
msgid "INSERT HERE"
msgstr ""

#: admin/tinymce/editor-plugin.php:156 admin/tinymce/editor-plugin.php:183
#: admin/tinymce/editor-plugin.php:278
msgid "Shortcodes"
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:7
msgid "Add More Accordions"
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:11
msgid "Accordion %number%"
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:14
#: admin/tinymce/shortcode-dialogs/toggles.php:14
msgid "Title:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:19
#: admin/tinymce/shortcode-dialogs/toggles.php:19
msgid "Default:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:21
#: admin/tinymce/shortcode-dialogs/toggles.php:21
msgid "Whether to show or hide the content by default."
msgstr ""

#: admin/tinymce/shortcode-dialogs/accordions.php:25
#: admin/tinymce/shortcode-dialogs/columns.php:51
#: admin/tinymce/shortcode-dialogs/toggles.php:25
msgid "Content:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:7
msgid "Content"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:13
msgid "Alert Type"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:17
msgid "Info"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:18
msgid "Warning"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:19
msgid "Success"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:20
msgid "Error"
msgstr ""

#: admin/tinymce/shortcode-dialogs/box.php:21
msgid "Download Arrow"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:15
msgid "Link To"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:18
msgid "Example: http://google.com."
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:22
msgid "Button Text"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:28
msgid "Button Size"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:31
#: admin/tinymce/shortcode-dialogs/social-icons.php:12
msgid "Small"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:31
#: admin/tinymce/shortcode-dialogs/social-icons.php:13
msgid "Medium"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:31
#: admin/tinymce/shortcode-dialogs/social-icons.php:14
msgid "Large"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:35
msgid "Preset Styles"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:39
msgid "Either choose a pre-defined style or customize below."
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:43
msgid "Open In"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:46
msgid "Same Tab"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:46
msgid "New Tab"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:51
msgid "Or Customize (Optional)"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:55
msgid "Text Color"
msgstr ""

#: admin/tinymce/shortcode-dialogs/button.php:61
msgid "Background Color"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:32
msgid "Pre-defined Examples:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:33
msgid "Three equal columns"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:34
msgid "Four equal columns"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:35
msgid "Five equal columns"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:39
msgid "Add Another Column"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:43
msgid "Column %number%"
msgstr ""

#: admin/tinymce/shortcode-dialogs/columns.php:46
msgid "Size:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:13
msgid "List Style"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:16
msgid "Arrow"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:17
msgid "Check"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:18
msgid "Edit"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:19
msgid "Folder"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:20
msgid "File"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:21
msgid "Heart"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:26
msgid "Ordered List?"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:28
#: lib/admin/option-renderer.php:126
msgid "No"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:28
#: lib/admin/option-renderer.php:126
msgid "Yes"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:40
msgid "Add More Items"
msgstr ""

#: admin/tinymce/shortcode-dialogs/lists.php:44
msgid "Item <span>%number%</span>:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:8
msgid "Icons Size"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:15
msgid "Extra Large"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:20
msgid "Backgrounds"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:24
msgid "Transparent"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:25
msgid "Colored"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:39
msgid "Add Icon"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:45
msgid "Icon Type:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:47
msgid "- Select -"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:48
msgid "Facebook"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:49
msgid "Twitter"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:50
msgid "LinkedIn"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:51
msgid "Google+"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:52
msgid "Pinterest"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:53
msgid "Dribbble"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:54
msgid "YouTube"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:55
msgid "Instagram"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:61
msgid "Icon Name:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:66
msgid "Link:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:71
msgid "Custom Text Color:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/social-icons.php:76
msgid "Custom Background Color:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/tabs.php:7
msgid "Add More Tabs"
msgstr ""

#: admin/tinymce/shortcode-dialogs/tabs.php:12
msgid "Tab #<span>%number%</span> Title:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/tabs.php:17
msgid "Tab #<span>%number%</span> Content:"
msgstr ""

#: admin/tinymce/shortcode-dialogs/toggles.php:7
msgid "Add More Toggles"
msgstr ""

#: admin/tinymce/shortcode-dialogs/toggles.php:11
msgid "Toggle Box %number%"
msgstr ""

#: lib/admin/option-renderer.php:207
msgid "Upload"
msgstr ""

#: lib/admin/option-renderer.php:235
msgid "Remove"
msgstr ""

#. Plugin Name of the plugin/theme
msgid "Bunyad Shortcodes"
msgstr ""

#. #-#-#-#-#  bunyad-shortcodes.pot (Bunyad Shortcodes 1.0.9)  #-#-#-#-#
#. Plugin URI of the plugin/theme
#. #-#-#-#-#  bunyad-shortcodes.pot (Bunyad Shortcodes 1.0.9)  #-#-#-#-#
#. Author URI of the plugin/theme
msgid "http://theme-sphere.com"
msgstr ""

#. Description of the plugin/theme
msgid ""
"Bunyad Shortcodes adds multiple shortcode functionality for ThemeSphere "
"themes."
msgstr ""

#. Author of the plugin/theme
msgid "ThemeSphere"
msgstr ""
PK03Y�TO%�� bunyad-shortcodes/lib/bunyad.php<?php

/**
 * Bunyad Framework - factory
 * 
 * Basic namespacing utility is provided by this factory for easy changes
 * for a a theme that has different needs than the original one. 
 * 
 * @author Asad Khan - http://twitter.com/asadkn
 */

class Bunyad {
	
	protected static $_cache = array();
	
	/**
	 * Build the required object instance
	 * 
	 * @param string  $object
	 * @param boolean $fresh 	whether to get a fresh copy; will not be cached and won't override 
	 * 							current copy in cache.
	 */
	public static function factory($object = 'core', $fresh = false)
	{
		if (isset(self::$_cache[$object]) && !$fresh) {
			return self::$_cache[$object];
		}
		
		// convert short-codes to Bunyad_ShortCodes; core to Bunyad_Core etc.
		$class = str_replace('/', '_', $object);
		$class = 'Bunyad_' . self::file_to_class_name($class);
		
		if (!class_exists($class)) {
			// load the file replacing _ to directory separator and lower the name
			require_once dirname(__FILE__) . '/' . $object . '.php';
		}
		
		// don't cache fresh objects
		if ($fresh) {
			return new $class; 
		}
		
		self::$_cache[$object] = new $class;
		return self::$_cache[$object];
	}
	
	public static function file_to_class_name($file_name)
	{
		return implode('', array_map('ucfirst', explode('-', $file_name)));
	}
	
	/**
	 * Core class
	 * 
	 * @return Bunyad_Core
	 */
	public static function core($fresh = false) 
	{
		return self::factory('core', $fresh);
	}
	
	/**
	 * Shortcodes handler
	 *
	 * @param boolean $fresh
	 * @return Bunyad_ShortCodes
	 */
	public static function codes($fresh = false)
	{
		if (is_object(self::options()->shortcodes)) {
			return self::options()->shortcodes;
		}
	}
	
	/**
	 * Options class
	 * 
	 * @return Bunyad_Options
	 */
	public static function options($fresh = false)
	{
		return self::factory('options', $fresh);
	}
	
	/**
	 * Posts related functionality
	 * 
	 * @return Bunyad_Posts
	 */
	public static function posts($fresh = false)
	{
		return self::factory('posts', $fresh);
	}
}
PK03Y��kb8!8!/bunyad-shortcodes/lib/admin/option-renderer.php<?php

class Bunyad_Admin_OptionRenderer
{
	public $default_values = array();
	
	/**
	 * Initialize the template file
	 * 
	 * @param array $options
	 * @param string $file
	 * @param array $populate  default form values for elements
	 * @param array $data 
	 */
	public function template($options, $file, $populate = array(), $data = array())
	{
		$this->default_values = (array) $populate;
		extract($data);

		require_once $file;
	}
	
	public function render($element)
	{
		// defaults
		$element = array_merge(array('name' => null, 'label' => null), $element);
		
		// set default value if available
		if (isset($this->default_values[$element['name']])) {
			$element['value'] = $this->default_values[$element['name']];
		}
		
		switch ($element['type'])
		{
			case 'select':
				$output = $this->render_select($element);
				break;
			
			case 'checkbox':
				$output = $this->render_checkbox($element);
				break;
				
			case 'text':
				$output = $this->render_text($element);
				break;
				
			case 'textarea':
				$output = $this->render_textarea($element);
				break;
				
			case 'radio':
				$output = $this->render_radio($element);
				break;
				
			case 'color':
				$output = $this->render_color_picker($element);
				break;
				
			case 'bg_image':
				$output = $this->render_bg_image($element);
				break;
				
			case 'upload':
				$output = $this->render_upload($element);
				break;

			case 'typography':			
				$output = $this->render_typography($element);
				break;
				
			case 'html':
				$output = $element['html'];
				break;
			
			default:
				break;
		}
		
		
		// decorate it
		if ($output) {
			$output = '<label class="element-title">'. $element['label'] . '</label>'
					. '<div class="element-control">' . $output . (isset($element['html_post_output']) ? $element['html_post_output'] : '') . '</div>';
		}
		
		return $output;
	}
	
	public function render_select($element)
	{
		$element = array_merge(array('value' => null), $element);
		
		$output = '<select name="'. esc_attr($element['name']) .'"' . (isset($element['class']) ? ' class="'. esc_attr($element['class']) .'"' : '') . '>';
		
		foreach ( (array) $element['options'] as $key => $option) 
		{
			if (is_array($option)) {
				$output .= '<optgroup label="' . esc_attr($key) . '">' . $this->_render_options($option) . '</optgroup>';
			}
			else {
				$output .= $this->_render_options(array($key => $option), $element['value']);
			}
			
		}
		
		return $output . '</select>';
	}
	
	// helper for: render_select()
	private function _render_options($options, $selected = '') 
	{	
		$output = '';
		
		foreach ($options as $key => $option) {
			$output .= '<option value="'. esc_attr($key) .'"'. selected((string) $selected, $key, false) .'>' . esc_html($option) . '</option>';
		}
		
		return $output;
	}
	
	public function render_checkbox($element)
	{
		
		$element = array_merge(array('value' => null), $element);
		$element['options'] = array_merge(
			array('checked' => __('Yes', 'bunyad'), 'unchecked' => __('No', 'bunyad')), 
			!empty($element['options']) ? $element['options'] : array()
		);
		
		$output = '<input type="hidden" name="'. esc_attr($element['name']) .'" value="0" />' // always send in POST - even when empty
				. '<input type="checkbox" name="'. esc_attr($element['name']) .'" value="1"'
				. checked($element['value'], 1, false) . ' data-yes="'. esc_attr($element['options']['checked']) .'" data-no="'. esc_attr($element['options']['unchecked']) .'" />
				<label for="'. esc_attr($element['name']) .'">' . $element['options']['checked'] . '</label>
				';
				
		return $output;
	}
	
	public function render_text($element)
	{
		$element = array_merge(array('value' => null), $element);
		
		$output = '<input type="text" name="'. esc_attr($element['name']) .'" value="'. esc_attr($element['value'])  .'" class="input" />';
				
		return $output;
	}
	
	public function render_textarea($element)
	{
		// defaults
		$element = array_merge(array(
			'value' => null,
			'options' => array('rows' => null, 'cols' => null)
		), $element);
		
		$row_cols = '';
		if ($element['options']['rows'] OR $element['options']['cols']) {
			$row_cols = ' rows="' . intval($element['options']['rows']) . '" cols="' . $element['options']['cols'] . '"'; 
		}
		
		$output = '<textarea name="' . esc_attr($element['name']) . '"' . $row_cols .'>'. esc_html($element['value']) .'</textarea>';
		
		return $output;
	}
	
	public function render_radio($element)
	{
		$output = '';
		
		foreach ($element['options'] as $key => $option)
		{
			$output .= '<div class="radio-option"><label><input type="radio" name="'. esc_attr($element['name']) .'" value="'. esc_attr($key) . '"'
					.  checked($element['value'], $key, false) .' /><span>' . esc_html($option) . '</span></label></div>';
		}
				
		return $output;
	}
	
	public function render_color_picker($element)
	{
		$element = array_merge(array('value' => null), $element);
		
		$output = '<input type="text" class="color-picker" name="'. esc_attr($element['name']) .'"'
				. ' value="' . esc_attr($element['value']) . '" /><div class="color-picker-element"></div>';
				
		return $output;
	}
	
	/**
	 * Render background image selector with options to select bg position
	 * 
	 * @param array $element
	 * @uses Bunyad_Admin_OptionRenderer::render_upload()
	 */
	public function render_bg_image($element)
	{
		// future themes on-need-basis implementation
	}
	
	/**
	 * Render an upload element
	 * 
	 * @param array $element
	 */
	public function render_upload($element)
	{
		$button_label = __( 'Upload', 'bunyad' );
		if (!empty($element['options']['button_label'])) {
			$button_label = $element['options']['button_label'];
		}
		
		$element = array_merge(array('value' => null), $element);
		$element['options'] = array_merge(array('editable' => null, 'title' => null, 'type' => null), $element['options']);
		
		
		$classes = $image = '';
		
		$output = '<input type="'. ($element['options']['editable'] ? 'text' : 'hidden') .'" name="'. esc_attr($element['name']) .'" class="element-upload" value="'
				. esc_attr($element['value']) .'" />'
				. '<input type="button" class="button upload-btn" value="'. esc_attr($button_label) .'"' 
				. ' data-insert-label="'. esc_attr($element['options']['insert_label']) .'"'
				. ' data-title="'. esc_attr($element['options']['title']) .'"'
				. ' data-title="'. esc_attr($element['options']['type']) .'"'
				.'"/> ';
		
		// image type?
		if ($element['options']['type'] == 'image') 
		{ 
			// existing image?
			if ($element['value']) {
				$image   = '<img src="'. esc_attr($element['value']) .'" />';
				$classes = ' visible ';
			}
		
			$output .= '<div class="image-upload'. $classes .'">'. $image .'<a href="" class="remove-image">'. __('Remove', 'bunyad') .'</a></div>';
		}
				
		return $output;
	}
	
	/**
	 * Google web fonts - uses api to get fonts list
	 */
	public function render_typography($element)
	{
		// defaults
		$element = array_merge(array('size' => null, 'color' => null, 'no_preview' => null), $element);
		
		// get fonts
		$fonts = $this->get_google_fonts();
		
		foreach ($fonts['items'] as $font) 
		{
			foreach ($font['variants'] as $variant)	
			{
				// not the regular variant?
				$variation = '';
				if ($variant !== 'regular')  {
					$variation = ' ('. ucfirst($variant) . ')';
				}
				
				$options[$font['family'] .':'. $variant] = $font['family'] . $variation;
			}
		}
		
		$select = $this->render_select(array_merge(
			$element, array('options' => $options, 'class' => 'font-picker chosen-select')
		));
		
		$output = '<div class="typography">' . $select;
		
		if ($element['size']) {
			// TODO: custom range for each element
			$output .= $this->render_select(array_merge($element, array(
				'name' => $element['name'] . '_size',
				'options' => array_combine(range(9, 60), range(9, 60)),
				'value'   => $element['size']['value'],
				'class'   => 'size-picker'
			))) . 'px';
		}
		
		// add a color picker?
		if ($element['color']) {
			$output .= $this->render_color_picker(array_merge($element, array(
				'name'  => $element['name'] . '_color',
				'value' => $element['color']['value'],
			)));
		}
		
		if ($element['no_preview'] !== true) {
			$output .= '<p class="preview"></p>';
		}
		
		return $output . '</div>';
	}
	
	
	/**
	 * Get a list of google fonts
	 */
	public function get_google_fonts()
	{
		$fonts = file_get_contents(get_template_directory() .'/admin/fonts.json');
		return json_decode($fonts, true);
	}
}PK03Y���g����bunyad-shortcodes/admin.phpPK03Y��ˆ}M}M'��bunyad-shortcodes/bunyad-shortcodes.phpPK03Yne��T"T"1���Rbunyad-shortcodes/admin/tinymce/editor-plugin.phpPK03Y��n���3��ubunyad-shortcodes/admin/tinymce/shortcode-popup.phpPK03Y�C~~@��ǔbunyad-shortcodes/admin/tinymce/shortcode-dialogs/accordions.phpPK03Y6J\�mm9����bunyad-shortcodes/admin/tinymce/shortcode-dialogs/box.phpPK03Y��-�|
|
<��g�bunyad-shortcodes/admin/tinymce/shortcode-dialogs/button.phpPK03Y�	�1��=��=�bunyad-shortcodes/admin/tinymce/shortcode-dialogs/columns.phpPK03Y�R3�'';��/�bunyad-shortcodes/admin/tinymce/shortcode-dialogs/lists.phpPK03YWZ�
�
B����bunyad-shortcodes/admin/tinymce/shortcode-dialogs/social-icons.phpPK03YA�h�&&:���bunyad-shortcodes/admin/tinymce/shortcode-dialogs/tabs.phpPK03YO�
{{=��~�bunyad-shortcodes/admin/tinymce/shortcode-dialogs/toggles.phpPK03Y2��z5!5!$��T�bunyad-shortcodes/css/shortcodes.cssPK03Y�k2��1����bunyad-shortcodes/languages/bunyad-shortcodes.potPK03Y�TO%�� ���bunyad-shortcodes/lib/bunyad.phpPK03Y��kb8!8!/���bunyad-shortcodes/lib/admin/option-renderer.phpPK@5Downloaded From GPLAstra.com

Youez - 2016 - github.com/yon3zu
LinuXploit