關于禪道二次開發的分享

2019-06-14 11:27:30
王想
轉貼:
CSDN
195
摘要:本期用戶分享給大家帶來的是:輕易科技知行研發部關于禪道二次開發的分享,這篇文章是作者在使用禪道后精心寫下的,希望這篇文章能對其他禪道用戶有所幫助。

本期用戶分享給大家帶來的是:輕易科技知行研發部關于 禪道 二次開發的分享,這篇文章是作者在使用禪道后精心寫下的,希望這篇文章能對其他禪道用戶有所幫助。


全文:

為適應公司內部使用禪道平臺,我參與的團隊在現有版本上進行了二次開發。首先,感謝開發禪道平臺的原創團隊。因公司需要,本人學習了禪道的框架及使用,有了一些自己的感受,希望這篇博客,對大家以后開發禪道有所幫助。:)


一、學習禪道-個人看法


好的地方
1.1. 取消了命名空間,使用傳統的自動加載
1.2.跨模塊調用$this->loadModel($moduleName)、$this->app->loadClass('pager')、$this->app->loadLang($moduleName);
1.3.大量內部類 stdClass() 的使用
1.4.前端類(可以直接使用禪道內部封裝好的類,特別方便)

1.5.方便的從數據庫獲取數據。比如: $this->app->user->realname 獲取 zt_user 表的realname字段


不好的地方
2.1.大量的配置文件和全局變量
2.2.部分變量的聲明不明確

2.3.跨模塊調用雖然減少了代碼的冗余,將各模塊關聯起來,但是當開發的時候,大量的加載其它模塊使代碼看起來很混亂(真的有點頭疼)


二、學習禪道-重要模塊


1.common 模塊
此模塊下zh_cn.php文件可以配置所有的菜單(頂級菜單、模塊菜單)。在menuOrder.php 文件中進行菜單的位置布置。
例如:
1.新增主菜單:$lang->menu->procedure = '流程|procedure|index';`
2.添加副菜單: `$lang->procedure = new stdClass();`
3.$lang->procedure->menu = new stdClass();
4.$lang->procedure->menu->list = array('link' => '%s', 'fixed' => true);
5.$lang->procedure->menu->story = array('link' => '需求|procedure|story|productID=%s', 'subModule' => 'story');


2.group模塊(權限問題)
2.1.問題描述:

新建的菜單和功能模塊,只在admin下可見,當其他普通用戶登錄時均不可見。


2.2.解決方案:
所有的模塊、方法和菜單,都需要在該模塊下進行配置
解決1:禪道頁面組織菜單進行權限操作,并設置可見,退出當前賬號重進,未解決
解決2: http://www.51testing.com/html/11/n-3576111.html

具體操作及注意事項:
例如:在group/lang/resource.php文件中(index、hello均為teprocess 模塊下新建的方法,因此需要在group模塊下分配權限)
> $lang->resource->teprocess = new stdClass();  
> $lang->resource->teprocess->index = 'index';  
> $lang->resource->teprocess->hello = 'hello';  
> $lang->teprocess->methodOrder[5] = 'index';  
> $lang->teprocess->methodOrder[10] = 'hello';
說明: 在這里配置之后, admin用戶可對 teprocess 的 index、hello 方法設置訪問權限,其它方法不能設置訪問權限;
注意:配置完成后,在權限配置頁不會顯示相應方法的名字等信息會顯示 [] ,因此還需要在相應模塊下的lang/zh-cn.php 下對所有方法配置語言包。
   > $lang->teprocess->index = 'teprocess首頁';
   > $lang->teprocess->hello = '歡迎頁';


3.block模塊
3.1block模塊的使用:
①首先,在需要使用block的view頁面 添加一下代碼 :<?php echo $this->fetch('block', 'dashboard', 'module=teprocess')?>

②區塊數據的獲取,在block/control.php 中添加:

public function printUserBlock(){
   $this->session->set('userList', $this->server->http_referer);
   $this->view->users = $this->loadModel('teprocess')->getAllUser();
}
③在block/lang/zh-cn.php文件里,配置當前頁面可以創建的區塊:
  $lang->block->modules['teprocess'] = new stdClass();
  $lang->block->modules['teprocess']->availableBlocks = new stdClass();
  $lang->block->modules['teprocess']->availableBlocks->user = '用戶列表';

三、學習禪道-重要的便利方法及常用第三方插件


1.setMenu($values,$key);// 設置菜單欄的url

主要是對在common/zh_cn.php文件配置的菜單導航 %s 進行替換,生成正確的 url,此方法可以在任意模塊使用,無需進行大的改動。


2.ajaxGetDropMenu($id, $module, $method, $extra);// 設置生成下拉菜單
在view層創建 ajaxgetdropmenu.html.php,可以在任意需要的模塊使用該方法, 只需要修改小部分代碼。


3.富文本框的使用:
①view層:textarea($id, $value, $attrib);
例如:<?php echo html::textarea('desc', '', "rows='6' class='form-control'")?>
②框架提供富文本的使用只有 simpleTools、bugTools、fullTools 基本的功能選擇,沒有對富文本的大小的調節和讀寫模式的控制,這三種不同的選擇,主要是針對富文本框最上面的工具欄功能的多少來自由定義。
例如:在相應模塊的 config.php 添加:$config->procedure->editor->requirementreview = array('id'=>'desc', 'tools'=>'simpleTools');


4.tablesorter插件
①在首頁引入tablesorter.html.php文件,并在table標簽和th標簽中,加入特定的類名,即可完成排序的功能。

②加入特定的類名,即可完成正序、倒序功能。 加入特定類名


5.分頁
①在model中調用pager對象

②在control中將page對象賦值給模板

③view層,index.html.php中顯示分頁,調用框架自帶的show()方法,其中show()方法有兩個參數,$align: left, center, right,默認是居右對齊。$type: full|short|shortest,默認是full,可以省略不寫。


四、遇到的坑

一定要注意框架的命名規則,主要指大小寫的問題,比如,view層的命名只能是小寫字母,小寫字母,小寫字母,重要的事情說三遍!!!

下載提示

禪道使用問題交流,請先加 官方QQ: 說明來意后由群主邀請入群。

獲取技術支持注意事項: http://www.qudvxe.tw/book/zentaopmshelp/70.html

歡迎關注我們的微博微信。

新浪微博:易軟天創

微信公眾號:易軟天創

發表評論
評論通過審核后顯示。
文章分類
聯系我們

聯系人:魏中顯

電話:18561939726

Email:[email protected]

QQ:1746749398

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:丁芝

電話:17663906485

Email:[email protected]

QQ:1481227768

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:楊苗

電話:13165050229

Email:[email protected]

QQ:3142565561

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:徐賀

電話:15216484215

Email:[email protected]

QQ:1492153927

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:王壯

電話:13730922971

Email:[email protected]

QQ:2845263372

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:孫良宇

電話:13165056632

Email:[email protected]

QQ:3137772959

地址:青島開發區長江路232號國貿中心C座2單元2902室

三肖中特期准黄大仙373745