XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

08年8月21日(Thu) 5時50分
[ Page comments(0) ] [ Track Back(0) ]
Counter: 3007, today: 4, yesterday: 3

整形済み複数行に[COPY]ボタン

<<<

>>>

で括った行は、整形済み行となりますが、その場合にWin+IE限定ですが、内容をコピーできる[COPY]ボタンを表示するようにしました。
XOOPSコードの[code][/code]に施した改造とほぼ同様の表示なります。

変更ファイル
convert_html.php
skin/default.ja.css
skin/default.js

サンプル

こんな感じです。
入れ子はこのように処理されます。
長文を書いてみます。 *** u:\class\module.textsanitizer.php Fri Aug 15 11:53:02 2003 --- t:class\module.textsanitizer.php Thu Feb 26 10:46:44 2004 *************** *** 129,137 **** **/ function &makeClickable(&$text) { ! $patterns = array("/(^|[^]_a-z0-9-=\"'\/])([a-z]+?):\/\/([^, \r\n\"\(\)'<>]+)/i", "/(^|[^]_a-z0-9-=\"'\/])www\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i", "/(^|[^]_a-z0-9-=\"'\/])ftp\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i", "/(^|[^]_a-z0-9-=\"'\/:\.])([a-z0-9\-_\.]+?)@([^, \r\n\"\(\)'<>\[\]]+)/i"); ! $replacements = array("\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", "\\1<a href=\"http://www.\\2.\\3\" target=\"_blank\">www.\\2.\\3</a>", "\\1<a href=\"ftp://ftp.\\2.\\3\" target=\"_blank\">ftp.\\2.\\3</a>", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>"); ! return preg_replace($patterns, $replacements, $text); } /** --- 129,160 ---- **/ function &makeClickable(&$text) { ! $patterns = array( ! "/(^|[^\]_a-z0-9-=\"'\/])(\[\[((?:(?!\]\]).)+)(&gt;|>|:))((?:https?|ftp|news):\/\/[!~*'();\/?:\@&=+\$,%#\w.-]+)(\]\])/i", ! "/(^|[^]_a-z0-9-=\"'\/])([a-z]+?):\/\/([^, \r\n\"\(\)'<>]+)/i", ! "/(^|[^]_a-z0-9-=\"'\/])www\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i", ! "/(^|[^]_a-z0-9-=\"'\/])ftp\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i", ! "/(^|[^]_a-z0-9-=\"'\/:\.])([a-z0-9\-_\.]+?)@([^, \r\n\"\(\)'<>\[\]]+)/i" ! ); ! $replacements = array( ! "\\1<a href='\\5' target='_blank'>\\3</a>", ! "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", ! "\\1<a href=\"http://www.\\2.\\3\" target=\"_blank\">www.\\2.\\3</a>", ! "\\1<a href=\"ftp://ftp.\\2.\\3\" target=\"_blank\">ftp.\\2.\\3</a>", ! "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>" ! ); ! $texts = preg_split("/\[code].*\[\/code\]/sU",$text); ! preg_match_all("/\[code].*\[\/code\]/sU",$text,$match,PREG_PATTERN_ORDER); ! $match[0][] = ""; ! $ret = ""; ! $i=0; ! foreach($texts as $block) ! { ! $ret .= preg_replace($patterns, $replacements, $block).$match[0][$i]; ! $i++; ! } ! return $ret; ! //return preg_replace($patterns, $replacements, $text); } /** *************** *** 147,153 **** $patterns = array(); $replacements = array(); $patterns[] = "/\[code](.*)\[\/code\]/esU"; ! $replacements[] = "'<div class=\"xoopsCode\"><code><pre>'.wordwrap(MyTextSanitizer::htmlSpecialChars('\\1'), 100).'</pre></code></div>'"; // RMV: added new markup for intrasite url (allows easier site moves) // TODO: automatically convert other URLs to this format if XOOPS_URL matches?? $patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1](.*)\[\/siteurl\]/sU"; --- 170,177 ---- $patterns = array(); $replacements = array(); $patterns[] = "/\[code](.*)\[\/code\]/esU"; ! //$replacements[] = "'<div class=\"xoopsCode\"><code><pre>'.wordwrap(MyTextSanitizer::htmlSpecialChars('\\1'), 100).'</pre></code></div>'"; ! $replacements[] = "'<div class=\"xoopsCode\"><code><pre>'.trim(MyTextSanitizer::htmlSpecialChars('\\1',true),'\r\n').'</pre></code></div>'"; // RMV: added new markup for intrasite url (allows easier site moves) // TODO: automatically convert other URLs to this format if XOOPS_URL matches?? $patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1](.*)\[\/siteurl\]/sU"; *************** *** 158,170 **** $replacements[] = '<a href="\\2" target="_blank">\\3</a>'; $patterns[] = "/\[url=(['\"]?)([^\"'<>]*)\\1](.*)\[\/url\]/sU"; $replacements[] = '<a href="http://\\2" target="_blank">\\3</a>'; ! $patterns[] = "/\[color=(['\"]?)([a-zA-Z0-9]*)\\1](.*)\[\/color\]/sU"; $replacements[] = '<span style="color: #\\2;">\\3</span>'; ! $patterns[] = "/\[size=(['\"]?)([a-z0-9-]*)\\1](.*)\[\/size\]/sU"; $replacements[] = '<span style="font-size: \\2;">\\3</span>'; ! $patterns[] = "/\[font=(['\"]?)([^;<>\*\(\)\"']*)\\1](.*)\[\/font\]/sU"; $replacements[] = '<span style="font-family: \\2;">\\3</span>'; ! $patterns[] = "/\[email]([^;<>\*\(\)\"']*)\[\/email\]/sU"; $replacements[] = '<a href="mailto:\\1">\\1</a>'; $patterns[] = "/\[b](.*)\[\/b\]/sU"; $replacements[] = '<b>\\1</b>'; --- 182,194 ---- $replacements[] = '<a href="\\2" target="_blank">\\3</a>'; $patterns[] = "/\[url=(['\"]?)([^\"'<>]*)\\1](.*)\[\/url\]/sU"; $replacements[] = '<a href="http://\\2" target="_blank">\\3</a>'; ! $patterns[] = "/\[c(?:olor)?=(['\"]?)([a-zA-Z0-9]*)\\1](.*)\[\/c(?:olor)?\]/sU"; $replacements[] = '<span style="color: #\\2;">\\3</span>'; ! $patterns[] = "/\[s(?:ize)?=(['\"]?)([a-z0-9-]*)\\1](.*)\[\/s(?:ize)?\]/sU"; $replacements[] = '<span style="font-size: \\2;">\\3</span>'; ! $patterns[] = "/\[f(?:ont)?=(['\"]?)([^;<>\*\(\)\"']*)\\1](.*)\[\/f(?:ont)?\]/sU"; $replacements[] = '<span style="font-family: \\2;">\\3</span>'; ! $patterns[] = "/\[e(?mail)?]([^;<>\*\(\)\"']*)\[\/e(?:mail)?\]/sU"; $replacements[] = '<a href="mailto:\\1">\\1</a>'; $patterns[] = "/\[b](.*)\[\/b\]/sU"; $replacements[] = '<b>\\1</b>'; *************** *** 212,218 **** */ function &nl2Br($text) { ! return preg_replace("/(\015\012)|(\015)|(\012)/","<br />",$text); } /** --- 236,272 ---- */ function &nl2Br($text) { ! static $count = 0; ! $match = array(); ! $texts = preg_split("/<div class=\"xoopsCode\"><code><pre>.*<\/pre><\/code><\/div>/sU",$text); ! if (preg_match_all("/<div class=\"xoopsCode\"><code><pre>.*<\/pre><\/code><\/div>/sU",$text,$match,PREG_PATTERN_ORDER)) ! $count ++; ! ! $match[0][] = ""; ! $ret = ""; ! $i=0; ! foreach($texts as $block) ! { ! $match[0][$i] = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$match[0][$i]); ! $c_line = count(explode("\n",$match[0][$i])) * 14 + 32; //Set 'line-height:14px;' on css. ! if (!empty($match[0][$i])) ! { ! if ($c_line < 420) ! $match[0][$i] = str_replace("<div class=\"xoopsCode\">","<div class=\"xoopsCode\" style=\"height:".$c_line."px;\">",$match[0][$i]); ! else ! $match[0][$i] = str_replace("<div class=\"xoopsCode\">","<div class=\"xoopsCode\" style=\"height:420px;\">",$match[0][$i]); ! ! $j_script = "<script type=\"text/javascript\"><!--\nh_xoops_make_copy_button('code_area".$count."_".$i."');\n--></script>"; ! $bef = array("<pre>","</div>"); ! $aft = array("<pre id=\"code_area".$count."_".$i."\">", "</div>".$j_script); ! $match[0][$i] = str_replace($bef,$aft,$match[0][$i]); ! } ! else ! $match[0][$i] = ""; ! $ret .= preg_replace("/(\015\012)|(\015)|(\012)/","<br />\n",$block).$match[0][$i]; ! $i++; ! } ! return $ret; } /** *************** *** 250,257 **** * * @return string */ ! function &htmlSpecialChars($text) { //return preg_replace("/&amp;/i", '&', htmlspecialchars($text, ENT_QUOTES)); return preg_replace(array("/&amp;/i", "/&nbsp;/i"), array('&', '&amp;nbsp;'), htmlspecialchars($text, ENT_QUOTES)); } --- 304,312 ---- * * @return string */ ! function &htmlSpecialChars($text,$strip=false) { + if ($strip) $text = stripslashes($text); //return preg_replace("/&amp;/i", '&', htmlspecialchars($text, ENT_QUOTES)); return preg_replace(array("/&amp;/i", "/&nbsp;/i"), array('&', '&amp;nbsp;'), htmlspecialchars($text, ENT_QUOTES)); } *************** *** 262,269 **** * @param string $text * @return string **/ ! function &undoHtmlSpecialChars(&$text) { return preg_replace(array("/&gt;/i", "/&lt;/i", "/&quot;/i", "/&#039;/i"), array(">", "<", "\"", "'"), $text); } --- 317,325 ---- * @param string $text * @return string **/ ! function &undoHtmlSpecialChars(&$text,$strip=false) { + if ($strip) $text = stripslashes($text); return preg_replace(array("/&gt;/i", "/&lt;/i", "/&quot;/i", "/&#039;/i"), array(">", "<", "\"", "'"), $text); }

コメント


Name:
付箋機能(wema) メニュー 
付箋の編集
文字色: 背景色:
お名前:  線接続id:


Reload   Diff Source Attach Attach List   Wiki Top Page List Search Resent Chenges Backup   Help   RSS feed
Page name:PukiWiki作業日記/2004-02-26 [ Sended pings(0) ]
Author:nao-pon - 2004/02/26 22:40:42 JST(1637d)
Last edit:nao-pon - 2004/02/26 22:40:42 JST(1637d)
Editers:nao-pon
Back Link:コメント(85d) PukiWikiMod(91d) PukiWiki作業日記(418d) XOOPS(803d)

ページコメント
 
The comments are owned by the poster. We aren't responsible for their content.

Track Back [ Track Back(0) ]
Track Back URL: http://xoops.hypweb.net/wiki/tb/662

このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?

アクティブメニュー
最新のページ
ブックマーク
Please log in to use it.
[Login]
新着トラックバック
2008-7-18 2007-12-26 2007-11-23 2007-11-21 2007-10-21 2007-9-26 2007-8-16 2007-8-15 2007-8-7 2007-7-28
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 52 人がオンライン中 :-)
(Wiki [自由帳] : 13 人)

登録ユーザ: 0 & ゲスト: 52

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 1394


現在ページのQRコード 
現在ページのQRコード
[携帯対応]
参照元情報
No trackback