Я хотел бы спросить, как я могу сделать некоторый код перед тем, как создавать форму в Drupal 7?
Прежде чем определить форму, я хотел бы выполнить некоторый код (я хочу построить объект). Как я могу это сделать?
Код, который я хочу выполнить:
if (isset($_GET["team"])){$team = $_GET["team"];} else {$team=1; };
$myteam = new Team($team);
Я определяю форму:
function teamform_nameform() {
$form['editteam']['team_city'] = array(
'#title' => t('Team city'),
'#type' => 'textfield',
'#description' => t(''),
'#required' => TRUE,
'#default_value' =>**$myteam->returnCity()**,
'#size' => 30,
);
$form['editteam']['submitContentChanges'] = array(
'#type' => 'submit',
'#value' => t('Save changes'),
'#submit' => array('teamform_editteam_submitContentChanges'),
);
}
Я пытался использовать следующий хук, но он не работает. (я до сих пор не могу получить доступ к переменной $team
и к объекту $myteam
(написано, что они не определены))
/**
* Implements hook_form_alter().
*/
function teamform_form_alter(&$form, &$form_state, $form_id) {
global $team;
if (isset($_GET["team"])){$team = $_GET["team"];} else {$team=2;};
global $myteam
$myteam = new Team($team);
}
$ team - это идентификатор команды, который я получаю с помощью метода GET или, если он не установлен, я назначаю значение по умолчанию. $ myteam - это объект, который я строю на основе team_id.
Чем бы я хотел получить доступ к объекту в функции teamform_nameform (). В этой функции я использую метод returnCity (), чтобы вернуть город, к которому принадлежит команда; в качестве значения по умолчанию.
Чем я хотел бы сделать изменения с объектом. В частности, когда пользователь меняет город команды и нажимает кнопку «Отправить», я хочу обновить город в объекте $ myteam. Поэтому я использую функцию:
function teamform_editteam_submitContentChanges($form, &$form_state){
$team_city=$form_state['values']['team_city'];
$myteam->updateTeamCity($team_city); //i got the error here. it's said that $myteam is undefined!
}