PHP 마스터 | 새 드 루팔 노드 유형 생성
Drupal은 웹 사이트 구축을위한 매우 유연한 콘텐츠 관리 시스템입니다. PHP 코드를 쓰지 않고 포괄적 인 사이트를 구축 할 수있는 많은 훌륭한 기능을 제공합니다. 또한 모듈 사용을 통해 더 많은 기능을 추가 할 수있는 기능을 제공합니다.
기본적으로 Drupal 노드 유형은 기사와 페이지입니다. 이것은 기본 사이트에 좋을 수도 있지만보다 복잡한 웹 사이트를 계획하고 있다면 다른 노드 유형을 추가하고 싶습니다. 우리는 모듈을 작성하여 그것들을 정의 할 수도 있습니다!
이 기사에서는 Drupal Hooks 및 API를 사용하여 새로운 노드 유형을 설치하는 사용자 정의 Drupal 모듈을 작성하는 방법을 볼 수 있습니다.
모듈 생성
새로운 컨텐츠 유형을 만들 수있는 모듈의 기본 구조를 만들어 봅시다.
모듈을 만들려면 Drupal 설치의 사이트/all/modules 디렉토리에서 ProductCustomType라는 새 디렉토리를 만듭니다. 해당 폴더에서 세 가지 파일을 만듭니다.
-
디렉토리를 만들면 ProductCustomType.info를 열고 다음 코드를 추가하십시오.
- 위의 내용은 단순히 모듈의 일부 매개 변수를 정의하여 Drupal이 사용하여 모듈에 대한 정보를 표시 할 수 있습니다. 이 작업이 완료되면 아래와 같이 모듈 목록에 모듈이 표시됩니다. 그러나 아직 활성화하지 마십시오. 다음 단계 후에는 그렇게 할 것입니다.
노드 설치 및 제거 모듈의 기본 파일이 제자리에 있으면 사용자 정의 노드 유형을 설치하기위한 코드를 작성할 수 있습니다. 우리가 구현 해야하는 첫 번째 후크는 hook_node_info입니다. 이 후크를 사용하여 모듈은 Drupal에서 하나 이상의 노드 유형을 정의 할 수 있습니다. 후크 구현은 모듈이 추가 할 새 노드 유형을 정의하는 배열을 반환합니다. 이 후크를 구현하려면 ProductCustomType.Module에 다음 코드를 추가하십시오. 구현은 새 노드 유형 제품을 정의하는 배열과 이름, 설명, 제목이있는 경우 및 기본 (이 컨텐츠 유형에 대해 다른 후크에 사용됨)과 같은 일부 속성과 같은 일부 속성을 반환합니다. 이 노드 유형에 제목이 있다고 정의 했듯이이 노드의 양식이 컨텐츠를 추가하도록 표시 될 때 제목 텍스트 필드를 표시해야합니다. 이를 위해서는 Hook hook_form을 구현해야합니다. Hook_form 후크는 노드를 작성/편집하는 데 사용되는 양식을 표시하는 데 사용됩니다. 후크는 다음과 같이 ProductCustomType.Module에서 구현됩니다. 우리는 단순히 hook_form의 구현을 제공하는 Drupal API를 사용합니다. 노드 정의에 HAS_TITLE 속성 세트가있는 경우 제목 필드를 추가합니다. 이 작업이 완료되면 Hook_Install 후크를 구현하여 BODY 필드를 새 노드 유형에 추가해야합니다. 다음과 같이 ProductCustomType.install에 구현을 추가하십시오.name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
로그인 후 복사로그인 후 복사먼저 Drupal API node_types_rebuild () 함수를 호출하여 다른 모듈 (포함)에 의해 생성 된 모든 새로운 노드 유형을 저장합니다. 그런 다음 모든 노드 유형을 가져 와서 본체에서 Node_add_body_field ()를 호출하여 바디 필드를 추가합니다. 이 작업을 마치면 새 노드 유형을 설치할 모듈을 활성화 할 수 있습니다. 그런 다음 다음과 같이<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>
로그인 후 복사로그인 후 복사를 클릭하면 새로운 유형을 볼 수 있어야합니다. 신제품을 추가하면 Drupal 홈페이지에서도 볼 수 있습니다.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>
로그인 후 복사로그인 후 복사Drupal의 모든 모듈은 데이터베이스에서 작성한 데이터 또는 사용자가 제거 할 때 추가 한 유형을 정리해야합니다. 이를 지원하기 위해서는 ProductCustomType.install 파일에서 hook_uninstall을 구현해야합니다.
먼저 설치된 컨텐츠 유형의 노드 인 모든 노드 ID를 찾습니다. ID를 수집하면 API 함수 NODE_DELETE_MULTIPLE ()를 사용하여 여러 노드를 삭제합니다. 그런 다음 node_type_delete () 함수를 사용하여 노드 유형을 삭제합니다. 이제 모듈을 제거하면 유형의 모든 노드와 유형 자체를 삭제해야합니다.name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
로그인 후 복사로그인 후 복사추가 필드 생성 새 노드 유형을 추가하면 노드와 유사한 기능이 있습니다. 그러나 노드 유형에 따라 더 많은 필드를 추가하려면 어떻게해야합니까? 예를 들어, 제품 유형이라면 가격 및 수량과 같은 두 개의 필드를 추가 할 수 있습니다. 이를 위해서는 먼저 필드를 생성 한 다음 노드 유형에서 필드 인스턴스를 만들어야합니다. ProductCustomType.install 파일에 필드와 필드 인스턴스를 정의하는 두 가지 새로운 기능을 작성합니다. 그런 다음 ProductCustomType.install에서 함수 add_custom_fields ()를 작성하여 배열을 읽고 필드 및 인스턴스를 만듭니다.
이제 모듈이 설치 될 때 필드 및 필드 인스턴스가 설치되도록 ProductCustomType_install ()에서 add_custom_fields () 함수를 호출 할 수 있습니다.또한 필드 및 필드 인스턴스를 제거하려면 ProductCustomType_uninstall () 기능을 업데이트해야합니다.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_node_info() </span></span><span><span> */ </span></span><span><span>function productcustomtype_node_info() { </span></span><span> <span>return array( </span></span><span> <span>'product' => array( </span></span><span> <span>'name' => t('Product'), </span></span><span> <span>'base' => 'product', </span></span><span> <span>'description' => t('You can define new Products here'), </span></span><span> <span>'has_title' => TRUE, </span></span><span> <span>'title_label' => t('Product title') </span></span><span> <span>) </span></span><span> <span>); </span></span><span><span>}</span></span>
로그인 후 복사로그인 후 복사모듈을 다시 설치하고 제품을 클릭하여 새 제품을 추가하면 다음과 같이 두 필드가 표시됩니다.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implement hook_form() </span></span><span><span> */ </span></span><span><span>function product_form($node, $form_state) { </span></span><span> <span>return node_content_form($node, $form_state); </span></span><span><span>}</span></span>
로그인 후 복사로그인 후 복사<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_install(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_install() { </span></span><span> <span>node_types_rebuild(); </span></span><span> <span>$types = node_type_get_types();| </span></span><span> <span>node_add_body_field($types['product']); </span></span><span><span>}</span></span>
로그인 후 복사노드를 저장하고 미리보기에서 볼 때 필드를 다음과 같이 볼 수 있습니다.<span><span><?php </span></span><span><span>/** </span></span><span><span> * Implements hook_uninstall(). </span></span><span><span> */ </span></span><span><span>function productcustomtype_uninstall() { </span></span><span> <span>$ournewtype = 'product'; </span></span><span> <span>$sql = 'SELECT nid FROM {node} n WHERE n.type = :type'; </span></span><span> <span>$result = db_query($sql, array(':type' => $ournewtype)); </span></span><span> <span>$nodeids = array(); </span></span><span> <span>foreach ($result as $row) { </span></span><span> <span>$nodeids[] = $row->nid; </span></span><span> <span>} </span></span><span> <span>node_delete_multiple($nodeids); </span></span><span> <span>node_type_delete($ournewtype); </span></span><span><span>}</span></span>
로그인 후 복사결론 Drupal CMS는 다양한 유용한 후크와 강력한 API를 제공하여 다양한 사용자 정의를 수행 할 수 있습니다. 이 기사에서는 Drupal의 컨텐츠 섹션에 나타날 완전히 새로운 노드 유형을 만들 수있었습니다. 또한 Drupal의 API를 사용 하여이 새로운 노드 유형에 필드를 연결하여 누구나 새 노드 유형을 사용하여 컨텐츠를 쉽게 추가 할 수 있도록했습니다. 따라서 Drupal 사이트의 다음 새 노드 유형을 만드는 것이 즐겁습니다. Fotolia를 통한 이미지
새 드 루팔 노드 유형 생성 에 대한 자주 묻는 질문 Drupal 노드 유형이란 무엇이며 중요한 이유는 무엇입니까? 컨텐츠 유형이라고도하는 Drupal 노드 유형은 서로 관련된 사전 정의 된 데이터 유형 (필드) 모음입니다. 정보 적 맥락에 의해. 이것은 간단한 블로그 게시물, 기사, 뉴스 기사, 포럼 주제 또는 튜토리얼 일 수 있습니다. 노드 유형은 Drupal의 컨텐츠를 입력, 표시 및 관리하는 구조화 된 방법을 제공하기 때문에 중요합니다. 데이터 입력, 유효성 검사 및 디스플레이 설정을 사용자 정의 할 수있어 사용자 경험과 Drupal 사이트의 전반적인 기능을 크게 향상시킬 수 있습니다. Drupal에서 새 노드 유형을 어떻게 만들 수 있습니까?
Drupal에서 새 노드 유형을 만드는 것은 간단한 프로세스입니다. 먼저 Drupal 관리 대시 보드의 "구조"메뉴로 이동 한 다음 "컨텐츠 유형"을 선택하십시오. "콘텐츠 유형 추가"버튼을 클릭하십시오. 새 노드 유형의 이름, 설명 및 설정을 작성하라는 메시지가 표시됩니다. 필요한 정보를 작성한 후에는 "필드 저장 및 관리"버튼을 클릭하여 새 노드 유형에 필드를 추가하십시오.
Drupal 노드 유형에서 필드를 사용자 정의 할 수 있습니까?
예, Drupal 노드 유형에서 필드를 사용자 정의 할 수 있습니다. 새 노드 유형을 만든 후 필요에 따라 필드를 추가, 편집 또는 삭제할 수 있습니다. 이를 통해 노드 유형을 특정 컨텐츠 요구에 맞게 조정할 수 있습니다. 예를 들어, 기사 요약에 대한 텍스트 필드, 추천 이미지의 이미지 필드 또는 게시 날짜의 날짜 필드를 추가 할 수 있습니다.
Drupal 노드 유형의 디스플레이 설정을 어떻게 관리 할 수 있습니까?Drupal은 각 노드 유형에 대한 "디스플레이 관리"탭을 제공합니다. 이를 통해 노드를 볼 때 각 필드가 표시되는 방식을 제어 할 수 있습니다. 각 필드의 레이블, 형식 및 순서를 조정할 수 있습니다. 또한 티저 뷰 또는 전체 컨텐츠보기와 같은 사용자 정의 디스플레이 모드로 필드를 그룹화 할 수도 있습니다.
Drupal의 노드 API를 사용하여 프로그래밍 방식으로 노드를 생성 할 수 있습니까?Drupal의 핵심 노드 유형은 무엇입니까? Drupal에는 기사, 기본 페이지, 블로그 항목, 포럼 주제 및 설문 조사를 포함한 몇 가지 핵심 노드 유형이 제공됩니다. 이들은 Drupal의 컨텐츠 관리를위한 출발점을 제공합니다. 그러나 특정 요구 사항에 맞게 고유 한 사용자 정의 노드 유형을 만들 수도 있습니다.
Drupal 노드에 대한 액세스를 어떻게 제어 할 수 있습니까?Drupal의 뷰 모듈을 사용하여 노드를 표시 할 수 있습니까?
예, Drupal의보기 모듈은 노드를 표시하는 강력한 도구입니다. . 노드 유형, 출판 상태 또는 저자와 같은 다양한 기준을 기반으로 노드를 표시하는 사용자 정의 뷰를 만들 수 있습니다. 뷰의 디스플레이 형식, 정렬 및 페이지 매력을 사용자 정의 할 수도 있습니다.
드 루팔 노드를 테마로하는 방법 드 루팔은 모양을 제어 할 수있는 유연한 테마 시스템을 제공합니다. 노드의 느낌. 각 노드 유형에 대한 사용자 정의 템플릿을 만들 수 있으며 Drupal의 테마 API를 사용하여 노드에 사용자 정의 CSS 및 JavaScript를 추가 할 수 있습니다.모듈로 Drupal 노드의 기능을 확장 할 수 있습니까? 예, Drupal의 모듈 식 아키텍처를 사용하면 모듈로 노드의 기능을 확장 할 수 있습니다. 이미지 갤러리, 댓글, 등급 및 소셜 미디어 통합과 같은 기능을 노드에 추가 할 수있는 수천 개의 기여 모듈이 있습니다. 사용 가능한 모듈에서 충족하지 않는 특정 요구 사항이있는 경우 고유 한 사용자 정의 모듈을 만들 수도 있습니다.
위 내용은 PHP 마스터 | 새 드 루팔 노드 유형 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에는 4 가지 주요 오류 유형이 있습니다. 1. NOTICE : 가장 작은 것은 정의되지 않은 변수에 액세스하는 것과 같이 프로그램을 방해하지 않습니다. 2. 경고 : 심각한 통지는 파일을 포함하지 않는 것과 같은 프로그램을 종료하지 않습니다. 3. FatalError : 가장 심각한 것은 기능을 부르는 것과 같은 프로그램을 종료합니다. 4. parseerror : 구문 오류는 엔드 태그를 추가하는 것을 잊어 버리는 것과 같이 프로그램이 실행되는 것을 방지합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP에서 Password_hash 및 Password_Verify 기능을 사용하여 보안 비밀번호 해싱을 구현해야하며 MD5 또는 SHA1을 사용해서는 안됩니다. 1) Password_hash는 보안을 향상시키기 위해 소금 값이 포함 된 해시를 생성합니다. 2) Password_verify 암호를 확인하고 해시 값을 비교하여 보안을 보장합니다. 3) MD5 및 SHA1은 취약하고 소금 값이 부족하며 현대 암호 보안에는 적합하지 않습니다.

HTTP 요청 방법에는 각각 리소스를 확보, 제출, 업데이트 및 삭제하는 데 사용되는 Get, Post, Put and Delete가 포함됩니다. 1. GET 방법은 리소스를 얻는 데 사용되며 읽기 작업에 적합합니다. 2. 게시물은 데이터를 제출하는 데 사용되며 종종 새로운 리소스를 만드는 데 사용됩니다. 3. PUT 방법은 리소스를 업데이트하는 데 사용되며 완전한 업데이트에 적합합니다. 4. 삭제 방법은 자원을 삭제하는 데 사용되며 삭제 작업에 적합합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP는 $ \ _ 파일 변수를 통해 파일 업로드를 처리합니다. 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 오류 확인 확인, 2. 파일 유형 및 크기 확인, 3 파일 덮어 쓰기 방지, 4. 파일을 영구 저장소 위치로 이동하십시오.

phpoop에서 self ::는 현재 클래스를 말하며, Parent ::는 부모 클래스를 말하며, static ::는 늦은 static 바인딩에 사용됩니다. 1. self :: 정적 방법과 일정한 호출에 사용되지만 늦은 정적 바인딩을 지원하지는 않습니다. 2.parent :: 하위 클래스가 상위 클래스 방법을 호출하는 데 사용되며 개인 방법에 액세스 할 수 없습니다. 3. Static ::는 상속 및 다형성에 적합한 후기 정적 결합을 지원하지만 코드의 가독성에 영향을 줄 수 있습니다.
