「利用者:Nijcadmin」の版間の差分

ナビゲーションに移動 検索に移動
66行目: 66行目:
</p>
</p>
</pre>
</pre>
= 2011年12月15日(木)=
=== ページ毎に meta タグに入れるキーワードを設定したい ===
* 前日に作った拡張 AddKeywordsMetaTag に [http://www.mediawiki.org/wiki/Extension:MetaKeywordsTag この機能] をマージ
<pre>
<?php
$wgExtensionCredits['other'][] = array(
  'name' => 'AddKeywordsMetaTag',
  'status' => 'Experimental',
  'author' => 'Yoshihiro OKUMURA',
  'version' => '2.0',
  'url' => 'http://www.neuroinf.jp/',
  'description' => 'Add keywords into meta tag',
);
$wgHooks['OutputPageBeforeHTML'][] = 'wfAddKeywordsMetaTag';
$wgExtensionFunctions[] = 'wfAddKeywordsMetaTagParserHooks';
function wfAddKeywordsMetaTagParserHooks() {
  global $wgParser, $wgMessageCache;
  $wgParser->setHook( 'keywords', 'wfAddKeywordsMetaTagRender' );
  $wgMessageCache->addMessage(
    'metakeywordstag-missing-content',
    'Error: &lt;keywords&gt; tag must contain a &quot;content&quot; attribute.'
  );
}
function wfAddKeywordsMetaTagRender($text, $params = array(), $parser) {
  // Short-circuit with error message if content is not specified.
  if (!isset($params['content'])) {
    return '<div class="errorbox">'.
          wfMsgForContent('metakeywordstag-missing-content').
          '</div>';
  }
  // Return encoded content
  return '<!-- META_KEYWORDS '.base64_encode($params['content']).' -->';
}
function wfAddKeywordsMetaTag(&$out, &$text) {
  global $wgTitle, $wgParser, $wgRequest, $action;
  if ($action !== 'edit' &&
      $action !== 'history' &&
      $action !== 'delete' &&
      $action !== 'watch') {
    // Mediawiki:Keywords
    $title = Title::MakeTitle(NS_MEDIAWIKI, 'Keywords');
    $article = new Article($title);
    $keywords = array_map('trim', explode(',', $article->getRawText()));
    foreach ($keywords as $keyword)
      if (!empty($keyword))
        $out->addKeyword($keyword);
    $namespaces = array(NS_MAIN, NS_USER, NS_PROJECT, NS_MEDIAWIKI);
    foreach ($namespaces as $namespace) {
      // Mediawiki::Keywords-$namespace
      if ($wgTitle->getNamespace() === $namespace) {
        $page = sprintf('Keywords-%u', $namespace);
        $title = Title::MakeTitle(NS_MEDIAWIKI, $page);
        $article = new Article($title);
        $keywords = array_map('trim', explode(',', $article->getRawText()));
        foreach ($keywords as $keyword)
          if (!empty($keyword))
            $out->addKeyword($keyword);
      }
    }
  }
  // part of MetaKeywordsTag.php
  if (preg_match_all('/<!-- META_KEYWORDS ([0-9a-zA-Z\\+\\/]+=*) -->/m', $text, $matches)) {
    $data = $matches[1];
    // Merge keyword data into OutputPage as meta tags
    foreach ($data aS $item) {
      $content = @base64_decode($item);
      $keywords = array_map('trim', explode(',', $content));
      foreach ($keywords as $keyword)
        if (!empty($keyword))
          $out->addKeyword($keyword);
    }
  }
  return true;
}
</pre>
= 2011年12月14日(水)=
= 2011年12月14日(水)=
=== FCKEditor を使うと図のキャプションが消える.===
=== FCKEditor を使うと図のキャプションが消える.===

案内メニュー