public function __construct(HTMLTags_URL $url, Database_Table $table, $order_by, $direction, $offset, $limit, $limit_str, $rows_html_table_caption, $lpnd_class, $data_table_class, $fields, $actions)
 {
     parent::__construct();
     $table_renderer = $table->get_renderer();
     /*
      * ----------------------------------------
      * Check the inputs.
      * ----------------------------------------
      */
     /*
      * ----------------------------------------
      * Create the content.
      * ----------------------------------------
      */
     $limit_previous_next_div = new HTMLTags_Div();
     $limit_previous_next_div->set_attribute_str('class', $lpnd_class);
     /*
      * To allow the user to set the number of extras to show at a time.
      */
     $limit_action = clone $url;
     $limit_action->delete_all_get_variables();
     $limit_form = new Database_LimitForm($limit_action, $limit, $limit_str);
     $get_vars = $url->get_get_variables();
     foreach (array_keys($get_vars) as $key) {
         $limit_form->add_hidden_input($key, $get_vars[$key]);
     }
     $limit_form->add_hidden_input('order_by', $order_by);
     $limit_form->add_hidden_input('direction', $direction);
     $limit_form->add_hidden_input('offset', $offset);
     $limit_previous_next_div->append_tag_to_content($limit_form);
     $previous_next_url = clone $url;
     $previous_next_url->set_get_variable('order_by', $order_by);
     $previous_next_url->set_get_variable('direction', $direction);
     $row_count = $table->count_all_rows();
     $previous_next_ul = new Database_PreviousNextUL($previous_next_url, $offset, $limit, $row_count);
     $limit_previous_next_div->append_tag_to_content($previous_next_ul);
     $this->append_tag_to_content($limit_previous_next_div);
     # ------------------------------------------------------------------
     /*
      * The table.
      */
     $rows_html_table = new HTMLTags_Table();
     $rows_html_table->set_attribute_str('class', $data_table_class);
     /*
      * The caption.
      */
     $caption = new HTMLTags_Caption($rows_html_table_caption);
     $rows_html_table->append_tag_to_content($caption);
     /*
      * The Heading Row.
      */
     $sort_href = clone $url;
     $sort_href->set_get_variable('limit', $limit);
     $heading_row = new Database_SortableHeadingTR($sort_href, $direction);
     //if (isset($fields_str)) {
     //    $fields = array();
     //
     //    foreach (explode(' ', $fields_str) as $field_name) {
     //        $fields[] = $table->get_field($field_name);
     //    }
     //} else {
     //    $fields = $table->get_fields();
     //}
     foreach ($fields as $field) {
         if ($field['sortable']) {
             $heading_row->append_sortable_field_name($field['name']);
         } else {
             $heading_row->append_nonsortable_field_name($field['name']);
         }
     }
     foreach ($actions as $action) {
         $heading_row->append_tag_to_content($action['th']);
     }
     $rows_html_table->append_tag_to_content($heading_row);
     # ------------------------------------------------------------------
     /*
      * Display the contents of the table.
      */
     $rows = $table->get_all_rows($order_by, $direction, $offset, $limit);
     foreach ($rows as $row) {
         $row_renderer = $row->get_renderer();
         $data_tr = new HTMLTags_TR();
         foreach ($fields as $field) {
             $field_td = self::get_html_table_cell_for_field($field, $row_renderer);
             $data_tr->append_tag_to_content($field_td);
         }
         //foreach (
         //    $row_renderer->get_action_tds(
         //        $actions_str,
         //        $url
         //    )
         //    as
         //    $action_td
         //) {
         //    $data_tr->append_tag_to_content($action_td);
         //}
         foreach ($actions as $action) {
             $action_td = self::get_html_table_cell_for_field($action, $row_renderer);
             $data_tr->append_tag_to_content($action_td);
         }
         $rows_html_table->append_tag_to_content($data_tr);
     }
     # ------------------------------------------------------------------
     $this->append_tag_to_content($rows_html_table);
     $this->append_tag_to_content($limit_previous_next_div);
 }