add_style_sheet() 관련

add_style_sheet() 관련

QA

add_style_sheet() 관련

본문

그누보드5입니다 

1.

tail.sub.php에 

<?php echo html_end(); // HTML 마지막 처리 함수 : 반드시 넣어주시기 바랍니다. ?> 이 구문이 잘 붙어 있습니다

2.그누보드 설정 후 theme 폴더에 제가 만들려는 폴더를 만든 것 외에 수정한 부분이 없으니 common.lib.php도 그대로 일 것입니다. 

3.head.sub.php 에

<title><?php echo $g5_head_title; ?></title>

아래 css 파일들이 로드되고 있습니다 

4. meta 태그를 입력시 그럴 수 있다고 해서 meta 태그도 주석처리했습니다 

 

게시판 skin 에 css 파일이 로드 되지 않아 직접 로드 시켜서 해결은 했지만 

무엇이 문제인지 알고싶습니다 

 

이 질문에 댓글 쓰기 :

답변 8

처리되는 과정이 

 /*
        </title>
        <link rel="stylesheet" href="default.css">
        밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
        */
        $buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);

되어 있습니다 

 

타이틀 아래에 주석안 처럼

</title>
 <link rel="stylesheet" href="default.css">

타이틀 끝에 스타일 시트가 오시는지 한번 확인해 보세요 

add_stylesheet()작동 안하신다는 분들 제가 위에 적은 tail.php  나 메타 태그 등도 확인하시고 

 

head.sub.php 안에 

<title><?php echo $g5_head_title; ?></title>

아래 

 

<link rel="stylesheet" href="<?php echo G5_THEME_CSS_URL; ?>/<?php echo G5_IS_MOBILE ? 'mobile' : 'default'; ?>.css?ver=<?php echo G5_CSS_VER; ?>"> 구문 지우시면 안됩니다. 

 

 

<title>...<title>

<link....

 

위와같이 title 바로밑에 <link.. 와 같이 반드시 하나이상의 스타일을 선언해주어야 하며, title과 link 사이에 공백이나 빈칸 빈 한줄이 포함되어 있으면 안되는 것으로 압니다.

아... 빈칸이나 공백 때문이었군요... 이제 정확히 알았네요.. 그런데 순위는 제가 10으로 지정해도 제가 로드한 css 보다 먼저 로드되는 건 왜 그런걸까요? 혹시 알수 있을까요

함수명이 틀린것 같습니다.

add_stylesheet

테마사용시에는,

/head.sub.php 가 사용되지 않고

/theme/[테마명]/head.sub.php 가 사용됩니다.

 

/theme/[테마명]/head.sub.php 에 코드를 넣어주시면 됩니다.

(게시판,최신글) 스킨 등에 로드되는 css는 add_stylesheet 함수가 사용되지만 

head.sub.php 에서 보드의 css를 사용하실려면 전체적인 경로를 입력해 주셔야 합니다.

 

add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);  경우는

게시판 스킨의 view.skin.php 같은곳 상단에 입력해 주시면 로드가 됩니다.

단 뒤에 나오는 숫자에 따라 빨리 로드 될수도 있고 나중에 로드가 될수 있습니다.

 

common.php 에 스킨의 경로가 정의 되어 있으니 참조 하세요.

 

 

제가 정말 질문의 요지를 잘못 적은 것같은데 수정이 안되니까 답답하네요  스킨에 적힌 add_stylesheet() 함수가 작동을 안한다는 것이 요지거든요 . 스타일시트 로드는 다른 방법으로도 가능해서 해결은 했는데 왜 안되는지가 궁금해서 질문을 올렸어요. 검색을 해보니 head.sub.php 에 타이틀 태그 다음에 스타일들이 있어야 위치를 찾아 로드한다는데 아무리해도 저 함수가 작동을 하지 않아서 궁금합니다 .

작동을 안할리가 있습니까?

add_stylesheet 함수는 호출이 되었을겁니다

여기에서 문제는 html_process 클래스의 변수인 $this->css 에

중복된 스타일 시트라서 무시되었거나

제대로 처리가 되었더라도 

순서에서 밀렸거나.. 하는 이유일겁니다

크롬 개발자 모드에서 확인해 보세요

  1. 지정한 css 가 현재 제대로 load 되고 있는가

  2. 로드된 순서는 뒤로 밀리지는 않았는지

  3. 1,2 가 제대로 되었다 하더라도 css 가 지정한 엘리먼트에 제대로 적용되고 있는지

 

이도 저도 안되면

해당 URL 을 공개하셔서 답변받으시길 권합니다

지금처럼 개발자가 이해하기 쉽지않은 텍스트로 질문하시면

정확한 답변을 받기 쉽지 않을 수 있습니다

고마운 답변 감사드립니다

그런데<title><?php echo $g5_head_title; ?></title>

아래 

<link rel="stylesheet" href="<?php echo G5_THEME_CSS_URL; ?>/<?php echo G5_IS_MOBILE ? 'mobile' : 'default'; ?>.css?ver=<?php echo G5_CSS_VER; ?>"> 구문을 제가 삭제하고 제가 제작한 css 링크만 로드해두니 작동을 하지 않았습니다.
그래서 위 구문을 붙여넣고 테스트해보니 작동이 잘 되더군요 제가 제작하는 테마에서는 default.css 라는 파일을 사용하지 않아서 지운 것이었는데 정규식표현으로 default.css 를 찾아서 그 다음에 로드가 되는 모양입니다.

add style 소스를 보면 head.sub.php 제일 마지막 <?php echo html_end(); // HTML 마지막 처리 함수 : 반드시 넣어주시기 바랍니다. ?>에서 처리됩니다. 아마 마지막 까지 못가거나.. (중간에 exit)

<title><body> 사이에서 삽입된데 그게 없으나 할것같습니다. ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 123,535 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT