PHP Filter 모듈을 사용하지 않고 프로그래밍 방식으로 블록 가시성을 설정하는 방법이 있습니까?


11

핵심 PHP 필터 모듈을 활성화하면 PHP 코드를 사용하여 블록 구성 페이지에서 블록의 가시성을 설정할 수 있습니다.

그러나 보안 측정을 위해 PHP 필터 모듈을 활성화하고 싶지 않습니다. 그래서 사용자 정의 모듈에서 할 수있는 방법이 있나요 ? 그렇게하는 고리를 찾을 수 없습니다. 그리고 닫기 후크 hook_block_view_alter는 블록 내용 만 변경할 수 있습니다.

답변:


13

예. 블록 내용을 false로 설정하면 디스플레이에서 내용이 숨겨지고 다른 블록이 없으면 영역이 숨겨집니다. 다음과 비슷한 설정이 필요하다고 생각합니다.

$block['content'] = _my_module_custom_block();

...

function _my_module_custom_block(){
    if( HIDE_CONDITION )
        return false;
}

2
여전히 빈 내용의 블록이 표시되지 않습니까?
gilzero

1
잘 작동합니다. 고마워.
gilzero

@gilzero, 그렇지 않습니다.
WM

1

규칙 블록 가시성 모듈은 ... 다른 대안 볼 수 있습니다 활성화하기 PHP 필터를 필요로하지 않는다 . 프로젝트 페이지의 인용문은 다음과 같습니다.

규칙 블록 가시성 모듈을 사용하면 규칙 구성 요소를 사용하여 블록 가시성을 제어 할 수 있습니다. 이를 통해 Drupal 관리자와 개발자는 Drupal에서 제공하는 기본 가시성 옵션 외에도 웹 사이트에 블록을 표시 할시기를 제어 할 수있는 유연성을 제공합니다.

일반적인 아이디어는 규칙으로 수행 할 수 있으면이를 사용하여 블록 가시성을 제어 할 수 있으므로 가능성이 무한하다는 것입니다.

한 달 이상 전에 등록한 사용자에게만 차단을 표시해야합니까?

평일 오전 8시에서 오후 5시 사이에만 표시되어야하는 블록이 있습니까?

현재 날씨 조건에 따라 블록을 표시하거나 숨기는 방법은 무엇입니까?

이 모든 것은 규칙 블록 가시성을 사용하여 수행 할 수 있습니다.

또한 " 규칙으로 수행 할 수있는 경우이를 사용하여 블록 가시성을 제어 할 수 있습니다 " 에 따라 모든 종류의 사용자 정의 로직 ( "프로그래밍 방식 / 사용자 정의 모듈"부분 참조)을 구현하는 데 사용할 수 있는 규칙 의 힘이 있습니다. 당신의 질문의).

이 모듈을 사용하는 방법에 대한 설명은 " views 블록이 user / 1과 같은 관리자에게 표시되지 않도록하는 방법 "에 대한 나의 대답을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.