Search code examples
phpdrupaldrupal-7

Drupal 7.31 - Problems with file type field of node


I have created some custom page on frontend for particular type of node modyfications. Here's my page callback:

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);
}

My node has one field with file attachments.

Config:

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

Instance:

'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',
        ),
    ),
),

My first problem is, when I want to upload JPG file after module installation, system sends me this message: enter image description here

So ok... I'm going to check that particular field settings in Structure and I see this:

enter image description here

Why the hell it is saved like this?!

Okaaaaay.... so I'm changing this form field value on jpg, png, gif, pdf, zip, doc, rtf, xdoc, rar, saving and trying to upload the image one more time...

enter image description here

....clickin "Upload" button.... aaaaandd....

enter image description here

....yup.... that's my 2nd problem :/. Have no idea why it's not working. On the backend, in other hand, the "Upload" button works perfectly. Am I missing something?

(working on Drupal 7.31 version)

Menu node add path:

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'),
        ),
);

Solution

  • Answer for my problems:

    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';
    }