2016-01-18 3 views
0

Я работаю с модулем Webform Drupal 7, и я пытаюсь изменить hook_webform_submission_presave в файле webform.api.php, но кажется, что модуль не использует этот файл, потому что я внес изменения, но ничего не меняю.Модуль веб-формы Drupal не использует webform.api.php

Должен ли я сказать Drupal в любом месте, чтобы использовать этот файл? Или что мне делать?

ответ

0

Во-первых, я надеюсь, что вы знаете, что вам не следует напрямую менять файлы модулей, но добавлять функцию hook в ваш модуль и изменять «hook» при начале имени функции с помощью имени вашего модуля.

Во-вторых, вам нужно очистить все кэши, чтобы Drupal повторно проверил ваш модуль и выяснил, что есть новая функция hook и начать ее использовать.

Таким образом, вы должны создать свой собственный модуль первого:

https://www.drupal.org/developing/modules/7

не бойся - это просто папка с инфо-файл с описанием вашего модуля и файл модуля это сам (в минимальном случае).

Затем, если ваш модуль называется «анна» вы должны создать функцию в файле модуля и назовите его:

anna_webform_submissions_presave()

И очистить кэш - после того, что Drupal должны начать называть ваш функция крючка.

+0

Спасибо ... Извините, я новичок в этом ... Как мне добавить функцию hook? Я хочу изменить функцию 'hook_webform_submission_presave', потому что мне нужно изменить sid, прежде чем сохранять его в базе данных. @MilanG – Anna

+0

Еще раз спасибо, у меня есть мой модуль. Причина, по которой я задавал этот вопрос, заключается в том, что я хочу изменить sid из webform_submission перед сохранением. Я попытался сделать следующее, но это не работает: – Anna

+0

'function uvic_webform_submission_presave ($ node, & $ submission) { $ result = db_select ('webform_submissions', 'sid') -> поля ('sid ') -> условие (' nid ', $ node-> nid) -> orderBy (' sid ', DESC) -> диапазон (0,1) -> execute(); -> fetchAssoc(); if ($ submission-> nid == $ node-> nid) { if ($ result) { $ submission -> ['sid'] = $ result ['sid'] + 1; } else { $ submission -> ['sid'] = 1; } } $ component_id = 4; $ submission-> data [$ component_id] [0] = 'uvic'; } '@MilanG – Anna

0

Модули не используют файлы .api.php. Этот файл существует для целей документации. Это the standard way for documenting hook definitions.

+0

Спасибо! Я снова задал вопрос, не могли бы вы взглянуть на него? http://stackoverflow.com/questions/34861851/use-hook-webform-submission-presave-to-edit-the-sid-of-a-drupal-webform @Pierre Buyle – Anna