新しいテキスト形式フィルターを定義するモジュールを作成しました。ここで、モジュールphpから直接、この新しいフィルターを使用してテキスト形式
を
定義したいと思います。Drupal管理者は管理者ページから手動でこれを行うことができますが、この手順は避けたいと思います。何に追加する必要がありますか?admin/config/content/formats/add
my_dmodule.module
質問する
591 次
2 に答える
6
モジュールのインストール時にテキスト形式を作成しようとしていると思います。その場合は、filter_format_save() を呼び出すことができます。オブジェクトの作成に関する詳細は、filter.module ( Drupal API リファレンス) にあります。
hook_install() でフィルターを作成している場合は、最初にフィルター モジュールをロードする必要があるかもしれませんが、チェックしていません。
drupal_load('module', 'filter');
于 2012-11-11T12:00:43.437 に答える
2
Hendrikの答えに触発された、これが私の解決策です:
function myformat_install() {
drupal_load('module', 'filter');
/* check already exists */
$format_exists = (bool) db_query_range('SELECT 1 FROM {filter_format} WHERE name = :name', 0, 1, array(':name' => 'My Format'))->fetchField();
if (!$format_exists) {
$format = array(
'format' => 'myformat',
'name' => 'My Format',
'filters' => array(
'myformat_filter' => array(
'weight' => 0,
'status' => 1,
),
),
);
$format = (object) $format;
filter_format_save($format);
}
}
myformat_filter
は を実装して定義されたフィルタhook_filter_info()
ですが、別のモジュールで定義されたフィルタである可能性があります。
于 2012-11-11T17:02:57.147 に答える