mediamosa_server_form($node, &$form_state)Implements hook_form().
sites/all/modules/mediamosa/core/node/mediamosa_node_mediamosa_server.inc, line 252
<?php
function mediamosa_server_form($node, &$form_state) {
// Take type from node if available.
if (isset($node->{mediamosa_server_db::SERVER_TYPE})) {
$server_type = $node->{mediamosa_server_db::SERVER_TYPE};
}
$breadcrumb = array();
$breadcrumb[] = l(t('Home'), NULL);
$breadcrumb[] = l(t('Administer'), 'admin');
$breadcrumb[] = l(t('MediaMosa'), 'admin/mediamosa');
$breadcrumb[] = l(t('Configuration'), 'admin/mediamosa/config');
$breadcrumb[] = l(t('Server listing'), 'admin/mediamosa/config/server');
drupal_set_breadcrumb($breadcrumb);
// Else take it from the uri.
if (!isset($server_type)) {
$server_type = arg(5);
}
$is_insert = empty($node->nid);
// Default server status options.
$server_status_options = array(
mediamosa_server_db::SERVER_STATUS_ON => t('On'),
mediamosa_server_db::SERVER_STATUS_OFF => t('Off')
);
switch ($server_type) {
default:
drupal_goto('admin/mediamosa/config/server/add/download');
case mediamosa_server_db::SERVER_TYPE_DOWNLOAD:
$title = $is_insert ? t('New download server') : t("Editing download server '@server_name'.", array('@server_name' => $node->title));
$description = t('A download server handles download requests of mediafiles.');
break;
case mediamosa_server_db::SERVER_TYPE_STILL:
$title = $is_insert ? t('New still server') : t("Editing still server '@server_name'.", array('@server_name' => $node->title));
$description = t('A still server serves and generates stills from mediafiles.');
break;
case mediamosa_server_db::SERVER_TYPE_STREAMING:
$title = $is_insert ? t('New streaming server') : t("Editing streaming server '@server_name'.", array('@server_name' => $node->title));
$description = t('A streaming server will stream mediafiles for you.');
break;
case mediamosa_server_db::SERVER_TYPE_JOB_PROCESSOR:
// If its already OFF then the value is allowed as option, else its either On or Close.
if (isset($node->{mediamosa_server_db::SERVER_STATUS}) && $node->{mediamosa_server_db::SERVER_STATUS} != mediamosa_server_db::SERVER_STATUS_OFF) {
$server_status_options = array(
mediamosa_server_db::SERVER_STATUS_ON => t('On'),
mediamosa_server_db::SERVER_STATUS_CLOSE => t('Close'), // Job servers are set to off by cron.
);
}
$title = $is_insert ? t('New processor server') : t("Editing processor server '@server_name'.", array('@server_name' => $node->title));
$description = t('A processor server processes jobs like still generation, transcoding of mediafiles.');
break;
case mediamosa_server_db::SERVER_TYPE_UPLOAD:
$title = $is_insert ? t('New upload server') : t("Editing upload server '@server_name'.", array('@server_name' => $node->title));
$description = t('A upload server allows users to upload files to MediaMosa.');
break;
}
$form = array();
$form[mediamosa_server_db::SERVER_TYPE] = array(
'#type' => 'hidden',
'#value' => mediamosa_node::default_value(mediamosa_server_db::SERVER_TYPE, $node, $server_type),
);
$form['mediamosa_server'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => $title,
'#description' => $description,
);
$form['mediamosa_server']['title'] = array(
'#type' => 'textfield',
'#title' => t('Server name'),
'#description' => t('The name for the server.'),
'#required' => TRUE,
'#default_value' => mediamosa_node::default_value('title', $node),
'#maxlength' => mediamosa_server_db::SERVER_NAME_LENGTH,
);
$form['mediamosa_server'][mediamosa_server_db::DESCRIPTION] = array(
'#type' => 'textarea',
'#required' => TRUE,
'#title' => t('Description'),
'#description' => t('Description of the server.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::DESCRIPTION, $node),
'#maxlength' => mediamosa_server_db::DESCRIPTION_LENGTH,
);
if (in_array($server_type, array(mediamosa_server_db::SERVER_TYPE_DOWNLOAD, mediamosa_server_db::SERVER_TYPE_UPLOAD, mediamosa_server_db::SERVER_TYPE_STILL, mediamosa_server_db::SERVER_TYPE_STREAMING))) {
$form['mediamosa_server'][mediamosa_server_db::URI] = array(
'#type' => 'textfield',
'#required' => TRUE,
'#title' => t('URI'),
'#description' => t('{TICKET} is available for use in the URI.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::URI, $node),
'#maxlength' => mediamosa_server_db::URI_LENGTH,
);
}
if (in_array($server_type, array(mediamosa_server_db::SERVER_TYPE_JOB_PROCESSOR))) {
$form['mediamosa_server'][mediamosa_server_db::URI] = array(
'#type' => 'textfield',
'#title' => t('URI'),
'#description' => t('URI or URL server.'),
'#required' => TRUE,
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::URI, $node),
'#maxlength' => mediamosa_server_db::URI_LENGTH,
);
$form['mediamosa_server'][mediamosa_server_db::SLOTS] = array(
'#type' => 'textfield',
'#title' => t('Slots'),
'#required' => TRUE,
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::SLOTS, $node),
);
$form['mediamosa_server'][mediamosa_server_db::TOOLS] = array(
'#type' => 'textfield',
'#title' => t('Tools'),
'#description' => t('Set tools for this server in the following format: ffmpeg|STILL|lin2win.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::TOOLS, $node),
);
}
if (in_array($server_type, array(mediamosa_server_db::SERVER_TYPE_UPLOAD))) {
$form['mediamosa_server'][mediamosa_server_db::URI_UPLOAD_PROGRESS] = array(
'#type' => 'textfield',
'#title' => t('URI upload progress'),
'#required' => TRUE,
'#description' => t('Optional URI for client side upload progress information.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::URI_UPLOAD_PROGRESS, $node),
'#maxlength' => mediamosa_server_db::URI_UPLOAD_PROGRESS_LENGTH,
);
}
if (in_array($server_type, array(mediamosa_server_db::SERVER_TYPE_STREAMING))) {
$form['mediamosa_server'][mediamosa_server_db::CONTAINERS] = array(
'#type' => 'textfield',
'#title' => t('Containers'),
'#required' => TRUE,
'#description' => t('Set containers for this server in the following format: asf|flv|mpeg|avi|ogg|mov;mp4;m4a;3gp;3g2;mj2|mp3.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::CONTAINERS, $node),
'#maxlength' => mediamosa_server_db::CONTAINERS_LENGTH,
);
$form['mediamosa_server'][mediamosa_server_db::OBJECT_CODE] = array(
'#type' => 'textarea',
'#title' => t('Object code'),
'#description' => t('{WIDTH}, {HEIGHT}, {HEIGHT_PLUS_20}, {MEDIAFILE_ID}, {TICKET_URI}, {AUTOPLAY} (true or false), {AUTOPLAY_NUM} (1 or 0), {IF_START}, {/IF_START}, {IF_DURATION}, {/IF_DURATION} are available for use in this field.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::OBJECT_CODE, $node),
);
}
$form['mediamosa_server'][mediamosa_server_db::SERVER_STATUS] = array(
'#type' => 'select',
'#required' => TRUE,
'#options' => $server_status_options,
'#title' => t('Status'),
'#description' => t('Availability of server.'),
'#default_value' => mediamosa_node::default_value(mediamosa_server_db::SERVER_STATUS, $node),
);
$form['#redirect'] = 'admin/mediamosa/config/server';
return $form;
}
?>