質問 > 管理機能 > 更新情報の取得に失敗しました というメッセージが表示される |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
Mitsu |
投稿日時: 2008/7/1 1:27
対応状況: −−−
|
新米 登録日: 2008/7/1 居住地: 投稿: 1 |
Re: 更新情報の取得に失敗しました というメッセージが表示される 以下の方法で回避されます。
/{Server_Root}/data/class/pages/admin/LC_Page_Admin_Home.php の248行以降を参照し、以下の通り編集してください。 編集・アップロード後に、管理画面にアクセスし、画面右側のカラムに更新情報が表示されていればOKです。 /** * リリース情報を取得する. * * @return unknown */ function lfGetInfo() { $query = ''; // TODO サイト情報の送信可否設定を行う if (true) { $query = '?site_url=' . SITE_URL . '&eccube_version=' . ECCUBE_VERSION; } $url = UPDATE_HTTP . $query; $jsonStr = @file_get_contents($url); // ここから if($jsonStr == false) { $jsonStr = $this->do_get($url); } // ここまで追加 $objJson = new Services_JSON; $arrTmpData = is_string($jsonStr) ? $objJson->decode($jsonStr) : null; if (empty($arrTmpData)) { SC_Utils_Ex::sfErrorHeader(">> 更新情報の取得に失敗しました。"); return array(); } $arrInfo = array(); foreach ($arrTmpData as $objData) { $arrInfo[] = get_object_vars($objData); } return $arrInfo; } // ここから function do_get($url) { $res = $this->get_contents($url); $res_array = explode("\r\n", $res); switch ($res_array[0]) { case 'HTTP/1.0 200 OK': case 'HTTP/1.1 200 OK': $ra = explode("\r\n\r\n", $res, 2); $res = $ra[1]; break; case 'HTTP/1.1 302 MovedTemporarily': foreach ($res_array as $res_row) { if (strstr($res_row, 'Location: ')) { $crr_url = str_replace('Location: ', '', $res_row); break; } } $res = $this->get_contents($crr_url); $ra = explode("\r\n\r\n", $res, 2); $res = $ra[1]; break; default: $res = ''; } return $res; } function get_contents($url) { $url_array = parse_url($url); $host = $url_array['host']; $path = $url_array['path']; if (array_key_exists('port', $url_array)) { $port = $url_array['port']; } else { switch ($url_array['scheme']) { case 'http': $port = 80; break; } } $query = $url_array['query']; $res = false; if (isset($host) && isset($port)) { $fp = fsockopen($host, $port, $errno, $errstr, 30); if ($fp) { $req = "GET " . $path . "?" . $query . " HTTP/1.0\r\n" . "Host: " . $host . "\r\n" . "\r\n"; socket_set_timeout($fp, 10); if (fputs($fp, $req, strlen($req))) { $res = ''; while (!feof($fp)) { $res .= fgets($fp); } } fclose($fp); } } return $res; } // ここまで追加 |
フラット表示 | 前のトピック | 次のトピック |