diff --git a/AvocadoAmber/_extra_font.php b/AvocadoAmber/_extra_font.php index 8ac3541..18efe83 100644 --- a/AvocadoAmber/_extra_font.php +++ b/AvocadoAmber/_extra_font.php @@ -2,25 +2,82 @@ if (!defined('_GNUBOARD_')) exit; -$font_sql = "SELECT * FROM {$g5['font_table']} ORDER BY font_name ASC"; -$font_result = sql_query($font_sql); +function getFontCSSWithCache() +{ + global $g5; + $cache_key = 'font_css_cache'; + $cache_duration = 300; -echo ""; + +function getFontCSSWithFileCache($g5, $cache_duration) +{ + $cache_file = G5_DATA_PATH . '/cache/font_css_cache.txt'; + $cache_dir = dirname($cache_file); + + if (!is_dir($cache_dir)) { + @mkdir($cache_dir, 0755, true); + } + + if (file_exists($cache_file) && (time() - filemtime($cache_file)) < $cache_duration) { + return file_get_contents($cache_file); + } + + $css_content = generateFontCSS($g5); + + @file_put_contents($cache_file, $css_content, LOCK_EX); + + return $css_content; +} + +function generateFontCSS($g5) +{ + $font_sql = "SELECT * FROM {$g5['font_table']} ORDER BY font_name ASC"; + $font_result = sql_query($font_sql); + $css_content = ""; + return $css_content; +} + +echo getFontCSSWithCache(); diff --git a/AvocadoAmber/adm/design_form_css.php b/AvocadoAmber/adm/design_form_css.php index 9d02f58..83f1824 100644 --- a/AvocadoAmber/adm/design_form_css.php +++ b/AvocadoAmber/adm/design_form_css.php @@ -6,30 +6,12 @@ $css_sql = sql_query("SELECT * FROM {$g5['css_table']}"); $css = []; for ($i = 0; $cs = sql_fetch_array($css_sql); $i++) { $css[$cs['cs_name']][0] = $cs['cs_value']; - $css[$cs['cs_name']][1] = $cs['cs_etc_1']; - $css[$cs['cs_name']][2] = $cs['cs_etc_2']; - $css[$cs['cs_name']][3] = $cs['cs_etc_3']; - $css[$cs['cs_name']][4] = $cs['cs_etc_4']; - $css[$cs['cs_name']][5] = $cs['cs_etc_5']; - $css[$cs['cs_name']][6] = $cs['cs_etc_6']; - $css[$cs['cs_name']][7] = $cs['cs_etc_7']; - $css[$cs['cs_name']][8] = $cs['cs_etc_8']; - $css[$cs['cs_name']][9] = $cs['cs_etc_9']; - $css[$cs['cs_name']][10] = $cs['cs_etc_10']; - - $css[$cs['cs_name']][11] = $cs['cs_etc_11']; - $css[$cs['cs_name']][12] = $cs['cs_etc_12']; - $css[$cs['cs_name']][13] = $cs['cs_etc_13']; - $css[$cs['cs_name']][14] = $cs['cs_etc_14']; - $css[$cs['cs_name']][15] = $cs['cs_etc_15']; - $css[$cs['cs_name']][16] = $cs['cs_etc_16']; - $css[$cs['cs_name']][17] = $cs['cs_etc_17']; - $css[$cs['cs_name']][18] = $cs['cs_etc_18']; - $css[$cs['cs_name']][19] = $cs['cs_etc_19']; - $css[$cs['cs_name']][20] = $cs['cs_etc_20']; + for ($j = 1; $j <= 20; $j++) { + $css[$cs['cs_name']][$j] = $cs["cs_etc_$j"]; + } } -$tab_width = 1024; +$tab_width = 1024; $is_item_area = false; $is_comment_area = false; diff --git a/AvocadoAmber/classes/htmlprocess/htmlprocess.class.php b/AvocadoAmber/classes/htmlprocess/htmlprocess.class.php index 34d6861..547afab 100644 --- a/AvocadoAmber/classes/htmlprocess/htmlprocess.class.php +++ b/AvocadoAmber/classes/htmlprocess/htmlprocess.class.php @@ -4,6 +4,9 @@ class html_process protected $latecss = []; protected $css = []; protected $js = []; + protected $beforeBuffer = ""; + protected $afterBuffer = ""; + protected $replacer = []; private function updateLoginTable() { @@ -188,9 +191,24 @@ class html_process }*/ } + public function appendHtml($html) + { + $this->afterBuffer .= $html; + } + + public function prependHtml($html) + { + $this->beforeBuffer .= $html; + } + + public function addRegexReplace($pattern, $replace) + { + $this->replacer[] = [$pattern, $replace]; + } + public function run() { - global $config, $g5, $member; + global $config; $this->updateLoginTable(); $this->cleanOldLoginRecords($config['cf_login_minutes']); @@ -203,6 +221,13 @@ class html_process $buffer = $this->injectStyles($buffer, $stylesheet, $latestylesheet); $buffer = $this->injectJavascript($buffer, $javascript); + foreach($this->replacer as $v) { + $buffer = preg_replace($v[0], $v[1], $buffer); + } + + $buffer = preg_replace('#([^<]*]*>)#', "$1{$this->beforeBuffer}", $buffer); + $buffer = preg_replace('##', "" . $this->afterBuffer, $buffer); + if (class_exists("EventHandler")) { EventHandler::triggerEvent("amber.renderhtml_before_print", $buffer); } diff --git a/AvocadoAmber/common.php b/AvocadoAmber/common.php index e9b0351..7cc061b 100644 --- a/AvocadoAmber/common.php +++ b/AvocadoAmber/common.php @@ -1,4 +1,8 @@