2012-10-10 1 views
4

간단한 문제가 있지만 심각하게 느껴질 수 있습니다. 맞춤 입력란을 만들고 custom\modules\Leads\metadata\detailviewdefs.php (detailview 레이아웃)의 모든 리드 모듈에 추가했으나 문제는 설치 프로그램 패키지를 만들어야한다는 것입니다. 변경. 나는 사용자 지정 필드를 관리하고 매니페스트를 통해 custom\Extension\modules\Leads\Ext\Vardefs에 복사했습니다. 이제 manifest를 통해 detailviewdefs 변경 사항을 적용하는 방법을 알지 못합니다 (detailview에 새 필드 패널 추가). 요점은 기존의 detailview 레이아웃을 변경해서는 안되며 새 패널 만 추가해야한다는 것입니다.SugarCRM detailview의 설치 가능 변경 사항

내 생각에 가능한 해결책은 $ layout_defs 배열 $layout_defs["Leads"]["DetailView"] ['panels']['panel_name']에 코드를 추가하고 custom\Extension\modules\Leads\Ext\Layoutdefs\에 배치하고 Manifest를 통해 Layoutdefs 파일을 복사하는 것입니다. 나는 이것을 시도했지만 작동하지 않는 것 같다. 가능한 경우 스마트 솔루션 공유를 찾고 있습니다.

추가 : 내가 module builder와 다른 인스턴스에서 Studio ->export Customizations과 수입에서 모듈 변경을 내보낼 경우에도 . 그것은 새로운 인스턴스 (SugarCRM의 제한이 아닌)에서 이전의 모든 사용자 정의 파일 (사용자 정의)을 덮어 쓰지만 나의 요구 사항은 새로운 인스턴스의 detailview에서 변경 사항 만 추가하는 것입니다.

답변

1

설탕의 ModuleInstaller 클래스의 다음 함수가 manifest script을 통해 레이아웃에서 필드를 추가하거나 제거하는 기능을 발견했습니다. 이 기능은 editviewdetail view에 필드를 동시에 추가/제거합니다.

$installer_func->removeFieldsFromLayout($layoutAdditions); 

희망 :

$installer_func->addFieldsToLayout($layoutAdditions); 

Users 모듈에서 users_access 필드를 제거하려면 : 그냥

$installer_func = new ModuleInstaller(); 
    $layoutAdditions = array('Users' => 'users_access'); 

Users 모듈에 users_access 필드를 추가하려면 post_install/pre_install 무엇을 필요로 할 필요에 다음 줄을 추가 도움이됩니다. 내 필드 스튜디오 (필요 customcode)에서 바로 추가 할 수 그렇게 간단하지이기 때문에 대답하기

만수르

+0

귀하의 솔루션은 interesting.But 예를 들어 사용자 정의 js 코드와 함께 새 요소를 추가 할 수있는 경우 알려주 : 어떤 텍스트 상자의 onblur.Also 경우에도 기존 요소가 있습니다. onblur 기능을 추가하고 싶습니다. 어떻게해야합니까? – user3286692

2

힘든 내용입니다. 내가 아는 두 가지 옵션이 있습니다. 1) Studio를 사용하여 레이아웃에 필드를 추가하는 방법에 대한 지침을 제공합니다. 2) post_install.php 스크립트에서 Studio 레이아웃 배포를 사용하여 필드를 지정된 레이아웃에 삽입하는 방법을 모방합니다. 대량 배포하는 경우 모든 분야의 패널).

+0

감사의 @egg은, 첫 번째 옵션은 내 경우에는 적합하지 않다, 그래서 지금은 2 옵션과 기대를 향해 갈거야 내 문제를 해결할 수 있습니다 ... – mansoor