钥匙要点
- > Drupal是一个灵活的内容管理系统,可以通过编写自定义模块来创建新的节点类型。这对于构建更复杂的网站是有益的,而不是默认文章和页面节点类型。
> >创建一个新的节点类型涉及使用三个文件创建一个模块:.info(包含有关模块的信息),.install(有关模块将安装或卸载的详细信息)和.module(包含代码以实现代码模块使用的drupal钩)。 - >使用Drupal钩和API安装新节点类型,定义了标题,描述等字段。该模块还应包括用于卸载时添加的任何数据或类型的代码。
- >
通过在模块的.install文件中创建字段和字段实例,可以将其他字段添加到新的节点类型中。这允许更多自定义的内容,例如产品节点类型中的产品价格和数量。
- 创建模块 首先,让我们创建一个模块的基本结构,在其中我们将创建新的内容类型。 要创建一个模块,在Drupal安装的站点/ALL/模块目录中创建一个名为ProductCustomType的新目录。在该文件夹中,然后创建三个文件:
productcustomType.info - 将包含有关模块的信息,以便Drupal识别并显示在列表中。
- > productcustomType.install - 将有有关您要安装或卸载模块的内容的详细信息。
- > productCustomType.module - 将包含代码以实现模块使用的Drupal钩子。
- 制作目录后,打开productCustomType.info,然后向其添加以下代码:
- 以上只是为我们的模块定义了一些参数,因此Drupal可以使用它并显示有关我们模块的信息。完成此操作后,我们应该在模块列表中看到我们的模块,如下所示。但是,请不要启用 - 我们将在下一步之后这样做。
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module
>安装和卸载节点
一旦我们将模块的基本文件安装到位,我们就可以开始编写用于安装自定义节点类型的代码。我们需要实现的第一个挂钩是hook_node_info。使用此钩子,一个模块可以在Drupal中定义一种或多种节点类型。挂钩实现返回一个数组,该数组定义了将要添加的新节点类型。 要实现此挂钩,请将以下代码添加到ProductCustomType.module:name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module该实现返回一个数组,该数组定义了新的节点类型产品以及其某些属性,例如其名称,描述,如果它具有标题和基础(用于此内容类型的不同挂钩)。 由于我们已经定义了此节点类型具有标题,因此当显示此节点的表单以添加内容时,我们需要显示标题文本字段。为此,我们将必须实现钩钩form。 Hook_form Hook用于显示用于创建/编辑节点的表单。该钩在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>我们只需使用Drupal API,该API提供了Hook_form的实现 并添加标题字段,提供节点定义具有HAS_TITLE属性集(我们在情况下确实设置了)。 完成此操作后,我们需要实现Hook_install Hook将车身字段添加到新的节点类型中。 将实现添加到ProductCustomType.install如下:
<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>我们首先通过调用Drupal API node_types_rebuild()函数来保存由不同模块(包括我们的)创建的所有新节点类型。然后,我们获得所有节点类型,并在我们的类型上调用Node_add_body_field()添加身体字段。 完成此操作后,我们可以启用将安装新节点类型的模块。然后,当我们单击添加内容时,我们应该能够看到我们的新类型。
name = productcustomtype description = A new content type of Product package = Product Custom node Type core = 7.x files[] = productcustomtype.install files[] = productcustomtype.module我们首先找出所有是安装内容类型的节点的节点ID。收集ID后,我们将使用API函数node_delete_multiple()删除多个节点。然后,我们使用node_type_delete()函数删除我们的节点类型。 现在,如果我们卸载了模块,则应删除我们类型的所有节点和类型本身。
创建额外的字段
添加新节点类型后,我们的功能类似于节点的功能。但是,如果我们想根据节点类型添加更多字段怎么办?例如,如果是产品类型,那么我们可能需要添加两个字段,例如价格和数量。 为此,我们必须首先创建字段,然后在我们的节点类型上创建字段实例。我们在productCustomType.install文件中编写两个新功能以定义字段和字段实例。<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>然后,我们在ProductCustomType.install中创建一个函数add_custom_fields(),该函数将读取数组并创建字段和实例。
<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>现在,我们只能在ProductCustomType_install()中调用add_custom_fields()函数,以便在安装模块时安装字段和字段实例。
<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>我们还需要更新我们的productCustomType_uninstall()函数以删除字段和字段实例。
<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></span>再次安装模块,然后单击产品添加新产品,我们应该看到这两个字段,如下所示:
结论
Drupal CMS提供了许多有用的钩子和功能强大的API,使我们能够执行各种自定义。在本文中,我们能够创建一种全新的节点类型,该类型将出现在Drupal的内容部分中。并且使用Drupal的API,我们还将字段附加到此新节点类型上,以便任何人都可以使用新节点类型轻松添加内容。因此,请为您的Drupal网站创建下一个新的节点类型,从而乐趣。 通过fotolia 图像 经常询问有关创建新的Drupal节点类型的问题
什么是Drupal节点类型,为什么重要?通过信息背景。这可能是一篇简单的博客文章,文章,新闻故事,论坛主题或教程等。节点类型很重要,因为它们提供了一种结构化的方式来输入,显示和管理Drupal中的内容。它们允许自定义数据输入,验证和显示设置,这些设置可以极大地增强Drupal站点的用户体验和整体功能。如何在Drupal中创建新的节点类型? >
在Drupal中创建新的节点类型是一个简单的过程。首先,导航到Drupal Admin仪表板中的“结构”菜单,然后选择“内容类型”。单击“添加内容类型”按钮。将提示您填写新节点类型的名称,描述和设置。填写必要的信息后,单击“保存和管理字段”按钮以将字段添加到您的新节点类型中。我可以自定义我的drupal节点类型中的字段吗? 🎜>是的,您可以自定义Drupal节点类型中的字段。创建新节点类型后,您可以根据需要添加,编辑或删除字段。这使您可以根据您的特定内容需求来定制节点类型。例如,您可以为文章摘要添加一个文本字段,特色图像的图像字段或出版日期的日期字段。
如何管理Drupal节点类型的显示设置? Drupal为每个节点类型提供了一个“管理显示”选项卡。这使您可以控制在查看节点时如何显示每个字段的方式。您可以调整每个字段的标签,格式和顺序。您还可以将字段分组到自定义显示模式中,例如预告片视图或完整的内容视图。
我可以使用drupal的节点API来编程创建节点吗?
是的,是的,Drupal的节点API提供通过编程创建,更新和删除节点的强大方法。这对于诸如从另一个系统导入内容,生成测试数据或创建自定义工作流程之类的任务可能很有用。节点API是Drupal核心系统的一部分,因此在所有Drupal安装中都可以使用。
> drupal中的核心节点类型是什么?
Drupal带有多种核心节点类型,包括文章,基本页面,博客条目,论坛主题和民意调查。这些为管理Drupal中的内容提供了一个起点。但是,您还可以创建自己的自定义节点类型来满足您的特定需求。drupal提供了一个可靠的系统来控制对节点的访问。您可以根据用户角色设置权限,使您可以控制谁可以查看,创建,编辑和删除每种类型的节点。您还可以使用Drupal的节点访问API来创建更复杂的访问规则。
>>我可以使用drupal的视图模块显示我的节点吗?
是的,Drupal的视图模块是显示节点的强大工具。您可以根据各种标准创建自定义视图,以显示节点,例如节点类型,出版物状态或作者。您还可以自定义视图的显示格式,排序和分页。>
>我如何主题我的drupal节点?>
以上是PHP主|创建新的Drupal节点类型的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。