redmine定製view控件

大家好

    我是‘R隊’,今天要講的是redmine二次開發中對View的控件、樣式、行爲進行定製改動時,需要注意的點


一. 自定義控件

修改View中的控件、或增加新控件,一般有以下三種方式:

  1. 直接修改View文件

    例如:要修改Issue詳情頁展示的控件,可直接修改 app/views/issues/show.html.erb文件,增加控件

  2.  <p><strong><%=l(:field_description)%></strong></p>

 2. 調用helper方法

          對於較複雜的控件,建議使用helper方法來創建,方法參見ROR如何在View中創建複雜的組件

          同時rails也提供了一系列預定義的方法協助創建控件,例如:要創建一個跳轉到關聯Issue的鏈接,只要使用:

 <%= link_to "click me", quoted_issue_path(@issue) %>

       其中quoted_issue_path(@issue)是用於創建url的輔助方法

 3. 創建模板文件

          對於具有內聚關係的一系列控件,建議都放在一個模板文件中,然後其他view可以直接調用該模板文件。例如:自測用例相關的控件都保存在_smoke_testcase.html.erb文件中,當其他地方需要使用自測用例控件時,直接使用以下語句調用即可:

<%= render :partial => 'xc_smoke_test/somke_testcases' %>

二. 自定義樣式

若要修改已有控件的樣式,有以下3種方法

  1. 直接修改元素屬性

    <table style="width:80%">

    這種方式可以確保隻影響當前元素,且會比任何CSS文件中定義的樣式優先級更高。但是代碼維護性和可讀性會較差。

  2. 修改頁面樣式

    推薦的做法是爲頁面創建單獨的樣式文件,例如:要定義自測用例控件的樣式,可以在public/stylesheets目錄下新建一個smoke_test.css,把我們要定義的樣式放在這個文件中,然後在_smoke_testcase.html.erb文件中引入該css文件即可

     <%= stylesheet_link_tag 'smoke_test.css' %>
    這種做法不會對其他功能產生影響,整體範圍可控,且代碼維護性、可讀性都較好。
  3. 修改全局樣式文件

    public\stylesheets\application.css文件定義了Redmine全局的css樣式,該文件默認被 layout/base.html.erb引用,因此組用於所有頁面。

    除非真的要定義作用於所有頁面樣式,否則一般不建議改動此文件。且該文件中的屬性只可增加,不可修改。避免對整體佈局產生影響。

三. 自定義js

與控件類似,我們對具有內聚邏輯的一系列js方法,建議創建單獨的js文件,放在public\javascripts目錄下,然後在需要用到的頁面上進行引用。引用語法如下:

<%= javascript_include_tag 'attachments' %>

一般不建議直接在view文件中寫js代碼,會導致代碼可維護性和可讀性較差。



三. 圖片資源

在代碼中對圖片地址的引用,建議使用image_tag方法。該方法以public/images作爲根目錄,無論服務器配置的項目訪問路徑如何,都可以正確獲取到圖片的url。

    <% (1..9).each do |img_number| %>
    <%= image_tag("mainpage/pic#{img_number}.png")%>
    <% end %>

發佈了32 篇原創文章 · 獲贊 28 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章