1

بابه‌ت: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

سەلام

لەم بابەتەدا باسی بنچینەی گەشەپێدانی پێوەکراو دەکەم بۆ PunBB. سەرەتا با پێناسێکی پێوەکراوەکان لە PunBB بکەم، بە گشتی برتین لە زیادکرنی تایبەتمەنی نوێ یان دەستکاریکردنی تایبەتمەندیە بنەڕەتیەکانی سکریپتەکە بێ ئەوەی هیچ گۆڕانکاریەک لە پەڕگە بنچینەیەکانی سکریپتەکە ڕووبدات.

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

پێوەکراوەکان چۆن کاردەکەن؟

پێوەکراوەکان بۆ زیادکردن یا دەستکاری کار لەگەڵ (Hook) ـەکان دەکەن، Hook بە مانای قولاپ دێت کە ڕوونتر بڵێم تەواوی کارەکانی پێوەکراو وەک هەڵواسین زیاد دەکرێن یا لادەبرێن بۆ سکریپتەکە.


Hook ـەکان چۆن کاردەکەن؟
بۆ نمونە ئەگەر سەیری دوا دێرەکانی پەڕگەی header.php بکەیت

($hook = get_hook('hd_end')) ? eval($hook) : null;

if (!defined('FORUM_HEADER'))
    define('FORUM_HEADER', 1);

وەک دەبینیت کە گۆڕاوێک هەیە بە ناوی $hook کە نرخەکەی پشکنینێکە بۆ فەنکشنی get_hook() کە نرخی پاڕامیتەرەکەی hd_end، ئەمە چی دەگەیەنێ؟ بەهۆی ئەم نرخە کە فەنکشنەکە هەیەتی [لە دواتر وەک id بەکاردێت بۆ پەیوەست کردنی بە hook ـێک] کۆدەکان هەڵدەواسێ.

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

پێکهاتەی پێوەکراو و دەستکردن بە دروستکردن

گشت پێوەکراوان لە PunBB دەخرێنە ناو بوخجەی extesions . لە نێو ئەم بوخچەیەدا پێویست دەکات بوخچەیەکی نوێ دروست بکەی کە ناوەکەی هاوتا بێت لەگەڵ ID ـی پێوەکراوەکە لە چەند دێری دواتر ئاماژەی پێ دەدەم. بۆ نموونە my_extension وەک ID بۆ پێوەکراوەکە دادەنەم، واتە بوخچەکە ناوەکەی دەبێتە my_extension.

هەنگاوی دواتر دروستکردنی پەڕگەی manifest.xml لە نێو بوخچەی پێشوو کە دروستم کرد، کە وەک کارپێکەری پێوەکراواکە دەبێت بۆ هەڵواسین، هەموو کارەکان لەوێ ئەنجام دەدرێن، تا ئێستا شوێنی پەڕگەکە بەم جۆرەیە
/extensions/my_extension/manifest.xml

ناوەڕۆکی manifest.xml :
ئاسایی ئەم کۆدانەی تێدایە

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
  <id>my_extension</id>
  <title>My Extension</title>
  <version>1.0</version>
  <description>Test extension for development</description>
  <author>KarDo</author>
  <minversion>1.4RC1</minversion>
  <maxtestedon>1.4.4</maxtestedon>
  <hooks>
  <!-- do stuff -->
  </hooks>
</extension>

ڕوونکاری بۆ پەرگەی manifest.xml

  • id : ناوێکە کە وەک ناوی بوخچەی پێوەکراو و ID ـی بەکاردێت بۆ پێوەکراوەکە.

  • title : دەبێتە ناونیشانی پێوەکراوەکە لە کاتی دەرکەوتنی لە بەڕێوەبەرەیاتی.

  • description : دەبێتە پێناسێکی پێوەکراوەکە.

  • author : تایبەتە بە داڕیزەری پيوەکراوەکە.

  • minversion : کەمترین وەشانی سکریپت کە پێوەکراو دەتونرێ لەسەری دابمەزرێ.

  • maxtestedon : زۆرترین وەشانی سکریپت کە پێوەکراو دەتونرێ لەسەری دابمەزرێ.

* پێوەکراو دەتوانرێ دابمەزرێ لەنێوان ئەو دوو وەشانی کە لە minversion و maxtestedon دەنووسرێ، کە لە minversion دا 1.4RC1 مانای هەر وەشانێکی ١.٤ بەدواوە [1.4.x] , وە maxtestedon تا دوا وەشان (کە ئێستا ١.٤.٤ ـە).


پێکهاتەی Hooks

ئاسایی تەواوی Hook ـەکان لە نێوان تاگی hooks دەنووسرێن.

<hooks>
</hooks>

بۆ زیادکردنی هەر hook ـێک پێویست دەکات تاگی hook بنووسرێ بەم شێوەیە.

<hook id="id of hook"></hook>

لە id of hook  دا ئەو id ـە دەنوسرێ کە دەویسترێت hook ـەکەی پێ پەیوەست بکرێ، لە باسی Hook ـەکان چۆن کاردەکەن؟ دا ئاماژەیەکم بە  کارکردنی hook ـەکاندا، لە کۆدی پێشووتر

($hook = get_hook('hd_end')) ? eval($hook) : null;

گەر بمانەوێت هەندێ کۆد بۆ ئەو hook ـە زیاد بکەین دەبێت بەم جۆرە دەبێت.

<hook id="hd_end"><![CDATA[
    echo 'Hello world!';
]]></hook>

کۆدەکان پێویست دەکات لە ناو CDATA دا بنوسرێن، کە شێوەیەکە بۆ نوسینی کۆدەکانی زمانەکانی دیکە لە نێو xml بێکێشە، زانیاری زۆرتر

تا ئێستا پەرگەی manifest.xml دەبێت بەم جۆرە بێت

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
  <id>my_extension</id>
  <title>My Extension</title>
  <version>1.0</version>
  <description>Test extension for development</description>
  <author>KarDo</author>
  <minversion>1.4RC1</minversion>
  <maxtestedon>1.4.4</maxtestedon>
  <hooks>
    <hook id="hd_end"><![CDATA[
        echo 'Hello world!';
    ]]></hook>
  </hooks>
</extension>

ئێستا لە بەڕێوەبەرایەتی پێوەکراوەکە بەم جۆرە دەردەکەوێ
http://www.webchinupload.com/f/2016-05/ … d193a4.PNG

وە کاتێکە دا دەمەزرێت بەم جۆرە دەردەکەوێ
http://www.webchinupload.com/f/2016-05/ … bfe248.png


لە وێەنەکە دیارە بۆ کوێ زیادبوە، بە گشتی پێوەکراوەکان لەسەر ئەم ڕێرەوە کاردەکەن.

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

نموونەیکی دی کە دەمانەوێت لە بری title ـی مەکۆکە نووسینێکی دیکە دابنەێین، گەر دیسانەوە لە پەڕگەی header.php بگەرێین بە دوای hd_gen_elements ئەمە دەدۆزینەوە لە دێری ١٨٤

($hook = get_hook('hd_gen_elements')) ? eval($hook) : null;

دێین hook ـێکی بۆ زیاد دەکەین کە title ـەکە بگۆڕێ.

<hook id="hd_gen_elements"><![CDATA[
    $gen_elements['<!-- forum_title -->'] = '<span class="title">Test title</span>';
]]></hook>

خۆی ئاسایی $gen_elements['<!-- forum_title -->'] نرخەکەی

// Forum Title
$gen_elements['<!-- forum_title -->'] = '<p id="brd-title"><a href="'.forum_link($forum_url['index']).'">'.forum_htmlencode($forum_config['o_board_title']).'</a></p>';

بە هۆی hook ـەکەی سەرەوە نرخەکەی دەگۆڕین بۆ ئەوەی کە لە hook ـەکە دانراوە.

پاشان دێین پەڕگەیەکی style بۆ پێوەکراوەکە دەنووسین تا هەندێ جوانکاری بدەین بە title ـەکە کە گۆڕانکاریمان تێدا کرد، بەڵام سەرەتا پێویستە ئاماژە بەوە بدەم کە لەگەڵ هەر پێوەکراوێک گۆڕاێک هەیە بە ناوی

$ext_info

نرخەکەی بریتەیە لە array ـێیک زانیاری تایبەت بە  پێوەکراوەکەمان لە خۆ دەگرێ،  ئەمە نرخەکەیەتی بۆ پێوەکراوەکەمان

Array
(
    [id] => my_extension
    [path] => ../extensions/my_extension
    [url] => http://localhost/punbb4/extensions/my_extension
    [dependencies] => Array
        (
        )
)

سوود لەو گۆراوە دەبینین بۆ تۆمارکردنی style, خۆی PunBB میتۆدی add_css لە کلاسی Loader، لەگەڵ hook ـی hd_head بەکاردێنێت بۆ تۆمارکردنی style ـەکان.

ئێستا style ـێک تۆماردەکەین بە ناوی my_extension.css کە لە نێو بوخچیەک دایە بە ناوی css.

<hook id="hd_head"><![CDATA[
    $forum_loader->add_css($ext_info['url']. '/css/' . $ext_info['id'].'.css', array('type' => 'url', 'media' => 'screen'));
]]></hook>

هەر یەک لە url و id ـی گۆڕاوی $ext_info بەکار هاتووە بۆ تۆمارکردنی style ـەکە.

پەرگەی manifest.xml تا ئێستا بەم جۆریە.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
  <id>my_extension</id>
  <title>My Extension</title>
  <version>1.0</version>
  <description>Test extension for development</description>
  <author>KarDo</author>
  <minversion>1.4RC1</minversion>
  <maxtestedon>1.4.4</maxtestedon>
  <hooks>
  
    <hook id="hd_end"><![CDATA[
        echo 'Hello world!';
    ]]></hook>
    
    <hook id="hd_gen_elements"><![CDATA[
        $gen_elements['<!-- forum_title -->'] = '<span class="title">Test title</span>';
    ]]></hook>

    <hook id="hd_head"><![CDATA[
        $forum_loader->add_css($ext_info['url']. '/css/' . $ext_info['id'].'.css', array('type' => 'url', 'media' => 'screen'));
        
    ]]></hook>
    
  </hooks>
</extension>

وە لە کۆتیایید ئەم چەند دێرە css بۆ پەرگەی style ـەکە زیاد بکە.

/*
 * My Extension Style
*/

.title{
    font-size:25px;
    font-weight:bold;
    color:red;
    line-height:50px;
}

ئەنجامەکە بەم جۆرە دەرچوو.
http://www.webchinupload.com/f/2016-05/e0f72dc55cb90fe92ec302d0c700d46d.PNG


داگرتنی ئەو پێوەکراوەی کە کارمان لەسەر کرد.
http://www.webchinupload.com/f/2016-05/ … 525fbe.zip

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

بەشێکی دی لە پێکهاتەکان ماون، تایبەتن بە کارکردن لەگەڵ داتابەیس و هەندێ تایبەتمەندی دیکە، لە بەشی دووەمی ئەو بابەتە ڕوونی دەکەمەوە.


ماندوونەبن.

“Be sick of ur sickness! ”  ― Arash Dibazar-

2

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

ده‌ستخۆش كاك پشتیوان، ئه‌م جۆره‌ بابه‌تانه‌ زۆر پێویستن بۆ ئه‌وه‌ی هه‌موو كه‌سێك كه‌ ده‌یه‌وێت بتوانێت به‌ درووستیی ده‌ستكاری PunBB خۆی بكات و تایبه‌تمه‌ندی بۆ خۆر بكات. بابه‌ته‌كه‌ت هه‌ڵده‌واسم وه‌ك گرینگ.

هیچ شتێك ئه‌وه‌نده‌ باش نییه‌ نه‌توانرێت باشتر بكرێت :::http://webdarej.com

3

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

زۆر سوپاس کاک ئاسۆ، لە نیازم دایا کۆمەڵە بابەتێک لەسەر پێوەکراو  و گەشەپێدانی ڕووکار بە شێوەیەکی پێشکەوتوو بنووسم لەم ماوەیە، سوپاس بۆ هەڵواسینی بابەت.

“Be sick of ur sickness! ”  ― Arash Dibazar-

4

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

ماندوو نەبی کاک پشتیوان

5

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

ده‌ست خۆش بابه‌تێكى تايبه‌ته‌

هیچ شتێك ئه‌وه‌نده‌ باش نییه‌ نه‌توانرێت باشتر بكرێت (ئاسۆ نادرى).
Aso Nadri

6

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

دەست خۆش بابەتێکی بەسوودە ، بەهیوای بەردەوامی.

بۆ هەمیشە... سوپاس وێبچن، سوپاس ئاسۆ نادری.

7

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

زۆر سوپاس هاوڕێیان، دەستی ئێوەش خۆشبێت و ماندوو نەبن

“Be sick of ur sickness! ”  ― Arash Dibazar-

8

وه‌ڵام: [فێرکاری] گەشەپێدانی پێوەکراو بۆ PunBB، بەشی یەکەم.

هەر ساغ بیت لێهاتوو.

ڕوحت شاد بێت كاك ئاسۆ نادری😔😔😔
جێت خاڵی