Code.class.php (1352B)
1 <?php 2 // OpenRat Content Management System 3 // Copyright (C) 2002-2012 Jan Dankert, cms@jandankert.de 4 // 5 // This program is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU General Public License 7 // as published by the Free Software Foundation; either version 2 8 // of the License, or (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 namespace util; 20 use util\FileUtils; 21 use logger\Logger; 22 use util\Macro; 23 24 /** 25 */ 26 class Code extends Macro 27 { 28 public $code; 29 30 function execute() 31 { 32 if (substr($this->code, 0, 2) != '<?') 33 $this->code = "<?php\n" . $this->code . "\n?>"; 34 35 Logger::trace('code: Executing PHP Code: ' . "\n" . $this->code); 36 $tmp = FileUtils::getTempDir() . '/openratMacro'; 37 $tmp .= '.code.php.tmp'; 38 39 $f = fopen($tmp, 'w'); 40 fwrite($f, $this->code); 41 fclose($f); 42 43 require($tmp); // Ausfuehren des temporaeren PHP-Codes 44 45 unlink($tmp); 46 } 47 }