MODxでブログパーツ(PHP)を作る

ねりこそ@ナビのブログのテンプレートだけ本サイトと同じになっていたので、動的に出力されている所がうまく動いてなかった。

なので、天気予報の部分だけブログパーツちっくにしてみた。
weather.jsというページを作って、、とも考えたんだけど、以下の方法は一番簡単だ、ということに気づいた。

まずweather.phpファイルを作成(文字コードEUC-JP)。

<?php
mb_internal_encoding("UTF-8");
$url = 'http://weather.livedoor.com/forecast/webservice/rest/v1?city=63&day=today';
$xml = simplexml_load_file($url);

$description =  mb_strimwidth($xml->description, 0, 100, "...");

$html = 'document.write("東京のお天気: '. mb_convert_encoding($xml->telop, "EUC-JP", "UTF-8") . '");'
$html .= 'document.write("<img src=\"'. $xml->image->url . '\" align=\"left\" width\"30\">");';
$html .= 'document.write("<img src=\"http://nerima-kosodate.net/assets/images/0001_arrow.png\">");';
$html .= 'document.write("<a href=\"http://weather.livedoor.com/point/city/995.html\">天気予報 </a><br />");';
$html .= 'document.write("'.mb_convert_encoding($description, "EUC-JP", "UTF-8"). '");';
echo $html;
?>

その後/assets/blogParts/等のフォルダーにアップロード

呼び出したいブログのテンプレートなどに以下のタグを入れる

<script src="http://nerima-kosodate.net/assets/blogParts/weather.php" type="text/javascript">

天気予報のXMLUTF-8で、ブログの方はEUC-JPなので、

<?php
mb_convert_encoding($description, "EUC-JP", "UTF-8");
?>

しないと文字化けするぽ