diff --git a/egbim/lib/common.lib.php b/egbim/lib/common.lib.php index 6a22030..9c480b3 100644 --- a/egbim/lib/common.lib.php +++ b/egbim/lib/common.lib.php @@ -660,8 +660,19 @@ function html_purifier($html) include_once(G5_PLUGIN_PATH . '/htmlpurifier/extend.video.php'); $config = HTMLPurifier_Config::createDefault(); + // data/cache 가 없거나 쓰기 불가한 환경에서도 FAQ 출력이 깨지지 않도록 캐시 경로를 보장한다. + $serializer_path = G5_DATA_PATH . '/cache'; + if (!is_dir($serializer_path)) { + @mkdir($serializer_path, 0755, true); + } + if (!is_dir($serializer_path) || !is_writable($serializer_path)) { + $serializer_path = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'egbim_htmlpurifier_cache'; + if (!is_dir($serializer_path)) { + @mkdir($serializer_path, 0755, true); + } + } // data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다. - $config->set('Cache.SerializerPath', G5_DATA_PATH . '/cache'); + $config->set('Cache.SerializerPath', $serializer_path); $config->set('HTML.SafeEmbed', false); $config->set('HTML.SafeObject', false); $config->set('Output.FlashCompat', false);