42 return MediaWikiServices::getInstance()->getGenderCache();
50 if ( $this->
default ===
null ) {
51 $this->
default = User::getDefaultOption(
'gender' );
54 return $this->default;
72 if ( $this->misses >= $this->missLimit &&
$wgUser->getName() !==
$username ) {
73 if ( $this->misses === $this->missLimit ) {
75 wfDebug( __METHOD__ .
": too many misses, returning default onwards\n" );
99 foreach ( $data as $ns => $pagenames ) {
100 if ( !MWNamespace::hasGenderDistinction( $ns ) ) {
103 foreach ( array_keys( $pagenames ) as
$username ) {
108 $this->
doQuery( array_keys( $users ), $caller );
120 foreach (
$titles as $title ) {
121 $titleObj = is_string( $title ) ? Title::newFromText( $title ) :
$title;
125 if ( !MWNamespace::hasGenderDistinction( $titleObj->getNamespace() ) ) {
128 $users[] = $titleObj->getText();
131 $this->
doQuery( $users, $caller );
139 public function doQuery( $users, $caller =
'' ) {
143 foreach ( (array)$users as
$value ) {
144 $name = self::normalizeUsername(
$value );
146 if ( !isset( $this->
cache[$name] ) ) {
150 if ( User::isValidUserName( $name ) ) {
151 $usersToCheck[] =
$name;
156 if ( count( $usersToCheck ) === 0 ) {
161 $table = [
'user',
'user_properties' ];
162 $fields = [
'user_name',
'up_value' ];
163 $conds = [
'user_name' => $usersToCheck ];
164 $joins = [
'user_properties' =>
165 [
'LEFT JOIN', [
'user_id = up_user',
'up_property' =>
'gender' ] ] ];
167 $comment = __METHOD__;
168 if ( strval( $caller ) !==
'' ) {
169 $comment .=
"/$caller";
171 $res =
$dbr->select( $table, $fields, $conds, $comment, [], $joins );
173 foreach (
$res as $row ) {
174 $this->
cache[$row->user_name] = $row->up_value ? $row->up_value :
$default;
181 if ( $indexSlash !==
false ) {
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Caches user genders when needed to use correct namespace aliases.
getGenderOf( $username, $caller='')
Returns the gender for given username.
static normalizeUsername( $username)
doLinkBatch( $data, $caller='')
Wrapper for doQuery that processes raw LinkBatch data.
getDefault()
Returns the default gender option in this wiki.
doTitlesArray( $titles, $caller='')
Wrapper for doQuery that processes a title or string array.
doQuery( $users, $caller='')
Preloads genders for given list of users.
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
namespace and then decline to actually register it file or subcat img or subcat $title
this hook is for auditing only or null if authentication failed before getting that far $username
Allows to change the fields on the form that will be generated $name
linkcache txt The LinkCache class maintains a list of article titles and the information about whether or not the article exists in the database This is used to mark up links when displaying a page If the same link appears more than once on any page then it only has to be looked up once In most cases link lookups are done in batches with the LinkBatch class or the equivalent in so the link cache is mostly useful for short snippets of parsed and for links in the navigation areas of the skin The link cache was formerly used to track links used in a document for the purposes of updating the link tables This application is now deprecated To create a you can use the following $titles
you have access to all of the normal MediaWiki so you can get a DB use the cache