게시판용 오늘본 상품 표현하기 CSS > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

게시판용 오늘본 상품 표현하기 CSS 정보

게시판용 오늘본 상품 표현하기 CSS

본문

그누보드 게시판을 활용한 미니샵 같은 곳에서 응용할수 있는 오늘본 상품을 보여주는것입니다.
미리보기 링크1 오른쪽 스크롤링 부분입니다.
역시 간략한 CSS 마크업입니다.

<?php
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);

$tv_tbl = "toes";// 지정된 제품 테이블일때만 세션생성

if ($bo_table == $tv_tbl)
{
  $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]") == $bo_table."|".$wr_id)
      {
        $saved = true;
        break;
      }
    }
  }

  if (!$saved && $bo_table && $wr_id)
  {
    $tv_idx++;
    set_session("ss_tv_idx", $tv_idx);
    set_session("ss_tv[$tv_idx]", $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_board, $ss_wr_id) = explode('|', $tv_it_id);

  if ($ss_board == $tv_tbl)
  {
    $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_board, $ss_wr_id) = explode('|', $tv_it_id);
  if ($ss_board == $tv_tbl)
  {
    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>

추천
5
  • 복사

댓글 11개

크롬에서 글작성 버튼이 이상하네요. ^^
엔터키로 올리니까 수정된 내용이 반영되지 않고 이전 내용이 그냥 올라가네요.
ie에서 다시 수정했습니다.ㅠㅠ
© SIRSOFT
현재 페이지 제일 처음으로