Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Plugin Name: Teamspeak 3 Widget for Wordpress
- Plugin URI: http://michaelplas.de
- Description: Allows to show the Users and Channels of a Teamspeak3 as a Widget ( TS VIEWER )
- Author: Michael Plas
- Version: 1.0.3
- Author URI: http://www.michaelplas.de
- License: GPL 2.0, @see http://www.gnu.org/licenses/gpl-2.0.html
- */
- class ts3_wp_viewer{
- function init() {
- // check for the required WP functions, die silently for pre-2.2 WP.
- if (!function_exists('wp_register_sidebar_widget'))
- return;
- // load all l10n string upon entry
- load_plugin_textdomain('ts3_wp_viewer');
- // let WP know of this plugin's widget view entry
- wp_register_sidebar_widget('ts3_wp_viewer', __('TS3 Viewer Widget', 'ts3_wp_viewer'), array('ts3_wp_viewer', 'widget'),
- array(
- 'classname' => '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 '<p style="text-align:right;"><label for="ts3_wp_viewer-name">Titel <input style="width: 200px;" id="ts3_wp_viewer-name" name="ts3_wp_viewer-name" type="text" value="'.$name.'" /></label></p>';
- echo '<p style="text-align:right;"><label for="ts3_wp_viewer-serverip">Server IP or DNS<input style="width: 200px;" id="ts3_wp_viewer-serverip" name="ts3_wp_viewer-serverip" type="text" value="'.$serverip.'" /></label></p>';
- echo '<p style="text-align:right;"><label for="ts3_wp_viewer-queryport">Queryport<input style="width: 200px;" id="ts3_wp_viewer-queryport" name="ts3_wp_viewer-queryport" type="text" value="'.$queryport.'" /></label></p>';
- echo '<p style="text-align:right;"><label for="ts3_wp_viewer-virtualserverport">Virtual Serverport<input style="width: 200px;" id="ts3_wp_viewer-virtualserverport" name="ts3_wp_viewer-virtualserverport" type="text" value="'.$virtualserverport.'" /></label></p>';
- echo '<p style="text-align:right;"><label for="ts3_wp_viewer-displaynamesonly">Display Option<select name="ts3_wp_viewer-displaynamesonly" size="1"><option value="false">Show Channellist</option><option '.$selected.' value="true">Show Names Only</option></select></label></p>';
- echo '<p style="text-align:right;"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9328389">Donate for this Plugin</a> </p>';
- echo '<p style="text-align:right;"><a href="http://www.michaelplas.de">Visit the Author</a> </p>';
- echo '<input type="hidden" id="ts3_wp_viewer-submit" name="ts3_wp_viewer-submit" value="1" />';
- }
- 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'] . "\<br>";
- }
- }else{
- /* display virtual server viewer using HTML interface */
- $mystatus .= $ts3_VirtualServer->getViewer(new TeamSpeak3_Viewer_Html($path));
- }
- /* display runtime from default profiler */
- // echo "<br />Generated in " . TeamSpeak3_Helper_Profiler::get()->getRuntime() . " seconds";
- }
- catch(Exception $e)
- {
- $mystatus = "Error (ID " . $e->getCode() . ") <b>" . $e->getMessage() . "</b>";
- }
- // the widget's form
- $out[] ='<div id="ts3_div">';
- $out[] = $before_widget . $before_title . $name . $after_title;
- $out[] = $mystatus;
- $out[] ='</div>';
- $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'));
- ?>
Add Comment
Please, Sign In to add comment