ความรู้เบื้องต้น สอน การพัฒนา Mod PHPBB3
Moderators: mindphp, ผู้ดูแลกระดาน
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
ความรู้เบื้องต้น สอน การพัฒนา Mod PHPBB3
การทำงานของ phpbb จะมี 2 ส่วนคือ ส่วนของหน้า web และในส่วนของ admin
ในส่วนของหน้า web จะทำงานเป็นfile โดยสร้าง file ขึ้นมา 1 file แล้วทำงานให้จบในfile เดียวโดยการสร้าง mode ในการเข้าถึง
และในส่วนของ admin จะมีการสร้าง class ขึ้นมาและสร้าง mode ในการเข้าถึงโดยการทำงานจะไม่มี file
การเข้าใช้งานในส่วนของ admin ใน phpbb นั้นจะมีการเข้ารหัส 2 ครั้ง
ในการสร้าง module ต้องมี
-Template
- File ทำงาน .php
- Info ของ module
- File ภาษา
Info มีไว้สำหรับระบุชื่อ file มี title , version,ฟังก์ชั่น install,uninstall
ในส่วนของ admin การสร้าง file ต่างๆจะถูกเก็บไว้ที่ acp เช่นในส่วนของ include/acp
และในส่วนของ template จะเก็บไว้ที่ adm/style
ในส่วนของหน้าเว็บจะเก็บไว้ข้างนอก
ในส่วนของหน้า web จะทำงานเป็นfile โดยสร้าง file ขึ้นมา 1 file แล้วทำงานให้จบในfile เดียวโดยการสร้าง mode ในการเข้าถึง
และในส่วนของ admin จะมีการสร้าง class ขึ้นมาและสร้าง mode ในการเข้าถึงโดยการทำงานจะไม่มี file
การเข้าใช้งานในส่วนของ admin ใน phpbb นั้นจะมีการเข้ารหัส 2 ครั้ง
ในการสร้าง module ต้องมี
-Template
- File ทำงาน .php
- Info ของ module
- File ภาษา
Info มีไว้สำหรับระบุชื่อ file มี title , version,ฟังก์ชั่น install,uninstall
ในส่วนของ admin การสร้าง file ต่างๆจะถูกเก็บไว้ที่ acp เช่นในส่วนของ include/acp
และในส่วนของ template จะเก็บไว้ที่ adm/style
ในส่วนของหน้าเว็บจะเก็บไว้ข้างนอก
Last edited by mindphp on 08/12/2012 12:14 pm, edited 2 times in total.
Reason: แก้ไขคำ และหัวข้อกระทู้
Reason: แก้ไขคำ และหัวข้อกระทู้
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
Re: ความรู้เบื้องต้น PHPBB
การสร้างไฟล์ภาษา
การสร้างไฟล์ภาษาแต่ละ page จะต้องตั้งชื่อให้เหมือน page ที่เราจะสร้างประโยชน์ของการสร้างไฟล์ภาษานั้นคือเพื่อการใช้งานระบบได้หลายภาษาเช่น ภาษาไทย, ภาษาอังกฤษ ขึ้นอยู่ว่าผู้ใช้ใช้ภาษาอะไร โดยที่เราไม่ต้องสร้างเว็บหลายภาษา
ตัวอย่างการสร้างไฟล์ภาษา
การเก็บ file ภาษาถ้าเป็นของหน้าเว็บจัดก็บไว้ที่ folder
language/folderภาษา
เช่น
ภาษาที่เราสร้างถ้าเป็นในส่วนของ admin จะเก็บไว้ที่
language/folder ภาษาที่เราสร้าง/folder acp
เช่น
การสร้างไฟล์ภาษาแต่ละ page จะต้องตั้งชื่อให้เหมือน page ที่เราจะสร้างประโยชน์ของการสร้างไฟล์ภาษานั้นคือเพื่อการใช้งานระบบได้หลายภาษาเช่น ภาษาไทย, ภาษาอังกฤษ ขึ้นอยู่ว่าผู้ใช้ใช้ภาษาอะไร โดยที่เราไม่ต้องสร้างเว็บหลายภาษา
ตัวอย่างการสร้างไฟล์ภาษา
Code: Select all
<?php
/**
*
* about.php [Thai] //ชื่อ page ที่เราสร้าง
*
* @package language
* @version $Id: $
* @copyright (c) 2011 phpBB Group
* @author 2011-04-18 - phpBBThailand.com//สร้างโดย
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
exit;
}
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
$lang = array_merge($lang, array(
'AB_MY_ABOUT' => 'ทดอบสอบหน้าที่สร้างเอง',//การตั้งชื่อควรเป็นตัวใหญ่เพื่อไม่ให้มีการซ้ากับคำอื่นเราควรใช้ตัวย่อของชื่อ file ที่เราสร้างใส่ไว้ข้างหน้าตัวอย่างคือเราสร้างชื่อfile ว่า about เราจะใส่ AB_ ไว้ข้างหน้า
'AB_MY_ABOUT2' => 'ทดอบสอบหน้าที่สร้างเอง 2 '
));
?>
language/folderภาษา
เช่น
Code: Select all
language/en/ชื่อไฟล์ภาษา.php
language/th/ชื่อไฟล์ภาษา.php
language/folder ภาษาที่เราสร้าง/folder acp
เช่น
Code: Select all
language/en/acp/ชื่อไฟล์ภาษา.php
language/th/acp/ชื่อไฟล์ภาษา.php
Last edited by mindphp on 28/11/2012 11:26 am, edited 2 times in total.
Reason: แก้ข้อความ
Reason: แก้ข้อความ
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
Re: ความรู้เบื้องต้น สำหรับ Mod PHPBB3
การเรียกใช้งานไฟล์ภาษา
ก่อนที่เราจะใช้ file ภาษาที่เราจะสร้างจะต้องทำการ register file ที่เราสร้างลง file php ที่เราทำงานก่อน ตัวอย่าง fileภาษาที่เราสร้างชื่อ about.php แต่เวลาเรียกใช้ไม่ต้องมีนามสกุล โดยใช้คำสั่ง add_lang('ชื่อ file ภาษาที่เราสร้างโดยไม่ต้องใส่นามสกุล')
ตัวอย่าง การ register file ภาษาที่สร้าง
ตัวอย่าง การใช้งานภาษาที่สร้าง
การเรียกใช้มี 2 แบบคือ 1. เรียกใช้ที่หน้า template ตัวอย่างการเรียกใช้งาน {L_AB_MY_ABOUT} L_ คือตัวย่อของ Language การเรียกใช้ภาษาโดยตรงที่หน้า template จะต้องใส่ L_ ตามด้วยตัวแปลภาษาที่เราสร้างไว้
2.เรียกใช้ผ่านตัวแปลที่กำหนดไว้ที่หน้าทำงาน (.php ตัวอย่างด้านบน) ตัวอย่างการเรียกใช้งาน {AB_MY_ABOUT2} เรียกใช้ได้เลยโดยไม่ต้องมีตัว L ด้านหน้า
ก่อนที่เราจะใช้ file ภาษาที่เราจะสร้างจะต้องทำการ register file ที่เราสร้างลง file php ที่เราทำงานก่อน ตัวอย่าง fileภาษาที่เราสร้างชื่อ about.php แต่เวลาเรียกใช้ไม่ต้องมีนามสกุล โดยใช้คำสั่ง add_lang('ชื่อ file ภาษาที่เราสร้างโดยไม่ต้องใส่นามสกุล')
ตัวอย่าง การ register file ภาษาที่สร้าง
Code: Select all
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$user->add_lang('about');//การ register file ภาษาที่เราสร้าง
page_header('About Us ---------------');
// trigger_error('NO_TOPIC');
$template->assign_vars(array(
'CTIME'=> date('Y-m-d H:i:s') .' Hi',
'AB_MY_ABOUT2'=> $user->lang['AB_MY_ABOUT2'],//กำหนดค่าตัวแปรภาษา
));
$template->set_filenames(array(
'body' => 'about.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
การเรียกใช้มี 2 แบบคือ 1. เรียกใช้ที่หน้า template ตัวอย่างการเรียกใช้งาน {L_AB_MY_ABOUT} L_ คือตัวย่อของ Language การเรียกใช้ภาษาโดยตรงที่หน้า template จะต้องใส่ L_ ตามด้วยตัวแปลภาษาที่เราสร้างไว้
2.เรียกใช้ผ่านตัวแปลที่กำหนดไว้ที่หน้าทำงาน (.php ตัวอย่างด้านบน) ตัวอย่างการเรียกใช้งาน {AB_MY_ABOUT2} เรียกใช้ได้เลยโดยไม่ต้องมีตัว L ด้านหน้า
Code: Select all
<!-- INCLUDE overall_header.html -->
about.html
<h2> ---
{L_AB_MY_ABOUT}
-----
</h2>
{AB_MY_ABOUT2}
{L_ATTACHED_IMAGE_NOT_IMAGE}
<h2>About Us -{CTIME}</h2>
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>
We were founded this year to bring you the best forum on the Internet!
We promise to do the following:
<ul>
<li>Provide new content</li>
<li>provide a friendly atmosphere</li>
<li>Provide an environment where you can have fun!</li>
</ul>
</p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
Re: ความรู้เบื้องต้น สำหรับ Mod PHPBB3
Themplate
ค่าคงที่ของ themplate
T_THEME_PATH เก็บ css ./styles/prosilver/theme
T_TEMPLATE_PATH เก็บ folder template ./styles/prosilver/template
T_IMAGESET_PATH เก็บรูปภาพ css ./styles/prosilver/imageset
T_IMAGESET_LANG_PATH เก็บรูปภาพภาษา ./styles/prosilver/imageset/en
T_IMAGES_PATH เก็บรูปข้างนอก ./images/
T_SMILIES_PATH เก็บรูปยิ้ม ./images/smilies/
T_AVATAR_PATH เก็บสัญญาลักษณ์หน้าตัวเองเป็นรูปการ์ตูน ./images/smilies/
ค่าคงที่ของ themplate
T_THEME_PATH เก็บ css ./styles/prosilver/theme
T_TEMPLATE_PATH เก็บ folder template ./styles/prosilver/template
T_IMAGESET_PATH เก็บรูปภาพ css ./styles/prosilver/imageset
T_IMAGESET_LANG_PATH เก็บรูปภาพภาษา ./styles/prosilver/imageset/en
T_IMAGES_PATH เก็บรูปข้างนอก ./images/
T_SMILIES_PATH เก็บรูปยิ้ม ./images/smilies/
T_AVATAR_PATH เก็บสัญญาลักษณ์หน้าตัวเองเป็นรูปการ์ตูน ./images/smilies/
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
Re: ความรู้เบื้องต้น สำหรับ Mod PHPBB3
การวนลูปส่งค่าไปให้ Themplate เพื่อการทำ list ข้อมูล
ใช้คำสั่ง assign_block_vars
ตัวอย่าง
ตัวอย่างลูปซ้อนลูป
ใช้คำสั่ง assign_block_vars
ตัวอย่าง
Code: Select all
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('loopname', array(
'FOO' => $row['foo'],
'BAR' => $row['bar']
));
}
Code: Select all
while ($topic = $db->sql_fetchrow($result))
{
$template->assign_block_vars('topic', array(
'TOPIC_ID' => $topic['topic_id']
));
while ($post = $db->sql_fetchrow($result))
{
$template->assign_block_vars('topic.post', array(
'POST_ID' => $post['post_id']
));
}
}
- modtanoy_pen
- PHP Hero Member
- Posts: 116
- Joined: 19/10/2012 4:27 pm
Re: ความรู้เบื้องต้น สำหรับ Mod PHPBB3
การใช้ IF , ELSEIF ใน Themplate
ตัวอย่างการใช้ IF
ตัวอย่างการใช้ IF แบบลูป
ตัวอย่างการใช้ ELSEIF
ตัวอย่าง การวนลูปใน Table การสลับสีของตาราง
ตัวอย่างการใช้ IF
Code: Select all
<!-- IF expr -->
markup
<!-- ENDIF -->
Code: Select all
<!-- IF loop.S_ROW_COUNT is even -->
markup
<!-- ENDIF -->
Code: Select all
!-- IF expr1 -->
markup
<!-- ELSEIF expr2 -->
markup
.
.
.
<!-- ELSEIF exprN -->
markup
<!-- ELSE -->
markup
<!-- ENDIF -->
Code: Select all
<table>
<!-- IF loop.S_ROW_COUNT is even -->
<tr class="row1">
<!-- ELSE -->
<tr class="row2">
<!-- ENDIF -->
<td>HELLO!</td>
</tr>
</table>
Code: Select all
<table>
<!-- IF loop.S_ROW_COUNT > 10 -->
<tr bgcolor="#FF0000">
<!-- ELSEIF loop.S_ROW_COUNT > 5 -->
<tr bgcolor="#00FF00">
<!-- ELSEIF loop.S_ROW_COUNT > 2 -->
<tr bgcolor="#0000FF">
<!-- ELSE -->
<tr bgcolor="#FF00FF">
<!-- ENDIF -->
<td>hello!</td>
</tr>
</table>
-
- PHP Hero Member
- Posts: 109
- Joined: 03/05/2013 10:44 am
Re: ความรู้เบื้องต้น สอน การพัฒนา Mod PHPBB3
คำสั่งเชื่อมต่อไฟล์
การเขียนปิด tags การรวม PHP ใน template
ข้อจำกัดในการกำหนด keyword
-- จะต้องเว้นวรรคทั้งก่อนและหลัง "=" เสมอ
-- เมื่อมีการกำหนด strings จะต้องใช้ single quotes
ตัวอย่าง
Code: Select all
<!-- INCLUDE filename -->
Code: Select all
<!-- PHP -->
echo "hello!";
<!-- ENDPHP -->
-- จะต้องเว้นวรรคทั้งก่อนและหลัง "=" เสมอ
-- เมื่อมีการกำหนด strings จะต้องใช้ single quotes
ตัวอย่าง
Code: Select all
<!-- DEFINE $COLSPAN = 3 -->
<!-- DEFINE $CLASS = 'class1' -->
- M004
- PHP VIP Members
- Posts: 1323
- Joined: 01/01/1970 7:00 am
Re: ความรู้เบื้องต้น สอน การพัฒนา Mod PHPBB3
ตัวอย่างการใช้งาน sql in set
การใช้งาน sql in set คือการนำค่าที่อยู่ในรูป array มา query
Code: Select all
$sql = 'UPDATE ' . MOD_DICTIONARY_TOPICE_TABLE . ' SET ' . $db->sql_build_array('UPDATE', array(
'topics_id' => $cbItems_array,
)
) . ' WHERE ' . $db->sql_in_set('dictionary_id', $Id);
$sql_query = $db->sql_query($sql);
$template->assign_vars(array(
'SAVE_EDIT_DATA' => $user->lang['DIC_EDIT_SAVE'],
) );
-
- Similar Topics
- Replies
- Views
- Last post
-
-
การพัฒนา Ajax ใน extension ของเราเอง บน phpBB3.1
by mindphp » 04/07/2015 2:45 pm » in Jquery & Ajax Knowledge - 2 Replies
- 851 Views
-
Last post by thatsawan
02/08/2015 11:22 pm
-
-
- 0 Replies
- 1792 Views
-
Last post by ichimarusoichi
08/01/2019 3:49 pm
-
-
พีระมิดเวลาในการทำงานของ การพัฒนา ซอฟต์แวร์
by Before Dong » 04/10/2017 11:42 am » in พูดคุยเรื่องทั่วไป จับฉ่าย - 1 Replies
- 4898 Views
-
Last post by P'Eak
04/10/2017 2:30 pm
-
Who is online
Users browsing this forum: No registered users and 9 guests