' . t("Displays the products") . '
';
break;
}
return $output;
}
/**
* Implements hook_perm().
*/
/*
function pavi_perm() {
return array(
'access pavi',
'edit pavi',
'administer pavi',
'add to pavi',
);
}
*/
function pavi_menu(){
$items = array();
$items['pavi'] = array(
'title' => t('PRODUCTS'),
'page callback' => 'drupal_get_form',
'page arguments'=>array('pavi_form'),
'access arguments' => array('access pavi'),
'type' => MENU_NORMAL_ITEM,
);
$items['pavi/js']=array(
'title' => 'Javascript Choice Form',
'page callback' => 'drupal_get_form',
'page arguments'=>array('pavi_rows_js'),
'access arguments' => array('access pavi'),
'type'=> MENU_CALLBACK,
);
return $items;
}
function pavi_form(&$form_state)
{
$form['enteredfrom']=array(
'#type'=>'textfield',
'#title'=>'',
'#default_value' => !empty($form_state['values']['enteredfrom']) ? $form_state['values']['enteredfrom'] : '',
'#prefix'=>'| ENTERED FROM | ',
'#suffix'=>' |
',
);
// chars headr
if (isset($form_state['rows_count'])) {
$rows_count = $form_state['rows_count'];
}
else {
$rows_count = 1;
}
$form['rows_wrapper'] = array(
'#title' => t("Characteristics"),
'#prefix' => '',
'#suffix' => '
',
'#type' => 'fieldset',
'#tree'=> FALSE,
);
$form ['rows_wrapper']['characteristicshead']=array(
'#type'=>'hidden',
'#title'=>'',
'#prefix'=>'| CHARACTERISTICS',
'#suffix'=>' | ',
);
$form['rows_wrapper']['descriptionhead']=array(
'#type'=>'hidden',
'#title'=>'',
'#prefix'=>'DESCRIPTION',
'#suffix'=>' | ',
);
$form['rows_wrapper']['minimumhead']=array(
'#type'=>'hidden',
'#title'=>'',
'#prefix'=>'MINIMUM | ',
'#suffix'=>'',
);
$form['rows_wrapper']['maximumhead']=array(
'#type'=>'hidden',
'#title'=>'',
'#prefix'=>'MAXIMUM',
'#suffix'=>' |
|---|
',
);
$form['rows_wrapper']['rows']=array(
'#prefix' => '',
);
for ($delta = 0; $delta <$rows_count; $delta++) {
$chars= $form_state['values']['rows_wrapper']['rows'][$delta]['characteristics'] ;
$descr= $form_state['values']['rows_wrapper']['rows'][$delta]['description'];
$min=$form_state['values']['rows_wrapper']['rows'][$delta]['minimum'] ;
$max=$form_state['values']['rows_wrapper']['rows'][$delta]['maximum'];
$form['rows_wrapper']['rows'][$delta]= _table_rows_form($delta,$chars,$descr,$min,$max,&$form_state);
}
$form['rows_wrapper']['pavi_add_more']= array(
'#type' => 'submit',
'#value' => t('More Rows'),
'#description' => t(" click here to add more characteristics."),
'#weight' => 1,
'#submit' => array('pavi_add_more_rows_submit'), // If no javascript action.
'#ahah' => array(
'path' => 'pavi/js',
'wrapper' => 'rows-choices',
'effect' => 'fade',
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('ADD TO TABLE')
);
return $form;
}
function pavi_add_more_rows_submit($form, &$form_state) {
//node_form_submit_build_node($form, $form_state);
if ($form_state['values']['pavi_add_more']) {
$n = $_GET['q'] == 'pavi/js' ? 1 : 5;
$form_state['rows_count'] = count($form_state['values']['rows']) + $n;
}
}
function _table_rows_form($delta,$chars,$descr,$min,$max,&$form_state) {
$form=array(
'#tree'=>TRUE,
);
//rows
$form['characteristics']=array(
'#type' => 'textfield',
'#size'=> 20,
//'#title' => t('rows @n', array('@n' => ($delta + 1))),
'#prefix'=>'| ',
'#suffix'=>' | ',
'#default_value' => !empty($form_state['values']['characteristics']) ? $form_state['values']['characteristics'] : '',
'#parents' => array('rows', $delta, 'chars'),
);
$form['description']=array(
'#type' => 'textfield',
'#size'=> 20,
//'#title' => t('rows @n', array('@n' => ($delta + 1))),
'#prefix'=>'',
'#suffix'=>' | ',
'#default_value' => !empty($form_state['values']['description']) ? $form_state['values']['description'] : '',
'#parents' => array('rows', $delta, 'descr'),
);
$form['minimum']=array(
'#type' => 'textfield',
'#size'=> 20,
// '#title' => t('rows @n', array('@n' => ($delta + 1))),
'#prefix'=>'',
'#suffix'=>' | ',
'#default_value' => !empty($form_state['values']['minimum']) ? $form_state['values']['minimum'] : '',
'#parents' => array('rows', $delta, 'min'),
);
$form['maximum']=array(
'#type' => 'textfield',
'#size'=> 20,
//'#title' => t('rows @n', array('@n' => ($delta + 1))),
'#prefix'=>'',
'#suffix'=>' |
',
'#default_value' => !empty($form_state['values']['maximum']) ? $form_state['values']['maximum'] : '',
'#parents' => array('rows', $delta, 'max'),
);
return $form;
}
function pavi_rows_js() {
include_once 'modules/node/node.pages.inc';
$form_state = array('storage' => NULL, 'submitted' => FALSE);
$form_build_id = $_POST['form_build_id'];
$form = form_get_cache($form_build_id, $form_state);
$args = $form['#parameters'];
$form_id = array_shift($args);
$form['#redirect'] = FALSE;
$form['#post'] = $_POST;
$form['#programmed'] = FALSE;
$form_state['post'] = $_POST;
drupal_process_form($form_id, $form, $form_state);
$form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
$rows_form = $form['rows_wrapper']['rows'];
unset($rows_form['#prefix'], $rows_form['#suffix']); // Prevent duplicate wrappers.
$output = drupal_render($rows_form);
print drupal_json(array('status' => TRUE, 'data' => $output));
}