buachompoox โพสต์ 2008-2-14 05:14:07

php code สีสันดูง่ายมีสไตล์

add-on ตัวนี้เหมาะกับเวปที่โชว์โค๊ดอยู่บ่อยๆ ทำให้ดูโค้ดได้ง่ายมีสีสันสวยงามน่าอ่าน

LIVEDEMO : http://buachompoox.powermacc.com/thread-160-1-1.html






วิธีการก้อไม่ยากจนเกินไปนัก




ไปที่include/discuzcode.func.php หาโค้ด
function codedisp($code) {
      global $discuzcodes;
      $discuzcodes['pcodecount']++;
      $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
      $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = tpl_codedisp($discuzcodes, $code);
      $discuzcodes['codecount']++;
      return "[\tDISCUZ_CODE_$discuzcodes\t]";
}เพิ่มโค้ดนี้ในบรรทัดต่อไป
function phpcodedisp($code) {
      global $discuzcodes;
      $discuzcodes['pcodecount']++;
      $code = phphighlite(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
      $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"blockcode\"><span class=\"headactions\" onclick=\"copycode($('code{$discuzcodes['codecount']}'));\">Copy the contents to the clipboard</span><h5>HPcode:</h5><code id=\"code{$discuzcodes['codecount']}\">{$code}</code></div>";
      $discuzcodes['codecount']++;
      return "[\tDISCUZ_CODE_$discuzcodes\t]";
}

function phphighlite($code) {
      if(!strpos($code,"<?\n") && !strpos($code,'<? ') && substr($code,0,2) != '<?') {
                $code = '<'.'?'.trim($code).'?'.'>';
                $addedtags = 1;
      }
      ob_start();
      $oldlevel = error_reporting(0);
      highlight_string($code);
      error_reporting($oldlevel);
      $buffer = ob_get_contents();
      ob_end_clean();
      if ($addedtags) {
                $openingpos = strpos($buffer, '?');
                $closingpos = strrpos($buffer, '?');
                $buffer = substr($buffer, $openingpos+1, $closingpos-($openingpos+1)).substr($buffer, $closingpos+5);
      }
      $buffer = str_replace('"', "\"", $buffer);
      $buffer = str_replace('
', '', $buffer);
      return $buffer;
}ต่อไปหาโค้ด
if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
   $message = preg_replace("/\s*\(.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
}เพิ่มโค้ดด้านล่างในบรรทัดต่อไป

if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
      $message = preg_replace("/\s*\(.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message);
}ต่อไปไปที่ include/javascript/editor.js หาโค้ด
insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide']) ? true : false);นำโค้ดด้านล่างไปทับ
insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide', 'php']) ? true : false);ต่อไปหาโค้ด
if(in_array(cmd, ['quote', 'code', 'free', 'hide'])) {นำโค้ดด้านล่างไปทับ
if(in_array(cmd, ['quote', 'code', 'free', 'hide', 'php'])) {จากนั้นไปที่ templates/default/post_editer.htm หาโค้ด<td><a id="{$editorid}_cmd_code"><img src="images/common/bb_code.gif" title="{lang post_discuzcode_code}" alt="Code" /></a></td>นำโค้ดด้านล่างเพิ่มในบรรทัดต่อไป
<td><a id="{$editorid}_cmd_php"><img src="images/common/bb_php.gif" title="HPcode" alt="php" /></a></td>จากนั้น นำรูป bb_code ที่แนบไว้ไปใส่ไว้ใน images/common
อัพเดทแคช(ไฟล์ซ่อน) แล้วลองใช้งานดูครับ



[ แก้ไขล่าสุด buachompoox เมื่อ 2008-2-23 02:03 ]

godarmy โพสต์ 2008-2-14 06:42:50

ชมหน่อยนะครับพี่ มีมาให้เล่นทุกวันเลยขอบคุณมากมายครับ :victory:

den6115 โพสต์ 2008-2-14 07:21:04

ขอบคุณหลายๆ :victory::hug::@

deksao โพสต์ 2008-2-14 10:38:35

ท่านปูมีของเล่นใหม่อีกแร้ว ขอลองอิอิ

mastergtx โพสต์ 2008-2-14 11:26:30

เยี่ยมครับๆ :) ขอบคุณมาก

redhot โพสต์ 2008-2-14 11:27:21

น่าสนจัยดีนะ

ขอบคุณครับ ~~

9vut โพสต์ 2008-2-14 12:18:54

ขอบคุณมากเลยครับ
ออกมาเยอะจิงๆตามเก็บกันไม่ทันเลย

ting โพสต์ 2008-2-16 01:26:11

ขอบคุณครับคุณปูเดี๋ยวต้องลองครับผม:) :)

DarkEagle โพสต์ 2008-2-17 14:42:37

ขอบคุณมากเลยครับ
ออกมาเยอะจิงๆตามเก็บกันไม่ทันเลย

modzard โพสต์ 2008-2-21 15:29:36

ขอดูเป็นความรู้หน่อยคับผม ขอบคุณครับ
หน้า: [1] 2
ดูในรูปแบบกติ: php code สีสันดูง่ายมีสไตล์