バージョンdrupal 6があり、コンテンツを削除するときに表示される次のメッセージを変更する必要があります。
「この操作は元に戻せません。」
このメッセージを変更する必要があるのは、一部ではなく一部のコンテンツタイプのみです。
ご協力いただきありがとうございます。
このコードを試してください(私にとってはうまくいきます-Drupal 6):
function module_change_default_messages_form_alter(&$form, $form_state, $form_id) {
if (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == 'delete') {
$node = node_load(arg(1));
if ($form_id == 'node_delete_confirm') {
if($node->type == 'story'){
$form['description'] = array('#value' => "here replace to \"this action cannot be undone\"");
} else if($node->type == 'page'){
$form['description'] = array('#value' => "this action cannot be undone");
}
}
}
}
または、より多くのコンテンツタイプにPHP switch ステートメントを使用できます。
Drupal 6で行う方法は次のとおりです。
メッセージを変更するコンテンツタイプが複数ある場合は、そのリンクのコードを、タイプごとの複数の関数ではなく、1つの関数に統合することをお勧めします。
お役に立てば幸いです。解決できたかどうかをお知らせください。
必要がある:
hook_menu_alter()
を実装して、「node /%node/delete」メニュー項目に関連付けられたメニューコールバックを変更します新しいメニューコールバックを実装する
_function mymodule_menu_alter(&$items) {
if (isset($items['node/%node/delete'])) {
$items['node/%node/delete']['page arguments'] = array('mymodule_node_delete_confirm', 1);
$items['node/%node/delete']['file path'] = drupal_get_path('module', 'mymodule');
$items['node/%node/delete']['file'] = 'mymodule.admin.inc';
// If the function is defined in the module file, you can use the following line instead of the last two lines.
// unset($items['node/%node/delete']['file']);
}
}
function mymodule_node_delete_confirm(&$form_state, $node) {
$form['nid'] = array(
'#type' => 'value',
'#value' => $node->nid,
);
return confirm_form($form,
t('Are you sure you want to delete %title?', array('%title' => $node->title)),
isset($_GET['destination']) ? $_GET['destination'] : 'node/' . $node->nid,
t('This action cannot be undone.'), // Change this message with the one you prefer.
t('Delete'),
t('Cancel')
);
}
function mymodule_node_delete_confirm_submit($form, &$form_state) {
if ($form_state['values']['confirm']) {
node_delete($form_state['values']['nid']);
}
$form_state['redirect'] = '<front>';
}
_
mymodule_node_delete_confirm()
がノードオブジェクトを取得すると、_$node->type
_を使用してそのノードのコンテンツタイプを確認できます。そのプロパティの値に基づいて、確認フォームの値を変更できます。
drupal 7では、メッセージを上書きするのは簡単です。次のフォーム変更コードを使用してください。
function modulename_form_node_delete_confirm_alter(&$ form、&$ form_state、$ form_id){ $ form ['description'] ['#markup'] = 'よろしいですか?いったん削除すると、この物語のコンテンツを復元することはできません。 '; return $ form; }