ไร้คอนเซปต์

Smart Phone Club & Computer Webmaster Programmer => ปรับแต่ง SMF (Simple Machines Forum) ขั้นเทพ => ข้อความที่เริ่มโดย: [V]inle[P]rince ที่ มีนาคม 30, 2009, 04:25:06 AM



หัวข้อ: [SMF] สร้าง action= ตามใจคุณ (เอาแบบง่ายๆละกัน)
เริ่มหัวข้อโดย: [V]inle[P]rince ที่ มีนาคม 30, 2009, 04:25:06 AM
อย่างที่อธิบายไป มันคล้ายๆกับ MOD ที่ลงไว้ในเว็บนั้นแหละนะ ใครลงเป็นก็ไม่ error ใครลงไม่เป็นก็ งงปราย

เดี๋ยวจะสาธิตและอธิบายหน่อยละกัน ?action=xxx นี่มันคืออะไร มันคือฟังชั่นครับ (เวรละตอบงี้สงสัยมีถีบ)
เอาเป็นว่า มาดูกันว่าถ้าเราจะทำ action=xxx ของเราเองจะต้องทำไง แล้วอะไรมันคืออะไร

-----------------------------------------------------------------------------------------

index.php

อ้างถึง
// Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] => array($file, $function).
$actionArray = array(
'activate' => array('Register.php', 'Activate'),

 เอ๊ย เว้นบรรทัดใหม่แล้วยัด ของเราลงไป
อ้างถึง
'xxx' => array('yyy.php', 'zzz'),

แล้วก็เกิดปัญหาคือคุณไม่รู้จะใส่ตัวแปลที่ผมบอกยังไง เอางี้อธิบายหน่อยละกันสำหรับคนไม่รู้ คนรู้ก็เลยไปข้อต่อไปเลย

xxx  มันคือชื่อที่เราจะใช้ต่อจาก action= ครับ อย่างเช่น ถ้าเราใส่ test แทน xxx จะได้ action=test
yyy คือไฟล์ที่อยู่ใน Sources
zzz คือ function ใน yyy ครับ

การทำงานก็คือพอ xxx ถูกเรียกใช้งาน >> วิ่งไปหา ไฟล์ yyy.php >> วิ่งหา function zzz
action=xxx >>  sources/yyy.php >> function zzz()

-----------------------------------------------------------------------------------------

sources/yyy.php

สร้างไฟล์ yyy.php แล้วใส่
อ้างถึง
<?php
if (!defined('SMF'))
die('Hacking attempt...');
function zzz()
{
global $settings, $user_info, $language, $context, $txt;
loadTemplate('yyy');
loadLanguage('yyy');
}
?>

สำหรับ yyy ในข้อนี่จะใส่อะไรก็ได้ครับ แต่เพื่อจะให้คุณไม่งง แต่ มันจะเรียกหาไฟล์
themes/default(หรือ ไดเรคโทรี่ดรีมของคุงนะกรัฟ)/yyy.template.php
themes/default(หรือ ไดเรคโทรี่ดรีมของคุงนะกรัฟ)/languagues/yyy.thai.php or yyy.english.php #ปรับภาษาอะไรก็ตามนั้นละครับ

---------------------------------------------------------------------------------------------

themes/default/yyy.template.php
อ้างถึง
<?php
function template_main()
{
global $context, $settings, $options, $txt, $scripturl; //#### ถ้าคุณต้องการเรียกค่าอะไร ก็ยัดไป ละกันครับ แต่หลักๆ เรียกแค่นี้พอecho $txt['test'];
}
?>

------------------------------------------------------------------------------------------------
themes/default/languagues/yyy.thai.php or yyy.english.php

อ้างถึง
<?php

$txt['test'] = ' TEST JA ';

?>
----------------------------------------------------------------------------------------
PS สังเกต ตัวแปลทั้ง 3 ดีๆนะครับ มันต้องแก้ ไม่ใช่ก๊อปไปไม่แก้ เดวงงเน้อ
วันหลังจะมาสอนวิธีทำ index.php เป็น xxx.php และ index.php?xxx=yyyy รวมถึง index.php?action=xxx;yyy=zzz

และเมื่อรวมวิธีทั้งหมดเข้าด้วยกันเราก็จะได้   ..... ได้ไรหว่า ประโยชน์หามีไม่อีกแล้ว
xxx.php?xxx=yyy;zzz=zzz <<< เอาไปใช้ทำไร ยังงงตัวเอง - -" เอานะ ใครอยากรู้ก็บอกละกันครับเดี๋ยวมาชี้แจง