'ts3_wp_viewer', 'description' => __('Allows to show the Users and Channels of a Teamspeak3 as a Widget ( TS VIEWER )', 'ts3_wp_viewer') ) ); // let WP know of this widget's controller entry wp_register_widget_control('ts3_wp_viewer', __('Teamspeak3 Viewer', 'ts3_wp_viewer'), array('ts3_wp_viewer', 'control'), array('width' => 300) ); // short code allows insertion of ts3_wp_viewer into regular posts as a [ts3_wp_viewer] tag. // From PHP in themes, call do_shortcode('ts3_wp_viewer'); add_shortcode('ts3_wp_viewer', array('ts3_wp_viewer', 'shortcode')); } // back end options dialogue function control() { $options = get_option('ts3_wp_viewer'); if (!is_array($options)) $options = array('serverip'=>'127.0.0.1','queryport'=>'10011', 'virtualserverport'=>'9987', 'name'=>'Teamspeak 3 Viewer'); if ($_POST['ts3_wp_viewer-submit']) { $options['serverip'] = strip_tags(stripslashes($_POST['ts3_wp_viewer-serverip'])); $options['virtualserverport'] = strip_tags(stripslashes($_POST['ts3_wp_viewer-virtualserverport'])); $options['queryport'] = strip_tags(stripslashes($_POST['ts3_wp_viewer-queryport'])); $options['name'] = strip_tags(stripslashes($_POST['ts3_wp_viewer-name'])); $options['displaynamesonly'] = strip_tags(stripslashes($_POST['ts3_wp_viewer-displaynamesonly'])); update_option('ts3_wp_viewer', $options); } $serverip = htmlspecialchars($options['serverip'], ENT_QUOTES); $queryport = htmlspecialchars($options['queryport'], ENT_QUOTES); $virtualserverport = htmlspecialchars($options['virtualserverport'], ENT_QUOTES); $name = htmlspecialchars($options['name'], ENT_QUOTES); $displaynamesonly=$options['displaynamesonly']; if($displaynamesonly=="true"){ $selected="selected"; } echo '

'; echo '

'; echo '

'; echo '

'; echo '

'; echo '

Donate for this Plugin

'; echo '

Visit the Author

'; echo ''; } function view($is_widget, $args=array()) { if($is_widget) extract($args); // get widget options $options = get_option('ts3_wp_viewer'); $serverip = $options['serverip']; $queryport = $options['queryport']; $virtualserverport = $options['virtualserverport']; $displaynamesonly=$options['displaynamesonly']; $name = $options['name']; $path = plugins_url( 'teamspeak-3-viewer-plugin-for-wordpress-widget/images/viewer/' ); // Load the Lib require_once("libraries/TeamSpeak3/TeamSpeak3.php"); try { /* connect to server and get TeamSpeak3_Node_Server object by URI */ if($queryport == ""){ $ts3_VirtualServer = TeamSpeak3::factory("serverquery://" . $serverip."/?server_port=". $virtualserverport."#no_query_clients"); }else{ $ts3_VirtualServer = TeamSpeak3::factory("serverquery://" . $serverip.":" . $queryport."/?server_port=". $virtualserverport."#no_query_clients"); } if($displaynamesonly=="true"){ $clients = $ts3_VirtualServer->clientList(); foreach ($clients as $clientObject) { $clientInfo = $clientObject->getInfo(); $mystatus .= $clientInfo['client_nickname'] . "\
"; } }else{ /* display virtual server viewer using HTML interface */ $mystatus .= $ts3_VirtualServer->getViewer(new TeamSpeak3_Viewer_Html($path)); } /* display runtime from default profiler */ // echo "
Generated in " . TeamSpeak3_Helper_Profiler::get()->getRuntime() . " seconds"; } catch(Exception $e) { $mystatus = "Error (ID " . $e->getCode() . ") " . $e->getMessage() . ""; } // the widget's form $out[] ='
'; $out[] = $before_widget . $before_title . $name . $after_title; $out[] = $mystatus; $out[] ='
'; $out[] = $after_widget; return join($out, "\n"); } function shortcode($atts, $content=null) { return ts3_wp_viewer::view(false); } function widget($atts) { echo ts3_wp_viewer::view(true, $atts); } } add_action('widgets_init', array('ts3_wp_viewer', 'init')); ?>