不定期日記

J2千葉観戦記, ライブの感想を中心とした備忘録

2010-12-30 (Thu) [長年日記]

_ phpBBの日本語化

Japanese search mod のインストールについて

手でインストールする場合、 search.php と viewtopic.php を手修正する必要があるため、パッチを作成した。

diff -ur phpBB3.orig/search.php phpBB3/search.php
--- phpBB3.orig/search.php	2010-12-30 10:05:29.000000000 +0900
+++ phpBB3/search.php	2010-12-30 10:04:03.000000000 +0900
@@ -543,7 +543,7 @@
 	}

 	// define some vars for urls
-	$hilit = implode('|', explode(' ', preg_replace('#\s+#u', ' ', str_replace(array('+', '-', '|', '(', ')', '"'), ' ', $keywords))));
+	$hilit = jsm_highlight($search->search_query); //Japanese search mod
 	// Do not allow *only* wildcard being used for hilight
 	$hilit = (strspn($hilit, '*') === strlen($hilit)) ? '' : $hilit;

@@ -869,7 +869,7 @@
 				$posts_unapproved = ($row['topic_approved'] && $row['topic_replies'] < $row['topic_replies_real'] && $auth->acl_get('m_approve', $forum_id)) ? true : false;
 				$u_mcp_queue = ($topic_unapproved || $posts_unapproved) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&amp;mode=' . (($topic_unapproved) ? 'approve_details' : 'unapproved_posts') . "&amp;t=$result_topic_id", true, $user->session_id) : '';

-				$row['topic_title'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['topic_title']);
+				$row['topic_title'] = $ja_search->highlight($hilit, $row['topic_title'], 'class="posthilit"'); //Japanese search mod

 				$tpl_ary = array(
 					'TOPIC_AUTHOR'				=> get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
@@ -960,8 +960,8 @@
 				if ($hilit)
 				{
 					// post highlighting
-					$row['post_text'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['post_text']);
-					$row['post_subject'] = preg_replace('#(?!<.*)(?<!\w)(' . $hilit . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">$1</span>', $row['post_subject']);
+					$row['post_text'] = $ja_search->highlight($hilit, $row['post_text'], 'class="posthilit"'); //Japanese search mod
+					$row['post_subject'] = $ja_search->highlight($hilit, $row['post_subject'], 'class="posthilit"'); //Japanese search mod
 				}

 				$tpl_ary = array(
diff -ur phpBB3.orig/viewtopic.php phpBB3/viewtopic.php
--- phpBB3.orig/viewtopic.php	2010-12-30 10:05:35.000000000 +0900
+++ phpBB3/viewtopic.php	2010-12-30 10:04:36.000000000 +0900
@@ -1373,8 +1373,8 @@
 	// Highlight active words (primarily for search)
 	if ($highlight_match)
 	{
-		$message = preg_replace('#(?!<.*)(?<!\w)(' . $highlight_match . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">\1</span>', $message);
-		$row['post_subject'] = preg_replace('#(?!<.*)(?<!\w)(' . $highlight_match . ')(?!\w|[^<>]*(?:</s(?:cript|tyle))?>)#is', '<span class="posthilit">\1</span>', $row['post_subject']);
+		$message = $ja_search->highlight($highlight_match, $message, 'class="posthilit"'); //Japanese search mod
+		$row['post_subject'] = $ja_search->highlight($highlight_match, $row['post_subject'], 'class="posthilit"'); //Japanese search mod
 	}

 	// Editing information

_ [FreeBSD] MediaWiki で数式を使う

MediaWikiで数式(Latex)を使う - tuedaの日記 を参考にしました。 結論から書くと、 /usr/ports/www/mediawiki の依存先を latex から teTeX-base に変更してついでに dvips も入れてしまうのが正解。

--- www/mediawiki/Makefile.orig 2010-12-30 11:50:51.000000000 +0900
+++ www/mediawiki/Makefile      2010-12-30 11:57:48.000000000 +0900
@@ -42,7 +42,8 @@
 .endif

 .if defined(WITH_TEXVC)
-RUN_DEPENDS+=	latex:${PORTSDIR}/print/latex
+RUN_DEPENDS+=	dvipng:${PORTSDIR}/print/teTeX-base \
+		dvips:${PORTSDIR}/print/dvipsk-tetex
 BUILD_DEPENDS+=	ocaml:${PORTSDIR}/lang/ocaml

 USE_GMAKE=yes

要は、上記リンク先に書いてある通り、

  • dvips
  • latex
  • convert
  • dvipng

の4つのコマンドが必要となりますが、 dvipng が入っているパッケージは teTeX-base のみであり、また dvips も入ってくれないのです。 なお、 teTeX-base にも latex が含まれているため、 print/latex とはバッティングします。


2001|01|07|08|09|10|11|12|
2002|01|02|03|
2003|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|08|09|10|11|12|
2017|03|05|06|09|11|12|
2018|05|08|10|11|
2020|07|