ผลพยากรณ์อากาศ เปลี่ยนภาษาตามการตั้งค่าของผู้ดูแลระบบ

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
bankjittapol
PHP Super Member
PHP Super Member
โพสต์: 344
ลงทะเบียนเมื่อ: 21/10/2019 10:19 am

ผลพยากรณ์อากาศ เปลี่ยนภาษาตามการตั้งค่าของผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย bankjittapol »

ผลพยากรณ์อากาศ เปลี่ยนภาษาตามการตั้งค่าของผู้ดูแลระบบ
ทำการดึงข้อมูลผลพยากรณ์อากาศจากกรมอุตุนิยมวิทยามา ซึ่งค่าที่ได้มาจะเป็นผลพยากรณ์อากาศ 7 วัน และเป็นค่า Json ซึ่งต้องทำการ decode เป็น array ก่อน โดย ค่าที่ได้มาจะเป็นข้อมูลผลพยากรณ์อากาศของทุกจังหวัด ซึ่งประกอบด้วย ชื่อจังหวัด ภาษาไทย /ภาษาอังกฤษ วันที่พยากรณ์อากาศ อุณหภูมิต่ำสุด - สูงสุด ทิศทางลม(องศา) ความเร็วลม("km/h") ฝนปกคลุมพื้นที่(เปอร์เซ็นต์) คําพยากรณ์ ภาษาไทย /ภาษาอังกฤษ ความสูงคลื่น ภาษาไทย /ภาษาอังกฤษ ลักษณะอุณหภูมิภาษาไทย /ภาษาอังกฤษ ซึ่งสามารถทำได้ดังนี้

แสดงข้อมูลภาษาไทย
รูปภาพ

แสดงข้อมูลภาษาอังกฤษ
รูปภาพ


โฟลเดอร์เก็บไฟล์ภาษา แบ่งเป็น แสดงฝั่ง user กับแสดงฝั่ง admin
รูปภาพ

กำหนดตัวภาษาที่ใช้ในการแสดงผล
รูปภาพ

รูปภาพ
จะเห็นว่าชื่อตัวแปรที่เก็บข้อความแสดงผล ทั้ง 2 ภาษานั้นเป้นตัวเดียวกัน

คำสั่งที่ใช้

โค้ด: เลือกทั้งหมด

<?php

defined('_JEXEC') or die('Direct access not allowed');

require_once __DIR__ . '/helper.php';

$helper = new ModWeatherForcecastHelper();
$product = $helper->getItems();
require(JModuleHelper::getLayoutPath('mod_weather_forcecast','default'));

โค้ด: เลือกทั้งหมด

class ModWeatherForcecastHelper
{
	Public function getItems(){
		$url = 'https://data.tmd.go.th/api/WeatherForecast7Days/V1/?type=json';
		$data_url = file_get_contents($url);
		return $data_url;
	}

}

โค้ด: เลือกทั้งหมด

use Joomla\CMS\Factory;

defined('_JEXEC') or die;
$url = 'modules/mod_mweather_forcecast/style/style.css';
$document = JFactory::getDocument();
$document->addStyleSheet($url);
$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
$date = Factory::getDate();

$all =  json_decode($product, true);
$all_provinces = $all['Provinces'];
$select_provinces =  $params['selProvinces'];

for ($i=0; $i < count($select_provinces) ; $i++) {
$provinces = $all_provinces[$select_provinces[$i]];
      $sevenDay = $provinces['SevenDaysForecast'];
?>

<div class="form-group show_provinces">
<div class="col-12">
  <div class="col-md-6">
    <?php  $ProvinceName = ($lang_tag=='th-TH') ? $provinces['ProvinceNameTh'] : $provinces['ProvinceNameEng']; ?>
    <h3 class="provinceName"><?php  echo $ProvinceName; ?></h3></div>
<div class="weather ">
  <?php  $WeatherDescription = ($lang_tag=='th-TH') ? $sevenDay[0]['WeatherDescription'] : $sevenDay[0]['WeatherDescriptionEn']; ?>
  <?php  $TempartureLevel = ($lang_tag=='th-TH') ? $sevenDay[0]['TempartureLevel'] : $sevenDay[0]['TempartureLevelEn']; ?>
  <span ><?php echo $WeatherDescription." ".$TempartureLevel; ?></span><br>
  <span><?php echo JTEXT::_('MOD_MWEATHER_FORECAST_RAIN_COVER')." ".$sevenDay[0]['Rain']['Value']."".$sevenDay[0]['Rain']['Unit']; ?></span><br>
  <span><?php echo JTEXT::_('MOD_MWEATHER_FORECAST_WIND_DIRESTION')." ".$sevenDay[0]['WindDirection']['Value']." ".JTEXT::_('MOD_MWEATHER_FORECAST_DEGREE')." ".$sevenDay[0]['WindSpeed']['Value']." ".$sevenDay[0]['WindSpeed']['Unit']; ?></span><br>
</div>
</div>
<div class="col-md-12">
  <span class="temp"><?php echo $sevenDay[0]['MaxTemperature']['Value']."°C "; ?></span>
</div>
<?php foreach ($sevenDay as $key => $aDay): ?>
<div class="list_date">
  <?php
  list($d, $m, $y) = explode('/', $aDay['Date']);
  $dd = date($y.'-'.$m.'-'.$d);
  $date = new DateTime($dd);
$date_timestamp = $date->getTimestamp();
 ?>
  <span><?php echo JHtml::date($date_timestamp,JTEXT::_('DATE_FORMAT_LC'),true); ?></span>

  <span><?php echo $aDay['MaxTemperature']['Value']."°C / ".$aDay['MinTemperature']['Value']."°C"; ?></span>
</div>
<?php endforeach; ?>
</div>
แก้ไขล่าสุดโดย bankjittapol เมื่อ 21/11/2019 2:54 pm, แก้ไขไปแล้ว 1 ครั้ง.
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41123
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ผลพยากรณ์อากาศ เปลี่ยนภาษาตามการตั้งค่าของผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

รูปแบบ การใช้ภาษา ผิดรูปแบบ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
bankjittapol
PHP Super Member
PHP Super Member
โพสต์: 344
ลงทะเบียนเมื่อ: 21/10/2019 10:19 am

Re: ผลพยากรณ์อากาศ เปลี่ยนภาษาตามการตั้งค่าของผู้ดูแลระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย bankjittapol »

mindphp เขียน: 19/11/2019 1:36 pm รูปแบบ การใช้ภาษา ผิดรูปแบบ
แก้ไขแล้วครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 30