그룹용 오늘본 상품 보여주기 정보
그룹용 오늘본 상품 보여주기관련링크
http://tottoe.com/?ix=toe
427회 연결
본문
여전히 크롬에서 글작성이 자연스럽지 못하네요..
그누보드 `그룹용 오늘본 상품` 보여주는 겁니다.
원하시는분이 계셔서 게시판용을 몇자 고쳐서 올립니다.그누보드 `그룹용 오늘본 상품` 보여주는 겁니다.
<?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>
덧);
저는 프로그래머가 아니기 때문에 어려운거 물어보시면 답변 못해드립니다.^^
연구 보강해서 쓰세요.
추천
6
6
댓글 13개

정말 고맙습니다.
오늘본상품 제가 찾던것인데 감사합니다.
잘쓰겠습니다.
잘쓰겠습니다.
오호 감사합니다.
바쁘실텐데... 한가지만 질문드려도 될까요?
설치해보니 이미지 사이즈가 너무 작게 보여서여..
혹시 크게할 수있는 방법은 없을까 해서요?
공개하여 주셔서 감사드림니다.
설치해보니 이미지 사이즈가 너무 작게 보여서여..
혹시 크게할 수있는 방법은 없을까 해서요?
공개하여 주셔서 감사드림니다.
여기서는 실제 썸네일사이즈의 반으로 설정되어있습니다.
$size = getimagesize($thumb);
$tw = $size[0] /2;
$th = $size[1]/2;
그냥 아래처럼 하면 생성된 썸네일 사이즈대로 나올겁니다.
$size = getimagesize($thumb);
$tw = $size[0];
$th = $size[1];
$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)
}
위 내용을 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)
염치없지만 로그인 안된상태에서 나타하고싶어요^^;;;
부탁드립니다.
로그인해야 이미지가 나타나고, png 파일은 안보이네요...
감사히 잘 쓰겠습니다.
P,S)
염치없지만 로그인 안된상태에서 나타하고싶어요^^;;;
부탁드립니다.
제가 그누보드 최신 utf-8 버전에서 테스트 한걸로는 png파일도 가져옵니다.
다른 설정부분을 검토해보세요.
세션은 로그인 여부와 관계없이 생성되며 상품목록도 보여줍니다.
로그아웃하면 삭제되구요.
즉 로그인 이전에 본제품은 로그인해도 계속 보이지만 일단 로그아웃하면 모두 사라지는게 정상입니다.
세션생성시 아이디와 제품정보까지 생성하고 디비에 넣는 방식으로 응용한다면 다시 로그인했을때에도 그날본 제품을 보여줄수 있을것 같긴 하네요.
다른 설정부분을 검토해보세요.
세션은 로그인 여부와 관계없이 생성되며 상품목록도 보여줍니다.
로그아웃하면 삭제되구요.
즉 로그인 이전에 본제품은 로그인해도 계속 보이지만 일단 로그아웃하면 모두 사라지는게 정상입니다.
세션생성시 아이디와 제품정보까지 생성하고 디비에 넣는 방식으로 응용한다면 다시 로그인했을때에도 그날본 제품을 보여줄수 있을것 같긴 하네요.

아.....적용하는 방법을 모르겠어요...
감사합니다.
좋은 팁 감사합니다.