Here is the code: if you succeed in making it work as a MODx snippet, I will translate back to English, so other users may use it.
<?php
// Adaptation by Diego Meozzi of a php script originally developed by I Ketut Sukandia (www.balidwipa.com and www.nusa-penida.com)
if (!$accid) {
$accid="ITXX0056"; # Your default city location code, please change to your city ACCID code.
}
if (!$tp) {
$tp=C; # Your Default temperature unit (C for Celsius, F for Fahrenheit)
}
# Fonts Setting
################
$fontface="Arial";
$fontcolor1="#000000";
$fontcolor2="red";
$fontsize1="1";
$fontsize2="3";
$fontsize3="4";
function WeatherIndex($tp) {
global $accid, $tp;
$url ="http://www.msnbc.com/m/chnk/d/weather_d_src.asp?acid=$accid";
$fa = fopen($url,"r");
/* $fa = fopen("www.msnbc.com", 80, &$num_error, &$str_error, 30);
if(!$fa)
{ print "Weather is not available: $str_error ($num_error)\n"; }
else
{
fputs($fa,"GET /m/chnk/d/weather_d_src.asp?acid=$accid HTTP/1.0\n\n");
$answer=fgets($fa,128);
*/
$v_City = "";
$v_SubDiv = "";
$v_Country = "";
$v_Region = "";
$v_Temp = "";
$v_CIcon = "";
$v_WindS = "";
$v_WindD = "";
$v_Baro = "";
$v_Humid = "";
$v_Real = "";
$v_UV = "";
$v_Vis = "";
$v_LastUp = "";
$v_Fore = "";
$v_Acid = "";
$v_ConText = "";
$v_Text[] = "dati non disponibili";
$v_Text[1] = "piovoso con vento";
$v_Text[3] = "piovoso con temporali";
$v_Text[4] = "piovoso con temporali";
$v_Text[5] = "coperto";
$v_Text[6] = "";
$v_Text[7] = "nevoso con gelo";
$v_Text[8] = "";
$v_Text[9] = "";
$v_Text[10] = "";
$v_Text[11] = "piovigginoso";
$v_Text[12] = "piovoso";
$v_Text[13] = "Scattered Flurreis";
$v_Text[14] = "nevoso";
$v_Text[15] = "";
$v_Text[16] = "";
$v_Text[17] = "";
$v_Text[18] = "";
$v_Text[19] = "polveroso";
$v_Text[20] = "nebbioso";
$v_Text[21] = "foschioso";
$v_Text[22] = "fumoso";
$v_Text[23] = "ventoso";
$v_Text[24] = "coperto con vento";
$v_Text[25] = "estremamente freddo";
$v_Text[26] = "muvoloso";
$v_Text[27] = "molto nuvoloso";
$v_Text[28] = "molto nuvoloso";
$v_Text[29] = "parzialmente nuvoloso";
$v_Text[30] = "parzialmente nuvoloso";
$v_Text[31] = "parzialmente nuvoloso";
$v_Text[32] = "sereno";
$v_Text[33] = "sereno";
$v_Text[34] = "poco nuvoloso";
$v_Text[35] = "";
$v_Text[36] = "estremamente caldo";
$v_Text[37] = "con temporali isolati";
$v_Text[38] = "con temporali sparsi";
$v_Text[39] = "con rovesci di pioggia";
$v_Text[40] = "con rovesci di pioggia";
$v_Text[41] = "nevoso";
$v_Text[41] = "leggermente ventoso";
$v_Text[43] = "nevoso con vento";
$v_Text[44] = "parzialmente nuvoloso";
while (!feof($fa))
{
$grabline = fgets($fa, 4096);
$grabline= trim($grabline) . "\n";
if (substr($grabline,7,4) == "City") { $v_City = substr($grabline,15,20); }
if (substr($grabline,7,6) == "SubDiv") { $v_SubDiv = substr($grabline,17,20); }
if (substr($grabline,7,7) == "Country") { $v_Country = substr($grabline,18,20); }
if (substr($grabline,7,6) == "Region") { $v_Region = substr($grabline,17,20); }
if (substr($grabline,7,5) == "Temp ") { $v_Temp = substr($grabline,15,20); }
if (substr($grabline,7,5) == "CIcon") { $v_CIcon = substr($grabline,16,20); }
if (substr($grabline,7,5) == "WindS") { $v_WindS = substr($grabline,16,20); }
if (substr($grabline,7,5) == "WindD") { $v_WindD = substr($grabline,16,20); }
if (substr($grabline,7,4) == "Baro") { $v_Baro = substr($grabline,15,20); }
if (substr($grabline,7,5) == "Humid") { $v_Humid = substr($grabline,16,20); }
if (substr($grabline,7,4) == "Real") { $v_Real = substr($grabline,15,20); }
if (substr($grabline,7,2) == "UV") { $v_UV = substr($grabline,13,20); }
if (substr($grabline,7,3) == "Vis") { $v_Vis = substr($grabline,14,20); }
if (substr($grabline,7,6) == "LastUp") { $v_LastUp = substr($grabline,17,200); }
if (substr($grabline,7,7) == "ConText") { $v_ConText = substr($grabline,16,20); }
if (substr($grabline,7,4) == "Fore") { $v_Fore = substr($grabline,15,200); }
if (substr($grabline,7,4) == "Acid") { $v_Acid = substr($grabline,15,20); }
// print $grabline . "\n";
}
$v_City = substr($v_City,0,strlen($v_City)-3);
$v_SubDiv = substr($v_SubDiv,0,strlen($v_SubDiv)-3);
$v_Country = substr($v_Country,0,strlen($v_Country)-3);
$v_Region = substr($v_Region,0,strlen($v_Region)-3);
$v_Temp = substr($v_Temp,0,strlen($v_Temp)-3);
$v_CIcon = substr($v_CIcon,0,strlen($v_CIcon)-3);
$v_WindS = substr($v_WindS,0,strlen($v_WindS)-3);
$v_WindD = substr($v_WindD,0,strlen($v_WindD)-3);
$v_Baro = substr($v_Baro,0,strlen($v_Baro)-3);
$v_Humid = substr($v_Humid,0,strlen($v_Humid)-3);
$v_Real = substr($v_Real,0,strlen($v_Real)-3);
$v_UV = substr($v_UV,0,strlen($v_UV)-3);
$v_Vis = substr($v_Vis,0,strlen($v_Vis)-3);
$v_LastUp = substr($v_LastUp,0,strlen($v_LastUp)-3);
$v_Fore = substr($v_Fore,0,strlen($v_Fore)-3);
$v_Acid = substr($v_Acid,0,strlen($v_Acid)-3);
$v_Fore = explode("|", $v_Fore);
echo "<div id=\"weather\"><img src=\"immagini/weather_icons/".$v_CIcon . ".gif\" alt=\"Condizioni meteo\">";
echo "A Trevignano il tempo è:<br />".$v_Text[$v_CIcon]."";
if ($tp == "C") {
echo " (";
echo CelNumber($v_Temp);
echo ")</div>";
} else {
echo " $v_Temp°F";
}
?>
<?
?>
<?
fclose($fa);
}
?>
<?
//}
function CelNumber($number) {
$number = $number-32;
$number = $number * 5;
$number = $number / 9;
$number = round ($number);
return $number."°C";
}
function CelNumber2($number,$tp) {
if ($tp == "C") { $number = $number-32;
$number = $number * 5;
$number = $number / 9;
$number = round ($number);
return "$number°C";
} else { return "$number°F"; } }
function PreNumber($number,$tp) {
if ($tp == "C") {
$number = $number *33.86;
$number = round ($number);
return "$number mbar";
}
else {
return "$number inHg";
}
}
function LenNumber($number,$tp) {
if ($tp == "C") {
$number = $number * 1.852;
$number = round ($number);
if ($number == 0)
{
return "N/A";
}
else {
return "$number km";
}
}else {
if ($number == 0)
{
return "N/A";
}
else {
return "$number mi";
}
}
}
function VelNumber($number,$tp) {
if ($tp == "C") {
$number = $number * 0.44704;
$number = round ($number);
return "$number m/s";
}
else {
return "$number mph";
}
}
function Fore($numbers) {
if ($numbers == "1") {
$date="DOMENICA";
echo "$date";
}
elseif ($numbers == "2") {
$date="LUNEDÌ";
echo "$date";
}
elseif ($numbers == "3") {
$date="MARTEDÌ";
echo "$date";
}
elseif ($numbers == "4") {
$date="MERCOLEDÌ";
echo "$date";
}
elseif ($numbers == "5") {
$date="GIOVEDÌ";
echo "$date";
}
elseif ($numbers == "6") {
$date="VENERDÌ";
echo "$date";
} else {
$date="SABATO";
echo "$date";
}
}
# End of code
switch($func) {
default:
WeatherIndex($tp);
break;
}
?>