Просмотр файла system/inc/classes/bbcode.class.php

Размер файла: 3.55Kb
  1. <?php
  2. abstract class bbcode {
  3. /*
  4. * Класс для обработки текста
  5. * @authot: Shamsik
  6. * @var bbcode
  7. */
  8. public function process($text) {
  9. $process = array(' '=>'_');
  10. if( $type == 'link' ) {
  11. $process[' '] = '_';
  12. }
  13. $process = strtr( $text, $process);
  14. return $process;
  15. }
  16. /*
  17. * Обработка ссылки
  18. */
  19. public function link($link) {
  20. return'<a target="_blank" href="http://'.$_SERVER['HTTP_HOST'].'/go.php?url='.@base64_encode(''.$link[1].'').'">'.$link[2].'</a>';
  21. }
  22. /*
  23. * Обработка Спойлера
  24. */
  25. public function link_spoiler($spoiler) {
  26. return '<div class="spoiler"><b><a href="#" onclick="show_hide(\'#'.bbcode::process($spoiler[1]).'\');">'.$spoiler[1].'</a></b>
  27. <div id="'.bbcode::process($spoiler[1]).'" style="display: none; overflow: hidden; vertical-align: top;">'.$spoiler[2].'</div></div>';
  28. }
  29. /*
  30. * Подвеска PHP кода
  31. */
  32. public function printCode($code) {
  33. $code = strtr($code,array('&#124;'=>'|','&lt;'=>'<','&gt;'=>'>','&amp;'=>'&','&#36;'=>'$','&quot;'=>'"','&#39;'=>"'", '&#92;'=>'`',
  34. '&#37;'=>'%','&#94;'=>'^','&#58;'=>':','<br />'=>"\r\n"));
  35. if(!strpos($code,'<?') && substr($code,0,2)!='<?') {
  36. $code="<?php\r\n".trim($code).'?>';
  37. }
  38. $code = highlight_string($code, true);
  39. $code = strtr($code,array("\r\n"=>'<br />','|'=>'&#124;', '$'=>'&#36;', "'"=>'&#39;', '`'=>'&#92;', '%'=>'&#37;','^'=>'&#94;', ':'=>'&#58;'));
  40. $code = $code;
  41. return '<div class="SHCMS_code">'.$code.'</div>';
  42. }
  43. /*
  44. * Скрывает текст от неавторизованных
  45. */
  46. public function hidden_text($hide) {
  47. global $user_id;
  48. if(isset($user_id)){
  49. $hide = '<div class="hide"><b>Скрытый текст </b><br/> '.$hide.'</div>';
  50. }else {
  51. $hide = '<div class="hide"><b>Скрытый текст</b> <br/>Для отображения текста необходимо пройти авторизацию на сайте.</div>';
  52. }
  53. return $hide;
  54. }
  55. /*
  56. * Обработка тэгов
  57. */
  58. public function bb_codes($message) {
  59. $message = preg_replace('#\[small\](.*?)\[/small\]#si', '<div style="font-size: smaller;">\1</div>', $message);
  60. $message = preg_replace(array ('#\[php\](.*?)\[\/php\]#se'), array ("''.bbcode::printCode('$1').''"), str_replace("]\n", "]", $message));
  61. $message= preg_replace_callback('/\[url=(.+)\](.+)\[\/url\]/isU', 'bbcode::link', $message);
  62. $message= preg_replace_callback('/\[spoiler=(.+)\](.+)\[\/spoiler\]/isU', 'bbcode::link_spoiler', $message);
  63. $message = preg_replace('#\[img\](.*?)\[/img\]#si', '<img src="\1"/>', $message);
  64. $message = preg_replace('#\[left\](.*?)\[/left\]#si', '<div align="left">\1</div>', $message);
  65. $message = preg_replace('#\[right\](.*?)\[/right\]#si', '<div align="right">\1</div>', $message);
  66. $message = preg_replace('#\[center\](.*?)\[/center\]#si', '<div align="center">\1</div>', $message);
  67. $message = preg_replace('#\[post\](.*?)\[/post\]#si', '<div class="posts">\1</div>', $message);
  68. $message = preg_replace('#\[fontred\](.*?)\[/fontred\]#si', '<font color="red">\1</font>', $message);
  69. $message = preg_replace('#\[hide\](.*?)\[/hide\]#ie', 'bbcode::hidden_text("\1")', $message);
  70. $message = nl2br($message);
  71. return $message;
  72. }
  73.  
  74. }
  75. ?>