<?php
function mymodule_form_alter(&$form, $form_state, $form_id) {
if (
$form_id == 'facts_node_form'){
$form['field_reference_to_fact_the_song'][und][0]['#title'] = 'ttt';
}
}
?>
что может быть не правильно?
пытаюсь заголовок поля изменить
и описание поля...
Комментарии
Вы пробовали вывести форму через print_r() или debug()?
Может структура массива не та?
выводил поля конкретного
print_r ($form('field_reference_to_fact_the_song'));
структура
print_r($form['field_reference_to_fact_the_song']);
<?php Array (
[menu] => Array (
[#columns] => Array (
[#type] => container
[#attributes] => Array (
[class] => Array (
[0] => field-type-node-reference
[1] => field-name-field-reference-to-fact-the-song
[2] => field-widget-nodereference-url )
)
[
#weight] => 4[#tree] => 1
[#language] => und
[und] => Array (
[0] => Array (
[nid] => Array (
[#entity_type] => node
[#entity] => stdClass Object (
[uid] => 4
[name] => iNFerNo
[type] => facts
[language] => und
[title] =>
[status] => 0
[promote] => 0
[sticky] => 0
[created] => 1354615336
[revision] =>
[comment] => 2
[
link_title] =>[mlid] => 0
[plid] => 0
[menu_name] => main-menu
[weight] => 0
[options] => Array ( )
[
module] => menu[expanded] => 0
[hidden] => 0
[has_children] => 0
[customized] => 0
[parent_depth_limit] => 8
)
)
[
#bundle] => facts[#field_name] => field_reference_to_fact_the_song
[#language] => und
[#field_parents] => Array ( )
[0] => nid )
[
#title] => Reference to fact the song[#description] => Выбрать песню для которой будет добавляться факт.
[#required] =>
[#delta] => 0
[#weight] => 0
[#type] => nodereference_url
[#default_value] => 804
)
)
[
#theme] => field_multiple_value_form[#field_name] => field_reference_to_fact_the_song
[#cardinality] => 1
[#title] => Reference to fact the song
[#required] => 0
[#description] => Выбрать песню для которой будет добавляться факт.
[#prefix] =>
[#suffix] =>
[#max_delta] => 0
[#after_build] => Array (
[0] => field_form_element_after_build )
[#language] => und
[#field_parents] => Array ( )
)
[#access] => 1 )
?>
Вы пытаетесь залезть в объект, вам надо
$form['field_reference_to_fact_the_song']['#title'] = 'ttt';
Так я тоже пробовал. Не але.
$form['field_reference_to_fact_the_song']['und']['#title'] = 'ttt'; + не забудьте по кэш.
кеш само собой. но все равно не то. может как то не так функцию пишу? форма же это машиное имя типа материала ?
Может попробовать другой хук?
Например есть hook_form_FORM_ID_alter
И еще вопрос, вам нужно сменить именно тайтл? Если сайт не мультиязычный - можно сменить через перевод интерфейса. Костыль конечно, но кода меньше, да и быстрее сделать.
доковырял:
$form['field_reference_to_fact_the_song'][und][0][nid]['#title'] = 'Песня';
тут усложнить нужно.
при добавление материала по ссылке node/add/facts
Один title и описание,
а если нода добавляется по ссылке node/add/facts/522?destination=node/522 - другой title и другое описание.
такое реально прописать в своем модуле?
Если доберетесь до $_GET['destination'] - то можно.
про это я читал, неподскажите побольше информации... в каком хуке это применять можно... примерчики
что то для 6кеесть api.drupal.ru/api/function/drupal_get_destination/6
но для 7ки бы еще...
не знаю это ли нужно ковырять
<?phpfunction drupal_get_origin() {
/* @var $_SERVER HTTP_REFERER works on our servers. */
$path = $_SERVER['HTTP_REFERER'];
if (isset($_GET['destination'])) {
$path = $_GET['destination'];
}
return $path;
}?>