html_process 위치가 아쉽습니다.
본문
common.php에서 아래처럼 html_process이 extend 파일 인클루드보다 앞서있으면
extend파일에서 add_javascript도 사용할 수 있고 좋을것같은데 어떨까요?
$html_process = new html_process();
// common.php 파일을 수정할 필요가 없도록 확장합니다.
$extend_file = array();
$tmp = dir(G5_EXTEND_PATH);
while ($entry = $tmp->read()) {
// php 파일만 include 함
if (preg_match("/(\.php)$/i", $entry))
$extend_file[] = $entry;
}
if(!empty($extend_file) && is_array($extend_file)) {
natsort($extend_file);
foreach($extend_file as $file) {
include_once(G5_EXTEND_PATH.'/'.$file);
}
}
unset($extend_file);
답변 1
순서가 바뀌어서는 안됩니다. 확장 소스파일들 처리는 html_process보다 앞설 필요가 있을 거 같은데요. extend를 만든 건 common.php파일 수정을 금지하기 위한 조치라는 걸 생각하셔야 합니다.
원하는 소스를 넣는 방법은 다양합니다. theme 즉 테마를 만든 것은 원본 소스를 최대한 수정하지 않은 채 원하는 방식으로 소스 수정하기 위해 첨가된 겁니다. 따라서 테마를 하나 만든다음 거기에 수정하고자 하는 자바스크립트 소스를 추가하는 편이 좋을 듯하네요. 추가된 테마에서 extend된 파일의 내용을 읽게 할 수도 있습니다.
가령 extend 폴더에 add_script.php라고 하고 원하는 자바스크립트 소스를 $common_add_script라는 변수에 넣어준다음, 테마의 head.sub.php파일을 수정하여 $common_add_script를 추가하도록 소스를 수정하면 됩니다.