使用 drupal_get_form() 传递参数

2024-04-12

这是我使用钩子的自定义模块,

假设如果我想将参数传递给 custom1_default_form 函数调用,我应该如何传递参数?

<?php

function custom1_block($op,$delta=0){
    if($op=='list'){
        $block = array();
        $block[0]['info']=t('hello world');
        return $block;
    }else if($op=='view'){
        $block_content = '<p>THIS IS MY FIRST BLOCK</p>';
        $block['subject'] = 'HELLO WORLD';
        $block['content'] =drupal_get_form('custom1_default_form');
        return $block;      
    }  
}

function custom1_default_form () {
  $form = array();
    $form['nusoap_urls']['txt_name']  =
    array('#type' => 'textfield',
          '#title' => t('Please enter your name'),
          '#default_value' => variable_get('webservice_user_url',''),
          '#maxlength' => '40',
          '#size' => '20',
         // '#description' => t('<br />Root directory used to present the filebrowser user interface.')

          );
     $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Save Details'),
      );          
        return $form;    
  }

  function custom1_default_form_validate (&$form, &$form_state) {

    if(($form_state['values']['txt_name']) == '') {
        form_set_error('user_webservice', t('Enter a name'));
    }
  }

  function custom1_default_form_submit ($form_id, $form_values) {
 // drupal_set_message( print_r($_POST));

 //  $message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_state['values'],true) . '</pre>';

  //drupal_set_message(t($message));
  //drupal_set_message(t($form_values['values']['txt_name']));
 // print_r($form_values['values']);
    $GET_TXT_FIELD_VALUE = $form_values['values']['txt_name'];
    $INSERT_QUERY = "INSERT INTO sample (test_name) VALUES ('$GET_TXT_FIELD_VALUE')";
    if (db_result(db_query("SELECT COUNT(*) FROM {sample} WHERE test_name = '%s';", $GET_TXT_FIELD_VALUE))) {
        // User doesn't exist
        drupal_set_message(t('ALREADY EXIST.....'));
     }else{
        db_query($INSERT_QUERY)or die('Execution Failed');
        if(db_affected_rows()==1){
            drupal_set_message(t('VALUE INSERTED SUCCESSFULLY'));
        }else{
            drupal_set_message(t('VALUE INSERTED FAILED'));
        }
    }    
}

如果您想通过 URL 传递参数,请使用arg() http://api.drupal.org/api/function/arg:

function custom1_default_form() {
  // Assuming the URL is http://example.com/admin/content/types:
  $arg1 = arg(1); // $arg1 = 'content'
  $arg2 = arg(2); // $arg2 = 'types'
  // ...
}

如果您只想通过以下方式将参数传递给表单drupal_get_form()调用时,只需将参数作为附加参数添加到drupal_get_form() http://api.drupal.org/api/function/drupal_get_form/6:

$block['content'] = drupal_get_form('custom1_default_form', $arg1, $arg2);

// ...

function custom1_default_form($form_state, $arg1, $arg2) {
  // ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 drupal_get_form() 传递参数 的相关文章

  • 如何删除用户注册/登录表单?

    我的网站不需要用户登录功能 只有部分用户需要发布新节点 如何删除 Drupal 中的用户注册和登录表单 虽然从技术上讲可以删除登录功能 但您不应该这样做 因为那样您的管理员将永远无法登录该网站 为了删除注册功能 您只需浏览到admin us
  • 在非 CCK Drupal 表单中“添加另一个项目”

    Drupal 的 CCK 具有一个方便的功能 即允许单个 CCK 字段通过 添加另一个项目 按钮接受多个值 从而在节点中生成数据数组 我想知道是否有任何简单的方法可以将其适应我要调用的非 CCK 表单drupal get form 我宁愿不
  • 如何为模板设置主题以进行编辑或添加特定内容类型的节点?

    我想为模板设置主题以进行编辑或添加特定内容类型的节点 例如 为了主题化所有内容类型表单 我使用该文件page node add edit tpl php 取决于我需要添加或编辑什么 但我没有找到自定义节点类型的模板名称 例如 产品 我只需要
  • Drupal 6:打印纯正的主链接和所有子链接

    世界上怎么可能 我发誓 我读了相当于三本百科全书的书 却毫无用处 我已经尝试过区域 page tpl php 和块内的解决方案 他们都没有给我我需要的东西 而且我知道还有很多其他人也需要这个 我得出的结论是 我想打印出 page tpl p
  • Drupal 在视图中返回结果数

    我在 Drupal 中有一个视图可以过滤我的内容 它带回 7 行 我想要返回的只是返回的数字或结果 7 这可能吗 我尝试使用查看结果计数器 但它为每个结果返回一个数字 1 2 3 4 5 6 7 我只需要第七部分 所以在 SQL 中我会执行
  • Drupal 6模块安装文件未在数据库中创建表

    我正在使用 Schema API 在 Drupa 6 17 上为我的模块创建表 但这些表并未在数据库中创建 我安装了架构模块 它告诉我 虽然我的模块的架构被识别 但它的表不在数据库中 它出现在 缺失 下 Tables in the sche
  • 使用 Drupal 中的外部身份存储库验证注册数据

    当我的用户尝试注册时 我想通过检查外部身份存储库 例如调用 Web 服务或查找目录服务器 来确保他的信息有效 任何现有模块都可以实现这一点吗 如果没有 开发此功能的最佳方法是什么 我不知道现有模块允许添加自定义验证 但使用 验证 操作来实现
  • 将图像添加到 html 块中

    我在 Blocks 内容中添加了一些 html 代码并启用了完整 HTML 过滤器 我对图像使用了相对路径 例如 sites all themes zen zen image png 我想这是不正确的 因为我需要根据我在主页或 node i
  • Wordpress 和 Drupal SSO/单点登录

    我已经在 Wordpress 中制作了我的前端网站 这对我来说很好 我想在 Drupal 中创建会员 员工区域 因为它具有更多 Google 文档和 Mediawiki 功能 我想知道我是否可以在两个站点之间共享登录信息 因此如果我在 Wo
  • 用户名作为路径

    我希望将用户名作为 URL 的一部分 例如mysite com 用户名 这应该重定向到用户配置文件 我用简介2 http drupal org project profile2 and Pathauto http drupal org pr
  • Drupal - 使用引导程序检查 Drupal 之外的登录用户不起作用

    我正在绞尽脑汁地想弄清楚这个问题 在 Drupal 目录之外时 我无法让 Bootstrap 正常工作 如果我在 Drupal 目录中运行此代码 它可以正常工作 但向上一级不起作用 我的 Drupal 路径是 public html dru
  • Drupal 功能包括主题

    是否可以在 Drupal 功能中包含主题 如果是这样怎么办 不幸的是 目前还没有 功能基本上由可以通过各种事件挂钩干净地从 Drupal 导出或导入到 Drupal 的内容组成 主题是完全不同的动物 理论上 如果您想覆盖功能中的某些标记 例
  • Drupal 6 和 7 从标头中取消设置 Javascript

    编辑 我的问题适用于 Drupal 6 和 7 尽管我的代码示例是 Drupal 6 人们提供的答案对于 Drupal 的两个版本都很有用 我目前正在 Drupal 中为 Drupal 6 网站创建移动主题 并尝试通过以下方式删除所有不必要
  • Drupal 视图 - 自定义/修改 SQL

    我遇到了 配置文件复选框 模块的问题 该模块存储以逗号分隔的自定义配置文件字段 问题是我是否创建一个视图来按值过滤 SQL 结果最终是这样的 AND profile values profile interests value in Bus
  • 在 Drupal 中对视图进行排序时忽略“The”

    当用户在 Drupal 站点中对视图进行排序时 如何忽略 The 你有没有尝试过调查视图自然排序模块 http drupal org project views natural sort 取自上面链接的模块页面 提供排序的视图过滤器 以更自
  • 如何完全禁用缓存?

    Drupal 6 的缓存可以设置为禁用 正常或激进 我找不到适用于我的 Drupal 7 安装的这些选项 只有一个按钮可以刷新所有缓存 但我对模块或模板所做的每次更改都必须单击它 我所说的更改是指向模块或模板添加一些 HTML 标签 感谢m
  • 是否可以自定义 drupal 节点引用并传递您的搜索和来自另一个字段的参数

    我正在尝试在 drupal 中创建一个带有节点引用字段的定制表单 我想为节点引用自动完成添加一些额外的功能 我创建了一个视图 其中包含一个参数 我希望能够将下拉列表中的参数以及键入的文本传递到自动完成脚本中 有谁知道我该如何开始 FIELD
  • 对 Views 和 Pathauto 如何协同工作有基本的了解

    我在理解何时使用 pathauto 规则以及何时使用视图页面路径时遇到了基本问题 我有几种自定义内容类型 并且我使用块来显示某些路径上节点的某些部分 然后我使用视图页面来显示路径上的主节点 当我这样做时 我无法使用 pathauto 因为它
  • Aegir 3+是否支持D7和D8部署

    我们当前安装的 Aegir 已经足够旧 不支持 D8 安装 希望在某个时候进行切换 这就引出了一个问题 Aegir 3 是否支持 Drupal 7 和 Drupal 8 安装 我们可以在哪里将 D7 测试站点部署到 D7 服务器 并同样从同
  • 在网站上不间断地播放 mp3?

    客户请求在整个网站上播放单个曲目 一般来说 我建议不要这样做 但他们坚持这样做 那么 将 Flash 播放器嵌入到网站中并且当用户转到另一个页面时不会出现间隙 中断的最直接方法是什么 我认为需要一个 iframe 我正在使用具有自动恢复功能

随机推荐