PageRenderTime 56ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/plugin/insert.inc.php

https://github.com/miya5n/pukiwiki
PHP | 100 lines | 77 code | 20 blank | 3 comment | 14 complexity | 2178bac4a9cba240231de7ac6176a571 MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. // $Id: insert.inc.php,v 1.16 2011/01/25 15:01:01 henoheno Exp $
  3. //
  4. // Text inserting box plugin
  5. define('INSERT_COLS', 70); // Columns of textarea
  6. define('INSERT_ROWS', 5); // Rows of textarea
  7. define('INSERT_INS', 1); // Order of insertion (1:before the textarea, 0:after)
  8. function plugin_insert_action()
  9. {
  10. global $script, $vars, $cols, $rows;
  11. global $_title_collided, $_msg_collided, $_title_updated;
  12. if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');
  13. if (! isset($vars['msg']) || $vars['msg'] == '') return;
  14. $vars['msg'] = preg_replace('/' . "\r" . '/', '', $vars['msg']);
  15. $insert = ($vars['msg'] != '') ? "\n" . $vars['msg'] . "\n" : '';
  16. $postdata = '';
  17. $postdata_old = get_source($vars['refer']);
  18. $insert_no = 0;
  19. foreach($postdata_old as $line) {
  20. if (! INSERT_INS) $postdata .= $line;
  21. if (preg_match('/^#insert$/i', $line)) {
  22. if ($insert_no == $vars['insert_no'])
  23. $postdata .= $insert;
  24. $insert_no++;
  25. }
  26. if (INSERT_INS) $postdata .= $line;
  27. }
  28. $postdata_input = $insert . "\n";
  29. $body = '';
  30. if (md5(get_source($vars['refer'], TRUE, TRUE)) !== $vars['digest']) {
  31. $title = $_title_collided;
  32. $body = $_msg_collided . "\n";
  33. $s_refer = htmlsc($vars['refer']);
  34. $s_digest = htmlsc($vars['digest']);
  35. $s_postdata_input = htmlsc($postdata_input);
  36. $body .= <<<EOD
  37. <form action="$script?cmd=preview" method="post">
  38. <div>
  39. <input type="hidden" name="refer" value="$s_refer" />
  40. <input type="hidden" name="digest" value="$s_digest" />
  41. <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
  42. </div>
  43. </form>
  44. EOD;
  45. } else {
  46. page_write($vars['refer'], $postdata);
  47. $title = $_title_updated;
  48. }
  49. $retvars['msg'] = $title;
  50. $retvars['body'] = $body;
  51. $vars['page'] = $vars['refer'];
  52. return $retvars;
  53. }
  54. function plugin_insert_convert()
  55. {
  56. global $script, $vars, $digest;
  57. global $_btn_insert;
  58. static $numbers = array();
  59. if (PKWK_READONLY) return ''; // Show nothing
  60. if (! isset($numbers[$vars['page']])) $numbers[$vars['page']] = 0;
  61. $insert_no = $numbers[$vars['page']]++;
  62. $s_page = htmlsc($vars['page']);
  63. $s_digest = htmlsc($digest);
  64. $s_cols = INSERT_COLS;
  65. $s_rows = INSERT_ROWS;
  66. $string = <<<EOD
  67. <form action="$script" method="post">
  68. <div>
  69. <input type="hidden" name="insert_no" value="$insert_no" />
  70. <input type="hidden" name="refer" value="$s_page" />
  71. <input type="hidden" name="plugin" value="insert" />
  72. <input type="hidden" name="digest" value="$s_digest" />
  73. <textarea name="msg" rows="$s_rows" cols="$s_cols"></textarea><br />
  74. <input type="submit" name="insert" value="$_btn_insert" />
  75. </div>
  76. </form>
  77. EOD;
  78. return $string;
  79. }
  80. ?>