перестал работать модуль в джумле 1.5. после переноса

N4
На сайте с 19.09.2008
Offline
272
671

перенес сайт на хостинг и модуль fsShoutcast перестал работать, и более того стал грузить сайт ужасно, каждая страница минуты по 2-3 грузится наверное. проверил на локал хосте, и кое что заметил:

если отрубится от инета - модуль будет не работать и тормозить сайт, точно также как и на хостинге! а если врубить инет, то все ок!

потому появилась мысль.. этот модуль пытается получить информацию о названии текущей песни, со стороннего сайта, после чего на сайте пишут название песни+картинка+кнопка слушать... но по каким-то не известным причинам, этого не происходит, и модуль не может получить ответа от радиостанции в результате сайт виснет

ниже приведу код основных файлов (там есть еще парочка но там по управлению модуля в админке) вдруг кто-то что-то в этом понимает

mod_fsShoutcast.php

<?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); // Include the syndicate functions only once require_once (dirname(__FILE__).DS.'helper.php'); $data = modShoutcast::getContent( $params ); $titel = modShoutcast::filterName($params,$data); $listen = modShoutcast::getListenButton( $params ); $image = modShoutcast::getImageFor($data,$params); if($titel!="Offline") require( JModuleHelper::getLayoutPath( 'mod_fsShoutcast' ) );//executes the default.php in tmpl ?>

helper.php

<?php define("JA",1); define("NEIN",2); define("NL","\r\n"); class modShoutcast{ function getListenbutton($params){ // now make listen button switch($params->get('s_listen')){ case JA: $link_item = "<b>Слушать</b>"; break; case NEIN: return ""; break; case 3://image $link_item = '<img src="/modules/mod_fsShoutcast/tmpl/images/winamp.gif" border="0" alt="Слушать" />'; break; } $listen = '<noindex><a href="http://kawaii-radio.net/listen.m3u" rel="nofollow">'.$link_item.'</a></noindex>'; return $listen; } function getImageFor($data,$params){ $titel=$data[6]; $image = ""; if($params->get('s_images') == JA){ $dir = JPATH_SITE.DS.$params->get('imagepath'); $file = $dir.$titel.".jpg"; if($data[1]==0){ $file = "/modules/mod_fsShoutcast/tmpl/images/offline.gif"; $title = "OFFLINE"; }else{ if( file_exists($file)){ $file = $params->get('imagepath').$titel.".jpg"; }else{ /* no image found */ $file = "/modules/mod_fsShoutcast/tmpl/images/toradora.jpg"; } } $image='<img src="'.$file.'" alt="'.$data[7].'" border="0" />'; } return $image; } function filterName($params,$data){ if($data[1]==0) return "Offline"; $name = $data[7]; if(strlen($params->get('filter'))>0){ $filter = explode("|",$params->get('filter')); $replace = explode("|",$params->get('replace')); for ($i = 0; $i < sizeof($filter); $i++) { $name=ereg_replace($filter[$i],$replace[$i],$name); } } return $name; } function getContent($params){ $host = $params->get('server'); $port = $params->get('port'); // connect to sc_serv $data = array(0,0,0,0,0,0,""); //moved up, because when socket is opend but timedout, no data will be setup $sp=@fsockopen($host,$port); if(!$sp){ }else{ // set_socket_blocking($sp,false); fputs($sp,"GET /7.html HTTP/1.1\r\nUser-Agent:Mozilla\r\n\r\n"); for($i=0; $i<30; $i++) { if(feof($sp)) break; // exit if connection broken $sp_data.=fread($sp,31337); } $sp_data=ereg_replace("^.*<body>","",$sp_data); $sp_data=ereg_replace("</body>.*","",$sp_data); $data = explode(",", $sp_data, 7); $data[7]=" <b>Сейчас играет: </b>$data[6]"; } return $data; } } ?>

default.php

<?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <div align="center"> <?php echo $titel.($titel!=""?"<br />":"");?> <?php echo $image.($image!=""?"<br />":"");?> <?php echo $listen.($listen!=""?"<br />":"");?> <br /> </div> 

nikki4 добавил 01.01.2009 в 00:11

заметил что если удалить строку $sp=@fsockopen($host,$port);

сайт не будет тормозить, но модуль не будет отображаться...

значит проблема тут кроется..

почему на локалхосте все ок.. а на хостинге $sp=@fsockopen($host,$port); не работает, в результате вешает сайт?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий