그룹용 오늘본 상품 보여주기
여전히 크롬에서 글작성이 자연스럽지 못하네요..
그누보드 `그룹용 오늘본 상품` 보여주는 겁니다.
원하시는분이 계셔서 게시판용을 몇자 고쳐서 올립니다.그누보드 `그룹용 오늘본 상품` 보여주는 겁니다.
<?php
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
$tv_grid = "toe";// 그룹지정
if ($gr_id == $tv_grid)// 지정된 그룹일때만 세션생성
{
$saved = false;
$tv_idx = (int)get_session("ss_tv_idx");
if ($tv_idx > 0) {
for ($i=1; $i<=$tv_idx; $i++)
{
if (get_session("ss_tv[$i]") == $tv_grid."|".$bo_table."|".$wr_id)
{
$saved = true;
break;
}
}
}
if (!$saved && $gr_id && $bo_table && $wr_id)
{
$tv_idx++;
set_session("ss_tv_idx", $tv_idx);
set_session("ss_tv[$tv_idx]", $tv_grid."|".$bo_table."|".$wr_id);
}
}
//print_r2($_SESSION);
$tv_idx = get_session("ss_tv_idx");
$tv_div[top] = 0;
$tv_div[img_length] = 5; // 보여줄 이미지갯수
?>
<style type="text/css">
#divTodayHidden { position:relative; top:<?=$tv_div[top]?>;display:none; }
/* #divToday { ie 스크립트 에러로 인라인코딩 } */
#divToday .top { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview01.gif) no-repeat; width:91px; height:31px; }
#divToday #todayviewcount { position:absolute; top:9px; right:10px; color:#555; }
#divToday #topBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview02.gif) no-repeat; width:90px; height:12px; cursor:pointer; }
#divToday #botBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview05.gif) no-repeat; width:90px; height:10px; cursor:pointer; }
#divToday #pList { margin:0 auto; padding:0; text-align:center; background: url(<?=$g4[shop_path]?>/img/todayview03.gif) repeat-y; width:90px; height:auto; }
#divToday #noList { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview04.gif) no-repeat; width:90px; height:21px; }
#divToday #hidBtn { margin:0; padding:0; background: url(<?=$g4[shop_path]?>/img/todayview06.gif) no-repeat; width:90px; height:23px; cursor:pointer; }
</style>
<div id='divTodayHidden'><a href='javascript:todayview_visible();' title="오늘본 제품 보기">
<img src='<?=$g4[shop_path]?>/img/todayview.gif' border=0></a>
</div>
<div id='divToday' style="position:relative; top:0; margin:0 auto; width:auto; height:auto;">
<div class="top">
<div id='todayviewcount'></div>
</div>
<?
if ($tv_idx)
{
// 상단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='topBtn' onclick=\"javascript:todayview_up();\" title=\"다음제품\"></div>\n";
}
// 제품 이미지 출력
echo "<div id='pList'>\n";
for ($i=1; $i<=$tv_div[img_length]; $i++)
{
echo " <div id='todayview_{$i}'></div>\n";
}
echo " </div>\n";
// 하단 버튼
if ($tv_idx > $tv_div[img_length])
{
echo "<div id='botBtn' onclick=\"javascript:todayview_dn();\" title=\"이전제품\"></div>\n";
}
}
else
{
echo "<div id='noList'></div>\n";
}
?>
<div id='hidBtn' onclick="javascript:todayview_hidden();"></div>
</div>
<script type="text/javascript">
var goods_link = new Array();
<?php
echo "var goods_max = ".(int)$tv_idx.";\n";
echo " var goods_length = ".(int)$tv_div[img_length].";\n";
echo " var goods_current = goods_max;\n";
echo "\n";
for ($i=1; $i<=$tv_idx; $i++)
{
$tv_it_id = get_session("ss_tv[$i]");
list($ss_grid, $ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_grid == $tv_grid)
{
$row = sql_fetch(" select * from $g4[board_file_table] where bo_table = '$ss_board' and wr_id = '$ss_wr_id' ");
$it_name = get_text(addslashes($row['bf_file']));
$thumb = $g4[path]."/data/file/".$ss_board."/thumb/".$it_name;
$size = getimagesize($thumb);
$tw = $size[0] /2;
$th = $size[1]/2;
$img = "<a href='".$g4[bbs_path]."/board.php?bo_table=".$ss_board."&wr_id=".$ss_wr_id."'><img src='$thumb' width='".$tw."' height='".$th."' style='padding:1px 0; border:none;'/></a>";
echo " goods_link[$i] = \"{$img}<br/>\";\n";//<span class=small>".cut_str($it_name,10,"")."</span>
}
}
?>
var divSave = null;
function todayview_visible()
{
set_cookie('ck_tvhidden', '', 1);
document.getElementById('divToday').innerHTML = divSave;
}
function todayview_hidden()
{
divSave = document.getElementById('divToday').innerHTML;
set_cookie('ck_tvhidden', '1', 1);
document.getElementById('divToday').innerHTML = document.getElementById('divTodayHidden').innerHTML;
}
function todayview_move(current)
{
k = 0;
for (i=goods_current; i>0 ; i--)
{
k++;
if (k > goods_length)
break;
document.getElementById('todayview_'+k).innerHTML = goods_link[i];
}
}
function todayview_up()
{
if (goods_current + 1 > goods_max)
alert("오늘 본 마지막 제품입니다.");
else
todayview_move(goods_current++);
}
function todayview_dn()
{
if (goods_current - goods_length == 0)
alert("오늘 본 처음 제품입니다.");
else
todayview_move(goods_current--);
}
<?php
$k=0;
for ($i=$tv_idx; $i>0; $i--)
{
$k++;
if ($k > $tv_div[img_length])
break;
$tv_it_id = get_session("ss_tv[$i]");
list($ss_grid, $ss_board, $ss_wr_id) = explode('|', $tv_it_id);
if ($ss_grid == $tv_grid)
{
echo "document.getElementById('todayview_{$k}').innerHTML = goods_link[$i];\n";
}
}
if ($tv_idx)
{
echo "document.getElementById('todayviewcount').innerHTML = '$tv_idx';\n";
}
?>
function CheckUIElements()
{
var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck;
yMenuFrom = parseInt (document.getElementById('divToday').style.top, 10);
if ( g4_is_gecko )
yMenuTo = top.pageYOffset + <?=$tv_div[top]?>;
else if ( g4_is_ie )
yMenuTo = document.body.scrollTop + parseInt('<?=$tv_div[top]?>');
timeoutNextCheck = 500;
if ( Math.abs (yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom )
{
setTimeout ("CheckUIElements()", timeoutNextCheck);
return;
}
if ( yMenuFrom != yMenuTo )
{
yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 10 );
if ( yMenuTo < yMenuFrom )
yOffset = -yOffset;
document.getElementById('divToday').style.top = parseInt(document.getElementById('divToday').style.top) + yOffset;
timeoutNextCheck = 10;
}
setTimeout ("CheckUIElements()", timeoutNextCheck);
}
function OnLoad() {
var y;
if ( top.frames.length )
document.getElementById('divToday').style.display = '';
CheckUIElements();
return true;
}
OnLoad();
<?php
if ($_COOKIE['ck_tvhidden'])
echo "todayview_hidden();";
?>
</script>
덧);
저는 프로그래머가 아니기 때문에 어려운거 물어보시면 답변 못해드립니다.^^
연구 보강해서 쓰세요.
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 13개
잘쓰겠습니다.
설치해보니 이미지 사이즈가 너무 작게 보여서여..
혹시 크게할 수있는 방법은 없을까 해서요?
공개하여 주셔서 감사드림니다.
$size = getimagesize($thumb);
$tw = $size[0] /2;
$th = $size[1]/2;
그냥 아래처럼 하면 생성된 썸네일 사이즈대로 나올겁니다.
$size = getimagesize($thumb);
$tw = $size[0];
$th = $size[1];
위 내용을 today_view.php로 루트에 올렸다고 가정할때...
<div id="아무아이디">
<?
// 오늘본 제품
include_once ($g4['path']."/today_view.php");
?>
</div>
스크롤링을 해야한다면 위 코드 바로아래에 아래 스크립트도 추가합니다.
<!-- 스크롤링을 위한 스크립트 -->
<script type="text/javascript">initMoving(document.getElementById("아무아이디"), 66, 66, 250);</script>
--------------------------------------------------------
그리고 아래내용도 별도 js파일로 저장해서 헤더에 링크하세요.
// 웹표준을 고려한 우측 고정 메뉴
// http://hyeonseok.com/pmwiki/index.php/Javascript/SmoothMovingLayer 신현석님
// IE6, IE7, FF2, Opera9, Safari3
function initMoving(target, position, topLimit, btmLimit)
{
if (!target)
return false;
var obj = target;
obj.initTop = position;
obj.topLimit = topLimit;
obj.bottomLimit = document.documentElement.scrollHeight - btmLimit;
obj.style.position = "absolute";
obj.top = obj.initTop;
obj.left = obj.initLeft;
if (typeof(window.pageYOffset) == "number")
{
obj.getTop = function()
{
return window.pageYOffset;
}
}
else if (typeof(document.documentElement.scrollTop) == "number")
{
obj.getTop = function()
{
return document.documentElement.scrollTop;
}
}
else
{
obj.getTop = function()
{
return 0;
}
}
if (self.innerHeight)
{
obj.getHeight = function()
{
return self.innerHeight;
}
}
else if(document.documentElement.clientHeight)
{
obj.getHeight = function()
{
return document.documentElement.clientHeight;
}
}
else
{
obj.getHeight = function()
{
return 500;
}
}
obj.move = setInterval(function()
{
if (obj.initTop > 0)
{
pos = obj.getTop() + obj.initTop;
}
else
{
pos = obj.getTop() + obj.getHeight() + obj.initTop;
//pos = obj.getTop() + obj.getHeight() / 2 - 15;
}
if (pos > obj.bottomLimit)
pos = obj.bottomLimit;
if (pos < obj.topLimit)
pos = obj.topLimit;
interval = obj.top - pos;
obj.top = obj.top - interval / 3;
obj.style.top = obj.top + "px";
}, 30)
}
로그인해야 이미지가 나타나고, png 파일은 안보이네요...
감사히 잘 쓰겠습니다.
P,S)
염치없지만 로그인 안된상태에서 나타하고싶어요^^;;;
부탁드립니다.
다른 설정부분을 검토해보세요.
세션은 로그인 여부와 관계없이 생성되며 상품목록도 보여줍니다.
로그아웃하면 삭제되구요.
즉 로그인 이전에 본제품은 로그인해도 계속 보이지만 일단 로그아웃하면 모두 사라지는게 정상입니다.
세션생성시 아이디와 제품정보까지 생성하고 디비에 넣는 방식으로 응용한다면 다시 로그인했을때에도 그날본 제품을 보여줄수 있을것 같긴 하네요.
포기했어여^^'
답변주셔서 감사합니다.
수고하세요...