while문으로 읽어들인 폴더의 정렬 방법 질문입니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

while문으로 읽어들인 폴더의 정렬 방법 질문입니다. 정보

while문으로 읽어들인 폴더의 정렬 방법 질문입니다.

본문

폴더 목록을 가져와서 뿌려주는 코드 일부입니다.
while문에서 읽어들인 폴더의 정렬이 뒤죽박죽 입니다.

    $skin_dir = $g4['path'] . "/skin/board";
    $d = dir($skin_dir);
    if (isset($board['bo_table']) && is_dir($skin_dir)) {
      while (false !== ($entry = $d->read())) {
        if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
          $style = "";
          if ($bs == $entry)//해당 스킨 표시
          $style = " style='font-weight:bold; color:#AA2727;' ";
          $skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
          $skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
        }
      }
    }
    $d->close();
    
echo $skin_link;//스킨목록 <-- 이 목록이 뒤죽박죽이네요.

아마 업로드 시간대별로 소트되는듯 한데 이걸 폴더이름으로 정렬하고자 합니다.

조언 부탁드립니다.
  • 복사

댓글 전체

위 함수를 이용하여 select option 으로 표현할때입니다. 
      <select name="wp">
          <?
            $skin_row = "";
            $arr = skin_dir("");
          for ($k=0; $k<count($arr); $k++)
          {
            $option = $arr[$k];
            if (strlen($option) > 10)
            $option = substr($arr[$k], 0, 18) . "…";
              echo '<option value="';
              echo $arr[$k];
              echo '"';
            if ($arr[$k] == $data[$m_ta_skin])
              echo 'selected';
              echo '>';
              echo  $option;
              echo "\n";
            }
            ?>
        </select>


상기 skin_dir($skin,$len='') 함수를 이용하면..  각각의 게시판 스킨경로를 각각의 서로다른 폴더로 적용할수 있으며 한 테이블에서 파생되는 각각의 서로다른 스킨적용도 가능하더라고요.

또한.. 해당 select 를 선택한경우.
        if ($arr[$k] == $data[$m_ta_skin])
            echo 'selected';
적용이 됩니다.
while (false !== ($entry = $d->read())) {
          $f_list[]= $entry;
}
sort( $f_list);

foreach( $f_list as $entry) {
        if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
          $style = "";
          if ($bs == $entry)//해당 스킨 표시
          $style = " style='font-weight:bold; color:#AA2727;' ";
          $skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
          $skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
        }
      }
감사합니다.^^
예전에 rolo님께서 손봐주신 코드입니다.
테스트 페이지에 붙여서 스킨작업시 활용하고 있습니다.
<?
//링크로 스킨을 바꾸어 본다
//http://www.sir.co.kr/bbs/tb.php/g4_qa/19444 kail, rolo님

if ($is_admin == "super" || $is_auth) {
  if ($board['bo_table']) {
    if($_GET['bs']) {    //bs 세션 기록
      $bs = $_GET['bs'];
      session_register($bo_table);
      $_SESSION[ $bo_table]= $bs;
    }
    else if($_SESSION[ $bo_table]) {    //세션설정 스킨
      $bs = $_SESSION[ $bo_table];
    }
    else {    //환경설정 스킨
      $bs = $board['bo_skin'];
    }

    $board_skin_path = "$g4[path]/skin/board/$bs";    //common.php 에서 정의된 스킨 설정을 교체

    //스킨 디렉토리 목록 추출
    $skin_dir = $g4['path'] . "/skin/board";
    $d = dir($skin_dir);
    if (isset($board['bo_table']) && is_dir($skin_dir)) {

    while (false !== ($entry = $d->read())) {
      $f_list[]= $entry;
    }
    sort( $f_list);

    foreach( $f_list as $entry) {
      if (substr($entry, 0, 1) != '.' && $entry != 'index.php' && $entry != '') {
        $style = "";
        if ($bs == $entry)//해당 스킨 표시
        $style = " style='font-weight:bold; color:#AA2727;' ";
        $skin_name = "<span $style>" . cut_str($entry, 30, '') . "</span>";
        $skin_link .= "<a href=' " . preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI]) . "&bs=" . $entry. " '> " . $skin_name . "</a>,";
        }
      }
    }
    $d->close();
   
    ?><div style='margin:0;width:150px;height:400px;overflow:auto;'><span style="color:red;"><a href="<?=preg_replace("/&bs=(.*)/i","",$_SERVER[REQUEST_URI])?>&bs=<?=$board['bo_skin']?>" style="color:#AA2727;" title='관리자 설정으로 복원'>설정복원 - <?=$board['bo_skin']?></a></span><br><span style="color:blue;" title='현재 적용된 스킨'>현재스킨 - <?=$bs?></span><?
    echo $skin_link;//스킨목록
    ?></div><?
  }
}
?>
© SIRSOFT
현재 페이지 제일 처음으로