답변:
드루팔 7의 경우 :
사용자 정의 모듈 에서 hook_block_info 및 hook_block_view 후크를 사용하십시오 . hook_block_info는 블록을 정의합니다. 그것은에 표시됩니다 관리자 > 구조 > 블록 . * hook_block_view *는 내용을 표시합니다. Drupal API에서 아래 예를 참조하십시오.
두 개의 블록이 정의 된 hook_block_info의 예 (제목 신디케이트 및 최근 컨텐츠) :
<?php
function hook_block_info() {
// This example comes from node.module.
$blocks['syndicate'] = array(
'info' => t('Syndicate'),
'cache' => DRUPAL_NO_CACHE,
);
$blocks['recent'] = array(
'info' => t('Recent content'),
// DRUPAL_CACHE_PER_ROLE will be assumed.
);
return $blocks;
}
?>
hook_block_view의 예 :
<?php
function hook_block_view($delta = '') {
// This example is adapted from node.module.
$block = array();
switch ($delta) {
case 'syndicate':
$block['subject'] = t('Syndicate');
$block['content'] = array(
'#theme' => 'feed_icon',
'#url' => 'rss.xml',
'#title' => t('Syndicate'),
);
break;
case 'recent':
if (user_access('access content')) {
$block['subject'] = t('Recent content');
if ($nodes = node_get_recent(variable_get('node_recent_block_count', 10))) {
$block['content'] = array(
'#theme' => 'node_recent_block',
'#nodes' => $nodes,
);
}
else {
$block['content'] = t('No content available.');
}
}
break;
}
return $block;
}
?>
후크 전체 목록은 Drupal.org 의 Blocks API 페이지 를 참조하십시오 . Drupal 6은 약간 다릅니다. hook_block_view 후크가 없습니다. 대신 hook_block 을 사용 하여 블록을 선언하십시오.
Drupal 6의 경우 짧은 대답은 hook_block 을 구현하는 사용자 정의 모듈을 작성하는 것 입니다.
Drupal 7의 경우 Block API 를 사용합니다 .
이것이 모듈 개발의 첫 번째 방법이라면 Pro Drupal Development 또는 Pro Drupal 7 Development를 강력히 추천 합니다. 알아야 할 거의 모든 것이 거기에 있습니다.
내가 찾고있는 것을 찾고 여기에서 찾았습니다.
/modules/block/block.module : block_custom_block_save ($ edit, $ delta).
그러나이 함수를 보면 db_update를 직접 수행 할 수 있음을 알 수 있습니다.
db_update('block_custom')
->fields(array(
'body' => $edit['body']['value'],
'info' => $edit['info'],
'format' => $edit['body']['format'],
))
->condition('bid', $delta)
->execute();
기능 추가 모듈을 사용하여 블록을 내보낼 수 있습니다 .
또는 블록 테이블에 직접 레코드를 작성하십시오.
INSERT INTO blocks (
module, delta, theme, status, weight, region, custom,
throttle, visibility, pages, title, cache)
VALUES (
'views','blog-block_1','mytheme',1,10,'sidebar_first',0,0,1,'blog\r\nblog/*','',-1)