질문/조언질답게시판

사이트에는 현제

회원그룹 명과 동일한 게시판이 있고

예 그룹명) apple, orange, banana

예 게시판이름) apple, orange, banana

 

타임라인에서 게시판들을 모아서 뿌려주고 있습니다

 

회원들이 글을쓸때 글쓴이가 orange 그룹 회원이면

글쓰기시 select box에 orange 게시판이 선택되어 있도록 하고싶습니다 물론 orange 회원이 apple 게시판에도 글을 쓸수 있습니다.

 

<select name="module_srl" class="pp_custom_select"|cond="!$_is_mobile">

       <![email protected]($timeline_info->attach_info as $key => $val)-->

       {@ $_grant = $oModuleModel->getGrant($modules_info[$val], $logged_info);}

       <[email protected]($_grant->write_document)-->

        <option value="{$val}" selected="selected"|cond="$val==$oDocument->get('module_srl')">{htmlspecialchars($modules_info[$val]->browser_title)}</option>

        <[email protected]>

        <[email protected]>

 </select>

 

여기서 어떻게 수정을 해야할거같은데.. 도움주시면 감사하겠습니다..

  • profile

    {@
    $_grant = $oModuleModel->getGrant($modules_info[$val->module_srl], $logged_info);
    }

  • profile ?

    답변 감사합니다만 제가 질문을 잘못한거같습니다..현재 글쓰기 페이지에서 셀렉트에 모든 게시판에 모든 게시판이 나오고 있습니다. 여기까지는 제가 바라는게 맞습니다만 예를들어서 제가 orgnage 그룹이면 글쓸때 orange 게시판을 찾아서 누르고 글쓰기를 해야 오렌지 게시판에 글이 작성되는데 orange 그룹일시에 orange 게시판을 자동으로 선택되어있게 하고싶었습니다 혹시나해서 파일 첨부합니다

     

    35번째줄부터 44번째 줄입니다.. 이해가 가기 쉽도록 사이트 주소도 쪽지로 보냈습니다..

    감사합니다 ㅠ

    Atachment
    첨부
  • ? profile
    제가 해보라는건 해보셧나요?
  • profile ?

    <select name="module_srl" class="pp_custom_select"|cond="!$_is_mobile">

                         <[email protected]($timeline_info->attach_info as $key => $val)-->

                         {@$_grant = $oModuleModel->getGrant($modules_info[$val->module_srl], $logged_info);}

                         <option value="{$val}" selected="selected"|cond="$val==$oDocument->get('module_srl')">{htmlspecialchars($modules_info[$val]->browser_title)}</option>

                         <[email protected]>

                    </select>

     

    이렇게 해서 적용해놓은 상태입니다

    제가 회원그룹이 "맨유"고 글쓰기할때 "맨유" 게시판이 셀렉트되어있지 않습니다

  • profile
    회원그룹명과 게시판명을 비교한다 했을 때, 게시판명이 mid가 아니라 browser_title 말씀인 거죠?
    회원그룹명을 실제로 영어로 orange라고 쓰실 리는 없을 것 같아서요.

    <option value="{$val}" selected="selected"|cond="$val==$oDocument->get('module_srl')">{htmlspecialchars($modules_info[$val]->browser_title)}</option>

    여기가 관건인 것 같은데요. 흐름을 보니 $val이 아마 모듈 번호인 것 같은데요.

    <option value="{$val}" selected="selected"|cond="in_array($modules_info[$val]->browser_title, $logged_info->group_list)">{htmlspecialchars($modules_info[$val]->browser_title)}</option>

    확실하진 않지만 이런 식으로 시도해보시죠.
  • profile ?
    헐. 윤삼님 감사합니다. 완벽히 해결되었습니다 ㅠㅠ
  • profile ?
    염치불구하고 하나더 여쭤보고싶은게 있습니다..
    리스트에 회원그룹명과 browser_title 이동일한 게시판들만 select 리스트에서 보여주고싶은데 혹시 이것도 여쭤봐도 될까요?
  • ? profile
    다행이네요.
    다만 이용자가 여러 회원그룹에 속해 있을 경우, 회원그룹 리스트의 맨 마지막 그룹의 게시판 이름으로 최종 셀렉트가 될 테니 그 점만 유의하시면 될 겁니다.
  • ? profile

    리스트라면 문서 리스트에서요?
    그건 꽤나 복잡하고 리소스도 많이 잡아먹게 될 걸요.
    리스트를 그렇게 추리고 싶으시다면 연구가 좀 필요할 겁니다.

  • ? profile
    아, 셀렉트 메뉴 이야기였군요.
    그럼 이런 식으로 시도해보셔도 될 것 같습니다.

    <select name="module_srl" class="pp_custom_select"|cond="!$_is_mobile">

    <[email protected]($timeline_info->attach_info as $key => $val)-->

    {@ $_grant = $oModuleModel->getGrant($modules_info[$val], $logged_info);}

    <[email protected]($_grant->write_document && in_array($modules_info[$val]->browser_title, $logged_info->group_list))-->

    <option value="{$val}" selected="selected"|cond="$val==$oDocument->get('module_srl')">{htmlspecialchars($modules_info[$val]->browser_title)}</option>

    <[email protected]>

    <[email protected]>

    </select>
  • profile ?

    넵 맞습니다 셀렉트 메뉴중에 회원그룹과 동일한 이름을 갖고있는 게시판들만 있었으면 했는데
    위에 적어주신 소스대로 적용하니 제가 포함되있는 그룹의 메뉴만 보입니다

    제가 하고싶은건 제가 오렌지 그룹에만 포함되 있더라도

    회원그룹:
    사과
    오렌지(제가 있는 그룹 slected)
    딸기

    게시판이름:
    사과
    오렌지
    딸기
    바나나 (회원그룹에 같은이름 없음)

    이렇게 있다면

    셀렉트 메뉴에서는

    사과
    오렌지(selected)
    딸기

    가 나오도록 표현하고 싶습니다만

    윤삼님이 올려주신 소스를 적용하면
    셀렉트 메뉴에서는 제가 그룹에 포함되어있는

    오렌지(selected)

    만 나오게 됩니다

  • ? profile
    <pre cond="$grant->manager">{print_r(getModel('member')->getGroups(), true)}</pre>
    위 코드를 적당한 곳에 넣어보시고 관리자로 로그인한 뒤 출력 결과 좀 알려주시겠어요?
    아마 이걸로 전체 회원그룹을 가져올 수 있을 것 같은데, 확인을 좀 해봐야해서요.
  • profile ?
    결과 쪽지로 보냈습니다
    도움주셔서 진심으로 감사합니다 ㅠ..
  • ? profile

    이렇게 해보세요. (과연 될지...)

    {@
        $group_title_list = array();
        $group_info_list = getModel('member')->getGroups();
        foreach($group_info_list as $group_srl => $group_info):
            $group_title_list[$group_srl] = $group_info->title;
        endfoeach;
    }
    
    <select name="module_srl" class="pp_custom_select"|cond="!$_is_mobile">
    <[email protected]($timeline_info->attach_info as $key => $val)-->
        {@ $_grant = $oModuleModel->getGrant($modules_info[$val], $logged_info);}
        <[email protected]($_grant->write_document && in_array($modules_info[$val]->browser_title, $group_title_list))-->
        <option value="{$val}" selected="selected"|cond="$val==$oDocument->get('module_srl')">{htmlspecialchars($modules_info[$val]->browser_title)}</option>
        <[email protected]>
    <[email protected]>
    </select>

     

  • profile ?
    {@
    $group_title_list = array();
    $group_info_list = getModel('member')->getGroups();
    foreach($group_info_list as $group_srl => $group_info):
    $group_title_list[$group_srl] = $group_info->title;
    endfoeach;
    }

    이부분에서 오류가 있는거 같습니다.
    적용하고 글작성 페이지 들어가니 오류가 뜹니다ㅠ
  • ? profile
    오타네요ㅜ
    endfoeach; -> endforeach;
  • profile ?
    윤삼님 진심으로 감사드립니다..
    완벽히 동작합니다..