Drupal은 웹 사이트 구축을위한 매우 유연한 콘텐츠 관리 시스템입니다. PHP 코드를 쓰지 않고 포괄적 인 사이트를 구축 할 수있는 많은 훌륭한 기능을 제공합니다. 또한 모듈 사용을 통해 더 많은 기능을 추가 할 수있는 기능을 제공합니다.
기본적으로 Drupal 노드 유형은 기사와 페이지입니다. 이것은 기본 사이트에 좋을 수도 있지만보다 복잡한 웹 사이트를 계획하고 있다면 다른 노드 유형을 추가하고 싶습니다. 우리는 모듈을 작성하여 그것들을 정의 할 수도 있습니다!
이 기사에서는 Drupal Hooks 및 API를 사용하여 새로운 노드 유형을 설치하는 사용자 정의 Drupal 모듈을 작성하는 방법을 볼 수 있습니다.
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
<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>
Drupal의 모든 모듈은 데이터베이스에서 작성한 데이터 또는 사용자가 제거 할 때 추가 한 유형을 정리해야합니다. 이를 지원하기 위해서는 ProductCustomType.install 파일에서 hook_uninstall을 구현해야합니다.
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
<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 노드 유형에서 필드를 사용자 정의 할 수 있습니까?
Drupal은 각 노드 유형에 대한 "디스플레이 관리"탭을 제공합니다. 이를 통해 노드를 볼 때 각 필드가 표시되는 방식을 제어 할 수 있습니다. 각 필드의 레이블, 형식 및 순서를 조정할 수 있습니다. 또한 티저 뷰 또는 전체 컨텐츠보기와 같은 사용자 정의 디스플레이 모드로 필드를 그룹화 할 수도 있습니다.
Drupal의 노드 API를 사용하여 프로그래밍 방식으로 노드를 생성 할 수 있습니까?Drupal은 노드에 대한 액세스를 제어하기위한 강력한 시스템을 제공합니다. 사용자 역할에 따라 권한을 설정하여 각 유형의 노드를보고, 작성, 편집 및 삭제할 수있는 사람을 제어 할 수 있습니다. Drupal의 노드 액세스 API를 사용하여보다 복잡한 액세스 규칙을 만들 수 있습니다.
예, Drupal의보기 모듈은 노드를 표시하는 강력한 도구입니다. . 노드 유형, 출판 상태 또는 저자와 같은 다양한 기준을 기반으로 노드를 표시하는 사용자 정의 뷰를 만들 수 있습니다. 뷰의 디스플레이 형식, 정렬 및 페이지 매력을 사용자 정의 할 수도 있습니다.
드 루팔 노드를 테마로하는 방법 드 루팔은 모양을 제어 할 수있는 유연한 테마 시스템을 제공합니다. 노드의 느낌. 각 노드 유형에 대한 사용자 정의 템플릿을 만들 수 있으며 Drupal의 테마 API를 사용하여 노드에 사용자 정의 CSS 및 JavaScript를 추가 할 수 있습니다.모듈로 Drupal 노드의 기능을 확장 할 수 있습니까? 예, Drupal의 모듈 식 아키텍처를 사용하면 모듈로 노드의 기능을 확장 할 수 있습니다. 이미지 갤러리, 댓글, 등급 및 소셜 미디어 통합과 같은 기능을 노드에 추가 할 수있는 수천 개의 기여 모듈이 있습니다. 사용 가능한 모듈에서 충족하지 않는 특정 요구 사항이있는 경우 고유 한 사용자 정의 모듈을 만들 수도 있습니다.
위 내용은 PHP 마스터 | 새 드 루팔 노드 유형 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!