Post list


2012-09-19

리스트에 글제목과 아래에 레벨이 있고, 시간표기? 그런데 년도 부분은 해보니 또 리스트 목록이 사라집니다ㅠㅠㅠ

http://creatorhong.blogspot.kr/2012/02/blogger-label-posts-list.html


rk감사합니다^^
첨에 월 부분 수정은 하니까, '0'에서 '9'로 바뀌더군요,,,,

 그런데 년도 부분은 해보니 또 리스트 목록이 사라집니다ㅠㅠㅠ 두개 동시에 수정해도 리스트가 사라지구요ㅠㅠ
 따라하는것도 쉽지 않네요 ㅎㅎ

아쉽지만 아무래도 리스트에 시간표기는 포기해야 할듯 하네요,,,, 네이버 블로그처럼 구글도 쉽게 설정하게 할수 잇게 해주면 좋겟다만ㅠㅠ

리스트에 글제목과 아래에 레벨이 있고, 시간표기를 안하면 저 코드에서 어느부분을 빼면 되죠?



-------------------------- 2번쨰 '년도'만 수정하니 리스트 또 사라짐,-->>>



<style>
.g1sPostsPost{clear: both;}
.g1sPostsLeft{float:left; width:150px;}
</style>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {
obj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = page.home + '/search';
if(page.label != '')
url += '/label/' + page.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = obj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
}
//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);

a1.innerHTML = g1sObj.escapeHtml(rdate.getFullYear() +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
obj.obj.appendChild(li);
}

/* page 뿌려줌. */
obj.pongPgno(z);
},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};






page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>







<<<<------- 2번째 년도수 부분만 수정--------------











---------그래서

1번째 월 부분만 수정, 월부분이 '0'이 아닌 '9'로 나옴---->>>>







<style>

.g1sPostsPost{clear: both;}

.g1sPostsLeft{float:left; width:150px;}

</style>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {

obj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */

for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {

//예외처리.

if(i >= z.feed.openSearch$totalResults.$t)

break;

//변수선언.

var li = document.createElement("li");

var div = document.createElement('div');

var a1 = document.createElement('a');

var a2 = document.createElement('a');

//link로 사용할 base url.

var url = page.home + '/search';

if(page.label != '')

url += '/label/' + page.label;

//최종 link를 url 입력.

if (i == 0){

a1.href = url + '?max-results=1';

a2.href = url + '?max-results=1';

}

else {

var published = obj.changeTime(z.feed.entry[i - 1].published.$t);

a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;

a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;

}

//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

//시간.

var ldiv = document.createElement('div');

var published = z.feed.entry[i].published.$t;

var y,mm,d,h,m,s;

y = 1 * published.substr(0,4);
mm = 1 * published.substr(5,2);
d = 1 * published.substr(8,2);
h = 1 * published.substr(11,2);
m = 1 * published.substr(14,2);
s = 1 * published.substr(17,2);

var date = new Date(y, mm, d, h, m, s);

var dt;

if(published.charAt('+'))

dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;

else

dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;

var rdate = new Date(date.getTime() + dt);

a1.innerHTML = obj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목

var rdiv = document.createElement('div');

div.className = "g1sPostsPost";

ldiv.className = "g1sPostsLeft";

rdiv.className = "g1sPostsRight";

a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

rdiv.appendChild(a2);

//라벨

for(var j in z.feed.entry[i].category){

var a3 = document.createElement('a');

a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';

a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');

rdiv.appendChild(a3);

}

ldiv.appendChild(a1);

div.appendChild(ldiv);

div.appendChild(rdiv);

//append

li.appendChild(div);

obj.obj.appendChild(li);

}

/* page 뿌려줌. */

obj.pongPgno(z);

},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};







page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>







<<<----------- 1번째 월 부분만 수정, 월부분이 '0'이 아닌 '9'로 나옴 ------------------













---------1,2월과 년도 다 수정하니, 또 리스트 사라짐------>>>>



<style>

.g1sPostsPost{clear: both;}

.g1sPostsLeft{float:left; width:150px;}

</style>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {

obj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */

for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {

//예외처리.

if(i >= z.feed.openSearch$totalResults.$t)

break;

//변수선언.

var li = document.createElement("li");

var div = document.createElement('div');

var a1 = document.createElement('a');

var a2 = document.createElement('a');

//link로 사용할 base url.

var url = page.home + '/search';

if(page.label != '')

url += '/label/' + page.label;

//최종 link를 url 입력.

if (i == 0){

a1.href = url + '?max-results=1';

a2.href = url + '?max-results=1';

}

else {

var published = obj.changeTime(z.feed.entry[i - 1].published.$t);

a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;

a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;

}

//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

//시간.

var ldiv = document.createElement('div');

var published = z.feed.entry[i].published.$t;

var y,mm,d,h,m,s;

y = 1 * published.substr(0,4);
mm = 1 * published.substr(5,2);
d = 1 * published.substr(8,2);
h = 1 * published.substr(11,2);
m = 1 * published.substr(14,2);
s = 1 * published.substr(17,2);

var date = new Date(y, mm, d, h, m, s);

var dt;

if(published.charAt('+'))

dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;

else

dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;

var rdate = new Date(date.getTime() + dt);

a1.innerHTML = g1sObj.escapeHtml(rdate.getFullYear() +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목

var rdiv = document.createElement('div');

div.className = "g1sPostsPost";

ldiv.className = "g1sPostsLeft";

rdiv.className = "g1sPostsRight";

a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

rdiv.appendChild(a2);

//라벨

for(var j in z.feed.entry[i].category){

var a3 = document.createElement('a');

a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';

a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');

rdiv.appendChild(a3);

}

ldiv.appendChild(a1);

div.appendChild(ldiv);

div.appendChild(rdiv);

//append

li.appendChild(div);

obj.obj.appendChild(li);

}

/* page 뿌려줌. */

obj.pongPgno(z);

},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};







page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>





<<<< ---------1,2월과 년도 다 수정하니, 또 리스트 사라짐-----



댓글 1개:

  1. 죄송해요. 또 제 실수네요. 코드를 백업해놓은게 있는데 백업한 코드랑 여기코드랑 틀려서 계속 실수를 하네요.
    시간 안나오게 할려면 꽤 여러곳을 고쳐야 돼서요. 제가 새로 적용하시라고 한 코드를 아래 코드로 수정하시면 될거에요.

    a1.innerHTML = obj.escapeHtml(rdate.getFullYear() +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

    그리고 제 것 적용한거는 또 나중에 수정을 거친거라서요.
    수정하려고 하면 꽤 여러군데를 건드려야 하는데..... 음.....

    답글삭제