Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ALL);
- /*
- Plugin Name: Youtube Content for me
- Plugin URI: http://testingg.com
- Description: A Plugin that embeds Youtube Video Player with a Playlist as Content
- Version: 1.0
- Author: Mark @ Offso
- Author URI: http://tsting.com
- License: GPL2
- */
- class Youtube_Content_class {
- public $options;
- public function __construct(){
- //delete_option('youtube_plugin_options');
- $this->options = get_option('youtube_plugin_options');
- $this->register_settings_and_fields();
- //$variable_ = get_option('youtube_plugin_options');
- // print_r($options);
- //print_r($variable_['youtube_keyword']);
- }
- public function add_menu_page(){
- add_options_page('Youtube Content Settings', 'Youtube Content Settings', 'administrator', __FILE__, array('Youtube_Content_class', 'display_options_page'));
- }
- public function display_options_page(){
- ?>
- <div class="wrap">
- <?php screen_icon(); ?>
- <h2>Youtube Content Settings</h2>
- <?php // $test = get_option('youtube_plugin_options'); /************ get option value ?>
- <!-- <pre> <?php // print_r($test); ?>
- </pre>
- -->
- <form action="options.php" method="post">
- <?php settings_fields('youtube_plugin_options'); ?>
- <?php do_settings_sections(__FILE__); ?>
- <p class="submit">
- <input type="submit" name="submit" class="button-primary" value="Save Settings" />
- </p>
- </form>
- </div>
- <?php
- }
- public function register_settings_and_fields(){
- register_setting( 'youtube_plugin_options', 'youtube_plugin_options'/*, array($this, 'youtube_validate_settings')*/); // has 3rd paramater that is optionnal callback
- //get_option('youtube_plugin_options'); /*** access the value */
- add_settings_section('youtube_main_section', 'Youtube Main Settings', array($this, 'youtube_main_section_callback'), __FILE__); // id, title, callback function, page to display
- add_settings_field('youtube_keyword', 'Keyword to Match: ', array($this, 'youtube_keyword_setting'), __FILE__, 'youtube_main_section', array( 'label_for' => 'brammo' ) );
- add_settings_field('youtube_author', 'Username (Optional): ', array($this, 'youtube_author_setting'), __FILE__, 'youtube_main_section');
- add_settings_field('youtube_content', 'Content to Match: ', array($this, 'youtube_content_setting'), __FILE__, 'youtube_main_section');
- add_settings_field('youtube_width', 'Player Width: ', array($this, 'youtube_width'), __FILE__, 'youtube_main_section');
- add_settings_field('youtube_height', 'Player Height: ', array($this, 'youtube_height'), __FILE__, 'youtube_main_section');
- add_settings_field('youtube_number_of_videos', 'Number of Videos to Display: ', array($this, 'youtube_number_of_videos'), __FILE__, 'youtube_main_section');
- add_settings_field('youtube_preview', 'Preview Videos: ', array($this, 'youtube_preview'), __FILE__, 'youtube_main_section');
- }
- public function youtube_main_section_callback(){
- }
- /*
- public function youtube_validate_settings($plugin_options){
- if ( !isset($this->options['youtube_keyword']) && !isset($this->options['youtube_author']) && !isset($this->options['youtube_content']) && !isset($this->options['youtube_width']) && !isset($this->options['youtube_height'])) {
- $plugin_options['youtube_keyword'] = "aaaa";
- $plugin_options['youtube_author'] = "brammo";
- $plugin_options['youtube_content'] = "by_keyword";
- $plugin_options['youtube_width'] = 200;
- $plugin_options['youtube_height'] = 200;
- } else {
- $plugin_options['youtube_keyword'] = $this->options['youtube_keyword'];
- $plugin_options['youtube_author'] = $this->options['youtube_author'];
- $plugin_options['youtube_content'] = $this->options['youtube_content'];
- $plugin_options['youtube_width'] = $this->options['youtube_width'];
- $plugin_options['youtube_height'] = $this->options['youtube_height'];
- }
- return $plugin_options;
- }
- */
- /************* Inputs boxes here *******/
- // keyword heading
- public function youtube_keyword_setting(){
- // print_r($options);
- echo "<input name='youtube_plugin_options[youtube_keyword]' type='text' value='{$this->options['youtube_keyword']}' placeholder='brammo' />";
- }
- public function youtube_author_setting(){
- echo "<input name='youtube_plugin_options[youtube_author]' type='text' value='{$this->options['youtube_author']}' placeholder='Not required' />";
- }
- // content_by heading
- public function youtube_content_setting(){
- $items = array('by_channel', 'by_keyword');
- echo "<select name='youtube_plugin_options[youtube_content]' value='{$this->options['youtube_content']}' />";
- foreach ($items as $item) {
- $selected = ( $this->options['youtube_content'] === $item ) ? 'selected="selected"' : '';
- echo "<option value='$item' $selected>$item</option>";
- }
- echo "</select>";
- }
- // Player width heading
- public function youtube_width(){
- echo "<input name='youtube_plugin_options[youtube_width]' value='{$this->options['youtube_width']}' type='number' min='200' max='500' />";
- }
- public function youtube_height(){
- echo "<input name='youtube_plugin_options[youtube_height]' value='{$this->options['youtube_height']}' type='number' min='200' max='500' />";
- }
- public function youtube_number_of_videos(){
- echo "<input name='youtube_plugin_options[youtube_number_of_videos]' value='{$this->options['youtube_number_of_videos']}' type='number' min='5' max='20' />";
- }
- // Player width heading
- public function youtube_preview(){
- // print_r($this->options['youtube_keyword']);
- ?>
- <button name="searchButton" type="button" value="Search for eminem we made you" onclick="searchClicked()"/>
- Results:<br/>
- <div id="videoResultsDiv"></div>
- <script type="text/javascript">
- function searchClicked()
- {
- jQuery("#videoResultsDiv").html("Loading YouTube videos ...");
- var script = jQuery("<script/>",{
- "id" : "jsonScript",
- "type": "text/javascript",
- "src" : "http://gdata.youtube.com/feeds/api/videos?" +
- "&alt=json-in-script" +
- "&q=<?php echo $this->options['youtube_keyword']?>"+
- "&author=<?php echo $this->options['youtube_author'] ?>" +
- "&max-results=<?php echo $this->options['youtube_number_of_videos'] ?>" +
- "&callback=showMyVideos" +
- "&orderby=relevance" +
- "&sortorder=descending" +
- "&format=5" +
- "&fmt=18"
- });
- jQuery("head").append(script);
- }
- function getVideoId(url)
- {
- return url.substring(url.indexOf("=")+1,url.lastIndexOf("&"));
- }
- var testing = [];
- var vid;
- function showMyVideos(data)
- {
- var feed = data.feed;
- var entries = feed.entry || [];
- var html = ["<ul>"];
- for (var i = 0; i < entries.length; i++)
- {
- var entry = entries[i];
- var playCount = entry.yt$statistics.viewCount.valueOf() + " views";
- var title = entry.title.$t;
- var vid = (getVideoId(entry.link[0].href));
- testing[i] = vid;
- var lnk = "<a href = '" + entry.link[0].href + "'>link</a>";
- html.push("<li>", title, ", ", playCount, ", ", lnk, "</li>");
- }
- html.push("</ul>");
- jQuery("#videoResultsDiv").html(html.join(""));
- }
- jQuery(document).ready(function($) {
- searchClicked();
- });
- </script>
- <?php } //youtube_preview
- public function playershow(){
- $pl= "'" ?>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js"></script>
- <script type="text/javascript">
- var ytplayer_playlist=[];
- var ytplayer_playitem = 0;
- swfobject.addLoadEvent(ytplayer_render_player);
- swfobject.addLoadEvent(ytplayer_render_playlist);
- function ytplayer_render_player()
- {
- swfobject.embedSWF
- ("http://www.youtube.com/v/" + ytplayer_playlist[ytplayer_playitem] + "&enablejsapi=1&rel=0&fs=1&version=3",
- "ytplayer_div1",
- "<?php echo $this->options['youtube_width']; ?>",
- "<?php echo $this->options['youtube_height']; ?>",
- "10",
- null,
- null,
- {allowScriptAccess:"always",allowFullScreen:"true"},
- {id:"ytplayer_object"});
- }
- function ytplayer_render_playlist()
- {
- for(var i=0;i<ytplayer_playlist.length;i++)
- {
- var img=document.createElement("img");
- img.src="http://img.youtube.com/vi/" + ytplayer_playlist[i] + "/default.jpg";
- var a=document.createElement("a");
- a.href="#ytplayer";
- a.onclick=(function(j)
- {
- return function()
- {
- ytplayer_playitem=j;
- ytplayer_playlazy(1000);
- };
- })(i);
- a.appendChild(img);
- document.getElementById("ytplayer_div2").appendChild(a);
- }
- }
- function ytplayer_playlazy(delay)
- {
- if (typeof ytplayer_playlazy.timeoutid != "undefined")
- {
- window.clearTimeout(ytplayer_playlazy.timeoutid);
- }
- ytplayer_playlazy.timeoutid=window.setTimeout(ytplayer_play, delay);
- }
- function ytplayer_play()
- {
- var o=document.getElementById("ytplayer_object");
- if (o)
- {
- o.loadVideoById(ytplayer_playlist[ytplayer_playitem]);
- }
- }
- function onYouTubePlayerReady(playerid)
- {
- var o=document.getElementById("ytplayer_object");
- if (o)
- {
- o.addEventListener("onStateChange", "ytplayerOnStateChange");
- o.addEventListener("onError", "ytplayerOnError");
- }
- }
- function ytplayerOnStateChange(state)
- {
- if (state==0)
- {
- ytplayer_playitem += 1;
- ytplayer_playitem %= ytplayer_playlist.length;
- ytplayer_playlazy(5000);
- }
- }
- function ytplayerOnError(error)
- {
- if (error)
- {
- ytplayer_playitem += 1;
- ytplayer_playitem %= ytplayer_playlist.length;
- ytplayer_playlazy(5000);
- }
- }
- var numb="<?php echo $this->options['youtube_number_of_videos'] ?>";
- var varr = testing;
- for (x=0; x<numb; x++) {
- ytplayer_playlist.push(varr[x]);
- }
- </script>
- <?php echo "'"; ?>
- <?php $l1= "'"; ?> <a name="ytplayer"></a> <?php echo "'"; ?>
- <?php $l2= "'"; ?> <div id="ytplayer_div1">You need Flash player 10+ and JavaScript enabled to view this video.</div><?php echo "'"; ?>
- <?php $l3= "'"; ?> <div id="ytplayer_div2"></div> <?php echo "'"; ?>
- <?php return "<div class=\"main_box\">".$l1.$pl.$l2."<div style=\"float:none;width:488px;overflow-x:scroll;\">".$l3."</div>"."</div>";
- }
- } // end Youtube_Content_class
- /****
- *
- *
- TRIGGERS ADMIN OPTION ON DASHBOARD
- *
- */
- add_action('admin_menu', 'youtube_content_menu');
- function youtube_content_menu() {
- Youtube_Content_class::add_menu_page();
- }
- add_action('admin_init', 'youtube_register_settings');
- function youtube_register_settings(){
- new Youtube_Content_class();
- }
- function load_javascripts()
- {
- // register first script
- wp_register_script( 'google-script', 'http://www.google.com/jsapi', array(), null, false );
- // wp_register_script( 'user-script', plugins_url( '/js/youtube-script.js', __FILE__ ), array( 'jquery' ) );
- // then enque it
- wp_enqueue_script( 'google-script' );
- // wp_enqueue_script( 'user-script' );
- }
- add_action('init','load_javascripts');
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement