【问题标题】:drupal_get_form won't print the add node formdrupal_get_form 不会打印添加节点表单
【发布时间】:2010-04-13 12:58:48
【问题描述】:

我试图让 drupal_get_form('ccknode_node_form') 工作,但没有打印。
例如,我已经尝试过 drupal_get_form('user_register'),并且有效。

我确定这是一个非常简单的问题,但我真的需要一些帮助。
谢谢
/安德斯

【问题讨论】:

    标签: forms drupal


    【解决方案1】:

    node_form 位于node.pages.inc,这是您所缺少的。如果你添加

    module_load_include('inc', 'node', 'node.pages');
    

    应该可以解决它。

    【讨论】:

    • 那种工作,但我得到一个空的表单数组。它不会打印字段或任何东西。只是 node_form 的“底部”选项(修订、授权和发布选项)。我想要的是在自定义块中打印 cck_node_form,但我无法让它工作......
    【解决方案2】:

    我也遇到了 drupal_get_form 的问题,但下面的代码将返回表单 html。问题区域可能没有调用正确的 node_form。

    函数 get_author_form() { //返回node_form(NULL,NULL); //return drupal_get_form('author_form'); 返回 author_ajax_form('author'); } 功能 author_ajax_form($type) { 全局$用户; module_load_include('inc', 'node', 'node.pages'); $types = node_get_types(); $type = isset($type) ? str_replace('-', '_', $type) : NULL; // 如果已指定节点类型,则验证其存在。 if (isset($types[$type]) && node_access('create', $type)) { // 初始化设置: $node = array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => $type, '语言' => 'bbb','bbb' => 'TRUE'); $output = drupal_get_form($type .'_node_form', $node); } 返回$输出; }

    【讨论】:

      【解决方案3】:

      嗨@andersandersson666,

      正如@googletorp 所说,您需要按照他们所说的那样包含来自节点模块的 node.pages:

      module_load_include('inc', 'node', 'node.pages');
      

      然后,你需要使用 Drupal 7 中的一个新函数来获取表单:

      $theFormHTMLified = drupal_render(node_add("ccknode"));
      

      现在您可以打印或返回$theFormHTMLified

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-10
        • 2023-02-25
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        相关资源
        最近更新 更多