/** * @return ValueValidator[] */ public function buildMonolingualTextValidators() { $validators = array(); $validators[] = new DataFieldValidator('text', new CompositeValidator($this->getCommonStringValidators())); $validators[] = new DataFieldValidator('language', new MembershipValidator($this->contentLanguages->getLanguages())); $topValidator = new DataValueValidator(new CompositeValidator($validators)); return array(new TypeValidator('DataValues\\DataValue'), $topValidator); }
/** * @param OutputPage $out * @param string &$html * * @return bool */ public function doOutputPageBeforeHTML(OutputPage $out, &$html) { $placeholders = $out->getProperty('wikibase-view-chunks'); if (!empty($placeholders)) { $injector = new TextInjector($placeholders); $expander = $this->getEntityViewPlaceholderExpander($out); $html = $injector->inject($html, array($expander, 'getHtmlForPlaceholder')); $out->addJsConfigVars('wbUserSpecifiedLanguages', array_values(array_intersect($this->userLanguageLookup->getUserSpecifiedLanguages($out->getUser()), $this->termsLanguages->getLanguages()))); } }
/** * Returns a list of languages desired by the user in addition to the current interface language. * * @see UserLanguageLookup * * @return string[] */ public function getExtraUserLanguages() { if ($this->extraLanguages === null) { if ($this->user->isAnon()) { // no extra languages for anon user $this->extraLanguages = array(); } else { // ignore current interface language $skip = array($this->uiLanguage->getCode()); $langs = array_diff($this->userLanguageLookup->getAllUserLanguages($this->user), $skip); // Make sure we only report actual term languages $this->extraLanguages = array_intersect($langs, $this->termsLanguages->getLanguages()); } } return $this->extraLanguages; }
/** * @see ApiBase::getAllowedParams */ protected function getAllowedParams() { return array('search' => array(self::PARAM_TYPE => 'string', self::PARAM_REQUIRED => true), 'language' => array(self::PARAM_TYPE => $this->termsLanguages->getLanguages()), 'strictlanguage' => array(self::PARAM_TYPE => 'boolean', self::PARAM_DFLT => false), 'type' => array(self::PARAM_TYPE => $this->entityTypes, self::PARAM_DFLT => 'item'), 'limit' => array(self::PARAM_TYPE => 'limit', self::PARAM_DFLT => 7, self::PARAM_MAX => self::LIMIT_SML1, self::PARAM_MAX2 => self::LIMIT_SML2, self::PARAM_MIN => 0, self::PARAM_RANGE_ENFORCE => true)); }
private function newClientEntitySerializer() { return new ClientEntitySerializer($this->dataTypeLookup, array_unique(array_merge($this->termsLanguages->getLanguages(), $this->fallbackChain->getFetchLanguageCodes(), array($this->language->getCode()))), array($this->language->getCode() => $this->fallbackChain)); }