In this tutorial we will use Drupal 7 Form Api to create Machine name Field which is not well Documented in drupal.org . To create Machine name field we need another Field which is the Parent/Source field, Source field contain the Human Readable Text that will be converted Automatically by Using "misc/machine-name.js" to machine Friendly name. End users Usually working Directly with Source Field. Lets Create Form like what we get when we Add vocabulary from Structure > taxonomy > Add vocabulary.

Example
function _drupalst_com_machine_name_form($form, &$form_state){
$form['taxonomy-name'] = array( // The Source Field which the End user will write the user friendly text.
'#type' => 'textfield',
'#title' => t("Taxonomy name"),
'#required' => TRUE,
'#description' => t("user-friendly name."),
'#size' => 40,
'#maxlength' => 127,
'#default_value' => "",
);
$form['machine-name'] = array( // The machine name Field which will take the value from Source field and convert it to machine friendly name.
'#type' => 'machine_name',
'#title' => t("Machine Name"),
'#required' => TRUE,
'#description' => t("machine-friendly name."),
'#size' => 15,
'#maxlength' => 15,
'#default_value' => "",
'#machine_name' => array(
'exists' => '_drupalst_com_check_machine_name_if_exist', // function that return 1 if the machine name is duplicated .
'source' => array('taxonomy-name'), // the name of the source field that we will Take the User Friendly name from and convert it to Machine Friedly name
),
);
$form['submit'] = array(
'#type' => 'submit' ,
'#value' => t('Save') ,
);
return $form ;
}Here we go.




