array(),'page'=>array(),'any'=>array()); var $markers = array(); function sink_hooks() { add_action('edit_form_advanced', array(&$this, 'edit_form_advanced')); add_action('edit_page_form', array(&$this, 'edit_page_form')); add_filter('mce_plugins', array(&$this, 'mce_plugins')); } function go_solo() { $dispatch = isset($_POST['buttonsnapdispatch']) ? $_POST['buttonsnapdispatch'] : @$_GET['buttonsnapdispatch']; if($dispatch != '') { auth_redirect(); $selection = isset($_POST['selection']) ? $_POST['selection'] : @$_GET['selection']; $selection = apply_filters($dispatch, $selection); die($selection); } if(isset($_GET['docss'])) { auth_redirect(); do_action('marker_css'); die(); } } function edit_form_advanced() { if (!$this->script_output) { $this->output_script('post'); $this->script_output = true; } } function edit_page_form() { if (!$this->script_output) { $this->output_script('page'); $this->script_output = true; } } function mce_plugins($plugins) { if (count($this->markers) > 0) { echo "var buttonsnap_markers = new Array(\n"; $comma = ''; foreach ($this->markers as $k => $v) { echo "{$comma}\"{$k}\""; $comma = "\n,"; } echo "\n);\n"; echo "var buttonsnap_classes = new Array(\n"; $comma = ''; foreach ($this->markers as $k => $v) { echo "{$comma}\"{$v}\""; $comma = "\n,"; } echo "\n);\n"; ?> function TinyMCE_buttonsnap_initInstance(inst) { tinyMCE.importCSS(inst.getDoc(), "plugin_uri(); ?>?docss=true"); } function TinyMCE_buttonsnap_parseAttributes(attribute_string) { var attributeName = ""; var attributeValue = ""; var withInName; var withInValue; var attributes = new Array(); var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g'); var titleText = tinyMCE.getLang('lang_buttonsnap_more'); var titleTextPage = tinyMCE.getLang('lang_buttonsnap_page'); if (attribute_string == null || attribute_string.length < 2) return null; withInName = withInValue = false; for (var i=0; i', startPos)) != -1) { // Insert image var contentAfter = content.substring(startPos + 7 + buttonsnap_markers[z].length); content = content.substring(0, startPos); content += ''; content += contentAfter; startPos++; } } break; case "get_from_editor": var startPos = -1; while ((startPos = content.indexOf('', startPos); var attribs = TinyMCE_buttonsnap_parseAttributes(content.substring(startPos + 4, endPos)); for(z=0;z'; // Insert embed/object chunk chunkBefore = content.substring(0, startPos); chunkAfter = content.substring(endPos); content = chunkBefore + embedHTML + chunkAfter; break; } } } break; } return content; } var buttonsnap_request_uri = "' . $this->plugin_uri() . '"; var buttonsnap_wproot = "' . get_settings('siteurl') . '"; ' . "\n"; echo <<< ENDSCRIPT MORESCRIPT; } function textbutton($imgsrc, $alttext, $inserted, $type="any") { $this->buttons[$type][] = array('type'=>'text', 'src'=>$imgsrc, 'alt'=>$alttext, 'text'=>$inserted); return $this->buttons; } function jsbutton($imgsrc, $alttext, $js, $type="any") { $this->buttons[$type][] = array('type'=>'js', 'src'=>$imgsrc, 'alt'=>$alttext, 'js'=>$js); return $this->buttons; } function ajaxbutton($imgsrc, $alttext, $hook, $type="any") { $this->buttons[$type][] = array('type'=>'ajax', 'src'=>$imgsrc, 'alt'=>$alttext, 'hook'=>$hook); return $this->buttons; } function separator($type="any") { $this->buttons[$type][] = array('type'=>'separator'); return $this->buttons; } function register_marker($marker, $cssclass) { $this->markers[$marker] = $cssclass; } function basename($src='') { if($src == '') $src = __FILE__; $name = preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $src); return str_replace('\\', '/', $name); } function plugin_uri($src = '') { return get_settings('siteurl') . '/wp-content/plugins/' . $this->basename($src); } function include_up($filename) { $c=0; while(!is_file($filename)) { $filename = '../' . $filename; $c++; if($c==30) { echo 'Could not find ' . basename($filename) . '.'; return ''; } } return $filename; } function debug($foo) { $args = func_get_args(); echo "
";
		foreach($args as $arg1)
		{
			echo htmlentities(print_r($arg1, 1)) . "
"; } echo "
"; } } $buttonsnap = new buttonsnap(); function buttonsnap_textbutton($imgsrc, $alttext, $inserted, $type="any") { global $buttonsnap; return $buttonsnap->textbutton($imgsrc, $alttext, $inserted, $type);} function buttonsnap_jsbutton($imgsrc, $alttext, $js, $type="any") { global $buttonsnap; return $buttonsnap->jsbutton($imgsrc, $alttext, $js, $type);} function buttonsnap_ajaxbutton($imgsrc, $alttext, $hook, $type="any") { global $buttonsnap; return $buttonsnap->ajaxbutton($imgsrc, $alttext, $hook, $type);} function buttonsnap_separator($type="any") { global $buttonsnap; return $buttonsnap->separator($type);} function buttonsnap_textbutton_post($imgsrc, $alttext, $inserted) { global $buttonsnap; return $buttonsnap->textbutton($imgsrc, $alttext, $inserted, 'post');} function buttonsnap_jsbutton_post($imgsrc, $alttext, $js) { global $buttonsnap; return $buttonsnap->jsbutton($imgsrc, $alttext, $js, 'post');} function buttonsnap_ajaxbutton_post($imgsrc, $alttext, $hook) { global $buttonsnap; return $buttonsnap->ajaxbutton($imgsrc, $alttext, $hook, 'post');} function buttonsnap_separator_post() { global $buttonsnap; return $buttonsnap->separator('post');} function buttonsnap_textbutton_page($imgsrc, $alttext, $inserted) { global $buttonsnap; return $buttonsnap->textbutton($imgsrc, $alttext, $inserted, 'page');} function buttonsnap_jsbutton_page($imgsrc, $alttext, $js) { global $buttonsnap; return $buttonsnap->jsbutton($imgsrc, $alttext, $js, 'page');} function buttonsnap_ajaxbutton_page($imgsrc, $alttext, $hook) { global $buttonsnap; return $buttonsnap->ajaxbutton($imgsrc, $alttext, $hook, 'page');} function buttonsnap_separator_page() { global $buttonsnap; return $buttonsnap->separator('page');} function buttonsnap_dirname($src = '') {global $buttonsnap; return dirname($buttonsnap->plugin_uri($src));} function buttonsnap_register_marker($marker, $cssclass) {global $buttonsnap; return $buttonsnap->register_marker($marker, $cssclass);} endif; if (!defined('ABSPATH')) { require_once($buttonsnap->include_up('wp-config.php')); $buttonsnap->go_solo(); } else { $buttonsnap->sink_hooks(); } ?>