2013-10-30 59 views
1

無論如何修改SugarCRM子面板中顯示的內容而不依賴於Action Hooks?如何使用PHP修改SugarCRM子面板的數據?

現在爲一個子面板領域我必須這樣使用鉤編輯內容...

$hook_array['process_record']

而且在我分配掛鉤調用然後我可以改變一個類的方法場的子面板是這樣的...

$bean->name = '<a href="/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3Dproje_Web_Project_Tasks%26action%3DDetailView%26record%3D' 
.$bean->id.'" rel="popover" data-content="' 
.$bean->description.'" data-original-title="">'.$bean->name.'</a>'; 

,直到你做任何這些行動,我們有這種方法的主要和重要的問題是它的偉大工程....

  1. 使用快速使用子面板分頁按鈕

在這兩種情況下,重新加載子面板數據,而其上運行的數據這個鉤子代碼創建形式

  • 更改頁面添加一個項目,所以結果爲您編輯的子面板領域不再是編輯和顯示爲正常是非常重大的。

    這是一個基本的例子......這說明2-3領域已經使用上面的鉤子方法編輯...
    enter image description here

    後,現在在子面板尋呼或快速創建新記錄,它重新加載子面板數據和不適鉤碼,所以你可以看到的結果看起來是這樣的...
    enter image description here

    我知道ListView有一個更可靠和靈活的方法來編輯它使用的內容get_list_view_data()方法我能夠應用相同的編輯其並且讓他們一直工作!

    所以我希望有編輯子面板數據,並總是應用編輯數據類似的方法?從我在我的研究迄今所看到的,只是會按預期工作的所有時間的解決方案,是要建立一個完全新的Custom Field Type

    我真的希望這不是唯一的方式,因爲這是我需要在子面板中編輯的每種類型的字段的主要痛苦,並且只有在有簡單的編輯方式時才感覺不對除了子面板數據以外的其他一切。

    沒有人有任何意見,建議,提示,幫助,請不要跟我分享一下關於這件事情,因爲這是主要的問題,因爲我開始在過去數個月,SugarCRM的發展我有過?

  • 回答

    4

    您可以通過編寫自定義查詢來獲取數據的子面板更改數據。

    所以你的bean(這種情況下聯繫人)內做一個功能:

    function get_project_list() { 
        $query = "SELECT project, info, matching, column, names FROM projects WHERE contact_id = '" . $this->id . "' AND deleted = 0" 
        return $query; 
    } 
    

    ,然後在子面板定義這樣設置數據源:

    $layout_defs["Contacts"]["subpanel_setup"]['projects'] = array(
         'order' => 10, 
         'sort_order' => 'desc', 
         'sort_by' => 'name', 
         'title_key' => 'LBL_PROJECTS_TITLE', 
         'subpanel_name' => 'contact_projects', 
         'module'=>'projects', 
         'get_subpanel_data' => 'function:get_project_list', 
         'function_parameters'=>array('type'=>'urgent'), // this is optional if you decide to sent parameters to the function if do this dont forget to define your function with function get_project_list($params) 
         'top_buttons' => array (... buttons that you need go here..), 
    ); 
    

    由於SQL是相當強大的,你可以以任何你喜歡的方式修改你的子面板數據,或多或少:)

    +0

    這實際上並不是我想要達到的原始問題,因爲我不需要改變數據結果,而只是簡單地使用ALT呃它出現的方式。然而,在一個完成不同任務的新項目中,這個答案正是我需要的!謝謝 – JasonDavis

    +0

    在你的例子中,它假定已經使用模塊構建器或工作室添加了子面板。當子面板不存在時,你是否知道如何使用你的方法?意思是使用代碼來添加子面板,然後使用你的技術來改變數據源?我發現許多相互衝突的文章看起來都略有不同! – JasonDavis