プログラムで新しいブロックを作成する必要があります。ブロックには、最後の3つのニュース(サイトコンテンツ)を表示する必要があります。リンクとしてのタイトル+公開日(形式dd-mm-yyyy)。
助言がありますか?
Infoフックはシステム内のブロックを定義します:
function my_module_block_info() {
$blocks['your_block'] = array(
// info: The name of the block.
'info' => t('Your Block Name'),
);
return $blocks;
}
そしてビューフックはあなたのブロックの出力(html)を作成します:
function my_module_block_view($delta = '') {
// The $delta parameter tells us which block is being requested.
switch ($delta) {
case 'your_block':
// Create your block content here
$block['subject'] = t('My last 3 news');
$query = new EntityFieldQuery();
//change news by the name of your content type
$entities = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'news')
->propertyOrderBy("created", "DESC")
->range(0, 3)
->execute();
$block['content'] = '';
foreach($entities['node'] as $obj) {
$node = node_load($obj->nid);
$block['content'] .= l($node->title, "node/" . $node->nid) . ' - ' . date('d-m-Y', $node->created) . '<br>';
}
break;
}
return $block;
}
YOUR_SITE/admin/content/blocks
でブロックにリージョンを割り当てることを忘れないでください
出力:
参照:
これは非プログラムで実行できます。
Drupal 7を使用している場合
Views モジュールをダウンロードします。
ビューとViews UIを有効にする
Drupal 8にはすでにビューとビューUIが有効になっています。
新しいビューを作成し、ページビューのチェックを外してブロックビューを選択します
ビュー:コンテンツ。タイプ:コンテンツタイプを選択します。
結果を3に設定します。
[続行して編集]をクリックします。
フィールドで、追加ボタンをクリックし、作成日を検索します。
日付の表示方法を変更/フォーマットできます。必要に応じて、customを使用してd-m-Y
ビューを保存します。
次に、ブロックで、ビューブロックがそこに表示されます。
質問者はおそらく非プログラム的なソリューションを認識していないため、これについて言及します
エイドリアンのソリューションを単純化するため。これはViews
といくつかのコードで実現できます。最後の3つのノードを表示するビューを作成し、block_views関数で関数 views_embed_view() を使用して、ビューをデータパーツにレンダリングします。
これにより、複雑なデータベースクエリから解放され、同時にプログラムでブロックを実現できます。
case 'top_three_nodes':
$block['subject'] = t('My Top Three Nodes');
$block['content'] = array(
'#theme' => 'your_block_theme_name',
'#top_three_favorites' => views_embed_view('three_nodes_view_name', 'display_name'),
);
return $block;
break;