日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DZ插件制作简易入门教程(自学手记)第一篇

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DZ插件制作简易入门教程(自学手记)第一篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看了Maple-x和泡哥寫的那兩篇插件制作教程,還是讓我如云里霧里。后經仔細研究插件實例,總算有所收獲,但彎路走了不少。為避免后來者重蹈覆轍,在此總結成文,算做個筆記好了。

就用最經典的項目名稱Hello Word!來講。
效果圖:
?



第一步 建立相關文件及目錄結構
1.1 隨便在那里建立一個新文件夾。

1.2 在建立好的新文件夾里按下圖結構和名稱建立子目錄和文件。
?
  *文件先用記事本建立空的文本文件然后改名就可以了,以后再編輯這些文件的內容。
  *改名的時候注意調整系統的文件夾選項不要隱藏文件擴展名。

第二步 在后臺系統設置里添加插件的相關信息
2.1 進后臺->擴展->論壇插件->管理,按圖填寫相關內容并提交。
?
  *唯一標識符不要有空格和標點符號。

2.2 勾上“可用”后再提交一次,然后點最后邊的“詳情”進入下一步。
?
2.3 設置插件詳細信息,設置好后點擊提交,然后點擊本頁頭部的“模塊”進入下一步。
?
  *版權信息填你自己想填的內容^_^,不一定要跟我的一樣
  *插件目錄的名字要與第一步里建立的文件夾中/plugins/下的文件夾名稱一致,本例中為helloworld。
  *插件目錄末尾要加“/”,參照上圖。
  *因為暫時沒有用到數據庫,所以插件數據表為空。
  *插件描述隨便填不填、填什么都可以。

2.4 設置模塊信息,提交。
?
  *程序模塊要與第一步里建立的文件夾中/plugins/helloworld/下的*.inc.php文件的名稱一致。本例中為helloworld。
  *菜單名稱就是將來在論壇頁面上顯示的標簽的名字,一定要填,不然標簽顯示不出來。
  *模塊類型有好幾種,詳細介紹請參見DZ論壇用戶手冊。本例中選“前臺調用(前臺菜單)”。
  *使用等級即該模塊(或“頁面”)的訪問權限,自酌。

2.5 如果一切順利,現在插件管理里面就出現設定好的插件了。
?
  *如果要調整什么參數,點“管理”->相應插件的“詳細”。

第三步 編輯插件文件內容,實現插件功能
3.1 編輯模版文件hw_helloworld.htm的內容并保存,參考如下:

  • {template header}

  • <div id="nav"><a href="$indexname">$bbname</a></div>
  • <div style="width:960px;??background-color:#FFF;">
  • <div class="mainbox">

  • <table align="center" cellpadding="5">
  • ??<tr>
  • ? ? <td bgcolor="#999999">打個招呼~</td>
  • ??</tr>
  • ??<tr>
  • ? ? <td height="265"><div align="center">$say_string</div></td>
  • ??</tr>
  • </table>


  • </div></div>

  • {template footer}
  • 復制代碼

      *模版文件是插件全部的樣子或界面,也就是你的插件將以什么樣的面貌呈現在用戶的瀏覽器中。
      *模版文件實際上是插件程序模塊的一部分,通過在程序模塊(*.inc.php)中include()發揮作用。單獨把模版從程序模塊中分離出來是為了方便應用論壇的樣式。如果對編程比較熟悉的話,這個和C++中.form文件和.CPP文件的關系有點類似。
      *本例中,模版文件hw_helloworld.htm首行{template header}的和最后一行的{template footer},分別引用了論壇的header和footer模版,代碼第3行加入了導航條,也就是說,插件將在論壇頁面中間部分出現,好像“插”在論壇里一樣^_^。如果刪除{template header}和{template footer},則頁面將以很獨立的面貌呈現,好像跟論壇一點關系也沒有一樣。
      *本例的模版文件包含了最基本元素,替換里面表格的內容就可以做出想要的插件界面。
      *模版文件后綴名是.htm,所以可以像普通htm頁面一樣用javascript來實現一些頁面元素的動態化。如果在里面用<? ... ?>是不能被解釋執行的,因為前面說過,模版文件要發揮作用,要在程序模塊文件中include(),在PHP程序段里再引用PHP能不出錯嗎?也正是因為這一點,在模版文件里可以不用加<?...?>標記直接引用PHP的變量值。這其實就夠了,因為模版文件其實就是用來處理表單提交和數據反饋用的,這也是PHP程序強大的地方。
      *基于上一點,我們在第13行,引入一個$say_string,具體見下一步。

    3.2 編輯插件程序模塊文件helloworld.inc.php并保存,參考內容:

  • <?
  • if(!defined('IN_DISCUZ')) {
  • ? ? ? ? exit('Access Denied');
  • }

  • if(!$discuz_uid) {
  • ? ? ? ? showmessage('not_loggedin', null, 'NOPERM');
  • }

  • include DISCUZ_ROOT.'./forumdata/cache/plugin_'.$identifier.'.php';

  • $say_string = 'Hello World!' ;

  • include template('hw_helloworld');

  • ?>
  • 復制代碼

      *第1行到第8行是與論壇安全相關的語句,一定要寫!DZ論壇的插件沒有不寫這幾句的。
      *第10行是載入插件頁面緩存,提高執行效率。
      *第12行,定義一個$say_string字符串變量,賦值“Hello World!”,插件運行以后,這個值就通過模版文件顯示出來了。
      *第14行,將模版文件包含進來,讓程序模塊這個靈魂能有一個軀殼^_^。為了防止一些莫名其妙的錯誤,習慣性的將模版的include()放在最后。
      *程序模塊文件helloworld.inc.php是插件程序的起點,調用它的是論壇的plugin.php。打個比方,plugin.php是傳送帶,只要論壇在運行,這個傳送帶就在轉。我們只是把我們的插件放到了這個傳送帶上一起運轉。

    3.3 保存好所有文件,將plugins和templates用FTP上傳,或直接Copy到論壇文件根目錄下。

    3.4 確保在后臺 界面->界面設置->導航欄 啟用了“插件”, 在 擴展->論壇插件->管理 啟用了對應插件,清除一下緩存,刷新論壇首頁,就能看到結果了。


    最后,總結一下我理解的DZ論壇插件的運行機理與文件間邏輯關系圖:

    ?


    模版文件我用了前綴hw_是為了以后擴展模版,因為可以通過程序模塊根據條件裝載不同的模版,這個以后再說吧。

    今天就先寫到這里。

    ?

    海口論壇?http://www.souhaikou.com

    海口同城微博? http://t.souhaikou.com

    總結

    以上是生活随笔為你收集整理的DZ插件制作简易入门教程(自学手记)第一篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。