본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
LS Taiwan
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
로그아웃한 편집자를 위한 문서
더 알아보기
기여
토론
Dolibarr 모듈 개발
편집하기 (부분)
문서
토론
한국어
읽기
편집
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
편집
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
=화면 UI= ==탭 관리== ## 탭 관리에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 **탭 관리**를 돌리바 ERP CRM 모듈 개발에서 **선택적인 기능**으로 설명하며, 주로 **기존 객체 (송장, 주문, 견적 등) 보기 화면에 새로운 탭을 추가하거나 기존 탭을 제거**하고, **자체 모듈 페이지 내에 표준 객체의 탭 메뉴를 표시**하는 방법에 대해 다루고 있습니다. **새로운 탭 추가 및 기존 탭 제거:** * 모듈 설명자 파일에 정의된 **`$this->tabs` 배열**을 수정하여 객체 보기 화면에 새로운 탭을 추가하거나 기존 탭을 제거할 수 있습니다. * `$this->tabs` 배열은 여러 개의 문자열로 구성된 리스트이며, 각 문자열은 하나의 탭을 나타냅니다. * 각 문자열은 **":" (콜론)으로 구분된 6개의 부분**으로 이루어져 있습니다: 1. **파트 1:** 탭을 표시할 **객체 타입** (예: 'thirdparty', 'invoice', 'product', 'order' 등). 2. **파트 2:** 탭을 **추가**할 때는 **`+tabname1`** 과 같은 형식으로 고유한 코드를 지정하고, **제거**할 때는 **`-tabname`** 과 같이 기존 탭의 코드를 지정합니다. 3. **파트 3:** 탭의 **제목**입니다. 하드코딩된 문자열 또는 모듈 언어 파일에 정의된 번역 코드를 사용할 수 있습니다. 4. **파트 4:** 번역 코드가 정의된 **언어 파일** (`*.lang`)의 이름과 모듈명 (예: `mylangfile@mymodule`). `@mymodule`이 붙으면 모듈의 `langs/code_CODE/` 디렉토리에서, 그렇지 않으면 돌리바 기본 `langs/code_CODE/` 디렉토리에서 파일을 찾습니다. 5. **파트 5:** 탭의 **표시 조건**입니다. 예를 들어 특정 권한을 가진 사용자에게만 보이도록 설정하거나 (`$user->rights->mymodule->read`), 항상 보이도록 `1`을 설정할 수 있습니다. 6. **파트 6:** 탭을 클릭했을 때 **표시될 페이지의 URL**입니다 (`/mymodule/mypagetab1.php`). `__ID__` 문자열은 자동으로 해당 객체의 ID로 치환됩니다. * 기존 탭의 `'tabname'`을 확인하려면 `'core/lib/module.lib.php'` 파일의 `product_prepare_head` 함수 내에서 `$head[$h]` 부분을 참조해야 합니다. **자체 페이지에 표준 탭 메뉴 표시:** * 자체 모듈 페이지 내에 제품, 거래처 등 표준 객체의 모든 탭을 표시하려면 다음과 같은 단계를 따라야 합니다: 1. **필요한 파일 포함:** 각 객체 타입별로 해당하는 클래스 파일과 라이브러리 파일을 `require_once()` 를 사용하여 포함해야 합니다. 제공된 예시에는 거래처, 제품, 송장에 대한 파일 포함 예시가 있습니다. 2. **객체 생성 및 로드:** URL에서 전달된 ID를 이용하여 해당 객체 클래스의 인스턴스를 생성하고 `fetch()` 메서드를 사용하여 데이터베이스에서 객체 정보를 로드합니다. 3. **표시할 탭 목록 가져오기:** `XXX_prepare_head($obj)` 함수를 사용하여 표시할 탭 정의 배열을 가져옵니다. `XXX`는 객체 이름이며, 함수에 로드된 객체 인스턴스를 파라미터로 전달합니다. 4. **탭 표시:** `dol_fiche_head()` 함수를 사용하여 가져온 탭 배열 (`$head`)을 화면에 표시합니다. 활성화할 탭, 제목, 아이콘 등을 설정할 수 있습니다. * `dol_fiche_head()` 함수는 탭 영역 아래에 해당하는 HTML `<div>` 요소를 시작하며, 탭 영역을 닫으려면 PHP 페이지에서 `</div>` 태그를 사용해야 합니다. **돌리바 ERP CRM 모듈 개발의 더 큰 맥락에서 탭 관리의 중요성:** * **사용자 인터페이스 맞춤화:** 탭 관리를 통해 모듈 개발자는 **기존 돌리바 인터페이스를 확장하고 맞춤화**하여 사용자가 필요한 정보에 더욱 쉽고 빠르게 접근할 수 있도록 합니다. 새로운 기능을 제공하는 모듈에서 관련 정보를 별도의 탭으로 구성하여 **정보를 논리적으로 그룹화**하고 사용자 경험을 향상시킬 수 있습니다. * **정보 구성 및 접근성 향상:** 특히 많은 정보를 표시해야 하는 객체 화면에서 탭을 사용하면 **화면을 깔끔하게 유지**하고 **사용자가 원하는 정보만 선택적으로 볼 수 있도록** 돕습니다. 예를 들어, 특정 모듈에서 관리하는 추가 정보 필드를 기존 객체 화면의 새로운 탭에 통합하여 사용성을 높일 수 있습니다. * **기존 돌리바 객체와의 통합:** 모듈에서 추가하는 기능이 기존 돌리바 객체와 관련이 있을 때, 탭 관리를 통해 **자체 기능을 기존 워크플로우에 자연스럽게 통합**할 수 있습니다. 예를 들어, 특정 프로젝트 관련 정보를 주문 또는 송장 화면의 새로운 탭에서 보여주는 방식으로 통합할 수 있습니다. * **모듈 기능의 확장:** 새로운 탭을 통해 모듈은 **추가적인 정보 표시, 데이터 편집, 또는 특정 액션 실행을 위한 사용자 인터페이스를 제공**할 수 있습니다. 이는 모듈의 기능을 더욱 풍부하게 만들고 사용자에게 더 많은 가치를 제공합니다. * **일관성 유지:** 자체 모듈 페이지에서 `dol_fiche_head()` 함수를 사용하여 표준 탭 메뉴를 표시함으로써, **돌리바의 전반적인 사용자 인터페이스와 일관성을 유지**하고 사용자의 혼란을 줄일 수 있습니다. **결론적으로, 탭 관리는 돌리바 ERP CRM 모듈 개발에서 **사용자 인터페이스를 개선하고 정보를 효율적으로 구성하며, 모듈의 기능을 기존 돌리바 시스템에 자연스럽게 통합하는 데 중요한 역할**을 합니다. `$this->tabs` 배열을 이용한 탭 추가/제거와 `dol_fiche_head()` 함수를 활용한 표준 탭 표시 기능은 모듈 개발자가 더욱 편리하고 사용자 친화적인 모듈을 만들 수 있도록 지원합니다.** ==PHP 화면 생성 및 수정 == ## PHP 화면 생성 또는 수정에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **PHP 화면을 생성하거나 수정하는 것**을 **선택적인 기능**으로 설명하며, 주로 **새로운 기능을 구현하기 위해 필요한 사용자 인터페이스를 구축하거나 기존 화면에 추가적인 필드를 통합**하는 방법에 대해 다루고 있습니다. **새로운 PHP 화면 생성:** * 모듈의 목적이 새로운 기능을 추가하여 새로운 화면이 필요한 경우, PHP 화면을 생성해야 합니다. * 새로운 사용자 화면을 생성하려면 모듈 디렉토리 내에 (예: `/htdocs/mymodule/`) PHP 파일을 저장할 하위 디렉토리를 생성해야 합니다. * **`modulebuilder/myobject_page.php`** 에 제공된 스켈레톤 템플릿 파일을 복사하여 새로운 페이지 파일의 시작점으로 사용할 수 있습니다. * 새로운 PHP 파일에서 **`main.inc.php` 파일을 로드**하는 것이 중요합니다. 이 파일은 돌리바 환경 변수와 권한을 로드하며 `$user`, `$conf`, `$db`, `$langs` 객체를 포함합니다. 제공된 코드 예시는 다양한 상황에서 `main.inc.php` 파일을 로드하기 위한 여러 시도를 보여줍니다. * 모듈에 특화된 클래스나 라이브러리를 포함하려면 직접 `include_once`를 사용하는 대신 **`dol_include_once()` 함수**를 사용해야 합니다. 돌리바에서 제공하는 클래스를 포함하려면 `require_once DOL_DOCUMENT_ROOT . '/core/class/doli.class.php';` 와 같은 구문을 사용합니다. * 화면 표시를 위한 코드는 `main.inc.php` 로드 후 추가해야 합니다. * 명령행 스크립트 개발은 별도의 안내를 참조해야 합니다. **기존 폼 수정:** * 기존 요소 (예: 카테고리, 송장, 견적 등)의 폼에 더 많은 필드를 추가해야 할 수 있습니다. * **무거운 해결책**으로는 해당 요소 생성에 사용되는 모든 페이지를 **자체 페이지로 대체**하는 방법이 있습니다. 이는 "새 요소" 메뉴 항목을 비활성화하고 자체 항목을 추가하며, 기존 탭을 자체의 전체 페이지로 대체하는 것을 의미합니다. 이 방법은 페이지의 모든 것을 변경할 수 있다는 장점이 있지만, 더 많은 작업이 필요합니다. * **더 가벼운 해결책**으로는 **훅 시스템**을 사용하여 기존 필드의 끝에 필드를 추가하는 방법이 있습니다. 이를 위해서는 새로운 필드의 값을 저장할 자체 테이블을 만들고 CRUD (Create/Read/Update/Delete) 메서드를 가진 클래스를 생성해야 합니다. 그런 다음 훅을 사용하여 폼에 새로운 필드를 추가합니다. 훅 사용에 대한 일반적인 문서는 [Hooks_system#Implement_the_Hook](https://wiki.dolibarr.org/index.php?title=Hooks_system#Implement_the_Hook) 장을 참조해야 합니다. **데이터베이스 접근:** * 자체 테이블의 데이터를 편집하려면 이전에 생성한 PHP 클래스를 사용합니다. * 전용 PHP 클래스가 없는 테이블에 접근해야 하는 경우 (예: 특정 JOIN 또는 필터를 사용하여 레코드 목록을 가져오려는 경우), `$db` 객체를 사용하여 직접 SQL 쿼리를 실행할 수 있습니다. 삽입, 업데이트, 삭제를 위한 트랜잭션 처리 예시와 데이터를 읽기 위한 코드 예시가 제공됩니다. **페이지 스타일 정의:** * 자체 페이지의 모양을 돌리바 테마와 일치시키려면 **돌리바 CSS 스타일**을 사용해야 합니다. `liste_titre`, `pair`, `impair`, `flat`, `button` 등의 CSS 클래스 사용 예시가 제공됩니다. **돌리바 날짜 선택기 사용:** * 자체 페이지에서 돌리바 날짜 선택기 (달력 팝업)를 사용하려면 `$form = new Form($db);` 를 사용하여 `Form` 클래스의 인스턴스를 생성하고 `$form->select_date()` 메서드를 호출해야 합니다. 날짜 선택기는 HTML `<form>` 내에 포함되어야 하며, 폼 전송 후 값을 가져오는 방법도 설명되어 있습니다. **템플릿 파일 (tpl) 덮어쓰기:** * 모듈에서 tpl 파일을 덮어쓰려면 모듈 설명자의 `$this->module_parts` 배열에 `'tpl' => 1` 을 선언한 후, 덮어쓸 tpl 파일을 `mymodule/core/tpl` 디렉토리에 넣으면 됩니다. **돌리바 ERP CRM 모듈 개발의 더 큰 맥락에서 PHP 화면 생성 및 수정의 중요성:** * **기능 확장 및 맞춤화:** PHP 화면 생성 및 수정은 돌리바의 기본 기능을 넘어서는 **새로운 비즈니스 로직 및 데이터 관리 기능을 구현**하는 데 필수적입니다. 모듈 개발자는 이를 통해 특정 요구 사항에 맞는 사용자 인터페이스를 구축하고 워크플로우를 맞춤화할 수 있습니다. * **사용자 경험 향상:** 잘 설계된 PHP 화면은 사용자에게 **직관적이고 효율적인 작업 환경**을 제공하여 전반적인 사용자 경험을 향상시킵니다. 새로운 정보를 표시하거나 기존 정보를 편집하는 방식을 개선하여 사용 편의성을 높일 수 있습니다. * **데이터 관리 효율성 증대:** 새로운 화면을 통해 모듈은 **특정 데이터를 효과적으로 수집, 표시 및 관리**할 수 있도록 합니다. 이는 데이터의 정확성을 높이고 정보 접근성을 향상시켜 업무 효율성을 증대시킵니다. * **기존 시스템과의 통합:** 폼 수정 기능을 통해 모듈은 **자체 기능을 기존 돌리바 시스템의 흐름에 통합**할 수 있습니다. 예를 들어, 기존 주문 생성 화면에 추가적인 정보를 입력받는 필드를 추가하여 모듈의 기능을 자연스럽게 사용할 수 있도록 합니다. * **다양한 사용자 인터페이스 제공:** 새로운 PHP 화면과 스타일 정의를 통해 모듈은 **다양한 형태와 기능의 사용자 인터페이스**를 제공할 수 있습니다. 이는 다양한 사용자의 요구 사항을 충족시키고 모듈의 활용도를 높입니다. **결론적으로, PHP 화면 생성 및 수정은 돌리바 ERP CRM 모듈 개발에서 **핵심적인 부분**을 차지하며, 모듈의 **기능 확장, 사용자 경험 향상, 데이터 관리 효율성 증대**에 직접적으로 기여합니다. 개발자는 제공된 가이드라인과 돌리바의 개발 규칙을 준수하여 안정적이고 사용자 친화적인 모듈을 개발해야 합니다.** ==자체 설정 페이지 추가== ## 자체 설정 페이지 추가 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 설정 페이지를 추가하는 것**을 **선택적인 기능**으로 설명하며, 모듈의 **적절한 설정을 위해 사용자가 제공해야 하는 파라미터가 필요한 경우**에 해당됩니다. **자체 설정 페이지 추가 방법:** * **필요 조건:** 모듈이 여러 설정 파라미터를 필요로 하는 경우, 이러한 옵션을 편집하고 **`llx_const` 테이블**에 저장할 페이지를 생성해야 합니다. * **페이지 생성:** **`mymodule_setuppage.php`** 와 같은 이름의 PHP 페이지를 생성하여 설정 옵션을 업데이트할 수 있는 폼을 표시합니다. 파라미터를 읽고 저장하는 방법을 참고하기 위해 **/admin** 디렉토리의 기존 페이지를 활용하는 것이 좋습니다. 이 PHP 페이지는 모듈의 **/admin** 디렉토리 (예: `mymodule/admin/mymodule_setuppage.php`)에 위치해야 합니다. * **모듈 설명자 파일 수정:** 모듈의 설명자 파일 내에서 **`config_page_url`** 변수를 수정하여 이 PHP 페이지의 이름을 설정해야 합니다. * 페이지가 **/admin/** 디렉토리에 있는 경우, 경로는 필요하지 않습니다 (예: `$this->config_page_url = array("mymodule_setuppage.php");`). * 페이지가 **/mymodule/admin/** 디렉토리에 있는 경우, `@mymodule` 를 포함하여 경로를 지정해야 합니다 (예: `$this->config_page_url = array("mymodule_setuppage.php@mymodule");`). * **페이지 테스트:** **홈->설정->모듈** 페이지로 이동하면 모듈 라인의 끝에 설정 페이지로 이동하는 그림이 나타납니다. 이를 클릭하면 설정 페이지에서 파라미터를 보고 편집할 수 있어야 합니다. == 메뉴 항목 정의 == 개발한 **PHP 페이지를 돌리바 메뉴를 통해 접근 가능하게 만들 필요가 있을 경우**에 해당됩니다. **자체 메뉴 항목 정의 방법:** * **모듈 설명자 파일 수정:** 자체 메뉴 항목을 정의하려면 모듈 설명자 파일 내의 **`$this->menu` 배열**을 수정해야 합니다. 이 배열은 모듈이 활성화되면 나타날 메뉴 항목들을 선언합니다. * **`$this->menu` 배열 구조:** `$this->menu` 배열은 각 메뉴 항목에 대한 정보를 담는 연관 배열로 구성됩니다. 주요 속성은 다음과 같습니다: * **`fk_menu`**: 상위 메뉴의 ID를 지정합니다. 최상위 메뉴인 경우 **`0`** 을 설정합니다. 하위 메뉴인 경우 **`'fk_mainmenu=xxx'`** 또는 **`'fk_mainmenu=xxx,fk_leftmenu=yyy'`** 와 같은 형식으로 상위 메뉴 코드를 지정합니다. * **`type`**: 메뉴 항목의 유형을 지정합니다. 최상위 메뉴는 **`'top'`**, 왼쪽 메뉴는 **`'left'`** 로 설정합니다. * **`titre`**: 메뉴에 표시될 제목입니다. **언어 파일(`langs`)** 에서 번역 키를 사용하여 다국어 지원을 구현하는 것이 좋습니다. * **`mainmenu`**: 최상위 메뉴의 고유 코드입니다. * **`leftmenu`**: 왼쪽 메뉴의 고유 코드입니다. 최상위 메뉴의 경우 `mainmenu` 와 동일한 값을 사용하거나 필요에 따라 다른 값을 설정할 수 있습니다. * **`url`**: 메뉴 항목을 클릭했을 때 이동할 PHP 페이지의 경로입니다. 모듈 디렉토리를 기준으로 하는 상대 경로를 사용합니다 (예: `/mymodule/pagetop.php`). * **`langs`**: 메뉴 제목에 사용될 언어 파일의 이름 (확장자 `.lang` 제외)입니다. 해당 언어 파일은 `langs/code_CODE/` 디렉토리에 위치해야 합니다. * **`position`**: 메뉴 항목의 표시 순서를 결정하는 숫자입니다. * **`enabled`**: 메뉴 항목을 표시할지 여부를 결정하는 조건입니다. `'1'` 로 설정하면 항상 표시됩니다. 모듈 활성화 여부에 따라 표시하려면 **`'$conf->mymodule->enabled'`** 와 같은 설정을 사용할 수 있습니다. * **`perms`**: 메뉴 항목에 접근할 수 있는 권한을 정의합니다. `'1'` 로 설정하면 모든 활성 사용자에게 표시됩니다. 특정 권한이 있는 사용자에게만 표시하려면 **`'perms'=>'$user->rights->mymodule->level1->level2'`** 와 같은 형식으로 권한 규칙을 지정합니다. 권한 정의에 대한 자세한 내용은 출처의 뒷부분을 참고하십시오. * **`target`**: 링크의 타겟 속성입니다 (예: `'_blank'`). * **`user`**: 메뉴 항목이 내부 사용자 (`0`), 외부 사용자 (`1`), 또는 둘 다 (`2`)에게 표시될지 여부를 지정합니다. * **메뉴 항목 테스트:** 모듈 설정 페이지에서 모듈을 비활성화했다가 다시 활성화하면 `$this->menu` 배열의 `'enabled'` 속성 설정에 따라 메뉴 항목이 나타나야 합니다. ==자체 권한 추가== ## 자체 권한 추가에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 권한을 추가하는 것**이 모듈의 기능을 세밀하게 제어하고 보안을 강화하는 데 중요한 선택적 기능임을 설명합니다. 자체 권한은 모듈에서 제공하는 특정 기능이나 데이터에 대한 접근을 관리하는 데 사용됩니다. **자체 권한을 추가하는 방법:** * **모듈 설명자 파일 수정:** 자체 권한을 정의하는 과정은 이전에 생성한 모듈 설명자 파일에서 시작됩니다. * **`$this->rights_class` 변수 설정:** 먼저 **`$this->rights_class`** 변수를 모듈의 고유한 이름으로 설정해야 합니다. 이는 권한 그룹을 식별하는 데 사용됩니다. 예를 들어, 모듈 이름이 'mymodule'이라면 `$this->rights_class = 'mymodule';` 와 같이 설정합니다. * **`$this->rights` 배열 채우기:** 그런 다음 **`$this->rights` 배열**에 필요한 권한 수만큼 항목을 추가합니다. 각 권한은 하위 배열로 정의되며 다음 요소들을 포함합니다: * `$this->rights[$r]`: **고유한 권한 ID**입니다. 표준 모듈에서 이미 사용 중인 ID를 피하기 위해 Dolibarr 설치의 **시스템 정보** 메뉴에서 사용 중인 ID 목록을 확인하는 것이 좋습니다. * `$this->rights[$r]`: 권한에 대한 **기본 레이블**입니다. 이 레이블은 언어 파일 (`admin.lang`)에서 번역을 찾을 수 없을 경우에 사용됩니다. 번역 키는 "Permission\[권한 ID]=\[레이블]" 형식을 따릅니다 (예: "Permission10001=My permission Label"). * `$this->rights[$r]`: **권한 유형**입니다. `'r'` (읽기, 목록, 전문가 권한), `'w'` (쓰기, 업데이트 권한), `'d'` (삭제 권한) 중 하나를 선택합니다. * `$this->rights[$r]`: 새로 생성된 모든 사용자에게 이 권한을 **기본적으로 부여할지 여부**를 결정합니다. `1`로 설정하면 기본적으로 부여됩니다. * `$this->rights[$r]`: 공백 없는 **액션 문자열**입니다. * `$this->rights[$r]`: 공백 없는 **서브 액션 문자열**입니다. * `$r++ ;`: 각 권한을 정의한 후 인덱스 `$r`을 증가시켜 다음 권한을 위한 공간을 확보합니다. * **PHP 코드에서 권한 확인:** 정의된 권한이 있는지 확인하려면 PHP 코드 내에서 다음과 같은 구조를 사용합니다: ```php if ($user->rights->mymodule->action->subaction) { // 사용자가 해당 권한을 가지고 있을 때 실행할 코드 } ``` ==자체 박스 정의== ## 자체 박스 정의에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 박스를 정의하는 것**이 홈페이지에 새로운 정보 위젯을 추가하여 **사용자에게 맞춤형 정보나 기능 바로가기를 제공할 수 있는 선택적인 기능**임을 설명합니다. **자체 박스를 정의하는 방법:** * **모듈 설명자 파일 수정:** 자체 박스를 정의하려면 모듈 설명자 파일 내의 **`$this->boxes` 배열**을 수정해야 합니다. 각 박스 파일에 대해 다음 두 줄을 추가합니다: * `$this->boxes[$n]['file'] = 'myboxn.php@mymodule'` : **박스 파일의 경로와 이름**을 지정합니다. `@mymodule` 은 해당 파일이 모듈의 `htdocs/mymodule/core/boxes` 디렉토리에 있음을 나타냅니다. * `$this->boxes[$n]['note'] = 'My box n'` : 박스에 대한 **설명 또는 주석**을 제공합니다. 이 설명은 Dolibarr 설정 페이지에서 박스를 식별하는 데 사용될 수 있습니다. * **박스 PHP 파일 생성:** `htdocs/mymodule/core/boxes/` 디렉토리에 실제 박스 내용을 표시하는 PHP 파일 (`mybox0.php`, `mybox1.php` 등)을 생성해야 합니다. 출처는 기존 박스 파일 (`htdocs/core/boxes` 디렉토리에서 찾을 수 있음)의 **예시를 복사하여 시작**할 것을 권장합니다. * **박스 감지 및 테스트:** 모듈을 비활성화했다가 다시 활성화하면 Dolibarr가 새로운 박스를 감지합니다. **홈 - 설정 - 박스** 메뉴로 이동하여 정의한 박스가 목록에 나타나는지 확인하고, 활성화한 후 홈페이지에서 박스가 올바르게 표시되는지 테스트해야 합니다. ==자체 내보내기 정의== ## 자체 내보내기 정의에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 내보내기를 정의하는 것**이 개발한 모듈 또는 기존 모듈의 데이터에 대한 **맞춤형 내보내기 프로필을 제공**하여 사용자가 필요한 형식과 내용으로 데이터를 추출할 수 있도록 하는 **선택적인 기능**임을 설명합니다. **자체 내보내기를 정의하는 방법:** * **모듈 설명자 파일 수정:** 자체 내보내기를 정의하려면 모듈 설명자 파일 내의 **`$this->export_xxx` 배열**을 주석 해제하고 수정해야 합니다. 여기서 `xxx`는 내보내기 유형을 나타내는 식별자가 될 수 있습니다. * **내보내기 정의 테스트:** 모듈을 활성화한 후 **도구 -> 내보내기** 메뉴로 이동하면 정의한 내보내기가 사용 가능한 사전 정의된 내보내기 목록에 나타납니다. 이를 선택하면 내보내기 배열에 정의된 모든 가능한 필드 목록이 표시됩니다. 필드를 선택하고 내보내기 파일을 생성하여 작동하는지 테스트해야 하며, 모든 필드를 포함하여 다시 시도해 볼 수 있습니다. ==CSS 스타일 정의== ## CSS 스타일 정의에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 CSS 스타일을 정의하는 것**이 모듈의 PHP 페이지 외관을 돌리바 테마와 일치시키거나, 필요한 경우 **새로운 스타일을 추가**하는 선택적인 기능임을 설명합니다. **자체 CSS 스타일을 정의하는 방법:** * **CSS 파일 생성:** `htdocs/mymodule/` 디렉토리에 `mymodule.css` 또는 `mymodule.css.php`라는 이름으로 스타일시트 파일을 생성합니다. 모듈당 여러 개의 CSS 파일을 가질 수 있습니다. * **기존 스타일 활용 권장:** 출처는 **가능하면 Dolibarr 기본 테마에서 제공하는 기존 스타일을 사용하는 것을 권장**합니다. Dolibarr에서 사용되는 CSS 파일은 `themes/mytheme/*themename*/.css.php`입니다. * **새로운 스타일 필요 시에만 정의:** 부득이하게 기존에 없는 스타일을 추가해야 하는 경우에만 자체 CSS 파일을 생성해야 합니다. * **모듈 설명자 파일에 선언:** 생성한 CSS 파일을 모듈 설명자 파일의 **`$this->module_parts` 속성**을 수정하여 선언해야 합니다. 값은 CSS 파일의 상대 URL 배열 형태로 지정합니다. 예를 들어 다음과 같습니다: ```php $this->module_parts = array( 'css' => array('/mymodule/css/mymodule.css.php', '/mymodule/css/myother.css') ); ``` * **테스트:** 모듈을 비활성화했다가 다시 활성화한 후 홈페이지 (index.php)의 HTML 소스를 확인합니다. HTML 헤더에 정의한 스타일시트를 선언하는 `<link>` 태그가 나타나야 합니다. ==Javascript 함 수 추가== ## Javascript 함수 추가에 대한 논의 및 돌리바 ERP CRM 모듈 개발의 더 큰 맥락 제공된 출처는 돌리바 ERP CRM 모듈 개발에서 **자체 Javascript 함수를 추가하는 것**이 모듈의 PHP 페이지에 **Dolibarr에서 기본적으로 제공하지 않는 동적인 기능이나 사용자 인터랙션을 구현**하는 데 필요한 선택적인 기능임을 설명합니다. **자체 Javascript 함수를 추가하는 방법:** * **Javascript 파일 생성:** `htdocs/mymodule/js/` 디렉토리에 `mymodule.js`라는 이름으로 Javascript 파일을 생성하고, 필요한 함수들을 정의합니다. 모듈당 여러 개의 Javascript 파일을 가질 수 있습니다. * **`llxHeader()` 함수를 통한 포함 요청:** 모듈의 PHP 페이지에서 **`llxHeader()` 함수를 호출할 때 `$morejs` 파라미터**를 사용하여 Javascript 파일을 포함하도록 Dolibarr에 요청해야 합니다. `$morejs`는 포함할 Javascript 파일의 상대 URL 배열입니다. 다음은 `/htdocs/mymodule/mypage.php` 페이지에서 `mymodule.js` 파일을 포함하는 예시입니다: ```php $morejs = array("/mymodule/js/mymodule.js"); llxHeader('', 'Titre', '', '', '', '', $morejs, '', 0, 0); ``` * 이렇게 하면 Dolibarr가 HTML `<HEAD>` 섹션에 사용자가 정의한 Javascript 파일을 포함하는 `<script>` 태그를 생성합니다.
요약:
LS Taiwan에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다(자세한 사항은
LS Taiwan:저작권
문서를 보세요).
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
검색
검색
Dolibarr 모듈 개발
편집하기 (부분)
새 주제