public static function get_external_videos_for_search_string($external_video_library_id, $search_string, $start, $duration, $options = array('count' => FALSE, 'admin' => FALSE))
 {
     /*
      *Prepare the string
      */
     $search_string = strtolower($search_string);
     /*
      * Search Names of the videos
      */
     $named_videos_sql = VideoLibrary_DatabaseHelper::get_sql_parts_for_external_videos_by_searching_in_video_names($external_video_library_id, $search_string, $start, $duration, array('count' => $options['count'], 'admin' => $options['admin'], 'union_query' => TRUE));
     if ($options['count'] == FALSE) {
         /*
          * Because the tagged sql has an extra column (for its 
          * quirky merging behaviour) I have to insert a dummy one 
          * here to union them
          */
         $named_videos_sql['select'] .= ',' . "\n" . 'external_video_id';
     }
     /*
      * Search Tags of the videos,
      */
     $tag_names = array(VideoLibrary_TagsHelper::filter_tag($search_string));
     $search_string_exploded = explode(' ', trim($search_string));
     foreach ($search_string_exploded as $tag_name) {
         $tag_names[] = VideoLibrary_TagsHelper::filter_tag($tag_name);
     }
     // print_r($tag_names);exit;
     /*
      * Old style, uses tag1 AND tag2, so less results
      */
     // $tagged_videos_sql = VideoLibrary_DatabaseHelper::
     // get_sql_parts_for_external_videos_for_tag_names(
     // $external_video_library_id,
     // $tag_names,
     // NULL,
     // $start,
     // $duration,
     // array(
     // 'count' => $options['count'],
     // 'admin' => $options['admin'],
     // 'union_query' => TRUE
     // )
     // );
     /*
      * This related vids function uses tag1 OR tag2
      */
     $tag_names = VideoLibrary_DatabaseHelper::limit_tags($tag_names);
     $tagged_videos_sql = VideoLibrary_RelatedVideosDatabaseHelper::get_sql_parts_for_external_videos_matching_any_of_these_tags($external_video_library_id, $tag_names, NULL, NULL, $start, $duration, array('count' => $options['count'], 'use_ids_for_tags' => FALSE, 'union_query' => TRUE));
     $videos = self::get_external_videos_through_union_query(array($tagged_videos_sql, $named_videos_sql), array('count' => $options['count']));
     // print_r($videos);exit;
     return $videos;
 }
    public function edit_something()
    {
        //print_r($_POST);exit;
        //print_r($_GET);exit;
        $dbh = DB::m();
        $id = mysql_real_escape_string($_GET['id']);
        $tag = VideoLibrary_TagsHelper::filter_tag($_POST['tag']);
        $tag = mysql_real_escape_string($tag);
        $principal = mysql_real_escape_string($_POST['principal']);
        $stmt = <<<SQL
UPDATE
\thpi_video_library_tags
SET
\ttag = '{$tag}',
\tprincipal = '{$principal}'
WHERE
\tid = {$id}

SQL;
        //print_r($stmt);exit;
        $result = mysql_query($stmt, $dbh);
        return $id;
    }
 public function get_head_title_from_search_query($query)
 {
     $query = VideoLibrary_TagsHelper::filter_tag($query);
     $query = ucwords($query);
     $query = trim($query);
     return $query . ' Videos';
 }
    protected function do_actions()
    {
        //print_r($_POST);exit;
        /** EXAMPLE FORM POST
         *<textarea name="contents">
         *$contents
         *</textarea>
         *<input type="hidden" name="filter_function" value="$filter_function" />
         *<input type="hidden" name="page" value="$page" />
         *<input type="hidden" name="section" value="$section" />
         *<input type="hidden" name="language" value="$name" />
         *<input type="hidden" name="path" value="$path" />
         *<input type="submit" value="Edit" /> 
         */
        $return_url = VideoLibrary_URLHelper::get_home_page_url();
        if (Admin_LogInHelper::is_logged_id()) {
            $return_url = $this->get_redirect_script_return_url();
            // print_r($return_url);exit;
            try {
                if (isset($_POST['name']) && $_POST['name'] != '' && (isset($_POST['length']) && $this->validate_length($_POST['length'])) && (isset($_POST['external_video_provider_id']) && $_POST['external_video_provider_id'] != '') && (isset($_POST['external_video_library_id']) && $_POST['external_video_library_id'] != '') && (isset($_POST['providers_internal_id']) && $_POST['providers_internal_id'] != '') && (isset($_POST['status']) && $_POST['status'] != '') && $this->is_video_unique($_POST['external_video_provider_id'], $_POST['providers_internal_id'])) {
                    $dbh = DB::m();
                    $name = htmlentities($_POST['name']);
                    $name = mysql_real_escape_string($name, $dbh);
                    $length_seconds = $this->get_length_in_seconds_from_input($_POST['length']);
                    $length_seconds = mysql_real_escape_string($length_seconds);
                    $external_video_library_id = mysql_real_escape_string($_POST['external_video_library_id']);
                    $external_video_provider_id = mysql_real_escape_string($_POST['external_video_provider_id']);
                    $providers_internal_id = mysql_real_escape_string($_POST['providers_internal_id']);
                    $status = mysql_real_escape_string($_POST['status']);
                    $added_by = mysql_real_escape_string(VideoLibrary_AdminHelper::get_logged_in_admin_user_name());
                    $tags = VideoLibrary_TagsHelper::get_tags_array_for_admin_post_input($_POST['tags']);
                    //print_r($tags);exit;
                    $stmt = <<<SQL
INSERT
INTO
    hpi_video_library_external_videos
SET
    name = '{$name}',
    length_seconds = '{$length_seconds}',
    external_video_provider_id = '{$external_video_provider_id}',
    providers_internal_id = '{$providers_internal_id}',
    status = '{$status}',
    date_added = NOW(),
    added_by = '{$added_by}'

SQL;
                    //print_r($stmt);exit;
                    $result = mysql_query($stmt, $dbh);
                    $id = mysql_insert_id($dbh);
                    $stmt_2 = <<<SQL
INSERT
INTO
    hpi_video_library_ext_vid_to_ext_vid_lib_links
SET
    external_video_id = '{$id}',
    external_video_library_id = '{$external_video_library_id}'

SQL;
                    //print_r($stmt);exit;
                    $result = mysql_query($stmt_2, $dbh);
                    foreach ($tags as $tag) {
                        $tag = mysql_real_escape_string($tag);
                        $tag_query_1 = <<<SQL
INSERT
INTO
    hpi_video_library_tags
SET
    tag = '{$tag}',
    principal = 'no'

SQL;
                        $result = mysql_query($tag_query_1, $dbh);
                        if ($result) {
                            $tag_id = mysql_insert_id($dbh);
                        } else {
                            if (mysql_errno() == 1062) {
                                #duplicate
                                $tag_id = VideoLibrary_DatabaseHelper::get_tag_id_for_tag_string($tag);
                            }
                        }
                        $tag_query_2 = <<<SQL
INSERT
INTO
    hpi_video_library_tags_to_ext_vid_links
SET
    tag_id = '{$tag_id}',
    external_video_id = '{$id}'

SQL;
                        $result = mysql_query($tag_query_2, $dbh);
                        if (!$result) {
                            if (mysql_errno() == 1062) {
                                #duplicate
                                # Do nothing, link already exists
                            }
                        }
                    }
                    $this->add_video_to_thumbnail_queue($id);
                } else {
                    throw new VideoLibrary_AddVideoDataNotSetException();
                }
            } catch (VideoLibrary_Exception $e) {
                $return_url->set_get_variable('error', urlencode($e->getMessage()));
            }
            $return_url->set_get_variable('edited', '1');
            $return_url->set_get_variable('message', 'Added Video ' . urlencode('#') . $id);
        }
        $this->set_return_to_url($return_url);
    }
    public function edit_something()
    {
        //print_r($_POST);exit;
        //print_r($_GET);exit;
        if (isset($_POST['name']) && $_POST['name'] != '' && (isset($_POST['length']) && $this->validate_length($_POST['length'])) && (isset($_POST['external_video_provider_id']) && $_POST['external_video_provider_id'] != '') && (isset($_POST['external_video_library_id']) && $_POST['external_video_library_id'] != '') && (isset($_POST['providers_internal_id']) && $_POST['providers_internal_id'] != '') && (isset($_POST['status']) && $_POST['status'] != '')) {
            $dbh = DB::m();
            $id = mysql_real_escape_string($_GET['id']);
            $name = htmlentities($_POST['name']);
            $name = mysql_real_escape_string($name);
            $length_seconds = $this->get_length_in_seconds_from_input($_POST['length']);
            $length_seconds = mysql_real_escape_string($length_seconds);
            $external_video_provider_id = mysql_real_escape_string($_POST['external_video_provider_id']);
            $external_video_library_id = mysql_real_escape_string($_POST['external_video_library_id']);
            $providers_internal_id = mysql_real_escape_string($_POST['providers_internal_id']);
            $status = mysql_real_escape_string($_POST['status']);
            $last_edited_by = mysql_real_escape_string(VideoLibrary_AdminHelper::get_logged_in_admin_user_name());
            $tags = VideoLibrary_TagsHelper::get_tags_array_for_admin_post_input($_POST['tags']);
            $stmt = <<<SQL
UPDATE
    hpi_video_library_external_videos
SET
    name = '{$name}',
    length_seconds = '{$length_seconds}',
    external_video_provider_id = '{$external_video_provider_id}',
    providers_internal_id = '{$providers_internal_id}',
    status = '{$status}',
    last_edited_by = '{$last_edited_by}',
    date_last_edited = NOW()

WHERE
    id = {$id}

SQL;
            //print_r($stmt);exit;
            $result = mysql_query($stmt, $dbh);
            $stmt_2 = <<<SQL
UPDATE
    hpi_video_library_ext_vid_to_ext_vid_lib_links
SET
    external_video_library_id = '{$external_video_library_id}'
WHERE
    external_video_id = '{$id}'

SQL;
            //print_r($stmt);exit;
            $result = mysql_query($stmt_2, $dbh);
            /*
             * TAGS
             */
            $stmt_3 = <<<SQL
DELETE
FROM
    hpi_video_library_tags_to_ext_vid_links
WHERE
    external_video_id = {$id}
SQL;
            #echo $stmt; exit;
            mysql_query($stmt_3, $dbh);
            foreach ($tags as $tag) {
                $tag = mysql_real_escape_string($tag);
                $tag_query_1 = <<<SQL
INSERT
INTO
    hpi_video_library_tags
SET
    tag = '{$tag}',
    principal = 'no'

SQL;
                //print_r($tag_query_1);exit;
                $result = mysql_query($tag_query_1, $dbh);
                if ($result) {
                    $tag_id = mysql_insert_id($dbh);
                } else {
                    if (mysql_errno() == 1062) {
                        #duplicate
                        $tag_id = VideoLibrary_DatabaseHelper::get_tag_id_for_tag_string($tag);
                    }
                }
                $tag_query_2 = <<<SQL
INSERT
INTO
    hpi_video_library_tags_to_ext_vid_links
SET
    tag_id = '{$tag_id}',
    external_video_id = '{$id}'

SQL;
                $result = mysql_query($tag_query_2, $dbh);
                if (!$result) {
                    if (mysql_errno() == 1062) {
                        #duplicate
                        # Do nothing, link already exists
                    }
                }
            }
            VideoLibrary_DatabaseHelper::delete_orphaned_tags();
            return $id;
        } else {
            throw new VideoLibrary_EditVideoDataNotSetException();
        }
    }