[블로그] FastBoot 메인 애드센스 코드 에러 해결 방법(임시 방법)

2017. 6. 21. 21:32 / 서기랑

FastBoot 메인 애드센스 코드 에러 현상 해결 방법(임시 방법)


FastBoot 1.6.2 스킨을 사용하다 보면 메인화면 게시물에 애드센스 코드의 일부분이 나오는 것을 볼 수 있다.

다른 사람은 어떤지 모르겠지만 이 블로그의 경우는 플러그인으로 넣은 게시글 상단에 나오는 애드센스의 마지막 코드 부분이 나오는데 여간 거슬리는 게 아니다.


FastBoot 메인화면 애드센스 코드

넌 뭐냐 왜때문에!!!


그래서 해결 방법을 찾아 봤지만 대부분의 방법은 FastBoot의 메인화면을 사용하지 않고 옵션을 변경하여 티스토리 에디션 화면을 이용하라는 것 뿐이었다.

한마디로 제작자가 패치할 때까지 해결 방법이 없으니 다른 화면을 쓰라는 것이다.


FastBoot 메인화면 애드센스 코드

위 부분을 true로 바꾸면 티에디션을 사용할 수 있다.


하지만 티에디션보다 FastBoot의 메인화면이 마음에 쏙 들어버렸으니 위 방법 외에 다른 방법을 찾아보기로 하고 몇 가지 임시방편을 생각해봤다.


임시방편

1. 게시글 상단 애드센스 코드를 플러그인으로 넣지 말고 CSS 편집 화면에서 직접 넣기.

이 방법도 나쁘진 않지만 화면을 줄이는 경우 크기에 맞춰 잘리는 것이 아니라 옆으로 삐져나와 사이드바까지 가려 버린다.

보통 화면을 줄이는 경우는 별로 없으니 괜찮지만 그래도 다른 것을 찾아보기로 했다.


2. 게시글 상단 애드센스 코드 삭제

... 어.. 음... 패스


3. 메인화면을 카테고리 화면으로 리다이렉트

메인화면을 변경하고 싶지 않다.


더 생각해보면 분명 방법이 있겠지만 내 능력으로는 이 정도가 한계인 듯하다.

그래서 그냥 직접 코드 수정해 보기로 했다.

코드를 찾다 보니 자바스크립트 파일 fastboot_index에서 rss의 정보를 가져와 메인화면을 구성하는 것을 발견할 수 있었다.

발견했으니 이제 수정해보자.


※ 사실 수정이라고 하지만 이 역시도 근본적인 해결법이 아니기 때문에 다른 곳에서 문제가 생길 수도 있다.

그러니 그냥 이런 방법도 있구나 하고 보는 것도 좋다.

(그러면 제목을 바꿔야 하나...)


임시 해결 방법 1

코드를 수정한다고 하지만 크게 어렵지는 않다 우선 패스트부트 스킨의 fastboot_index.js 파일을 메모장으로 열면 자바 스크립트 코드가 나오는데 중간 약간 아래쪽의 if 문안에 있는 substring의 값을 수정하면 코드 수정은 끝이다.


숫자만 수정해주면 된다.


substring은 몇 번째 글자부터 몇 번째 글자까지 가져올지를 지정하는 함수인데 지금 문제 되는 것은 앞부분의 애드센스 코드의 글자들이기 때문에 0번째 글자부터 가져오면 안 되고 이를 수정해야 한다.

이 블로그 기준으로는 53번째부터 가져오면 문제없이 메인화면이 나타나는 것을 볼 수 있어 아래와 같이 코드를 수정하였고 만약 메인화면에 나오는 코드가 더 길거나 적다면 그에 맞춰 숫자를 조절해주면 된다.


if(tmpMediaContents.length==0) des = des.replace(/(<([^>]+)>)/ig,"").substring(53,853);

else if(tmpMediaContents.length<5) des = des.replace(/(<([^>]+)>)/ig,"").substring(53,653);

else des = des.replace(/(<([^>]+)>)/ig,"").substring(53,453);


코드를 수정했다면 fastboot_index.js 파일을 기존의 티스토리 블로그 HTML/CSS 편집을 통해 파일 업로드를 하여 덮어 씌우고 저장하면 완료된다.


FastBoot 메인화면 애드센스 코드

깔끔해졌다. 아하하하핳


임시 해결 방법 2

댓글에 의견으로 치환을 하는 방법이 더 좋다고 하니 치환하여 애드센스 코드를 없애 보도록 하자.

(치환하는 방법은 말 그대로 코드를 변경하는 것이기 때문에 SUBSTRING을 사용했었지만 사실 RSS자체를 변경하는 게 아니라 내용을 복사해서 보여주기 용도로 사용되는 부분(메인화면)이 변경되는 것이기 때문에 딱히 문제는 없을 것이다. 의견대로 오히려 이쪽이 더 깔끔하고 좋을 것이다.)

위 해결방법이 단지 보여주는 문자열의 시작 위치를 변경하는 것이었다면 해당 방법은 앞 부분에 나타나는 애드센스 코드를 다른 문자로 예를 들면 공백으로 치환 하는 방법이기 때문에 위 방법 과 같이 사용하면 문제가 될 수 있으니 둘 중 하나의 방법만 적용 하도록 하자.


복사가 안되는 경우를 위한 텍스트 파일 : 메인화면 애드센스 코드 치환.txt

fastboot_index.js 파일을 메모장으로 열고 중간 약간 아래쪽의 if 바로 위에 코드를 추가해주면 된다.

if(des.match("http://cfile(.*?)\"")!=null){

var a = des.match("http://cfile(.*?)\"")[0];

a = a.substring(0,a.length-1);

img = a;

a = a.replace('image', 'C80x80');

a = a.replace('original', 'C80x80');

tmpMediaImages+='<a href="'+link+'"><img src="' + a + '"/></a>';

}

des = des.split("(adsbygoogle = window.adsbygoogle || []).push({});").join("");    // <--- 대략 요기~

if(tmpMediaContents.length==0) des = des.replace(/(<([^>]+)>)/ig,"").substring(0,800);

else if(tmpMediaContents.length<5) des = des.replace(/(<([^>]+)>)/ig,"").substring(0,600);

else des = des.replace(/(<([^>]+)>)/ig,"").substring(0,400);


FastBoot 메인화면 애드센스 코드

기존 코드는 건드리지 않고 중간에 추가만 해주면 된다.


수정 후 저장이 완료됐다면 CSS 편집에서 파일을 업로드로 덮어 씌우고 저장하면 완료.


※ replace로 치환하는 경우 가장 처음 발견된 문자열만 수정되기 때문에 애드센스 코드를 상단과 하단에 설치하고 본문의 글자 수가 적은 포스팅을 작성할 경우 하단 애드센스 코드가 나오는 경우가 발생 한다.

그렇다고 자바스크립트에서 replaceall은 없고 / /gi 의 경우 특수문자가 섞여있어 번거롭기 때문에 split 와 join을 이용하여 치환 하였다.