2013-03-23 7 views

답변

2

한 가지 방법은 다음과 같이 템플릿을 변화

admin으로 가
  1. 로그인
  2. 는 관리 섹션
  3. 스크롤 ACL을 (액세스 제어 목록) 관리
  4. ,536,913에게 이동 권한 "@all"
  5. 설정 사용자/그룹 "없음"
+0

고마워요! StackOverflow에 대한 완벽한 대답. –

+0

이것은 실제로 관리자를 제외한 모든 로그인 사용자의 링크를 숨기고 있습니다. – phy25

-1

내 솔루션은 너무 많은 정보를 숨길 수 있습니다하지만, 여기에 우리가 간다 : /lib/tpl/dokuwiki/tpl_header.php에 :

0

에 정확하지 않게 당신을 위해 무엇을 찾고 (어쩌면 조금 늦게 어쨌든), 그러나 여기 모두에 대한 Media Manager 링크를 (해제하는 방법있어 로그인 한 사용자 포함) :

  • 관리자 패널로 이동, 구성 설정;
  • 검색 DokuWiki 작업 사용 안 함 (옵션 이름 : disableactions);
  • 기타 작업, 키워드 media (reference here 참조)을 추가하십시오.

모든 사용자의 링크가 숨겨 지지만 쓰기 권한이있는 사용자는 페이지를 편집 할 때 해당 버튼을 클릭하여 미디어 관리자를 시작할 수 있습니다.

0

나는 최근에 나 자신에게이 질문을했으며, 나를 위해 부족한 답변을 찾았다. 나는 Codowik 템플릿을 기본값으로 사용하고 있기 때문에 작동하지 않는다고 확신합니다. 이것은 내가 시반의 대답을 사용하여 생각해 낸 것입니다.

나는 /lib/tpl/codowik/tpl_header.php을 편집 상단이 추가 :

<?php 
    if (!$INFO['isadmin']) { 
    echo "<script> 
     var newStyle = document.createElement('Style'); 
     newStyle.innerHTML = '#codowiki_search_ul a {display: none;}'; 
     document.head.appendChild(newStyle); 
     </script>"; 
    } 
?> 

그것은 오히려 hackish,하지만 난 템플릿 구현 방법에 깊은 다이빙을 할 시간이 없어, 그것은 작품!

한 사용자가 로그인하지 않은 경우
2

, $ INFO [ "사용자 정보"는]

이 /lib/tpl/dokuwiki/tpl_header.php 에

   if(!empty($INFO["userinfo"])) { 
       tpl_toolsevent('sitetools', array(
        tpl_action('recent', true, 'li', true), 
        tpl_action('media', true, 'li', true), 
        tpl_action('index', true, 'li', true) 
       )); 
      } 
1

tpl_toolsevent('sitetools', array(
        tpl_action('recent', true, 'li', true), 
        tpl_action('media', true, 'li', true), 
        tpl_action('index', true, 'li', true) 
       )); 

교체 비어

플러그인을 만듭니다. 플러그인 이름이 nositetoolsanon이라고 가정하고 lib/plugins/nositetoolsanon/action.php 아래에 파일을 만들어야합니다.

<?php 
if(!defined('DOKU_INC')) die(); 

class action_plugin_nositetoolsanon extends DokuWiki_Action_Plugin { 
    public function getInfo(){ 
     return array('date'=>'2017-08-25', 'name'=>'No sitetools for anonymous users', 'author'=>'Phy25'); 
    } 

    public function register(Doku_Event_Handler $controller) { 
     $controller->register_hook('TEMPLATE_SITETOOLS_DISPLAY', 'BEFORE', $this, 'action_link'); 
    } 

    public function action_link(&$event, $param){ 
     global $INFO; 
     if(empty($INFO["userinfo"])){ 
      // more robust check by ACL: global $ID; if (auth_quickaclcheck($ID) < AUTH_READ) 
      $event->preventDefault(); 
     } 
    } 
} 

이 방법은 모든 템플릿에 적용되며 업데이트로 덮어 쓰지 않습니다.

힌트 : 읽을 수없는 사용자의 네임 스페이스를 뒤집으려면 it may cause issues if deeper namespaces have higher permissions than the ones above이지만 구성 파일에 $conf['sneaky_index'] = 1을 설정하십시오.