Post list


2012-09-23

4차수정] G1님 글 원본대로 --(//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t); //시간.


G1님 답글>>>

 위의 부분을 바꿔주신 후
아래 css 부분은.... 제일 앞에 수정해주시면 됩니다. 

<style>
    #posts{padding: 10px;}
    .g1sPostsPost{clear: both;}
    .g1sPostsTitle{}
    .g1sPostsTag{float:left;}
    .g1sPostsRight{float:right; text-align:right; width:99%;}
</style>

-----------------------







--------------첨에 첨가한건---->>
<style>

.g1sPostsPost{clear: both;}

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

</style>

<<------첨에 첨가한건----


--------------4차 수정] 역시   82번 줄 부터 117번까지 수정하고 위 CSS변경하는것,,,
  G1님 답글 원본대로 이부분 원래잇던코드 빠짐--(

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


<style>
    #posts{padding: 10px;}
    .g1sPostsPost{clear: both;}
    .g1sPostsTitle{}
    .g1sPostsTag{float:left;}
    .g1sPostsRight{float:right; text-align:right; width:99%;}
</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;
}



//시간

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(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.className = 'g1sPostsTitle';
a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
if(a2.innerHTML.length > 100)
a2.innerHTML = a2.innerHTML.substr(0,100) + '...';
ldiv.appendChild(a2);

//라벨

for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.className = 'g1sPostsTag';
a3.style.color = 'green';
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);
}
rdiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);
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>




댓글 없음:

댓글 쓰기