如何以升级安全的方式扩展/include/SearchForm/SearchForm2.php
?
答案 0 :(得分:1)
您可以创建传统上扩展SearchForm2(SearchForm2的类名)的/custom/include/SeachForm/CustomSearchForm2.php
(例如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(例如,帐户,调用),因此对于那些您想要扩展其原始扩展ViewList的模块,例如CustomAccountsViewList extends AccountsViewList
。
因此,创建自定义ViewList扩展,复制粘贴您需要更改的方法(prepareSearchForm和getSearchForm2),并根据需要进行调整以加载自定义SearchForm类。
答案 1 :(得分:0)
假设这个问题与SugarCRM 6.5.x(以及可能更早的6.x版本 - 我还没有检查过)有关,Matthew Poer的回答是完全正确的,除了一件事:扩展的类是称为SearchForm而不是SearchForm2。要做到这一点:
编辑custom / include / SearchForm / SearchForm2.php并编辑类声明,将其更改为:
require_once('include/SearchForm/SearchForm2.php');
class CustomSearchForm extends SearchForm {
将include / MVC / View / views / view.list.php复制到custom / include / MVC / View / views / view.list.php
编辑custom / include / MVC / View / views / view.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');
和行
$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。