таблица drupal с удаленной ссылкой - PullRequest
0 голосов
/ 05 января 2011

Мне нужно создать таблицу drupal со ссылкой на удаление для каждой записи.У меня есть таблица с ссылками для редактирования.Они используют hook_menu для передачи идентификатора записи и перенаправления на контактную форму.Как я могу расширить эту функциональность, чтобы добавить редактирование.Код

function _MYMODULE_sql_to_table($sql) { 
  $html = "";    
  // execute sql
  $resource = db_query($sql);    
  // fetch database results in an array
  $results = array();
  while ($row = db_fetch_array($resource)) {
     $results[] = $row;
      $id = $row['id'];
      $email = $row['email'];
      $comment = $row['comment'];
 //     drupal_set_message('Email: '.$email. ' comment: '.$comment. ' id: '.$id);
  }
  // ensure results exist
  if (!count($results)) {
    $html .= "Sorry, no results could be found.";
    return $html;    
  }

  // create an array to contain all table rows
  $rows = array();
  // get a list of column headers
  $columnNames = array_keys($results[0]);

  // loop through results and create table rows
  foreach ($results as $key => $data) {
    // create row data
    $row = array(

        'edit' => l(t('Edit'),"admin/content/test/".$data['id']."/ContactUs", $options=array()),
        'delete' => l(t('Delete'),"admin/content/".$data['id']."/ContactUs",$options = array()),
        );

    // loop through column names
    foreach ($columnNames as $c) {
      $row[] = array(
        'data' => $data[$c],
        'class' => strtolower(str_replace(' ', '-', $c)),
      );
    }

    // add row to rows array
    $rows[] = $row;

  }

  // loop through column names and create headers
  $header = array();
  foreach ($columnNames as $c) {
    $header[] = array(
      'data' => $c,
      'class' => strtolower(str_replace(' ', '-', $c)),
    );
  }

  // generate table html
  $html .= theme('table', $header, $rows);

  return $html;

}

// then you can call it in your code...
function _MYMODULE_some_page_callback() {

  $html = "";

  $sql = "select * from {contact3}";

  $html .= _MYMODULE_sql_to_table($sql);

  return $html;
}

1 Ответ

0 голосов
/ 10 января 2011

Я предполагаю, что у вас уже есть форма для создания ваших данных (что бы это ни было). Затем вы можете расширить эту форму для необязательного получения идентификатора и, если он есть, загрузить соответствующие данные, добавить скрытый (значение типа #) элемент формы, который содержит идентификатор и соответствующие записи #default_value в вашей форме. Затем вы должны выяснить в вашем обратном вызове отправки, если у вас есть новая запись (без идентификатора) или существующая, и действовать соответственно.

PS: Я полагаю, у вас есть причина не использовать систему узлов, тогда она уже существует.

PPS: Ваш код полностью не читается, вы должны переформатировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...