Как отобразить внешние данные в Views 3, без узла, CCK и типа контента - PullRequest
2 голосов
/ 28 декабря 2010

У меня есть внешняя база данных Mydbase, которая содержит следующие таблицы:

  • Компания: основной код, субкод, название компании
  • Продукт: код продукта, название продукта
  • Емкость: основной код, субкод, код продукта, емкость, поскольку

Я хочу отобразить в представлении основной код, субкод, код продукта, название компании, название продукта, емкость и т. Д.
Я также хочу показать фильтр кода продукта.

Я настроил файл setting.php db_url внешней базы данных.Затем я создал форму на странице для выбора компании;как только пользователь выбирает компанию, я сохраняю код компании в переменной сеанса для справки.Я буду использовать эту переменную для извлечения информации в представлении.Я введу его значение в PHP-код аргумента по умолчанию, а Views предоставит мне информацию о мощности выбранной компании.Эта страница автоматически перенаправляет пользователя на страницу просмотра емкости, используя функцию drupal_goto().Код страницы прилагается ниже.У меня проблема с кодом: я не могу сохранить название компании в переменной;Я могу только получить информацию для «основного кода» и «субкода».Как получить отображаемое значение раскрывающегося списка вместо значения тега?

Я не знаю, как использовать представление для внешней базы данных без определения типа содержимого в drupal, и у меня нет поля cck какЧто ж.Если я могу, я хочу также представить код продукта в view.so, пользователь может выбрать и просмотреть один продукт выбранной компании.

if(isset($_SESSION['ses_maincode'])){
  echo "Company Main code Selected =  " . $_SESSION['ses_maincode'] . "<br/>";
  echo "Company Sub code Selected =  " . $_SESSION['ses_subcode'] . "<br/>";
  echo "<br />";
}

$output .= drupal_get_form('formexample_testform');    
echo $output;

function formexample_testform() {
  $myvalue = array();
  $count = 0;
  db_set_active('mydb');
  $result = db_query('SELECT maincode,subcode,cname FROM {company}');
  while ($row = db_fetch_array($result)) {
    $arrayvalue = $row[maincode]  . '+' . $row[subcode];
    $myvalue[$arrayvalue]=$row['cname'];
    $count = $count + 1;
  }
  db_set_active('default');

  $form['select_company'] = array(
    '#title' => t('Select Company'),
    '#type' => 'select',
    '#description' => t('Pick the company '),
    '#options' => $myvalue,
    '#multiple' => FALSE,
  );

  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit')
  );

  return $form;
}

function formexample_testform_submit($form_id, $form_state) {
  $name = $form_state['values']['select_company'];
  drupal_set_message(t(' You have select the company %name', array('%name' => $name)));

  $mystring = $form_state['values']['select_company'];
  $pos = strrpos($mystring, "+");
  $endpoint = strlen($mystring) - $pos;
  $_SESSION['ses_maincode']=substr($mystring,0,$pos);
  $_SESSION['ses_subcode']=substr($mystring,$pos+1,$endpoint);

  $urlstring='node/7';
  /** . $_SESSION['ses_maincode']; */
  drupal_goto($urlstring);
}
...