summaryrefslogtreecommitdiffstats
path: root/handlers/phpexec.inc.php
blob: 3754fd40fe05b30dda15d9074ec0ee554fd177dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?PHP
  include('code/message.inc.php');
  include('code/links.inc.php');
  
  class phpexec_handler {
    function Get($data) {
      if($data['title'])
        $title = strtr($data['title'], array('<' => '&lt;', '>' => '&gt;', '&' => '&amp;', '"' => '&quot;'));
      else
        $title = strtr($data['_page'], array(':' => ' - '));
      
      ob_start();
      
      eval('?>' . $data['code']);
      
      $content = ob_get_contents();
      ob_end_clean();
      
      return array('title' => $title, 'content' => $content);
    }
    
    function Edit($data) {
      $title = 'Edit \'' . $data['_page'] . '\'';
      
      $content = '<form method="post" action="' . $GLOBALS['links']->GetNeonLink('Pages:Do') . '">';
      $content .= '<input type="hidden" name="do" value="edit" />';
      $content .= '<input type="hidden" name="id" value="' . $_POST['id'] . '" />';
      $content .= '<textarea name="code" class="pageedit_phpexec" rows="25" cols="70">';
      $content .= strtr($data['code'], array('<' => '&lt;', '>' => '&gt;', '&' => '&amp;', '"' => '&quot;'));
      $content .= '</textarea><br />';
      $content .= '<input type="submit" value="Änderungen übernehmen" />';
      $content .= '</form>';
      
      return array('title' => $title, 'content' => $content);
    }
    
    function ErrorMessage($type, $data = array()) {
      return array('content' => '<span class="error">' . Message($type, $data) . '</span>', 'title' => Message('error'));
    }
  }
  
  $handlers['phpexec'] = new phpexec_handler;
?>