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


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

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

User avatar
bankjittapol
PHP Super Member
PHP Super Member
Posts: 344
Joined: 21/10/2019 10:19 am

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

Post by bankjittapol » 18/11/2019 7:11 pm

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

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

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


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

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

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

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

Code: Select all

<?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'));

Code: Select all

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;
	}

}

Code: Select all

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>
Last edited by bankjittapol on 21/11/2019 2:54 pm, edited 1 time in total.

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22609
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp » 19/11/2019 1:36 pm

รูปแบบ การใช้ภาษา ผิดรูปแบบ
ติดตาม 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

User avatar
bankjittapol
PHP Super Member
PHP Super Member
Posts: 344
Joined: 21/10/2019 10:19 am

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

Post by bankjittapol » 21/11/2019 2:55 pm

mindphp wrote:
19/11/2019 1:36 pm
รูปแบบ การใช้ภาษา ผิดรูปแบบ
แก้ไขแล้วครับ

Post Reply

Return to “Joomla Developing Knowledge”

Users browsing this forum: No registered users and 2 guests