Merge branch 'MDL-21625_b_m22' of git://github.com/rwijaya/moodle into MOODLE_22_STABLE

This commit is contained in:
Sam Hemelryk
2012-11-05 16:27:15 +13:00
2 changed files with 63 additions and 4 deletions
+9
View File
@@ -1140,6 +1140,15 @@ class quiz_question_bank_view extends question_bank_view {
'editaction', 'previewaction');
}
/**
* Specify the column heading
*
* @return string Column name for the heading
*/
protected function heading_column() {
return 'questionnametext';
}
protected function default_sort() {
$this->requiredcolumns['qtype'] = $this->knowncolumntypes['qtype'];
$this->requiredcolumns['questionnametext'] = $this->knowncolumntypes['questionnametext'];
+54 -4
View File
@@ -134,6 +134,9 @@ abstract class question_bank_column_base {
*/
protected $qbank;
/** @var bool determine whether the column is td or th. */
protected $isheading = false;
/**
* Constructor.
* @param $qbank the question_bank_view we are helping to render.
@@ -150,6 +153,13 @@ abstract class question_bank_column_base {
protected function init() {
}
/**
* Set the column as heading
*/
public function set_as_heading() {
$this->isheading = true;
}
public function is_extra_row() {
return false;
}
@@ -258,8 +268,20 @@ abstract class question_bank_column_base {
$this->display_end($question, $rowclasses);
}
/**
* Output the opening column tag. If it is set as heading, it will use <th> tag instead of <td>
*
* @param stdClass $question
* @param array $rowclasses
*/
protected function display_start($question, $rowclasses) {
echo '<td class="' . $this->get_classes() . '">';
$tag = 'td';
$attr = array('class' => $this->get_classes());
if ($this->isheading) {
$tag = 'th';
$attr['scope'] = 'row';
}
echo html_writer::start_tag($tag, $attr);
}
/**
@@ -292,8 +314,18 @@ abstract class question_bank_column_base {
*/
protected abstract function display_content($question, $rowclasses);
/**
* Output the closing column tag
*
* @param type $question
* @param type $rowclasses
*/
protected function display_end($question, $rowclasses) {
echo "</td>\n";
$tag = 'td';
if ($this->isheading) {
$tag = 'th';
}
echo html_writer::end_tag($tag);
}
/**
@@ -885,7 +917,7 @@ class question_bank_view {
$this->lastchangedid = optional_param('lastchanged',0,PARAM_INT);
$this->init_column_types();
$this->init_columns($this->wanted_columns());
$this->init_columns($this->wanted_columns(), $this->heading_column());
$this->init_sort();
$PAGE->requires->yui2_lib('container');
@@ -901,6 +933,15 @@ class question_bank_view {
return $columns;
}
/**
* Specify the column heading
*
* @return string Column name for the heading
*/
protected function heading_column() {
return 'questionname';
}
protected function known_field_types() {
return array(
new question_bank_checkbox_column($this),
@@ -923,7 +964,13 @@ class question_bank_view {
}
}
protected function init_columns($wanted) {
/**
* Initializing table columns
*
* @param array $wanted Collection of column names
* @param string $heading The name of column that is set as heading
*/
protected function init_columns($wanted, $heading = '') {
$this->visiblecolumns = array();
$this->extrarows = array();
foreach ($wanted as $colname) {
@@ -938,6 +985,9 @@ class question_bank_view {
}
}
$this->requiredcolumns = array_merge($this->visiblecolumns, $this->extrarows);
if (array_key_exists($heading, $this->requiredcolumns)) {
$this->requiredcolumns[$heading]->set_as_heading();
}
}
/**