테스트 사이트 - 개발 중인 베타 버전입니다

특정일에 메뉴숨김 기능 채택완료

코프 1년 전 조회 2,199

안녕하세요.

2024년 7월09일 17:00 ~ 2024년 7월 13일 17:00 시 까지

등록메뉴가 있다고 가정하면 이 등록메뉴를 해당 기간에는 숨김처리 후 자동으로

해당 기간 이후에 메뉴가 다시 정상화 되게 하고 싶은데 어떻게 해야하나요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
1년 전

시 까지 등록메뉴가 있다~~ 해당 기간에는 숨김처리 후<---이 말이 좀 이상한 것 아닌가요?

해당기간에는 등록 메뉴가 보이고 기간이 아니면 사용불가능 하게 하려는 것이 아닌가요?

질문은 해당 기간에는 등록메뉴를 사용 못하고 기간이 아니면 등록메뉴를 사용 가능하다는 말인가요?

 

어쨌든 질문은 다음처럼

$menu_datas =[];

if(G5_TIME_YMDHIS >= "2024-07-09 17:00:00" && G5_TIME_YMDHIS <= "2024-07-13 17:00:00")

$menu_datas = get_menu_db(0, true);

else{?>

<style>#gnb{display:none;}</syle>

<?php }?>

 

 

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

코프
1년 전
네..반대입니다. 평상시 등록메뉴를 잘 사용하다가 주문폭주기간동안만 해당 메뉴를 안보이게 해놨다가 다시 보이게 하려는 의도입니다.

댓글을 작성하려면 로그인이 필요합니다.

1년 전

다음 코드가 도움이 될지 모르겠습니다.

 

</p>

<p><?php

$times_org = ['2024-07-09 17:00:00', '2024-07-13 17:00:00'];

$times = array_map(function ($v) { return strtotime($v); }, $times_org);

$now = time();</p>

<p> </p>

<p>$menu = '

<nav>

    <ul>

        <li>menu 1</li>

        <li>menu 2</li>

        <li>menu 3</li>

    </ul>

</nav>

';</p>

<p> </p>

<p>if (min($times) <= $now && $now <= max($times)) {

    $menu = '';

}</p>

<p> </p>

<p>echo date('Y-m-d H:i:s', $now) . PHP_EOL;

echo $menu;</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

코프
1년 전
근데 저 코드를 어디에 넣어야되나요?
제가 완전 초보라 잘 몰라여..ㅠㅠ
어떤 파일에 저 소스를 넣어야할지요..ㅠㅠ
배르만
1년 전
제시된 리소스구조, 소스코드 가 없기 때문에
제3자는 어떤파일의 어느부분에 어떤형태로 적용이 필요한지 알수 없습니다.
코프
1년 전
인덱스에 보면 아래 메뉴 부분입니다.
adm/menu_list_.php 등록된 메뉴가 보여지고 있습니다.
지금은 그냥 수동으로 pc,모바일 사용안함으로 변경해둔상태인데...
이걸 좀 개선하고 싶어서요..메뉴는 4개 등록되어있는데..



<nav id="gnb">
<h2>메인메뉴</h2>
<div class="gnb_wrap">
<ul id="gnb_1dul">
<li class="gnb_1dli gnb_mnal"><button type="button" class="gnb_menu_btn" title="전체메뉴"><i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li>
<?php
$menu_datas = get_menu_db(0, true);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
$i = 0;
foreach( $menu_datas as $row ){
if( empty($row) ) continue;
$add_class = (isset($row['sub']) && $row['sub']) ? 'gnb_al_li_plus' : '';
?>
<li class="gnb_1dli <?php echo $add_class; ?>" style="z-index:<?php echo $gnb_zindex--; ?>">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
<?php
$k = 0;
foreach( (array) $row['sub'] as $row2 ){

if( empty($row2) ) continue;

if($k == 0)
echo '<span class="bg">하위분류</span><div class="gnb_2dul"><ul class="gnb_2dul_box">'.PHP_EOL;
?>
<li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2

if($k > 0)
echo '</ul></div>'.PHP_EOL;
?>
</li>
<?php
$i++;
} //end foreach $row

if ($i == 0) { ?>
<li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
<?php } ?>
</ul>
<div id="gnb_all">
<h2>전체메뉴</h2>
<ul class="gnb_al_ul">
<?php

$i = 0;
foreach( $menu_datas as $row ){
?>
<li class="gnb_al_li">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_al_a"><?php echo $row['me_name'] ?></a>
<?php
$k = 0;
foreach( (array) $row['sub'] as $row2 ){
if($k == 0)
echo '<ul>'.PHP_EOL;
?>
<li><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2

if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</li>
<?php
$i++;
} //end foreach $row

if ($i == 0) { ?>
<li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
<?php } ?>
</ul>
<button type="button" class="gnb_close_btn"><i class="fa fa-times" aria-hidden="true"></i></button>
</div>
<div id="gnb_all_bg"></div>
</div>
</nav>
배르만
1년 전
다음 코드가 도움이 될지 모르겠습니다.

[code]
<?php
$times_org = ['2024-07-09 17:00:00', '2024-07-13 17:00:00'];
$times = array_map(function ($v) { return strtotime($v); }, $times_org);
$now = time();

$menu_datas = get_menu_db(0, true);

if (min($times) <= $now && $now <= max($times)) {
$menu_datas = [];
}
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
$i = 0;
foreach( $menu_datas as $row ){
...
[/code]
코프
1년 전
베르만님 ..근데 4개의 메뉴중 한개의 메뉴만 숨겨야하는데...
아래주신 소스로도 가능할까요?
일단 적용은 해보겟습니다.
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

 </p>

<p><?php

    $start_time = mktime(17,0,0,7,9,2024); // 시작 일시 - mktime(시간,분,초,월,일,년);

    $end_time = mktime(17,0,0,7,13,2024); // 종료 일시 - mktime(시간,분,초,월,일,년);

    $this_time = time(); // 현재 일시</p>

<p>    if($this_time > $start_time && $this_time < $end_time){

    

        // 해당 기간내 실행할 코드를 작성해 주시면 됩니다.

    };

?>


현재 시간과 시작/종료 시간을 서로 비교하면 됩니다.

 

조건 문은 작성해 드렸고 안의 내용은 자유롭게 작성하시면 됩니다.^^

잘 해결되시면 채택 한번 부탁드립니다^^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

코프
1년 전
해당 기간내 실행할 코드..ㅠㅠ 코드 작성을 잘 할줄 몰라영..ㅠㅠ
테트라포드
1년 전
css는 작성 가능하신가요? 단순하게 눈에 안보이게만 하는거면 css로 숨겨도 됩니다.

[code]
<?php
$start_time = mktime(17,0,0,7,9,2024); // 시작 일시 - mktime(시간,분,초,월,일,년);
$end_time = mktime(17,0,0,7,13,2024); // 종료 일시 - mktime(시간,분,초,월,일,년);
$this_time = time(); // 현재 일시
if($this_time > $start_time && $this_time < $end_time){
?>
<style>
.숨길메뉴클래스{display: none;}
</style>
<? } ?>
[/code]

댓글을 작성하려면 로그인이 필요합니다.

cuwaaang
1년 전

php date 함수로 오늘날짜와 시간을 구해서 등록된 기간과 비교하면 되겠네요~

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인