코드이그나이터 기반 PHP 오픈소스 게시판 : 씨아이보드

side menu 수정

  • 순돌아범
  • 0
  • 2,260
  • 글주소
  • 08-17

좌측메뉴를 여기저기 팁들 검색해서 짜집기했습니다.


side menu에

아웃로그인 -  해당 1,2차 메뉴  -  최신글  -   tag  -  banner


순으로 붙여놓았습니다


원본 백업하시고 아래 ## 짜집기-수정-sidebar.php  로  변경하세요..




## 원본 sidebar.php


<!-- sidebar start -->
<?php
$this->load->view(element('layout_skin_path', $layout) . '/box/login');
$this->load->view(element('layout_skin_path', $layout) . '/box/latest');
$this->load->view(element('layout_skin_path', $layout) . '/box/tagcloud');
?>
<!-- sidebar end -->




## 짜집기 수정 sidebar.php




<?php
// out login start
$this->load->view(element('layout_skin_path', $layout) . '/box/login');
//out login end


//sub menu start

// 만약 $view['board_key'] 값이 존재하면 게시판의 읽기또는 쓰기페이지라는 거고 없다면 url로 판단
if(isset($view['board_key'])) {
 $chk_url = $view['board_key'];
} else  {
 // 마지막 url 값으로 판단
 $url = explode('/', $this->uri->uri_string()) ;
 $chk_url = $url[count($url)-1] ;
}

if (element('menu', $layout)) {
 $menu = element('menu', $layout);

 // 메뉴 배열의 길이만큼 반복
 foreach($menu as $ml_arr) {
  foreach($ml_arr as $mll) {
   if(strstr($mll['men_link'], $chk_url)) { // 문자열 포함하고 있다면 으로 한다. 같은 카테고리에 세부 카테고리가 생길수 있으므로
    // 메뉴 아이디 가지고 온다. 그메뉴만 추출하기 위함
    $currentmemu_parentid = $mll['men_parent'] ;
    $currentmemu_id = $mll['men_id'] ; // 서브메뉴 없을때
   }
  }
 }

 if (element(0, $menu)) {
  foreach (element(0, $menu) as $mkey => $mval) {
   if ($currentmemu_parentid == element('men_id', $mval)) {
    $mlink = element('men_link', $mval) ? element('men_link', $mval) : 'javascript:;';
    $menuhtml = '<div class="sidebar_menu"><div class="headline"><h3>';
    
    $menuhtml .= '<ul>';
    $menuhtml .= '<li><a '.$aclass.' href="' . $mlink . '" ' . element('men_custom', $mval);    
    if (element('men_target', $mval)) {
      $menuhtml .= ' target="' . element('men_target', $mval) . '"';
    }
    $menuhtml .= ' title="' . html_escape(element('men_name', $mval)) . '">' . html_escape(element('men_name', $mval)) . '</a></li></h3></div>';


    foreach (element(element('men_id', $mval), $menu) as $skey => $sval) {
     $slink = element('men_link', $sval) ? element('men_link', $sval) : 'javascript:;';
     // 현재페이지 찾는부분
     if(strstr($slink, $chk_url)) {
      $aclass = 'class="on"' ;
     } else {
      $aclass = '' ;
     }
     $menuhtml .= '<li><a '.$aclass.'href="' . $slink . '" ' . element('men_custom', $sval);
     if (element('men_target', $sval)) {
      $menuhtml .= ' target="' . element('men_target', $sval) . '"';
     }
     $menuhtml .= ' title="' . html_escape(element('men_name', $sval)) . '">' . html_escape(element('men_name', $sval)) . '</a></li>';
    }
    $menuhtml .= '</ul></div>';
   } else if( $currentmemu_id == $mkey) {   
    $mlink = element('men_link', $mval) ? element('men_link', $mval) : 'javascript:;';

//대메뉴 시작
    $menuhtml = '<div class="sidebar_menu"><div class="headline"><h3>';
    $menuhtml .= '<ul>';
    $menuhtml .= '<li><a '.$aclass.' href="' . $mlink . '" ' . element('men_custom', $mval);
    if (element('men_target', $mval)) {
      $menuhtml .= ' target="' . element('men_target', $mval) . '"';
    }
    $menuhtml .= ' title="' . html_escape(element('men_name', $mval)) . '">' . html_escape(element('men_name', $mval)) . '</a></li></h3></div>';

//소메뉴 시작
     foreach (element(element('men_id', $mval), $menu) as $skey => $sval) {
     $slink = element('men_link', $sval) ? element('men_link', $sval) : 'javascript:;';
     // 현재페이지 찾는부분
     if(strstr($slink, $chk_url)) {
      $aclass = 'class="on"' ;
     } else {
      $aclass = '' ;
     }
     $menuhtml .= '<li><a '.$aclass.'href="' . $slink . '" ' . element('men_custom', $sval);
     if (element('men_target', $sval)) {
      $menuhtml .= ' target="' . element('men_target', $sval) . '"';
     }
     $menuhtml .= ' title="' . html_escape(element('men_name', $sval)) . '">' . html_escape(element('men_name', $sval)) . '</a></li>';
    }
    $menuhtml .= '</ul></div>';

//소메뉴 끝


   }
  }
 }
}


// menu view 메뉴노출
echo $menuhtml;

// 만약 현재 페이지에서 메뉴가 없다면 노출한다.
//if(isset($menuhtml)) {
// echo $menuhtml;
//} else {


echo '<br>';


//sub menu end


//latest start
$this->load->view(element('layout_skin_path', $layout) . '/box/latest');

// tag start
$this->load->view(element('layout_skin_path', $layout) . '/box/tagcloud');

//banner start
echo banner($position='sidebar', $type='rand', $limit = '2', $start_tag='', $end_tag='');


?>