/**
  * Generate the content of each table row (1 row = 1 banner)
  */
 function formatRow($row)
 {
     // Begin banner row
     $htmlOut = Xml::openElement('tr');
     if ($this->editable) {
         // Add box
         $htmlOut .= Xml::tags('td', array('valign' => 'top'), Xml::check('addTemplates[]', '', array('value' => $row->tmp_name)));
         // Weight select
         $htmlOut .= Xml::tags('td', array('valign' => 'top'), Xml::listDropDown("weight[{$row->tmp_id}]", CentralNotice::dropDownList(wfMsg('centralnotice-weight'), range(0, 100, 5)), '', '25', '', ''));
     }
     // Link and Preview
     $render = new SpecialBannerLoader();
     $render->siteName = 'Wikipedia';
     $render->language = $this->mRequest->getVal('wpUserLanguage');
     try {
         $preview = $render->getHtmlNotice($row->tmp_name);
     } catch (SpecialBannerLoaderException $e) {
         $preview = wfMsg('centralnotice-nopreview');
     }
     $htmlOut .= Xml::tags('td', array('valign' => 'top'), $this->getSkin()->makeLinkObj($this->viewPage, htmlspecialchars($row->tmp_name), 'template=' . urlencode($row->tmp_name)) . Xml::fieldset(wfMsg('centralnotice-preview'), $preview, array('class' => 'cn-bannerpreview')));
     // End banner row
     $htmlOut .= Xml::closeElement('tr');
     return $htmlOut;
 }
 public function testDropDownList()
 {
     $text = 'Weight';
     $values = range(0, 50, 10);
     $this->assertEquals("*Weight\n**0\n**10\n**20\n**30\n**40\n**50\n", CentralNotice::dropDownList($text, $values));
 }
 /**
  * Build a set of select lists. Used by dateSelector and timeSelector.
  * @param $prefix string to identify selector set, for example, 'start' or 'end'
  * @param $fields array of select lists to build
  */
 public static function createSelector($prefix, $fields)
 {
     $out = '';
     foreach ($fields as $data) {
         list($field, $label, $set, $current) = $data;
         $out .= Xml::listDropDown("{$prefix}[{$field}]", CentralNotice::dropDownList(wfMsg($label), $set), '', $current);
     }
     return $out;
 }
 private function dateSelector($prefix, $year = 0, $month = 0, $day = 0)
 {
     $dateRanges = CentralNotice::getDateRanges();
     $fields = array(array($prefix . "_month", "centralnotice-month", $dateRanges['months'], $month), array($prefix . "_day", "centralnotice-day", $dateRanges['days'], $day), array($prefix . "_year", "centralnotice-year", $dateRanges['years'], $year));
     $out = '';
     foreach ($fields as $data) {
         list($field, $label, $set, $current) = $data;
         $out .= Xml::listDropDown($field, CentralNotice::dropDownList(wfMsg($label), $set), '', $current);
     }
     return $out;
 }