drupal 7에서 블록을 프로그래밍 방식으로 사용하지 않도록 설정하는 방법은 무엇입니까?drupal 7 - 프로그래밍 방식으로 블록 사용 안 함
-1
A
답변
1
아래 코드를 참조하십시오. 명심해야 할 점은 최적의 사용을 위해 다음과 같습니다
- 블록이 이미 존재해야하며
- 에 "모든 drush의 CC"/ 투명 캐시를 가능하게 각각 해제 후 지역 예를 들어 "before_content"
- 에 할당 할 수 블록이 기억 재 활성화는 위치에게의
- 귀하의 블록 델타가 될 수 있습니다 숫자 만 또는 숫자 알파
함 블록 :
db_update('block')
->fields(array(
'status' => 0,
'region' => 'disabled',
)
)
->condition('delta', 'client-block-number_here')
->execute();
블록을 사용 :
db_update('block')
->fields(array(
'status' => 1,
'region' => 'before_content',
)
)
->condition('delta', 'client-block-number_here')
->execute();
0
당신이 블록을 사용하지 않으려는 이유를 진짜 이유는? 사용자에 따라 블록을 표시하려면 db 공격을 수행하는 것이 좋은 해결책이 아닙니다.
지역 및 전처리 시스템을 사용하면 그럴 수 있다고 생각합니다. 한 영역에 아무 것도 표시 할 수 없으며, 블록, 텍스트 또는 은 표시되지 않습니다..
예 :
function HOOK_preprocess_node(&$variables, $hook){
//check the current user code...
//..
if (_condition_is_ok){
$block = module_invoke('module', 'block_view', 'block_name');
$variables["my_block"] = $block["content"];
}
}
당신은 그나마 변수가 내가 더 좋은 방법은 그렇게 생각하지 않습니다 당신의 TPL :
설정하지만 그건되어 있는지 확인하는 것을 잊지 경우 db_update
, db_update
을 db에 직접 쓰고 drupal 엔진을 사용하십시오.
내 특정 요구 사항은 CRON 작업 (즉, 서버에서 실행 중)을 기반으로했습니다 (예약 됨). 완벽하게 일했습니다. –