channel->copyright; $channel_yweather = $weather->channel->children("http://xml.weather.yahoo.com/ns/rss/1.0"); //gosod eitemau i mewn i arae $yw_channel foreach($channel_yweather as $x => $channel_item) foreach($channel_item->attributes() as $k => $attr) $yw_channel[$x][$k] = $attr; $item_yweather = $weather->channel->item->children("http://xml.weather.yahoo.com/ns/rss/1.0"); $z = 0; //ychwanegwyd er mwyn pigo lan y diwrnodau sydd wrth gefn (forecast) foreach($item_yweather as $x => $yw_item) { foreach($yw_item->attributes() as $k => $attr) { if($k == 'day'){ $day = $attr; $forecast_day[$z] = $attr; //ychwanegwyd i ddarganfod enwau'r diwrnodau $z = z + 1; //ychwanegwyd - rhifydd } if($x == 'forecast') { $yw_forecast[$x][$day . ''][$k] = $attr; } else { $yw_forecast[$x][$k] = $attr; } } } /*PROFI'R ARAEAU - tynnwch y tagiau sylwadau i weld y data noeth o'r XML -> araeau pHp print_r($yw_channel); print_r($yw_forecast); */ //IAITH - Os Cymraeg yn unig yw eich gwefan: tynnwch y sylw bant o'r llinell nesaf: if(isset($_GET['iaith'])){ if($_GET['iaith'] == '1'){ $iaith = 1; }else{ $iaith = 0; } }else{ $iaith = 0; } //Mae'r cod hwn yn cymryd bod newidyn o'r enw $iaith yn cael ei osod: //$iaith = 0 yw Cymraeg; $iaith = 1 yw Saesneg. //Os ydych yn newid hyn, gall rhannau dorri - e.e. cyfrifo cyfeiriad y gwynt. //===================================================================================== //===================================================================================== //===============SWYDDOGAETHAU AR GYFER DYNODI DATA==================================== //===================================================================================== //===================================================================================== //GOSOD CYFEIRIAD CWMPAWD I GYFEIRIAD MEWN GRADDAU function setio_cyfeiriad($cyfeiriad_mewn){ global $iaith; $cyf[0] = array('G','GGDn','GDn','DnGDn','Dn','DnDDn','DDn','DDDn','D','DDGn','DGn','GnDGn','Gn','GnGGn','GGn','GGGn'); $cyf[1] = array('N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW'); $i = $cyfeiriad_mewn; settype($i,"integer"); switch($i){ case $i > 349 && $i <= 11: $i = $cyf[$iaith][0]; break; case $i > 11 && $i <= 34: $i = $cyf[$iaith][1]; break; case $i > 34 && $i <= 56: $i = $cyf[$iaith][2]; break; case $i > 56 && $i <= 79: $i = $cyf[$iaith][3]; break; case $i > 79 && $i <= 101: $i = $cyf[$iaith][4]; break; case $i > 101 && $i <= 124: $i = $cyf[$iaith][5]; break; case $i > 124 && $i <= 146: $i = $cyf[$iaith][6]; break; case $i > 146 && $i <= 169: $i = $cyf[$iaith][7]; break; case $i > 169 && $i <= 191: $i = $cyf[$iaith][8]; break; case $i > 191 && $i <= 214: $i = $cyf[$iaith][9]; break; case $i > 214 && $i <= 236: $i = $cyf[$iaith][10]; break; case $i > 236 && $i <= 259: $i = $cyf[$iaith][11]; break; case $i > 259 && $i <= 281: $i = $cyf[$iaith][12]; break; case $i > 281 && $i <= 304: $i = $cyf[$iaith][13]; break; case $i > 304 && $i <= 326: $i = $cyf[$iaith][14]; break; case $i > 326 && $i <= 349: $i = $cyf[$iaith][15]; break; } return $i; } //GOSOD ENW CYMRAEG I'R TYWYDD WEDI SEILIO AR DDISGRIFIADAU COD O WEFAN API YAHOO! WEATHER function setio_enw($cod_mewn=3200){ settype($cod_mewn, "integer"); if(($cod_mewn >= 0 && $cod_mewn <= 47) || $cod_mewn == 3200){ $desc_array = array(0=>'Tornado',1=>'Storm Drofannol',2=>'Corwynt',3=>'Storm Fellt a Tharannau Difrifol',4=>'Storm Fellt a Tharanau',5=>'Glaw ac Eira',6=>'Glaw ac Eirlaw',7=>'Eira ac Eirlaw',8=>'Glaw Mân Rhewllyd',9=>'Glaw Mân',10=>'Glaw Rhewllyd',11=>'Cawodydd',12=>'Glaw',13=>'Ffwdanau Eira',14=>'Cawodydd Eira Ysgafn',15=>'Eira\'n Chwythu',16=>'Eira',17=>'Cesair',18=>'Eirlaw',19=>'Llwch',20=>'Niwlog',21=>'Tawch',22=>'Myglyd',23=>'Chwythu\'n Gryf',24=>'Gwyntog',25=>'Oer',26=>'Cymylog',27=>'Cymylog yn Bennaf',28=>'Cymylog yn Bennaf',29=>'Rhannol Cymylog',30=>'Rhannol Cymylog',31=>'Clir',32=>'Heulog',33=>'Teg',34=>'Teg',35=>'Glaw a Chesair',36=>'Poeth',37=>'Stormydd Mellt a Tharanau Unig',38=>'Stormydd Mellt a Tharanau Gwasgaredig',39=>'Stormydd Mellt a Tharanau Gwasgaredig',40=>'Cawodydd Gwasgaredig',41=>'Eira Trwm',42=>'Cawodydd Eira Gwasgaredig',43=>'Eira Trwm',44=>'Rhannol Cymylog',45=>'Cawodydd Taranog',46=>'Cawodydd Eira',47=>'Cawodydd Taranog Unig',3200=>'Ddim ar Gael'); }else{ //os nad yw $cod_mewn yn cyfateb i rif rhwng 0 a 47 neu 3200 $cod_mewn = 3200; } return $desc_array[$cod_mewn]; } //TROSI DATGANIAD DYDDIAD (DIWRNOD, MIS, AMSER Y DYDD, 'BSD') I'R GYMRAEG function setio_dyddiad($dyddiad_mewn){ //BST = British Standard Time -> Amser Safonol Prydeinig (ASP) //Os ydych am ychwanegu rhagor o godau (e.e. EST - Eastern Standard Time yr UDA), //sicrhewch eich bod yn ychwanegu eitem i '$dyddiad_Cymraeg' hefyd. $dyddiad_Saesneg =array('Mon','Tue','Wed','Thu','Fri','Sat','Sun','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec','BST','am','pm'); $dyddiad_Cymraeg =array('Llu','Maw','Mer','Iau','Gwe','Sad','Sul','Ion','Chw','Maw','Ebr','Mai','Meh','Gor','Aws','Med','Hyd','Tac','Rha','ASP','yb','yh'); for($counter = 0; $counter <= (count($dyddiad_Saesneg)-1); $counter ++) { $dyddiad_mewn = str_replace($dyddiad_Saesneg[$counter],$dyddiad_Cymraeg[$counter],$dyddiad_mewn); } return $dyddiad_mewn; } //===================================================================================== //===================================================================================== //===============DATA CYFFREDIN======================================================== //===================================================================================== //===================================================================================== //data cyfredol - gosodiad i ddechrau $data['gwelededd'] = $yw_channel['atmosphere']['visibility']; $data['gwlybaniaeth'] = $yw_channel['atmosphere']['humidity']; $data['gwynt_cyflymder'] = $yw_channel['wind']['speed']; $data['gwynt_cyfeiriad'] = setio_cyfeiriad($yw_channel['wind']['direction']); $data['tymheredd'] = $yw_forecast['condition']['temp']; $data['teimlo'] = $yw_channel['wind']['chill']; $data['gwawr'] = $yw_channel['astronomy']['sunrise']; //Cymraeg - angen newid $data['machlyd'] = $yw_channel['astronomy']['sunset']; //Cymraeg - angen newid $data['cod'] = $yw_forecast['condition']['code']; $data['dyddiad'] = $yw_forecast['condition']['date']; //Cymraeg - angen newid $data['disgrifiad'] = $yw_forecast['condition']['text']; //Cymraeg - angen newid //data forecast - gosodiad i ddechrau //Bydd yn rhoi'r data am y ddau ddiwrnod for($counter = 0; $counter <= 1; $counter ++){ $data["{$forecast_day[$counter]}"]['cod'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['code']; $data["{$forecast_day[$counter]}"]['isel'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['low']; $data["{$forecast_day[$counter]}"]['uchel'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['high']; $data["{$forecast_day[$counter]}"]['dydd'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['day']; //Cymraeg - angen newid $data["{$forecast_day[$counter]}"]['dyddiad'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['date']; //Cymraeg - angen newid $data["{$forecast_day[$counter]}"]['disgrifiad'] = $yw_forecast['forecast']["{$forecast_day[$counter]}"]['text']; //Cymraeg - angen newid } //===================================================================================== //===================================================================================== //===============UNEDAU CYFFREDIN====================================================== //===================================================================================== //===================================================================================== $uned['gwlybaniaeth'] = "%"; $uned['tymheredd'] = "°" . $yw_channel['units']['temperature']; //===================================================================================== //===================================================================================== //===============LABELAU AC UNEDAU SAESNEG============================================= //===================================================================================== //===================================================================================== if($iaith == 1){ $uned['pellter'] = ($yw_channel['units']['distance'] == "mi") ? "miles" : "kilometres"; $uned['cyflymder'] = $yw_channel['units']['speed']; $label['pennawd'] = "The Weather for Cymer, Porth"; $label['diweddaraf'] = "Latest report: "; $label['tymheredd'] = "Temperature: "; $label['teimlo'] = "Feels like: "; $label['gwlybaniaeth'] = "Humidity: "; $label['gwelededd'] = "Visibility: "; $label['golau'] = "Daylight: "; $label['gwawr'] = "sunrise "; $label['machlyd'] = "sunset "; $label['cyfeiriad'] = "direction "; $label['cyflymder'] = "speed "; $label['gwynt'] = "Wind: "; $label['isaf'] = "Low "; $label['uchaf'] = "High "; $label['rhagolygon'] = "Forecast"; $label['diolch'] = "This data was provided via the Yahoo! Weather API"; } //===================================================================================== //===================================================================================== //===============LABELAU AC UNEDAU CYMRAEG============================================= //===================================================================================== //===================================================================================== if($iaith == 0){ $uned['pellter'] = ($yw_channel['units']['distance'] == "mi") ? "milltir" : "cilomedr"; $uned['cyflymder'] = ($yw_channel['units']['speed'] == "mph") ? "mya" : "cya"; $label['pennawd'] = "Y Tywydd ar gyfer Cymer, Porth"; $label['diweddaraf'] = "Yr adroddiad diweddaraf: "; $label['tymheredd'] = "Tymheredd: "; $label['teimlo'] = "Teimlo fel: "; $label['gwlybaniaeth'] = "Gwlybaniaeth: "; $label['gwelededd'] = "Gwelededd: "; $label['golau'] = "Golau dydd: "; $label['gwawr'] = "gwawr "; $label['machlyd'] = "machlyd "; $label['cyfeiriad'] = "cyfeiriad "; $label['cyflymder'] = "cyflymder "; $label['gwynt'] = "Gwynt: "; $label['isaf'] = "Isaf "; $label['uchaf'] = "Uchaf "; $label['rhagolygon'] = "Rhagolygon"; $label['diolch'] = "Cyflwynwyd y data hyn gan yr API oddi wrth Yahoo! Weather"; //===================================================================================== //===================================================================================== //===============NEWIDIADAU -> CYMRAEG================================================= //===================================================================================== //===================================================================================== $data['gwawr'] = setio_dyddiad($data['gwawr']); $data['machlyd'] = setio_dyddiad($data['machlyd']); $data['dyddiad'] = setio_dyddiad($data['dyddiad']); $data['disgrifiad'] = setio_enw($data['cod']); for($counter = 0; $counter <= 1; $counter ++){ $data["{$forecast_day[$counter]}"]['dydd'] = setio_dyddiad($data["{$forecast_day[$counter]}"]['dydd']); $data["{$forecast_day[$counter]}"]['dyddiad'] = setio_dyddiad($data["{$forecast_day[$counter]}"]['dyddiad']); $data["{$forecast_day[$counter]}"]['disgrifiad'] = setio_enw($data["{$forecast_day[$counter]}"]['cod']); } } //===================================================================================== //===================================================================================== //===============DELWEDDAU============================================================= //===================================================================================== //===================================================================================== //mae'r isod am ddelwedd 'nawr' a rhai y forecast (0 = heddiw ac 1 = yfory) //http://l.yimg.com/us.yimg.com/i/us/we/52/ + cod y math dywydd - dwi ddim yn sicr os //ydy defnydd y delweddau'n hollol gyfreithlon! $delwedd['nawr'] = "http://l.yimg.com/us.yimg.com/i/us/we/52/{$data['cod']}.gif"; $delwedd['forecast'][0] = "http://l.yimg.com/us.yimg.com/i/us/we/52/" . $data["{$forecast_day[0]}"]['cod'] . ".gif"; $delwedd['forecast'][1] = "http://l.yimg.com/us.yimg.com/i/us/we/52/" . $data["{$forecast_day[1]}"]['cod']. ".gif"; //Mae'r holl ddata nawr mewn newidynnau i'w osod fel bo eisiau! //e.e. LABEL - DATA - UNED // // //Dyma enghraifft syml o'r uchod: // Mae '= ...' yn meddwl yr un peth รข '
=$data['disgrifiad'];?> |
=$label['diweddaraf'];?> =$data['dyddiad'];?> |
| =$label['tymheredd'];?> | =$data['tymheredd'] . $uned['tymheredd'];?> |
| =$label['teimlo'];?> | =$data['teimlo'] . $uned['tymheredd'];?> |
| =$label['gwlybaniaeth'];?> | =$data['gwlybaniaeth'] . $uned['gwlybaniaeth'];?> |
| =$label['gwelededd'];?> | =$data['gwelededd'] . " " . $uned['pellter'];?> |
| =$label['gwynt'];?> | =$label['cyflymder'] . $data['gwynt_cyflymder'] . " " .$uned['cyflymder'] . ", " . $label['cyfeiriad'] . $data['gwynt_cyfeiriad'];?> |
| =$label['golau'];?> | =$label['gwawr'] . $data['gwawr'] . ", " . $label['machlyd'] . $data['machlyd'];?> |
=$data["{$forecast_day[0]}"]['disgrifiad'];?> |
=$data["{$forecast_day[0]}"]['dydd'];?> =$data["{$forecast_day[0]}"]['dyddiad'];?> |
=$data["{$forecast_day[1]}"]['disgrifiad'];?> |
=$data["{$forecast_day[1]}"]['dydd'];?> =$data["{$forecast_day[1]}"]['dyddiad'];?> |
| =$label['tymheredd'];?> | =$label['uchaf'] . $data["{$forecast_day[0]}"]['uchel'] . $uned['tymheredd'] . " " . $label['isaf'] . $data["{$forecast_day[0]}"]['isel'] . $uned['tymheredd'];?> |
=$label['tymheredd'];?> | =$label['uchaf'] . $data["{$forecast_day[1]}"]['uchel'] . $uned['tymheredd'] . " " . $label['isaf'] . $data["{$forecast_day[1]}"]['isel'] . $uned['tymheredd'];?> |
[=$label['diolch'];?>]