อาจเป็นเพราะใน HD properties ถูกเซ็ทให้ Enable write Caching on the disk ซึ่งการเซ็ทในลักษณะนี้จะเพิ่มศักยภาพการทำงานของ HD ให้ดีขึ้น แต่เมื่อไหร่ที่มีไฟตก หรือ อุปกรณ์ เช่น UPS เสียหรือมีปัญหาอาจทำให้ข้อมูลสูญหายได้ ถ้ากลัวว่าจะเกิดเหตุการณ์แบบนี้ขอแนะนำให้ไปเอา Setting นี้ออก โดยไปที่ Device Manager (คลิกขวาที่ My Computer --> Manage) เข้า
ไปที่ Disk Drives คลิ๊กขวาที่ Harddisk เลือก Properties --> Policies แล้วเอาติ๊กข้างหน้า Enable write Caching on the disk ออก แล้วคลิ๊ก OK เท่านี้ก็จะไม่มี warning message ขึ้นมาให้กวนใจอีก
หากอาการนี้ไม่หายให้สงสัยไว้ได้ในอีกหนึ่งกรณี คือ HDD ของท่านกำลังจะลาไปแล้ว
วันพุธที่ 23 พฤศจิกายน พ.ศ. 2554
วันจันทร์ที่ 14 พฤศจิกายน พ.ศ. 2554
การแสดง title แต่ละหน้าของ maxsite ให้สัมพันธ์กับเนื้อหา
การแสดง title แต่ละหน้าของ maxsite ให้สัมพันธ์กับเนื้อหา สไตล์ narongrit.net
ผมเคยอ่านเจอกระทู้เก่าๆ เกี่ยวกับการแสดง title ให้แตกต่างกันโดยใช้โครง maxsite นี้ ซึ่งถ้าจำไม่ผิด จะต้องเพิ่มไฟล์อีกหลายๆ ไฟล์ และต้องมีการปรับยกใหญ่เลย
ก็เลยเกิดไอเดียว่าน่าจะมีวิธีที่ง่ายกว่านั้น จนเกิดเป็นการปรับแต่งดังที่ผมจะบอกเล่าต่อไปนี้ครับ
ไอเดียผมก็คือว่า ปรับแค่ไฟล์เดียวเลย คือ index.php ที่ path หลักแต่อาศัยดึงข้อมูลจากฐานข้อมูลมาแสดงเพื่อให้ title กับเนื้อหาสัมพันธ์กัน โดยใช้ id และ name เป็นตัวแปรในการเชื่อมโยง
มาเริ่มวิธีการกันเลยครับ
1. เปิดไฟล์ index.php ที่ path หลักนะครับ ซึ่งเป็นไฟล์ที่คลุมหน้าโมดูลต่างๆ เอาไว้
2. เพิ่มโค้ดดังบรรทัดข้างล่างนี้เข้าไป
เอาไว้้ต่อจากบรรทัด GETMODULE($_GET[name],$_GET[file]);
ตัวอย่างด้านบนนี้ ผมยกมาแค่ 2 โมดูลนะครับ หากมีอื่นๆ อีก เช่น ดาวน์โหลด หรือสมาชิก ก็ต้องเพิ่มโค้ดคล้ายๆ กันเข้าไป คือ
สำหรับโค้ด elseif นี้ผมแนะนำให้หาอ่านหนังสือ หรือจากเวบต่างๆ ว่าใช้งานยังไง จะวางตรงไหนนะครับ เพราะน่าจะเข้าใจได้ดีกว่าที่ผมอธิบาย
3. ยังไม่จบครับ สำหรับการแสดงผลในส่วนของ title เวบนั้น ก็ต้องเพิ่มโค้ดนี้เข้าไป จากเดิมคือ <TITLE><?=WEB_TITLE;?></TITLE>
ก็แก้ให้เป็นดังนี้ครับ
จากนั้นก็ลองทดสอบผลได้เลยครับ
ลองสังเกตุจากตัวอย่างเวบผมนี้นะครับ แต่ละหน้าแต่ละโมดูล ข้อความที่ title จะแตกต่างกัน และถ้าคลิกเข้าไปดูบทความหรือกระทู้ต่างๆ ก็จะมีการแสดงหัวข้อของกระทู้หรือบทความนั้นๆ บน web title ด้วย
หวังว่าบทความนี้คงเป็นประโยชน์ต่อหลายๆ ท่านนะครับ มีข้อสงสัย สอบถามได้ที่เวบบอร์ดนะครับ
เขียนและเรียบเรียงโดย
คุณฉุย เว็บ http://www.narongrit.net/
ปรับปรุงเมื่อ 25/2/2552
ผมเคยอ่านเจอกระทู้เก่าๆ เกี่ยวกับการแสดง title ให้แตกต่างกันโดยใช้โครง maxsite นี้ ซึ่งถ้าจำไม่ผิด จะต้องเพิ่มไฟล์อีกหลายๆ ไฟล์ และต้องมีการปรับยกใหญ่เลย
ก็เลยเกิดไอเดียว่าน่าจะมีวิธีที่ง่ายกว่านั้น จนเกิดเป็นการปรับแต่งดังที่ผมจะบอกเล่าต่อไปนี้ครับ
ไอเดียผมก็คือว่า ปรับแค่ไฟล์เดียวเลย คือ index.php ที่ path หลักแต่อาศัยดึงข้อมูลจากฐานข้อมูลมาแสดงเพื่อให้ title กับเนื้อหาสัมพันธ์กัน โดยใช้ id และ name เป็นตัวแปรในการเชื่อมโยง
มาเริ่มวิธีการกันเลยครับ
1. เปิดไฟล์ index.php ที่ path หลักนะครับ ซึ่งเป็นไฟล์ที่คลุมหน้าโมดูลต่างๆ เอาไว้
2. เพิ่มโค้ดดังบรรทัดข้างล่างนี้เข้าไป
เอาไว้้ต่อจากบรรทัด GETMODULE($_GET[name],$_GET[file]);
01 | if ( $_GET [ 'name' ]== 'index' ) { $showtitle = 'Narongrit.net [ปี2] : หน้าแรก' ;} |
02 | elseif ( $_GET [ 'name' ]== 'knowledge' ) { $showtitle = 'Narongrit.net : บทความ' ; |
03 | //ดึงข้อมูลกระทู้ |
04 | $db ->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD); |
05 | $Explainselect = $db ->fetch( $db ->select_query( "SELECT * FROM " .TB_KNOWLEDGE. " WHERE id = '" . $_GET [id]. "' " )); |
06 | $db ->closedb (); |
07 | if ( $_GET [id]){ |
08 | $explain = " เรื่อง " . $Explainselect [topic]. "" ; } |
09 | else { $explain = '' ;} |
10 | } |
11 | elseif ( $_GET [ 'name' ]== 'webboard' ) { $showtitle = 'Narongrit.net [ปี2] : เวบบอร์ด' ; |
12 | $db ->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD); |
13 | $Explainselect = $db ->fetch( $db ->select_query( "SELECT * FROM " .TB_WEBBOARD. " WHERE id = '" . $_GET [id]. "' " )); |
14 | $db ->closedb (); |
15 | if ( $_GET [id]){ |
16 | $explain = " เรื่อง " . $Explainselect [topic]. "" ; } |
17 | else { $explain = '' ;} |
18 | } |
19 | elseif ( $_GET [name]== "aboutus" ) { $showtitle = "ข้อความเกี่ยวกับเรา" ;} |
20 | elseif ( $_GET [name]== "calendar" ) { $showtitle = "ปฏิทินกิจกรรม" ;} |
21 | else { $showtitle = "ข้อความอื่นๆ ที่ไม่เข้าเงื่อนไขใดๆ" ; } |
1 | elseif ( $_GET [ 'name' ]== 'webboard' ) { $showtitle = "ข้อความหรือชื่อโมดูล" '; |
2 | $db ->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD); |
3 | $Explainselect = $db ->fetch( $db ->select_query( "SELECT * FROM " .ชื่อตารางที่อ้างอิง. " WHERE id = '" . $_GET [id]. "' " )); |
4 | $db ->closedb (); |
5 | if ( $_GET [id]){ |
6 | $explain = " เรื่อง " . $Explainselect [topic]. "" ; } |
7 | else { $explain = '' ;} |
8 | } |
3. ยังไม่จบครับ สำหรับการแสดงผลในส่วนของ title เวบนั้น ก็ต้องเพิ่มโค้ดนี้เข้าไป จากเดิมคือ <TITLE><?=WEB_TITLE;?></TITLE>
ก็แก้ให้เป็นดังนี้ครับ
1 | <title><? echo "" . $showtitle . "" . $explain . "" ;?></title> |
ลองสังเกตุจากตัวอย่างเวบผมนี้นะครับ แต่ละหน้าแต่ละโมดูล ข้อความที่ title จะแตกต่างกัน และถ้าคลิกเข้าไปดูบทความหรือกระทู้ต่างๆ ก็จะมีการแสดงหัวข้อของกระทู้หรือบทความนั้นๆ บน web title ด้วย
หวังว่าบทความนี้คงเป็นประโยชน์ต่อหลายๆ ท่านนะครับ มีข้อสงสัย สอบถามได้ที่เวบบอร์ดนะครับ
เขียนและเรียบเรียงโดย
คุณฉุย เว็บ http://www.narongrit.net/
ปรับปรุงเมื่อ 25/2/2552
วันอังคารที่ 1 พฤศจิกายน พ.ศ. 2554
วิธีการ Set Default ให้ Arcview GIS รู้จักภาษาไทย
วิธีการ Set Default ให้ Arcview GIS รู้จักภาษาไทย
Set Default ให้ Arcview GIS รู้จักภาษาไทย
ตอนไปฝึกอบรมเจ้าหน้าที่องค์กรปกครองส่วนท้องถิ่นและแกนนำชุมชนในพื้นที่หรือสอนนักศึกษาเกี่ยวกับการใช้โปรแกรม Arcview GIS ให้แสดงข้อมูลในช่องสารบัญชั้นข้อมูล(Table of Content :TOC) จากฐานข้อมูลที่เป็นภาษาไทยเจอคำถามทำไมของเครื่องที่เขาใช้เป็นภาษาต่างด้าว ไม่เหมือนกับในจอที่ฉายจาก LCD ของวิทยากรเลย ก็เครื่องของผมได้ Set Default โปรแกรมรู้จักภาษาไทยแล้วครับ (ก็อยากจะให้เขา Set เป็น กลับไปได้ใช้งานได้สะดวก)วิธีการ ไม่ยากครับ s = TxSym.Make s.SetFont(NFont.Make("AngsanaUPC","Bold")) s.SetSize(18) TOC.SetDefaultSymbol(s)
' ArcView's startup file, which runs before default.apr is read. ' Check for a valid project workspace -- the directory must be writable. haveHOMEPath = false for each var in {"HOME", "TEMP", "CWD", "AVHOME"} path = System.GetEnvVar(var) if (path <> NIL) then if (File.Exists(path.AsFileName) and File.IsWritable(path.AsFileName)) then System.SetEnvVar("HOME", path) haveHOMEPath = true break end end endif (Not haveHOMEPath) then MsgBox.Warning("Cannot find a writable project directory. Please set environment variable HOME to a writable directory.", "") end' Check for a valid TEMP under Windows -- let user know if it is not set. ' Required for themes based on TXT type annotation and for editing. if (system.GetOS = #SYSTEM_OS_MSW) then haveTEMPPath = false for each var in {"TEMP", "HOME", "CWD", "AVHOME"} path = System.GetEnvVar(var) if (path <> NIL) then if (File.Exists(path.AsFileName) and File.IsWritable(path.AsFileName)) then System.SetEnvVar("TEMP", path) haveTEMPPath = true break end end end if (Not haveTEMPPath) then MsgBox.Warning("Cannot find TEMP directory. Please set environment variable TEMP to a writable directory.", "") end end' Check for a valid TMPDIR under UNIX. if (system.GetOS = #SYSTEM_OS_UNIX) then home = System.GetEnvVar("HOME") if (Not (File.IsWritable(home.AsFileName))) then path = System.GetEnvVar("TMPDIR") if (path <> NIL) then if (Not (File.Exists(path.AsFileName) and File.IsWritable(path.AsFileName))) then MsgBox.Warning("TMPDIR directory " + path.AsString + " is not writable . " + "Please set environment variable TMPDIR to a writable directory.", "") end else System.SetEnvVar("TMPDIR","/tmp") end end endMsgBox.Banner("$AVHOME/etc/banner".AsFileName, 1, "") av.SetName("ArcView GIS 3.3 ")avExt = FN.Make("$AVHOME") avExt.MergePath("ext") System.SetEnvVar("AVEXT", avExt.GetFullName)avBin = FN.Make("$AVHOME") avBin.MergePath("bin") System.SetEnvVar("AVBIN", avBin.GetFullName)' ' The USEREXT variable is used by the extension manager dialog. ' That dialog looks for additional extensions in the directory specified by ' it. You can change it's value if you want to keep additional extensions in ' some other location. ' if (System.GetEnvVar("USEREXT") = NIL) then System.SetEnvVar("USEREXT", System.GetEnvVar("HOME")) end ' ' The default font size used by ArcView's script editor is approximately ' 14 pt (courier). That font size is identified by the enumeration element ' #SED_FONTSIZE_MEDIUM. You can use the elements #SED_FONTSIZE_SMALL ' or #SED_FONTSIZE_LARGE to make the default font size smaller (12 pt) ' or larger (14 pt). SEd.SetDefaultFontSize(#SED_FONTSIZE_SMALL)if (system.GetOS = #SYSTEM_OS_MSW) then Script.Make("DDEServer.Start").DoIt(NIL)if (system.GetOSVariant = #SYSTEM_OSVARIANT_MSW16) thenSystem.SetEnvVar("AVBIN", System.GetEnvVar("AVHOME")+"\bin16") System.SetEnvVar("AVEXT", System.GetEnvVar("AVHOME")+"\ext16")if (FN.FindInSystemSearchPath("winsock.dll") <> nil) then System.LoadLibrary("$AVBIN/avrpc.dll".AsFileName) end System.LoadLibrary("$AVBIN/avexec.dll".AsFileName)else 'for WinNT and Win95System.SetEnvVar("AVBIN", System.GetEnvVar("AVHOME")+"\bin32") System.SetEnvVar("AVEXT", System.GetEnvVar("AVHOME")+"\ext32")if (FN.FindInSystemSearchPath("wsock32.dll") <> nil) then System.LoadLibrary("$AVBIN/avrpc.dll".AsFileName) end end 'MSW16 case end 'MSW case' ' Load the Shapes.dll if (system.GetOS = #SYSTEM_OS_MSW) then System.LoadLibrary("$AVBIN/shapes.dll".AsFileName) end 'MSW case if (system.GetOS = #SYSTEM_OS_UNIX) then if (File.Exists("$AVHOME/lib/libshapes.so".AsFileName)) then System.LoadLibrary("$AVHOME/lib/libshapes.so".AsFileName) else if (File.Exists("$AVHOME/lib/libshapes.sl".AsFileName)) then System.LoadLibrary("$AVHOME/lib/libshapes.sl".AsFileName) else if (File.Exists("$AVHOME/lib/libshapes.a".AsFileName)) then System.LoadLibrary("$AVHOME/lib/libshapes.a".AsFileName) end end end end' ' Load the dnsgm.dll if (File.Exists("$AVBIN/dnsgm.dll".AsFileName)) then System.LoadLibrary("$AVBIN/dnsgm.dll".AsFileName) end' ' Load the avimgexp.dll if (File.Exists("$AVBIN/avimgexp.dll".AsFileName)) then System.LoadLibrary("$AVBIN/avimgexp.dll".AsFileName) end' ' Load the avdlog.dll if (File.Exists("$AVBIN/avdlog.dll".AsFileName)) then System.LoadLibrary("$AVBIN/avdlog.dll".AsFileName) ends = TxSym.Make s.SetFont(NFont.Make("AngsanaUPC","Bold")) s.SetSize(18) TOC.SetDefaultSymbol(s)
- ใช้โปรแกรม Notepad เปิด file ที่เก็บ Source code คำสั่งภาษาไทย เช่น ของผมคือ Thai.txt
- ใช้เมนูคำสั่ง Edit -->Select all -->Copy (หรือทางลัดอื่นแล้วแต่ถนัดครับ)
- เปิด file ที่ควบคุมคำสั่งของโปรแกรมคือ C:\ESRI\AV-GIS30\ARCVIEW\ETC\start up
- แล้วก็ Edit -->Paste (ต่อท้าย)
- อย่าลืม Save
- แล้ว Restart เครื่องคอมพิวเตอร์ใหม่
สมัครสมาชิก:
บทความ (Atom)