"http://blogsearch.google.com/blogsearch?client=news&um=1&hl=en&scoring=d&q=SEARCHTERM&ie=utf-8", "google_blogsearch" => "http://blogsearch.google.com/blogsearch_feeds?client=news&um=1&hl=en&scoring=d&q=SEARCHTERM&ie=utf-8&num=NUMRESULTS&output=rss", "twitter_search" => "http://search.twitter.com/search.atom?q=SEARCHTERM&rpp=NUMRESULTS" ); /** * constructor */ function SMIRC($page_title, $title_separators, $required_keyword, $data_sources, $header_text, $animation=false){ $this->page_title = $page_title; $this->title_separators = $title_separators; $this->required_keyword = $required_keyword; $this->data_sources = $data_sources; if($header_text == ""){ $this->header_text = $this->default_header_text; } else { $this->header_text = $header_text; } $this->animation = $animation; } /** * main work method. create url, get data, parse, prep and return xhtml */ function getContent(){ //don't bother doing anything if we don't have any data sources if(!is_array($this->data_sources)){ return false; } //if we have delimiter characters, use them to split up the title $searchterm = $this->_getSearchTerm(); //start assembling data foreach($this->data_sources as $source_array){ //prep url $data_source = str_replace("SEARCHTERM", $searchterm, $this->search_urls[$source_array[0]]); $data_source = str_replace("NUMRESULTS", $source_array[1], $data_source); //get data, put into array $rss_data_array[$source_array[0]]['results'] = $this->_getResults($data_source, split("\n", $source_array[2])); $rss_data_array[$source_array[0]]['header'] = $source_array[3]; } //create and return xhtml for all sources $xhtml = $this->_createXHTML($rss_data_array, $this->header_text); return $xhtml; } /** * create and return all xhtml */ function _createXHTML($rss_array, $header_text){ foreach($rss_array as $data_source => $results_and_header){ //run function to get xhtml from rss object -- name of function depends on data source. $lists_xhtml .= $this->$data_source($results_and_header['results'], $results_and_header['header']); } if($lists_xhtml == ""){ //no results = no xhtml return false; } else { $all_xhtml = '
'; $all_xhtml .= ''; $all_xhtml .= '"; $all_xhtml .= '
'; return $all_xhtml; } } /** * GOOGLE BLOGSEARCH: iterate through rss object and create standards-compliant xhtml for the resultset, while ignoring items in exclude list */ function google_blogsearch($rss_items, $result_header){ $list_xhtml = ""; if(count($rss_items) >= 1){ $list_xhtml = "
  • $result_header
  • "; foreach($rss_items as $item){ $fixed_item = $this->_parseItem($item); $list_xhtml .= '
  • '.$fixed_item['title'].'
    by '.$fixed_item['dc']['creator'].'
    '.strip_tags($fixed_item['summary']).'
  • '; } } return $list_xhtml; } /** * TWITTER SEARCH: iterate through rss object and create standards-compliant xhtml for the resultset * search.twitter.com doesn't seem to have results limits, so we'll have to do that manually. */ function twitter_search($rss_items, $result_header){ $list_xhtml = ""; if(count($rss_items) >= 1){ $list_xhtml = "
  • $result_header
  • "; foreach($rss_items as $item){ $fixed_item = $this->_parseItem($item); $list_xhtml .= '
  • '.$fixed_item['atom_content'].' on '.date(get_option('date_format'), strtotime($fixed_item['published'])).' by '.$fixed_item['author_name'].'
  • '; } } return $list_xhtml; } /** * use title separators (if any) to prepare search term(s) */ function _getSearchTerm(){ if(is_array($this->title_separators)){ //make this easy -- replace all matches to items in separators array with a common character $title = $this->page_title; foreach($this->title_separators as $delimiter){ $title = str_replace($delimiter, "###", $title); } //split by this common character $arr = split("###", $title); //iterate, trim, add to array foreach($arr as $phrase){ $searchterms[] = trim($phrase); } $searchterms[] = $this->required_keyword; } else { //no separators. search terms are title and required keyword if any $searchterms[] = $this->page_title; $searchterms[] = $this->required_keyword; } //iterate through searchterms and add quotation marks / urlencode as needed $str = ""; foreach($searchterms as $term){ $str .= '+"' . urlencode($term) . '"'; } return $str; } /** * using the exclude list (if set) and MagpieRSS, return an array of data sources and results */ function _getResults($data_source, $exclude_list){ $rss = fetch_rss($data_source); //set total results $this->_setTotalResults($rss); $results = $rss->items; //is there an exclude list? if(is_array($exclude_list)){ //yes. iterate and remove foreach($exclude_list as $exclude_me){ $matches = $this->array_search_recursive($exclude_me, $results); unset($results[$matches[0]]); } } return $results; } /** * unfortunately-ghetto way to remove google's BOLDING of matching wordds */ function _parseItem($arr){ $newarr; if(!is_array($arr)){ return $arr; } foreach($arr as $key => $value){ $newval = str_replace("", "", $value); $newval = str_replace("", "", $newval); $newarr[$key] = $newval; } return $newarr; } /** * recursively search a multidimensional array */ function array_search_recursive($needle, $haystack, $path=array()){ foreach($haystack as $id => $val){ $path2 = $path; $path2[] = $id; if(eregi($needle, $val)){ return $path2; } else if(is_array($val)){ if($ret = $this->array_search_recursive($needle, $val, $path2)){ return $ret; } } return false; } } /** * add to total results count */ function _setTotalResults($rss){ if($rss->channel['opensearch']['totalresults']){ $this->total_results = $this->total_results + $rss->channel['opensearch']['totalresults']; } } /** * create header text / link */ function _getHeaderXHTML(){ //create link $link = str_replace("SEARCHTERM", $this->_getSearchTerm(), $this->search_urls['google_blogsearch_norss']); return "" . number_format($this->total_results) . " " . $this->header_text . ""; } } ?> 2009 September 16
    VIP Channel
    Täglich frische VIP News

    Search Our Site

    Recent Posts

    Meta

    :: Archive for September 16th, 2009

     

    September 16th, 2009 | in VIP News | Leave a comment |

    Was ist denn bei Kelis und Nas los? Scheint, als würden sie sich wieder blendend verstehen. Auf der Geburtstagsparty von Nas sah man das ehemalige Paar sehr innig und vertraut. Und das obwohl Kelis Nas verboten hatte, bei der Geburt des gemeinsamen Sohnes Knight dabei zu sein. Wie dem auch sei, wir hoffen die Versöhnung hält, allein zum Wohl des gemeinsamen Kindes.

    No tags for this post.

    September 16th, 2009 | in VIP News | Leave a comment |

    Never-Ending-Story Teil 967843: Chris Brown vermisst seine Ex-Freundin Rihanna, und die ganze Welt bekommt das zu lesen. Auf Twitter schrieb er: “Mein Herz ist unvollkommen…der vollständige Teil ist die Liebe zu meinen Fans, meiner Karriere, meinen Freunden, meiner Familie…und Gott. Aber mir fehlt jemand oder etwas.” Diese Aussage verlinkte er mit dem Video seines neuen Songs „Changed Man“, in dem man ihn und Rihanna kuschelnd, lachend und knutschend sieht. Wir werden sehen, wie dies weiter verlaufen wird.



    September 16th, 2009 | in VIP News | Leave a comment |

    Robbie Williams hat nun in einem Interview bekannt, dass er seine Freundin Ayda Field heiraten will und sich sogar Kinder mit ihr wünscht. Es scheint als seien seine wilde Zeiten mit Drogen und Alkohol endgültig vorbei. Im Interview mit “20 Minuten” verkündet der Sänger, dass er bereits aktiv Familienplanung mit seiner Freundin Ayda Field betreibe. Sie sei für ihn die Frau fürs Leben. Angeblich nennt er sie sogar bereits Frau Williams, so gestand er. Nun denn, wir sind gespannt wann die Hochzeitsglocken läuten.

    No tags for this post.

    September 16th, 2009 | in VIP News | Leave a comment |

    Elton John, der vor einigen Tagen bei einem Besuch in einem ukrainischen Kinderheim Adoptionswünsche äußerte, bekam nun eine Absage der ukrainischen Regierung: Ihm wurde vom ukrainischen Minister Yuriy Pavlenko gesagt, er und sein Lebensgefährte David Furnish seinen “zu alt” um ein Kind aus der Ukraine zu adoptieren. Laut Angaben des Ministers ist der Altersunterschied zwischen dem 62-jährigen Sänger Elton John und dem Baby Namens Lev zu groß, um eine Adoption zu gewähren. Außerdem würde Johns und Furnishs Partnerschaft in der Ukraine nicht als offizielle Ehe gelten, fügte der Minister hinzu. Eine Stellungnahme Elton Johns zu dieser Absage ist noch nicht bekannt.