2014-03-14 21 views

回答

1

您可以創建/custom/include/SeachForm/CustomSearchForm2.php,它傳統上擴展了SearchForm2(SearchForm2的類名稱)(例如CustomSearchForm2 extends SearchForm)。更難的是在那個時候訪問你的自定義類。

SearchForm從include/MVC/View/views/view.list.php實例化 - 在幾個可能的地方:受保護的方法getSearchForm2()和[假定的]公共方法prepareSearchForm()

那麼你如何擴展view.list.php?那個更容易。對於任何需要自定義列表視圖的模塊,請在/custom/modules/MyModule/views/view.list.php處創建一個文件並將其定義爲CustomMyModuleViewList extends ViewList。某些模塊已經有了自己的ViewList(例如Accounts,Calls),因此對於那些想要擴展其原始擴展ViewList的人來說,例如, CustomAccountsViewList extends AccountsViewList

因此,創建您自定義的ViewList擴展,複製粘貼您需要修改的方法(prepareSearchForm和getSearchForm2)並根據需要進行調整以加載您的自定義SearchForm類。

0

假設問題涉及到SugarCRM 6.5.x(以及可能較早的6.x版本 - 我沒有檢查過),Matthew Poer的回答是完全正確的,除了一件事:擴​​展的類被稱爲SearchForm而不是SearchForm2 。要做到這一點:

  • 複製在include/SearchForm/SearchForm2.php定製/包括/ SearchForm/SearchForm2.php
  • 編輯自定義/包括/ SearchForm/SearchForm2.php和編輯類的聲明,改變它於:

    require_once('include/SearchForm/SearchForm2.php'); 
    class CustomSearchForm extends SearchForm { 
    
  • 包括複製/ MVC /查看/視圖/ view.list.php定製/包括/ MVC /查看/視圖/ view.list.php

  • 編輯自定義/包括/ MVC /查看/視圖/視圖。 list.php的和編輯類的聲明,將其更改爲:

    require_once('include/MVC/View/views/view.list.php'); 
    class CustomViewList extends ViewList { 
    
  • 在CustomViewList類的功能prepareSearchForm,改線

    require_once('include/SearchForm/SearchForm2.php'); 
    

    require_once('custom/include/SearchForm/SearchForm2.php'); 
    

    和line

    $searchMetaData = SearchForm::retrieveSearchDefs($this->module); 
    

    $searchMetaData = CustomSearchForm::retrieveSearchDefs($this->module); 
    
  • 在CustomViewList類的功能getSearchForm2,線

    return new SearchForm($seed, $module, $action); 
    

    更改爲

    return new CustomSearchForm($seed, $module, $action); 
    

CustomSeachForm和CustomViewList的其它功能可以是隨後根據需要重寫。如果您有特定於模塊的view.list.php文件,您當然需要將它們更改爲擴展CustomViewList而不是ViewList。