Exemplo n.º 1
0
 /**
  * Show a promobox on the bottom of your tool.
  *
  * @param int $imgSize [optional] Defaults to 28px.
  *  Set to 0 to omit the image from the promobox.
  * @param bool|string|null $helpTranslateDomain [optional] Provide a link to translatewiki.net
  *  where this tool can be translated.
  * - TSINT_HELP_CURRENT (null): Link to translations for the current domain.
  * - TSINT_HELP_ALL (true): Link to translations for all domains.
  * - TSINT_HELP_NONE (false): Disable this link.
  * - string value: Link to translations for the specified domain.
  * @return string The HTML for the promo box.
  */
 public function getPromoBox($imgSize = 28, $helpTranslateDomain = TSINT_HELP_CURRENT)
 {
     // Logo
     if (is_int($imgSize) && $imgSize > 0) {
         $src = '//upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Tool_labs_logo.svg/' . '/' . $imgSize . 'px-Tool_labs_logo.svg.png';
         $src_2x = '//upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Tool_labs_logo.svg/' . '/' . $imgSize * 2 . 'px-Tool_labs_logo.svg.png';
         $img = IntuitionUtil::tag('', 'img', array('src' => $src, 'srcset' => "{$src} 1x, {$src_2x} 2x", 'width' => $imgSize, 'height' => $imgSize, 'alt' => '', 'title' => '', 'class' => 'int-logo'));
     } else {
         $img = '';
     }
     // Promo message
     $promoMsgOpts = array('domain' => 'tsintuition', 'escape' => 'html', 'raw-variables' => true, 'variables' => array('<a href="//translatewiki.net/">translatewiki.net</a>', '<a href="' . $this->dashboardHome . '">Intuition</a>'));
     $poweredHtml = $this->msg('bl-promo', $promoMsgOpts);
     // "Help translation" link
     $translateGroup = null;
     if ($helpTranslateDomain === TSINT_HELP_ALL) {
         $translateGroup = 'tsint-0-all';
         $twLinkText = $this->msg('help-translate-all', 'tsintuition');
     } elseif ($helpTranslateDomain === TSINT_HELP_CURRENT) {
         $domain = $this->getDomain();
         $translateGroup = $this->isLocalDomain($domain) ? "tsint-{$domain}" : "int-{$domain}";
         $twLinkText = $this->msg('help-translate-tool', 'tsintuition');
     } elseif ($helpTranslateDomain !== TSINT_HELP_NONE) {
         // Custom domain
         $domain = $this->normalizeDomain($helpTranslateDomain);
         $translateGroup = $this->isLocalDomain($domain) ? "tsint-{$domain}" : "int-{$domain}";
         $twLinkText = $this->msg('help-translate-tool', 'tsintuition');
     }
     $helpTranslateLink = '';
     if ($translateGroup) {
         // https://translatewiki.net/w/i.php?language=nl&title=Special:Translate&group=tsint-0-all
         $twParams = array('title' => 'Special:Translate', 'language' => $this->getLang(), 'group' => $translateGroup);
         $twParams = http_build_query($twParams);
         $helpTranslateLink = '<small>(' . IntuitionUtil::tag($twLinkText, 'a', array('href' => "https://translatewiki.net/w/i.php?{$twParams}", 'title' => $this->msg('help-translate-tooltip', 'tsintuition'))) . ')</small>';
     }
     // Build output
     return '<div class="int-promobox"><p><a href="' . htmlspecialchars($this->getDashboardReturnToUrl()) . "\">{$img}</a> " . "{$poweredHtml} {$this->dashboardBacklink()} {$helpTranslateLink}</p></div>";
 }
Exemplo n.º 2
0
 private function gender($user, $parameters, $msg)
 {
     switch (count($parameters)) {
         case 0:
             $this->addParseError("{{GENDER:}} with no variants");
             return '';
         case 1:
             return $parameters[0];
         case 2:
             return IntuitionUtil::tag($parameters[0], 'span', array('class' => 'gender-male gender-neutral')) . IntuitionUtil::tag($parameters[1], 'span', array('class' => 'gender-female'));
         default:
             $this->addParseError("{{GENDER:}} given too many variants");
         case 3:
             return IntuitionUtil::tag($parameters[2], 'span', array('class' => 'gender-neutral')) . IntuitionUtil::tag($parameters[0], 'span', array('class' => 'gender-male')) . IntuitionUtil::tag($parameters[1], 'span', array('class' => 'gender-female'));
     }
 }