public function init()
 {
     if (defined('MULTISITE') && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE && apply_filters('kaltura_use_network_settings', true)) {
         add_action('network_admin_menu', $this->callback('networkAdminMenuAction'));
     }
     if (!KalturaHelpers::getOption('kaltura_partner_id') && !isset($_POST['submit']) && !strpos($_SERVER['REQUEST_URI'], 'page=kaltura_options')) {
         add_action('admin_notices', $this->callback('adminWarning'));
         return;
     }
     // filters
     add_filter('comment_text', $this->callback('commentTextFilter'));
     add_filter('media_buttons_context', $this->callback('mediaButtonsContextFilter'));
     add_filter('media_upload_tabs', $this->callback('mediaUploadTabsFilter'));
     add_filter('mce_external_plugins', $this->callback('mceExternalPluginsFilter'));
     add_filter('tiny_mce_version', $this->callback('tinyMceVersionFilter'));
     // actions
     add_action('admin_menu', $this->callback('adminMenuAction'));
     add_action('wp_print_scripts', $this->callback('printScripts'));
     add_action('wp_enqueue_scripts', $this->callback('enqueueScripts'));
     add_action('wp_enqueue_styles', $this->callback('enqueueStyles'));
     add_action('admin_enqueue_scripts', $this->callback('adminEnqueueScripts'));
     // media upload actions
     add_action('media_upload_kaltura_upload', $this->callback('mediaUploadAction'));
     add_action('media_upload_kaltura_browse', $this->callback('mediaBrowseAction'));
     add_action('admin_print_scripts-media-upload-popup', $this->callback('mediaUploadPrintScriptsAction'));
     add_action('save_post', $this->callback('savePost'));
     add_action('wp_ajax_kaltura_ajax', $this->callback('executeLibraryController'));
     if (KalturaHelpers::videoCommentsEnabled()) {
         add_action('comment_form', $this->callback('commentFormAction'));
     }
     add_shortcode('kaltura-widget', $this->callback('shortcodeHandler'));
     add_filter('parse_request', $this->callback('parseRequest'));
 }
 protected function validateVideoComment()
 {
     $js_error = '';
     // wordpress validation code from wp-comments-post (with slight changes)
     $comment_author = trim(strip_tags($_GET['author']));
     $comment_author_email = trim($_GET['email']);
     $user = wp_get_current_user();
     if ($user->ID) {
         global $wpdb;
         $comment_author = $wpdb->escape($user->display_name);
         $comment_author_email = $wpdb->escape($user->user_email);
     } else {
         if (get_option('comment_registration')) {
             return __('Sorry, you must be logged in to post a comment.');
         }
     }
     if (get_option('require_name_email') && !$user->ID) {
         if (6 > strlen($comment_author_email) || '' == $comment_author) {
             return __('Error: please fill the required fields (name, email).');
         } elseif (!is_email($comment_author_email)) {
             return __('Error: please enter a valid email address.');
         }
     }
     // end of wordpress validation code
     if (!KalturaHelpers::videoCommentsEnabled()) {
         return __('You do not have sufficient permissions to access this page.');
     }
     if (!KalturaHelpers::anonymousCommentsAllowed() && !$user->ID) {
         return __('You must be logged in to post a comment.');
     }
     $post_id = $_GET['postid'];
     if (!$post_id) {
         return __('Invalid post id.');
     }
     return '';
 }