Moodle内でブロックを永続的に表示する方法はありますか? 私はテーマの設定に取り組んでおり、どのページにいてもブロックが確実に見えるようにする方法があるかどうか知りたいと思っていました.
1 に答える
1
1つの解決策は、新しいブロック領域を追加することです。テーマディレクトリ
のconfig.phpファイルで、レイアウトオプションを変更し、使用するすべてのレイアウトに新しいリージョンを追加します。
$THEME->layouts = array(
'base' => array(
'file' => 'admin.php',
'regions' => array('your-region'),
'defaultregion' => 'your-region',
),
'standard' => array(
'file' => 'admin.php',
'regions' => array('your-region', 'side-post'),
'defaultregion' => 'your-region',
),
// The site home page.
'frontpage' => array(
'file' => 'general.php',
'regions' => array('tools-menu', 'side-post'),
'defaultregion' => 'tools-menu',
'defaultregion' => 'tools-menu',
),
'course' => array(
'file' => 'general.php',
'regions' => array('your-region'),
'defaultregion' => 'your-region',
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
),
etc...
次に、すべてのレイアウトファイルを編集し、ブロックを表示する場所に次のtheme/your_theme/layout/*.php
行を追加します。
echo $OUTPUT->blocks_for_region('your-region');
ここで、すべてのページタイプのこの領域にブロックを追加する必要があります。データベースでこのSQLを実行するだけです。
INSERT INTO `mdl_block_instances` (
`id` ,
`blockname` ,
`parentcontextid` ,
`showinsubcontexts` ,
`pagetypepattern` ,
`subpagepattern` ,
`defaultregion` ,
`defaultweight` ,
`configdata`
)
VALUES ( NULL , 'your_block_name', '1', '1', '*', NULL, 'your-region', '0', NULL );
于 2012-10-01T16:18:02.663 に答える