'Jumangee', 'date' => '2011-10-11', 'name' => 'One-click Toolbar Google Translate Button', 'desc' => 'Opens a window with google translation of selected words (en-ru)', 'url' => '', ); } /** * Register the eventhandlers */ function register(&$controller) { $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'translate_button', array ()); $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, '_hookjs'); } /** * Inserts the toolbar button */ function translate_button(& $event, $param) { $event->data[] = array ( 'type' => 'openurlbyselection', 'title' => $this->getLang('translate'), 'icon' => '../../plugins/translatebutton/pix/translate.png', 'url' => 'http://translate.google.com/#en|ru|{selection}', 'name' => 'translate', 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes' ); } /** * Hook js script into page headers. * * @author Jumangee */ function _hookjs(&$event, $param) { $event->data['script'][] = array( 'type' => 'text/javascript', 'charset' => 'utf-8', '_data' => "function tb_openurlbyselection(btn, props, edid) { var sample = props['title']; if(props['sample']){ sample = props['sample']; } // is something selected? var opts; var selection = getSelection($(edid)); if(selection.getLength()){ sample = selection.getText(); opts = {nosel: true}; }else{ return false } window.open( props['url'].replace(new RegExp('{selection}','g'), sample), props['name'], props['options']); return false; }"); } }