* @ingroup SpecialPage
*/
class SpecialRandomInCategory extends FormSpecialPage {
+ /** @var string[] */
protected $extra = []; // Extra SQL statements
+ /** @var Title|false */
protected $category = false; // Title object of category
+ /** @var int */
protected $maxOffset = 30; // Max amount to fudge randomness by.
+ /** @var int|null */
private $maxTimestamp = null;
+ /** @var int|null */
private $minTimestamp = null;
public function __construct( $name = 'RandomInCategory' ) {
'tables' => [ 'categorylinks', 'page' ],
'fields' => [ 'page_title', 'page_namespace' ],
'conds' => array_merge( [
- 'cl_to' => $this->category->getDBKey(),
+ 'cl_to' => $this->category->getDBkey(),
], $this->extra ),
'options' => [
'ORDER BY' => 'cl_timestamp ' . $dir,
]
];
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$minClTime = $this->getTimestampOffset( $rand );
if ( $minClTime ) {
$qi['conds'][] = 'cl_timestamp ' . $op . ' ' .
* @throws MWException If category has no entries.
*/
protected function getMinAndMaxForCat( Title $category ) {
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$res = $dbr->selectRow(
'categorylinks',
[
'high' => 'MAX( cl_timestamp )'
],
[
- 'cl_to' => $this->category->getDBKey(),
+ 'cl_to' => $this->category->getDBkey(),
],
__METHOD__,
[
* @return array Info for the title selected.
*/
private function selectRandomPageFromDB( $rand, $offset, $up, $fname = __METHOD__ ) {
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$query = $this->getQueryInfo( $rand, $offset, $up );
$res = $dbr->select(