roubagalinhas Posted April 23, 2009 Share Posted April 23, 2009 e que tal voltarem a activar o script aqui no forum? (já) não é compatível? Link to comment Share on other sites More sharing options...
Skywriter Posted April 23, 2009 Author Share Posted April 23, 2009 Tive a tirar as formatações e alterar mais algumas, poucas, coisas e o código final é este: <?php /*-------------------------------------------------------------------------*/ // regex_parse_imdb: cria a caixinha do imdb // // function coded by jamesp0tter /*-------------------------------------------------------------------------*/ $imdb_count = 0; function regex_parse_imdb($attr, $content="") { global $imdb_count; // supostamente nao deve acontecer, maaaaas... if ($content == "") return; //numero de tags [imdb] processadas para este post $imdb_count++; //se superior ao nº permitido, terminar if ($imdb_count > 1) return; /* eleminar tudo o qe nao seja numeros do argumento (http://www.imdb.com/title/tt0326905/, mdb.com/title/tt0326905/, http://www.imdb.com/title/tt0326905/www.imdb.com/, etc --> 0326905) */ $idfilme = preg_replace('/[^0-9]/i',"\\1",$content); if (strlen($idfilme) != 7) { $this->error = 'imdb_nao7'; return; } // get css styles //$imdb_style = $this->wrap_style('imdb'); // url imdb $imdb_url = "http://imdb.com/title/tt".$idfilme."/"; // grab html $imdb = @fopen($imdb_url, "r"); if ($imdb == FALSE) { $this->error = 'imdb_invalido'; return; } while (!feof($imdb)) $imdb_raw .= fgets($imdb, 4096); fclose($imdb); // e agora separar a informaçao // capa // preg_match ( "'<img border=\"0\" alt=\"cover\" src=\"(.*?)\"'" , $imdb_raw , $capa ); //$capa = $capa[1]; // titulo do filme preg_match ( "'>IMDb message board for (.*?)</a>'" , $imdb_raw , $titulo ); $titulo = strip_tags($titulo[1]); // genero preg_match ( "'<h5>Genre:</h5>\\n(.*?)(>more</a>)'" , $imdb_raw , $genero ); $genero = @strip_tags($genero[1]); // resumo preg_match ( "'<h5>Plot:</h5>\\n(.*?)( <a class)'" , $imdb_raw , $resumo ); $resumo = rtrim($resumo[1],'|'); // duraçao preg_match ( "'<h5>Runtime:</h5>\\n(.*?)\\n</div>'" , $imdb_raw , $duracao ); $duracao = @$duracao[1]; // votaçao, nº d votos, e estrelas preg_match ( "'>(.*?) votes</a>'" , $imdb_raw , $votacao ); $votos = @$votacao[1]; preg_match ( "'</div>\\n<div class=(.*?)>\\n<b>(.*?)/10</b>'" , $imdb_raw , $votacao ); $votacao = @$votacao[2]; $estrelas = 4 + $votacao * 9 + log10($votacao); $estrelas = '<span style="font-size: 16px; background: url(\'http://www.fastnewsforum.org/style_images/1/imdb_rate_full.gif\')"><img src="http://upload.wikimedia.org/wikipedia/commons/3/33/Yellow_Square.png" width="'.($estrelas - 1).'" height="16"></span><span style="font-size: 16px; background: url(\'http://www.fastnewsforum.org/style_images/1/imdb_rate_none.gif\') right"><img src="http://www.bedbathandbeyond.com/assets/product_images/40/white.jpg" width="'.(101 - $estrelas).'" height="16"></span>'; // top250 preg_match ( "'Top 250: (.*?)</a>'" , $imdb_raw , $top ); $top = @strip_tags($top[0]); // slogan if ($top <> "") preg_match ( "'<h5>Tagline:</h5>\\n(.*?)\\n'" , $imdb_raw , $slogan ); else preg_match ( "'<h5>Tagline:</h5>\\n(.*?)<(.*?)\\n'" , $imdb_raw , $slogan ); $slogan = @$slogan[1]; // premios preg_match ( "'<h5>Awards:</h5> \\n(.*?)(\\n<a)'" , $imdb_raw , $premios ); $premios = @$premios[1]; // cast preg_match ( "'link=/name(.*?)/name/(.*?)>(.*?)</a></td>(.*?)link=/name(.*?)/name/(.*?)>(.*?)</a></td>(.*?)link=/name(.*?)/name/(.*?)>(.*?)</a></td>(.*?)link=/name(.*?)/name/(.*?)>(.*?)</a></td>(.*?)link=/name(.*?)/name/(.*?)>(.*?)</a></td>'" , $imdb_raw , $cast ); $cast[2] = rtrim($cast[2], '"'); $cast[6] = rtrim($cast[6], '"'); $cast[10] = rtrim($cast[10], '"'); $cast[14] = rtrim($cast[14], '"'); $cast[18] = rtrim($cast[18], '"'); $imdb_name = "http://imdb.com/name/"; // $imdb_final vai ser o codigo html final da caixa IMDB $imdb_final = "<blockquote>\n"; $imdb_final .= "<b><a href='".$imdb_url."'target = '_blank' >".$titulo."</a></b><br>"; if ($genero <> "") $imdb_final .= "<b>Género</b>: $genero<br>\n"; if ($slogan <> "") $imdb_final .= "<b>Slogan</b>: $slogan<br>\n"; if ($resumo <> "") $imdb_final .= "<b>Resumo</b>: $resumo<br>\n"; if ($cast <> "") $imdb_final .= "<b>Elenco</b>: <a href=".$imdb_name."$cast[2]> $cast[3]</a> <a href=".$imdb_name."$cast[6]> $cast[7]</a> <a href=".$imdb_name."$cast[10]> $cast[11]</a> <a href=".$imdb_name."$cast[14]> $cast[15]</a> <a href=".$imdb_name."$cast[18]> $cast[19]</a><br>\n"; if ($votos <> "") $imdb_final .= "<b>Pontuação</b>: $votacao/10 ($votos votos)<br>\n"; // if ($votos <> "") $imdb_final .= "<b>Pontuação</b>: $votacao/10 $estrelas ($votos votos) <b>$top</b><br>\n"; if ($duracao <> "") $imdb_final .= "<b>Duração</b>: $duracao<br>\n"; if ($premios <> "") $imdb_final .= "<b>Prémios</b>: $premios<br>\n"; $imdb_final .= "</blockquote>\n"; //e finalmente mandar todo o html processado para o post return "<!--ImdbBegin".$idfilme."-->\n".$imdb_style['START'].$imdb_final.$imdb_style['END']."\n<!--ImdbEnd".$idfilme."-->\n"; } add_shortcode('imdb', 'regex_parse_imdb'); ?>quem quiser usar no Wordpress, basta inserir este código na página single.php do template, e quando quiserem chamar a função a partir de um post basta escreverem: [imdb]id do filme[/imdb] Exemplo: [imdb]1013752[/imdb] Depois podem personalizar à vossa maneira. No meu caso, ficou assim (por enquanto): Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now