/**
  * @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());
         }
     }
 }