get_config_vars('CONSOLE_SAVE_NO_NAME')); $fragment_code = (isset($_POST['fragment_code']) ? base64_encode($_POST['fragment_code']) : ''); $fragmentdata = [ 'fragment_id' => $key, 'fragment_time' => time(), 'fragment_ip' => $_SERVER['REMOTE_ADDR'], 'fragment_user_id' => (isset($_SESSION['user_id']) ? $_SESSION['user_id'] : '0'), 'fragment_name' => $fragment_name, 'fragment_code' => $fragment_code ]; return $fragmentdata; } /* |----------------------------------------------------------------------------------------------------------------------- | self::show |----------------------------------------------------------------------------------------------------------------------- | */ public static function show () { global $AVE_Template; $fragmentdata = []; if (file_exists(self::$fragmentdir . self::$fragmentfile)) include self::$fragmentdir . self::$fragmentfile; $fragmentdata = msort($fragmentdata, 'fragment_name'); $AVE_Template->assign('fragments', $fragmentdata); $AVE_Template->assign('content', $AVE_Template->fetch(self::$tpl_dir . 'main.tpl')); } /* |----------------------------------------------------------------------------------------------------------------------- | self::execute |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentExecute () { global $AVE_DB, $AVE_Template; error_reporting(E_ALL); ini_set('display_errors', 1); $profiler = false; if (isset($_POST['fragment_profiling']) && $_POST['fragment_profiling'] == 1) { static $list, $time, $count; $profiler = true; } $code = stripslashes($_POST['fragment_code']); ob_start(); Debug::startMemory('Eval'); Debug::startTime('Eval'); $result = eval(' ?>' . $code . 'Query("SHOW PROFILES"); $list = "" . "\n\t\n\t"; while ($row = $result_profiler->FetchRow()) { $time += $row->Duration; $row->Query = preg_replace('/\t+/', '', $row->Query); $list .= "\n\t\n\t\t\n\t\t\n\t\t\n\t"; } $list .= "\n
" . $row->Query_ID . "" . number_format($row->Duration * 1, 6, ',', '') . "" . $row->Query . "
"; $time = number_format($time * 1, 6, ',', ''); $count = $result_profiler->NumRows(); $AVE_DB->Query("SET PROFILING = 0"); $out .= ''; $out .= "\n
" . $list; } else { $out .= ''; } echo $out; exit; } /* |----------------------------------------------------------------------------------------------------------------------- | self::fragmentInsert |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentInsert () { global $AVE_Template; $fragment_code = ''; $fragmentdata = []; $fragment_key = (isset($_POST['fragment_key']) && is_numeric($_POST['fragment_key']) OR $_POST['fragment_key'] != '') ? (int) $_POST['fragment_key'] : null; if (file_exists(self::$fragmentdir . self::$fragmentfile)) include self::$fragmentdir . self::$fragmentfile; if (isset($fragmentdata[$fragment_key])) $fragment_code = stripslashes(base64_decode($fragmentdata[$fragment_key]['fragment_code'])); if (isAjax()) { $success = $fragment_code ? true : false; $return = [ 'success' => $success, 'fragment_code' => $fragment_code, 'fragment_key' => $fragment_key, 'message' => $success ? $AVE_Template->get_config_vars('CONSOLE_DOWNLOAD_SAVED') : $AVE_Template->get_config_vars('CONSOLE_DOWNLOAD_FALSE'), 'header' => $success ? $AVE_Template->get_config_vars('CONSOLE_SUCCESS') : $AVE_Template->get_config_vars('CONSOLE_ERROR'), 'theme' => $success ? 'accept' : 'error' ]; self::_json($return, true); } else { header('Location:index.php?do=modules&action=modedit&mod=snippets&moduleaction=1&cp=' . SESSION); exit; } } /* |----------------------------------------------------------------------------------------------------------------------- | self::fragmentNew |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentNew () { global $AVE_Template; $fragmentdata = []; $fragmentfile = self::$fragmentdir . self::$fragmentfile; if (file_exists(self::$fragmentdir . self::$fragmentfile)) include self::$fragmentdir . self::$fragmentfile; if (empty($fragmentdata)) $_key = 0; else $_key = array_pop(array_keys($fragmentdata)) + 1; $fragmentdata[] = self::_fragment($_key); $fragmentdata = array_slice($fragmentdata, -1 * self::$limit); end($fragmentdata); $fragment_key = key($fragmentdata); $save_data = ''; file_put_contents($fragmentfile, $save_data); $fragmentdata = msort($fragmentdata, 'fragment_name'); $fragments = []; foreach ($fragmentdata AS $k => $v) { if ($v['fragment_id'] == $_key) $_fragment_key = $v['fragment_id']; $fragments[$k] = [ 'fragment_key' => $v['fragment_id'], 'fragment_name' => $v['fragment_name'] ]; } unset ($fragmentdata, $save_data); if (isAjax()) { $return = [ 'success' => true, 'key' => $_fragment_key, 'fragments' => $fragments, 'message' => $AVE_Template->get_config_vars('CONSOLE_SAVED'), 'header' => $AVE_Template->get_config_vars('CONSOLE_SUCCESS'), 'theme' => 'accept' ]; self::_json($return, true); } else { header('Location:index.php?do=modules&action=modedit&mod=snippets&moduleaction=1&cp=' . SESSION); exit; } } /* |----------------------------------------------------------------------------------------------------------------------- | self::fragmentSave |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentSave () { global $AVE_Template; $fragment_key = (int)$_POST['fragment_key']; $fragmentdata = []; $fragmentfile = self::$fragmentdir . self::$fragmentfile; if (file_exists(self::$fragmentdir . self::$fragmentfile)) include self::$fragmentdir . self::$fragmentfile; $fragmentdata[$fragment_key]['fragment_code'] = base64_encode($_POST['fragment_code']); $fragmentdata[$fragment_key]['fragment_changed'] = time(); $fragmentdata = array_slice ($fragmentdata, -1 * self::$limit); $save_data = ''; file_put_contents ($fragmentfile, $save_data); unset ($fragmentdata, $save_data); if (isAjax()) { $return = [ 'success' => true, 'key' => $fragment_key, 'message' => $AVE_Template->get_config_vars('CONSOLE_SAVED'), 'header' => $AVE_Template->get_config_vars('CONSOLE_SUCCESS'), 'theme' => 'accept' ]; self::_json($return, true); } else { header('Location:index.php?do=modules&action=modedit&mod=snippets&moduleaction=1&cp=' . SESSION); exit; } } /* |----------------------------------------------------------------------------------------------------------------------- | self::fragmentDelete |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentDelete () { global $AVE_Template; $fragment_key = (int) $_POST['fragment_key']; $fragmentdata = []; $fragmentfile = self::$fragmentdir . self::$fragmentfile; if (file_exists(self::$fragmentdir . self::$fragmentfile)) include self::$fragmentdir . self::$fragmentfile; foreach ($fragmentdata AS $k => $v) { if ($fragment_key == $v['fragment_id']) unset ($fragmentdata[$k]); } $fragmentdata = array_slice($fragmentdata, -1 * self::$limit); foreach ($fragmentdata AS $k => $v) { $v['fragment_id'] = $k; $fragmentdata[$k] = $v; } $save_data = ''; file_put_contents ($fragmentfile, $save_data); $fragmentdata = msort($fragmentdata, 'fragment_name'); $fragments = []; foreach ($fragmentdata AS $k => $v) $fragments[] = [ 'fragment_key' => $v['fragment_id'], 'fragment_name' => $v['fragment_name'] ]; unset ($fragmentdata, $save_data); if (isAjax()) { $return = [ 'success' => true, 'fragments' => $fragments, 'message' => $AVE_Template->get_config_vars('CONSOLE_DEL_SAVED'), 'header' => $AVE_Template->get_config_vars('CONSOLE_SUCCESS'), 'theme' => 'accept' ]; self::_json($return, true); } else { header('Location:index.php?do=modules&action=modedit&mod=snippets&moduleaction=1&cp=' . SESSION); exit; } } /* |----------------------------------------------------------------------------------------------------------------------- | self::fragmentsShow |----------------------------------------------------------------------------------------------------------------------- | */ public static function fragmentsShow () { //ToDo } } ?>