/** * @see SpecialModifyEntity::getFormElements() * * @param Entity $entity * * @return string */ protected function getFormElements(Entity $entity = null) { if ($this->page === null) { $this->page = $this->site === null ? '' : $this->getSiteLink($entity, $this->site); } if (empty($this->badges)) { $this->badges = $this->site === null ? array() : $this->getBadges($entity, $this->site); } $pageinput = Html::element('br') . Html::label($this->msg('wikibase-setsitelink-label')->text(), 'wb-setsitelink-page', array('class' => 'wb-label')) . Html::input('page', $this->getRequest()->getVal('page') ?: $this->page, 'text', array('class' => 'wb-input', 'id' => 'wb-setsitelink-page')); if (!empty($this->badgeItems)) { $pageinput .= Html::element('br') . Html::label($this->msg('wikibase-setsitelink-badges')->text(), 'wb-setsitelink-badges', array('class' => 'wb-label')) . $this->getHtmlForBadges(); } $site = $this->siteStore->getSite($this->site); if ($entity !== null && $this->site !== null && $site !== null) { // show the detailed form which also allows users to remove site links return Html::rawElement('p', array(), $this->msg('wikibase-setsitelink-introfull', $this->getEntityTitle($entity->getId())->getPrefixedText(), '[' . $site->getPageUrl('') . ' ' . $this->site . ']')->parse()) . Html::input('site', $this->site, 'hidden') . Html::input('id', $this->entityRevision->getEntity()->getId()->getSerialization(), 'hidden') . Html::input('remove', 'remove', 'hidden') . $pageinput; } else { $intro = $this->msg('wikibase-setsitelink-intro')->text(); if (!empty($this->badgeItems)) { $intro .= $this->msg('word-separator')->text() . $this->msg('wikibase-setsitelink-intro-badges')->text(); } return Html::element('p', array(), $intro) . parent::getFormElements($entity) . Html::element('br') . Html::label($this->msg('wikibase-setsitelink-site')->text(), 'wb-setsitelink-site', array('class' => 'wb-label')) . Html::input('site', $this->getRequest()->getVal('site') ?: $this->site, 'text', array('class' => 'wb-input', 'id' => 'wb-setsitelink-site')) . $pageinput; } }
/** * @see SpecialModifyEntity::getFormElements() * * @param EntityDocument|null $entity * * @return string HTML */ protected function getFormElements(EntityDocument $entity = null) { if ($this->languageCode === null) { $this->languageCode = $this->getLanguage()->getCode(); } $this->setValueIfNull($entity); $valueinput = Html::input('value', $this->getRequest()->getVal('value') ? $this->getRequest()->getVal('value') : $this->value, 'text', array('class' => 'wb-input', 'id' => 'wb-modifyterm-value')); $languageName = Language::fetchLanguageName($this->languageCode, $this->getLanguage()->getCode()); if ($entity !== null && $this->languageCode !== null && $languageName !== '') { return Html::rawElement('p', array(), $this->msg('wikibase-' . strtolower($this->getName()) . '-introfull', $this->getEntityTitle($entity->getId())->getPrefixedText(), $languageName)->parse()) . Html::input('language', $this->languageCode, 'hidden') . Html::input('id', $entity->getId()->getSerialization(), 'hidden') . Html::input('remove', 'remove', 'hidden') . $valueinput; } else { return Html::rawElement('p', array(), $this->msg('wikibase-' . strtolower($this->getName()) . '-intro')->parse()) . parent::getFormElements($entity) . Html::element('br') . Html::label($this->msg('wikibase-modifyterm-language')->text(), 'wb-modifyterm-language', array('class' => 'wb-label')) . Html::input('language', $this->languageCode, 'text', array('class' => 'wb-input', 'id' => 'wb-modifyterm-language')) . Html::element('br') . Html::label($this->msg('wikibase-' . strtolower($this->getName()) . '-label')->text(), 'wb-modifyterm-value', array('class' => 'wb-label')) . $valueinput . Html::element('br'); } }
/** * @see SpecialModifyEntity::prepareArguments * * @param string $subPage */ protected function prepareArguments($subPage) { $this->extractInput($subPage); // Parse the 'id' parameter and throw an exception if the entity cannot be loaded parent::prepareArguments($subPage); if ($this->languageCode === '') { $this->languageCode = $this->getLanguage()->getCode(); } elseif (!$this->isValidLanguageCode($this->languageCode)) { $msg = $this->msg('wikibase-wikibaserepopage-invalid-langcode', $this->languageCode); $this->showErrorHTML($msg->parse()); $this->languageCode = null; } if ($this->languageCode !== null && $this->entityRevision !== null) { $entity = $this->entityRevision->getEntity(); if ($entity instanceof FingerprintProvider) { $this->setFingerprintFields($entity->getFingerprint()); } } }