Drupal 7.31 - 节点的文件类型字段的问题

时间:2014-10-07 10:28:32

标签: php drupal drupal-7

我在前端为特定类型的节点modyfications创建了一些自定义页面。这是我的页面回调:

function vintranet_talk_edit_entry_page_callback($sNid) {
    module_load_include('inc', 'node', 'node.pages');

    $oNode = node_load($sNid);

    return drupal_get_form('page_node_form', $oNode);
}

我的节点有一个带文件附件的字段。

配置:

'vintranet_talk_attachments' => array(
    'field_name'     => 'vintranet_talk_attachments',
    'label'          => t('Attachments'),
    'type'           => 'file',
    'cardinality'    => -1,
),

实例:

'vintranet_talk_attachments' => array(
    'field_name'     => 'vintranet_talk_attachments',
    'label'          => t('Attachments'),
    'entity_type'    => 'node',
    'bundle'         => 'intranet_talk_page',
    'widget'         => array(
        'type' => 'file_mfw',
    ),
    'settings'       => array(
        'max_filesize'       => 10,
        'file_directory'     => 'intranet/talk',
        'file_extensions'    => 'jpg, png, gif, pdf, zip, doc, rtf, xdoc, rar',
        'description_field'  => 1,
    ),
    'display'        => array(
        'default' => array(
            'type' => 'file_table',
        ),
    ),
),

我的第一个问题是,当我想在模块安装后上传JPG文件时,系统会向我发送以下消息: enter image description here

好吧......我要检查Structure中的特定字段设置,我看到了:

enter image description here

为什么它会像这样被保存?!

Okaaaaay ....所以我在jpg, png, gif, pdf, zip, doc, rtf, xdoc, rar更改此表单字段值,保存并尝试再次上传图片...

enter image description here

....点击“上传”按钮.... aaaaandd ....

enter image description here

....呀....这是我的第二个问题:/。不知道为什么它不起作用。另一方面,在后端,“上传”按钮完美运行。我错过了什么吗?

(致力于Drupal 7.31版本)

菜单节点添加路径:

array(
  'mynode/add/path' => array(
            'title'              => 'Title - new entry',
            'page callback'      => 'vintranet_talk_add_entry_page_callback',
            'file'               => 'vintranet_talk.pages.inc',
            'access arguments'   => array('vintranet_talk_add_entry'),
        ),
);

1 个答案:

答案 0 :(得分:1)

回答我的问题:

function hook_menu_alter(&$aItems) {
    $sNodePath = drupal_get_path('module', 'node');

    $aItems['file/ajax']['file path']    = $sNodePath;
    $aItems['file/ajax']['file']         = 'node.pages.inc';
    $aItems['system/ajax']['file path']  = $sNodePath;
    $aItems['system/ajax']['file']       = 'node.pages.inc';
}