« 成り行きでphp化 | メイン | やぎ肉あまいかしょっぱいか »
2004年12月15日
これはMT関係の記事であります。IEで見るとソースコード部のスクロールバーが変だったのに対処してみました。直った、のかな?MT修正コード置き場
MT-3.121のソースコード中で自分で修正したもの
(html_dir/)mt.js (2004/12/14)
function formatStr (既存を修正)
修正点
・追加するタグの入力がないときは何もしないで戻るようにした
・パラメータ付きのタグに対応できるようにした(どこからか借用)
function formatStr (e, v) {
if (!canFormat) return;
if (!v) return;
var str = getSelection(e);
if (!str) return;
var v2 = v.split(" ");
setSelection(e, '<' + v + '>' + str + '</' + v2[0] + '>');
return false;
}
function HtmlEncode (追加)
機能
HTML用に特殊文字をエスケープ
function HtmlEncode (e) {
if (!canFormat) return;
var str = getSelection(e);
if (!str) return;
str = str.replace(/\&/g, '&');
str = str.replace(/\</g, '<');
str = str.replace(/\>/g, '>');
//str = str.replace(/\$/g, '&dol;');
str = str.replace(/\"/g, '"');
// Many thanks to CHEEBOW
str = str.replace(/\t/g, ' ');
setSelection(e, str);
return false;
}
(cgi_dir/)lib/MT/Util.pm (2004/12/15)
sub html_text_transform (既存を修正)
修正点
・\r\n→\nの変換は最初に行う(その後の判定文は\r?\n → \nに単純化)。
・<pre>が続かない<blockquote>, <center>, <address> 節には<br />を付ける。
・<textarea>節には<br />を付けない。
sub html_text_transform {
my $str = shift;
$str ||= '';
$str =~ s!\r?\n!\n!g;
my @paras = split /\n\n/, $str;
for my $p (@paras) {
if ($p !~ m@^<(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|cen_ter|form|fieldset|textarea|select|blockquote>\n?<pre>|addre_ss|div|hr)@i) {
$p =~ s!\n!<br />\n!g;
$p = "<p>$p</p>";
}
}
join "\n\n", @paras;
}
(cgi_dir/)php/lib/MTUtil.php (2004/12/15)
function html_text_transform
上記 html_text_transform のphp版、修正点も同一
function html_text_transform($str = '') {
if ($str == '') {
return '';
}
$str = preg_replace('/\r\n/', "\n", $str);
$paras = preg_split('/\n\n/', $str);
foreach ($paras as $k => $p) {
if (!preg_match('/^<\/?(?:h1|h2|h3|h4|h5|h6|table|ol|ul|menu|dir|p|pre|center|form|select|fieldset|blockquote>\n?<pre|textarea|address|div|hr)/', $p)) {
$p = preg_replace('/\n/', "<br />\n", $p);
$p = "<p>$p</p>";
$paras[$k] = $p;
}
}
return implode("\n\n", $paras);
}
(cgi_dir/)tmpl/cms/edit_entry.tmpl (2004/12/10)
エントリ編集画面のテンプレート
修正点
・タグ入力支援の追加(何でもOK, <pre>, <blockqote>
・htmlエスケープ機能の追加(例示はbody入力部分、太字を追加)
<div class="field">
<div class="field-header">
<div class="field-label"><label for="text"><MT_TRANS phrase="Entry Body"></label></div>
<div class="field-buttons">
<script type="text/javascript">
<!--
if (canFormat) {
with (document) {
write('<input name="anytag" id="anytag" value="" maxlength="32" />');
write('<a title="any" href="#" onclick="return formatStr(document.entry_form.text, document.entry_form.anytag.value)">any</a> ');
write('<a title="pre" href="#" onclick="return formatStr(document.entry_form.text, \'pre\')">pre</a> ');
write('<a title="bq" href="#" onclick="return formatStr(document.entry_form.text, \'blockquote\')">bq</a> ');
write('<a title="Encode" href="#" onclick="return HtmlEncode(document.entry_form.text)"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-encode.gif" alt="Encode" width="22" height="16" /></a> ');
write('<a title="<MT_TRANS phrase="Bold">" href="#" onclick="return formatStr(document.entry_form.text, \'strong\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-bold.gif" alt="<MT_TRANS phrase="Bold">" width="22" height="16" /></a>');
write('<a title="<MT_TRANS phrase="Italic">" href="#" onclick="return formatStr(document.entry_form.text, \'em\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-italic.gif" alt="<MT_TRANS phrase="Italic">" width="22" height="16" /></a>');
write('<a title="<MT_TRANS phrase="Underline">" href="#" onclick="return formatStr(document.entry_form.text, \'u\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/html-underline.gif" alt="<MT_TRANS phrase="Underline">" width="22" height="16" /></a>');
面倒だから多言語対応は抜き。追記の部分にも同様に追加。
追記入力部分も同様に追加した。
投稿者 kade : 2004年12月15日 19:55 | MT
トラックバック
このエントリーのトラックバックURL:
http://www.kadesoft.com/cgi-bin/mt3/mt-tb.cgi/23