สร้าง vQmod script เปลียนชื่อจังหวัดเป็นภาษาไทยใน OpenCart

เขียนเมื่อ 7 ปีก่อน โดย Ninenik Narkdee
vqmod opencart

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ vqmod opencart

ดูแล้ว 5,370 ครั้ง


จากเนื้อหาตอนที่แล้ว ที่เราได้รู้จักกับเครื่องมือจัดการ vQmod script ไฟล์
ที่เป็นส่วนขยายเสริมของ OpenCart แล้ว ต่อไปเราจะมาลองสร้างไฟล์ 
vQmod script เพื่อใช้งานอย่างง่ายกัน ในที่นี้เราจะทำการเปลี่ยนชื่อจังหวัด
ในประเทศไทยใน OpenCart ที่เดิมเป็นภาษาอังกฤษ ให้เป็นภาษาไทย
ซึ่งในความเป็นจริง เราสามารถเข้าไปทำการอัพเดทได้ที่ในส่วนของ phpMyadmn 
แต่เพื่อศึกษาเกี่ยวกับ vQmod script จึงนำมาเป็นแนวทางตัวอย่างเพื่อความ
เข้าใจเกี่ยวกับการใช้งาน vQmod
 
ก่อนเข้าไปสู่รายละเอียดการสร้าง vQmod script เราจะทำการอัพเดทจังหวัดใน
ประเทศไทยให้เป็นภาษาไทย โดยใช้งานผ่านระบบจัดการ vQmod จากเนื้อตอนที่แล้ว
เริ่มต้นให้ดาวน์โหลดไฟล์ vQmod script ได้ที่
 
 
หลังจากนั้นให้แตกไฟล์ เราจะพบไฟล์ thai_zone_change.xml 
ซึ่งเราจะอัพโหลดไฟล์นี้ผ่านระบบ vQmod 
และเพื่อให้เห็นว่า script ทำงานถูกต้องหรือไม่ เราจะดูข้อมูลก่อนและหลังการอัพเดท
 

 
 
รูปด้านบนคือส่วนของการการสมัครสมาชิก จะพบว่าจังหวัดในประเทศไทยจะเป็นภาษาอังกฤษ
ต่อไปให้เราทำตามขั้นตอนดังนี้
 
เข้าไปในส่วนของผู้แลระบบ แล้วไปที่เมนู ระบบจัดการ VQMod 
 
ส่วนขยายเสริม > ระบบจัดการ VQMod 
 

 
 
จากนั้นเลือกไฟล์ vQmod script แล้วทำการอัพโหลด
 
 

 
 
เราได้ทำการติดตั้งไฟล์ vQmod script เรียบร้อยแล้ว ตามรูป
 
 
 
ต่อไปก็คือการเรียกใช้งาน 
เนื่องจากไฟล์ vQmod script ตัวนี้เป็นการเรียกให้ทำงานในไฟล์ zone.php
<file name="admin/controller/localisation/zone.php">
 
ดังนั้นเพื่อให้โค้ดนี้ทำงาน เราจะไปที่ส่วนของการจัดการ โซน เพือให้ script ทำงาน
โดยไปที่ 
 
ระบบ > ภาษาและที่ตั้ง > โซน
 

 
 
เมื่อเราได้เปิดมาหน้า โซน แล้วส่วนของ vQmod script ที่เราอัพโหลดไว้ก็จะทำงานและ
ทำการอัพเดทจังหวัดในประเทศไทย เป็นภาษาไทยเพิ่มจังหวัดบึงกาฬ ดังรูป
 

 
 
กรณีที่ยังไม่เปลี่ยนเป็นภาษาไทย ให้ตรวจสอบในฐานข้อมูลว่า จังหวัดเป็นภาษาไทยแล้วหรือไม่
ถ้าเป็นแล้ว แต่หน้าสมัครสมาชิกยังเป็นภาษาอังกฤษ ให้ไปตรวจสอบใน cache ที่ 
system > storage > cache 
แล้วลบรายการ cache เกี่ยวกับ zone ออก แล้วไปเปิดหน้าสมัครสมาชิกอีกครั้ง ถ้าไม่มีอะไรผิดพลาด ชื่อจังหวัดในประเทศทไยก็จะเป็นภาษาไทยดังรูป


 
 
เรามาดูไฟล์ vQmod script จากไฟล์ที่เราใช้งานด้านบน ชื่อ 
thai_zone_change.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<modification
	xmlns="https://github.com/vqmod/vqmod"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="https://github.com/vqmod/vqmod"
    >
	<id><![CDATA[Thai zone change name]]></id>
	<version><![CDATA[1.0.0.1]]></version>
	<vqmver><![CDATA[2.6.1]]></vqmver>
	<author><![CDATA[Ninenik]]></author>	
	
	<file name="admin/controller/localisation/zone.php">
		<operation>
			<search position="after" index="1"><![CDATA[
				$this->load->model('localisation/zone');
			]]></search>
			<add><![CDATA[
		$query = $this->db->query("SELECT country_id FROM " . DB_PREFIX . "country WHERE iso_code_2='TH' AND 
		STATUS=1
		 ");
		$countryID = $query->row['country_id'];
		if($countryID){
			$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$countryID . "' ORDER BY zone_id LIMIT 1");
	
			$row = $query->row;		
			if($row){
				if($row['zone_id']==3189 && $row['name']=="Amnat Charoen"){
					$this->db->query("REPLACE INTO `" . DB_PREFIX . "zone` (`zone_id`, `country_id`, `code`, `name`, `status`) VALUES " .
					"(3189, 209, '10', 'กรุงเทพฯ', 1)," .
					"(3190, 209, '11', 'สมุทรปราการ', 1)," .
					"(3191, 209, '12', 'นนทบุรี', 1)," .
					"(3192, 209, '13', 'ปทุมธานี', 1)," .
					"(3193, 209, '14', 'พระนครศรีอยุธยา', 1)," .
					"(3194, 209, '15', 'อ่างทอง', 1)," .
					"(3195, 209, '16', 'ลพบุรี', 1)," .
					"(3196, 209, '17', 'สิงห์บุรี', 1)," .
					"(3197, 209, '18', 'ชัยนาท', 1)," .
					"(3198, 209, '19', 'สระบุรี', 1)," .
					"(3199, 209, '20', 'ชลบุรี', 1)," .
					"(3200, 209, '21', 'ระยอง', 1)," .
					"(3201, 209, '22', 'จันทบุรี', 1)," .
					"(3202, 209, '23', 'ตราด', 1)," .
					"(3203, 209, '24', 'ฉะเชิงเทรา', 1)," .
					"(3204, 209, '25', 'ปราจีนบุรี', 1)," .
					"(3205, 209, '26', 'นครนายก', 1)," .
					"(3206, 209, '27', 'สระแก้ว', 1)," .
					"(3207, 209, '30', 'นครราชสีมา', 1)," .
					"(3208, 209, '31', 'บุรีรัมย์', 1)," .
					"(3209, 209, '32', 'สุรินทร์', 1)," .
					"(3210, 209, '33', 'ศรีสะเกษ', 1)," .
					"(3211, 209, '34', 'อุบลราชธานี', 1)," .
					"(3212, 209, '35', 'ยโสธร', 1)," .
					"(3213, 209, '36', 'ชัยภูมิ', 1)," .
					"(3214, 209, '37', 'อำนาจเจริญ', 1)," .
					"(3215, 209, '39', 'หนองบัวลำภู', 1)," .
					"(3216, 209, '40', 'ขอนแก่น', 1)," .
					"(3217, 209, '41', 'อุดรธานี', 1)," .
					"(3218, 209, '42', 'เลย', 1)," .
					"(3219, 209, '43', 'หนองคาย', 1)," .
					"(3220, 209, '44', 'มหาสารคาม', 1)," .
					"(3221, 209, '45', 'ร้อยเอ็ด', 1)," .
					"(3222, 209, '46', 'กาฬสินธุ์', 1)," .
					"(3223, 209, '47', 'สกลนคร', 1)," .
					"(3224, 209, '48', 'นครพนม', 1)," .
					"(3225, 209, '49', 'มุกดาหาร', 1)," .
					"(3226, 209, '50', 'เชียงใหม่', 1)," .
					"(3227, 209, '51', 'ลำพูน', 1)," .
					"(3228, 209, '52', 'ลำปาง', 1)," .
					"(3229, 209, '53', 'อุตรดิตถ์', 1)," .
					"(3230, 209, '54', 'แพร่', 1)," .
					"(3231, 209, '55', 'น่าน', 1)," .
					"(3232, 209, '56', 'พะเยา', 1)," .
					"(3233, 209, '57', 'เชียงราย', 1)," .
					"(3234, 209, '58', 'แม่ฮ่องสอน', 1)," .
					"(3235, 209, '60', 'นครสวรรค์', 1)," .
					"(3236, 209, '61', 'อุทัยธานี', 1)," .
					"(3237, 209, '62', 'กำแพงเพชร', 1)," .
					"(3238, 209, '63', 'ตาก', 1)," .
					"(3239, 209, '64', 'สุโขทัย', 1)," .
					"(3240, 209, '65', 'พิษณุโลก', 1)," .
					"(3241, 209, '66', 'พิจิตร', 1)," .
					"(3242, 209, '67', 'เพชรบูรณ์', 1)," .
					"(3243, 209, '70', 'ราชบุรี', 1)," .
					"(3244, 209, '71', 'กาญจนบุรี', 1)," .
					"(3245, 209, '72', 'สุพรรณบุรี', 1)," .
					"(3246, 209, '73', 'นครปฐม', 1)," .
					"(3247, 209, '74', 'สมุทรสาคร', 1)," .
					"(3248, 209, '75', 'สมุทรสงคราม', 1)," .
					"(3249, 209, '76', 'เพชรบุรี', 1)," .
					"(3250, 209, '77', 'ประจวบคีรีขันธ์', 1)," .
					"(3251, 209, '80', 'นครศรีธรรมราช', 1)," .
					"(3252, 209, '81', 'กระบี่', 1)," .
					"(3253, 209, '82', 'พังงา', 1)," .
					"(3254, 209, '83', 'ภูเก็ต', 1)," .
					"(3255, 209, '84', 'สุราษฎร์ธานี', 1)," .
					"(3256, 209, '85', 'ระนอง', 1)," .
					"(3257, 209, '86', 'ชุมพร', 1)," .
					"(3258, 209, '90', 'สงขลา', 1)," .
					"(3259, 209, '91', 'สตูล', 1)," .
					"(3260, 209, '92', 'ตรัง', 1)," .
					"(3261, 209, '93', 'พัทลุง', 1)," .
					"(3262, 209, '94', 'ปัตตานี', 1)," .
					"(3263, 209, '95', 'ยะลา', 1)," .
					"(3264, 209, '96', 'นราธิวาส', 1)," .
					"(3265, 209, '97', 'บึงกาฬ', 1)");				
				}
			}				
		}
			]]></add>
		</operation>				
	</file>	

</modification>
 
 
แล้วดูรูปแบบการทำงานของ script ตามคำอธิบายแต่ละส่วนด้านล่าง
 
 

โครงสร้างโค้ด Syntax

vQmod รองรับการกำหนด tags ต่อไปนี้:
 

modification

 
  • tag ระดับสูงสุดของไฟล์ มีได้เพียง 1 อันเท่านั้น
ตัวอย่าง
<modification
xmlns="https://github.com/vqmod/vqmod"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://github.com/vqmod/vqmod"
    >

</modification>
 

modification / id

  • tag ใช้กำหนดชื่อ และคำอธิบายของ vQmod script 
  • รูปแบบการกำหนด: เป็นข้อความอธิบาย เช่น กำหนดว่า vQmod Replace CSS
ตัวอย่าง
<id><![CDATA[vQmod Replace CSS]]></id>
 
 

modification / version

 
  • tag กำหนดเวอร์ชั่น vQmod script ของเรา
  • รูปแบบการกำหนด: เป็นตัวเลขและทศนิยม เช่น  1.0.0
ตัวอย่าง
<version><![CDATA[1.0.0]]></version>
 
 

modification / vqmver

 
  • เวอร์ชั่นอย่างน้อยที่สุดของ vQmod ที่ script จะสามารถทำงานได้
  • รูปแบบการกำหนด: เป็นตัวเลขและทศนิยม เช่น  1.0.0
  • (ออปชั่นทางเลือก)เราสามารถกำนหด attribute  required="true" ถ้าต้องการให้ script ไม่ทำงาน  ถ้าเวอร์ชั่นของ vQmod ไม่น้ยอกว่าหรือไม่ตรงตามที่เราระบุค่าเวอร์ชั่นขั้นต่ำ (เพิ่มเข้ามาใน vQmod เวอร์ชั่น 2.4.0)
ตัวอย่าง
<vqmver><![CDATA[2.4.0]]></vqmver>
 

modification / author

 
  • ชื่อผู้ที่สร้าง vQmod script นี้
  • รูปแบบการกำหนด: เป็นข้อความอธิบาย เช่น Ninenik
ตัวอย่าง
<author><![CDATA[Ninenik]]></author> 
 
 

modification / file

 
  • ชื่อไฟล์ที่เราต้องการปรับแต่ง
  • จำเป็นต้องมี attribute "name" ระบุ path ไฟล์ เช่น catalog/controller/product/product.php สามารถกำหนด (,) คอมม่า เพื่อใช้กับหลายๆไฟล์พร้อมกัน (รองรับเวอร์ชั่น 2.3.0+) สามารถใช้ * ในการกำหนด path โดยจะหมายถึงโฟลเดอร์ชื่อใดก็ได้ 1 ระดับ
เช่น
     - catalog/view/theme/*/template/product/product.tpl
     - catalog/view/theme/*/*/product/product.tpl
 
ตัวอย่าง
<file name="catalog/view/theme/default/template/common/home.tpl"> 
</file>
  • สามารถกำหนด file tags ได้หลาย tags ในไฟล์ xml โดยแต่ละไฟล์ที่กำหนดสามารถมีการกำหนด operation ของไฟล์นั้นๆได้
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "path"  เพื่อลดขั้นตอนการกำหนดซ้ำกรณีใช้หลายไฟล์ได้ (2.3.0 +)
ตัวอย่าง
<file path="catalog/view/theme/default/template/common/" name="home.tpl,header.tpl"> 
</file>
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "error" โดยสามารถกำหนดค่าเป็น log  skip หรือ abort
  • skip คือ ไม่สนใจไฟล์นั้น ถ้าเกิด error
  • log จะคล้ายกับ skip แต่มีการบันทึกรายละเอียด error
  • abort คือ บันทึกรายละเอียด error และยกเลิกการดำเนินการไฟล์ นั้นๆ ไม่มีผลกับ xml ไฟล์ตัวอื่น และไม่กลับ ไปเปลี่ยนค่าของไฟล์ที่ทำงานเสร็จไปแล้ว
 


modification / file / operation

  • ส่วนของการทำงานทั้งหมดที่เกิดขึ้น
  • สามารถกำหนดได้หลาย operation ใน file tag เดียวกัน
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "info" แนะนำว่าควรเพิ่ม เพื่อที่อาจจะใช้งานใน vQmod/vQmod Manager สำหรับ OC ในอนาคต แต่ในที่นี้จะยังไม่ได้กำหนด เพื่อให้ไฟล์อ่านง่าย
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "error" โดยกำหนดเป้น skip log หรือ abort
  • skip หมายถึง การดำเนินการหรือ operaton อื่นๆจะยังทำงานต่อ แม้ว่าบางอันไม่สามารถทำงานได้ โดยจะมีมี log error บันทึกไว้
  • log จะคล้ายกับ skip แต่มีการบันทึกรายละเอียด error
  • abort หมายถึงบันทึก log error และแปลงกลับเป็นไฟล์ต้นฉบับ (ค่านี้เป็นค่าเริ่มต้น)

 

modification / file / operation / ignoreif

 
  • tag นี้เป็นออปชั่น tags ตัวเลือกที่อนุญาตให้ค้นหาในไฟล์ได้หลายบรรทัด หากมีการค้นพบค่าที่กำหนด operation จะข้ามการทำงานไป 
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "regex' เป็นค่า true หรือ false. รูปแบบของข้อมูลใน tag สามารถกำหนดในรูปแบบ regex มาตรฐานที่ใช้ใน คำสั่ง preg_match ใน php เค่าเริ่มต้นของ atrribute นี้คือ false
 
 

modification / file / operation / search

 
  • tag เป็นส่วนแรกสุดของ operation
  • สามารถค้นหาจากบรรทัดเดียวเท่านั้น จะทั้งบรรทัด หรือบางส่วนก็ได้ โดยสามารถใช้การกำหนดขอบเขต
  • offset และ index attribute มาช่วย 
  • ตัดช่องว่างหน้าหลังและการขึ้นบรรทัดใหม่ออกอัตโนมัติ
  • ใช้  <search> tag 1 อันต่อ <operation> tag 1 อัน
  • ใช้งาน CDATA tags เพื่อคลุมโค้ดด้านใน
  • attribute ที่จำเป็นต้องมีคือ "position" สามารถกำหนดเป็น before|after|replace|top|bottom|all|ibefore|iafter โดย
  • replace จะทำการแทนที่ค่าที่ค้นเจอ ด้วยค่าที่กำหนดใน add tag 
  • before จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหน้าข้อมูลที่ค้นเจอ
  • after จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปต่อหลังจากข้อมูลที่ค้นเจอ
  • top จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านบนสุดของไฟล์ โดยไม่สนในข้อมูลที่ค้นหา
  • bottom จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านล่างสุดของไฟล์ โดยไม่สนใจข้อมูลที่ค้นหา
  • *all ยกเลิกใช้งานตั้งแต่เวอร์ชั่น 2.4.0
  • ibefore จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหน้าของข้อมูลที่ค้นเจอในบรรทัดเดียวกัน 
  • iafter จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหลังของข้อมูลที่ค้นเจอในบรรทัดเดียวกัน
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "offset" เพื่อใช้งานกับ position ได้ดังนี้
  • ถ้ากำหนด position เป็น before และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไป ก่อนบรรทัดที่ค้นเจอ 3 บรรทัด
  • ถ้ากำหนด position เป็น after และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปหลัง บรรทัดที่ค้นเจอ 3 บรรทัด
  • ถ้ากำหนด position เป็น replace และ offset เท่่ากับ 3 จะทำการแทนที่ข้อมูลในบรรทัดที่ค้นเจอและบรรทัดถัดไป อีก 3 บรรทัด ด้วยข้อมูลที่กำหนดใน add tag
  • ถ้ากำหนด position เป็น top และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้า ไปด้านบนสุดของไฟล์ โดยเริ่มที่ตำแหน่งบรรทัดที่ 3 จากด้านบน 
  • ถ้ากำหนด position เป็น bottom และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไป ด้านล่างของไฟล์ก่อน 3 บรรทัดสุดท้าย
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "index" สำหรับระบุรายการค้นหาที่ต้องการจัดการ เช่น ถ้าเราค้น
  • หาคำว่า "echo" ซึ่งพบว่ามีด้วยกัน 5 รายการในไฟล์ แต่เราต้องการที่จะแทนที่แค่เพียงตัวที่ 1 และตัวที่ 3 เท่านั้น
  • เราสามารถระบุโดยใช้ได้ดังนี้ index="1,3" โดยใช้ (,) คอมม่าเพื่อระบุรายการที่ต้องการกรณีมีหลายรายการ
  • ปล่อยว่างหรือกำหนดเป็น FALSE ถ้าต้องการแทนทุกตัวที่ค้นเจอ (เป็นค่าเริ่มต้นคือแทนทุกตัว) 
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "regex" หากต้องการกำหนดรูปแบบการค้นหาเป็นแบบ regular expression 
  • ถ้ากำหนดเป็น true ข้อมูลการค้นหาต้องกำหนดในรูปแบบ regex pattern
  • ปล่อยว่างหรือกำหนดเป็น FALSE เพื่อค้นหาแบบข้อความธรรมดา (ค่าเริ่มต้นค้นเป็นแบบข้อความธรรมดา)
  • ไม่รองรับการใช้งานกับ ibefore และ iafter
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "trim" เป็น true หรือ false
  • true คือจะตัดช่องว่างหน้าหลังและการขึ้นบรรทัดใหม่ออก
  • ปล่อยว่างหรือกำหนดเป็น true คือการใช้งาน trim (ค่าเริ่มต้นคือ true)
 
 

modification / file / operation / add

 
  • tag ที่จำเป็นส่วนที่สองของ operation 
  • สามารถกำหนดหลายบรรทัดได้
  • ใช้ <add> tag 1 อัน ต่อ <operation> tag 1 อัน
  • ตำแหน่งข้อมูลที่ทำการแทรกเข้าไปขึ้นกับการกำหนด position ในส่วนของ search
  • ใช้งาน CDATA tags เพื่อคลุมโค้ดด้านใน
  • เวอร์ช่น 2.6.0: <add> tag รองรับ attribute ทั้งหมด ของ search
  • Attributes ใน <add> tag จะแทนค่าของ attributes ใน<search> tag.
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "position" เป็น before|after|replace|top|bottom|ibefore|iafter.
  • replace จะทำการแทนที่ค่าที่ค้นเจอ ด้วยค่าที่กำหนดใน add tag 
  • before จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหน้าข้อมูลที่ค้นเจอ
  • after จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปต่อหลังจากข้อมูลที่ค้นเจอ
  • top จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านบนสุดของไฟล์ โดยไม่สนในข้อมูลที่ค้นหา
  • bottom จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านล่างสุดของไฟล์ โดยไม่สนใจข้อมูลที่ค้นหา
  • ibefore จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหน้าของข้อมูลที่ค้นเจอในบรรทัดเดียวกัน 
  • iafter จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านหลังของข้อมูลที่ค้นเจอในบรรทัดเดียวกัน
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "offset" เพื่อใช้งานกับ position ได้ดังนี้
  • ถ้ากำหนด position เป็น before และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปก่อนบรรทัดที่ค้นเจอ 3 บรรทัด
  • ถ้ากำหนด position เป็น after และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปหลังบรรทัดที่ค้นเจอ 3 บรรทัด
  • ถ้ากำหนด position เป็น replace และ offset เท่่ากับ 3 จะทำการแทนที่ข้อมูลในบรรทัดที่ค้นเจอและบรรทัดถัดไปอีก 3 บรรทัด ด้วยข้อมูลที่กำหนดใน add tag
  • ถ้ากำหนด position เป็น top และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไปด้านบนสุดของไฟล์ โดยเริ่มที่ตำแหน่งบรรทัดที่ 3 จากด้านบน 
  • ถ้ากำหนด position เป็น bottom และ offset เท่่ากับ 3 จะทำการแทรกข้อมูลที่กำหนดใน add tag เข้าไป ด้านล่างของไฟล์ก่อน 3 บรรทัดสุดท้าย
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "index" สำหรับระบุรายการค้นหาที่ต้องการจัดการ เช่น ถ้าเราค้น
  • หาคำว่า "echo" ซึ่งพบว่ามีด้วยกัน 5 รายการในไฟล์ แต่เราต้องการที่จะแทนที่แค่เพียงตัวที่ 1 และตัวที่ 3 เท่านั้น
  • เราสามารถระบุโดยใช้ได้ดังนี้ index="1,3" โดยใช้ (,) คอมม่าเพื่อระบุรายการที่ต้องการกรณีมีหลายรายการ
  • ปล่อยว่างหรือกำหนดเป็น FALSE ถ้าต้องการแทนทุกตัวที่ค้นเจอ (เป็นค่าเริ่มต้นคือแทนทุกตัว) 
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "regex" หากต้องการกำหนดรูปแบบการค้นหาเป็นแบบ regular expression 
  • ถ้ากำหนดเป็น true ข้อมูลการค้นหาต้องกำหนดในรูปแบบ regex pattern
  • ปล่อยว่างหรือกำหนดเป็น FALSE เพื่อค้นหาแบบข้อความธรรมดา (ค่าเริ่มต้นค้นเป็นแบบข้อความธรรมดา)
  • ไม่รองรับการใช้งานกับ ibefore และ iafter
  • (ออปชั่นทางเลือก) สามารถกำหนด attribute "trim" เป็น true หรือ false
  • true คือจะตัดช่องว่างหน้าหลังและการขึ้นบรรทัดใหม่ออก
  • ปล่อยว่างหรือกำหนดเป็น true คือการใช้งาน trim (ค่าเริ่มต้นคือ true)
 
 

<![CDATA[ ]]>

 
  • สิ่งนี้เรียกว่า CDATA tags ใช้ใน XML ไฟล์ เพื่อกำหนดให้ ข้อมูลต่างๆ ที่อยู่ระหว่าง <![CDATA[  และ ]]>  
  • จะไม่ถูกประมวลผลให้ทำงาน อย่างเช่นเราแทรก javascript หรือโค้ด PHP เข้าไป โค้ดเหล่านี้ก็เป็นแค่ข้อความ จะไม่มีการทำงาน แนะนำว่าเราควร 
  • ใช้งาน CDATA tags ทุกครั้ง


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ



อ่านต่อที่บทความ









เนื้อหาที่เกี่ยวข้อง



Tags:: opencart vqmod







URL สำหรับอ้างอิง











เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ