tidak saya belum. Saya akan mencoba menggunakan modul. terima kasih :)
Jasmine Ahmed
1
Modul ini akan mengubah "Simpan" di semua tempat yang digunakan, tidak hanya dalam komentar.
kiamlaluno
Jawaban:
19
Untuk Drupal 7, Anda perlu membuat modul khusus yang mengimplementasikan hook_form_FORM_ID_alter()menggunakan kode yang mirip dengan yang berikut (ganti "mymodule" dengan nama pendek dari modul yang Anda tulis):
function mymodule_form_comment_form_alter(&$form,&$form_state){if(isset($form['actions']['submit'])){
$form['actions']['submit']['#value']= t('Post');}}
comment_form () menggunakan kode berikut, untuk menentukan tombol formulir:
// Only show the save button if comment previews are optional or if we are// already previewing the submission.
$form['actions']= array('#type'=>'actions');
$form['actions']['submit']= array('#type'=>'submit','#value'=> t('Save'),'#access'=>($comment->cid && user_access('administer comments'))|| variable_get('comment_preview_'. $node->type, DRUPAL_OPTIONAL)!= DRUPAL_REQUIRED || isset($form_state['comment_preview']),'#weight'=>19,);
$form['actions']['preview']= array('#type'=>'submit','#value'=> t('Preview'),'#access'=>(variable_get('comment_preview_'. $node->type, DRUPAL_OPTIONAL)!= DRUPAL_DISABLED),'#weight'=>20,'#submit'=> array('comment_form_build_preview'),
Untuk Drupal 6, kode tersebut harus yang berikut:
function mymodule_form_comment_form_alter(&$form,&$form_state){if(isset($form['submit'])){
$form['submit']['#value']= t('Post');}}
Saya menambahkan if (isset($form['submit'])) {}bagian karena dalam Drupal 6, comment_form()mendefinisikan tombol formulir menggunakan kode berikut, dan tombol yang Anda coba ubah tidak dapat hadir dalam formulir.
// Only show save button if preview is optional or if we are in preview mode.// We show the save button in preview mode even if there are form errors so that// optional form elements (e.g., captcha) can be updated in preview mode.if(!form_get_errors()&&((variable_get('comment_preview_'. $node->type, COMMENT_PREVIEW_REQUIRED)== COMMENT_PREVIEW_OPTIONAL)||($op == t('Preview'))||($op == t('Save')))){
$form['submit']= array('#type'=>'submit','#value'=> t('Save'),'#weight'=>19,);}
$form['preview']= array('#type'=>'button','#value'=> t('Preview'),'#weight'=>20,);
Hanya untuk memastikan jawaban saya jelas: Anda tidak perlu mengedit kode yang digunakan oleh Drupal; Anda perlu membuat modul khusus yang mengimplementasikan hook_form_FORM_ID_alter().
kiamlaluno
Saya memperbaiki kode untuk berfungsi juga ketika situs Drupal 6 memaksa pratinjau komentar yang dikirimkan, dan formulir tidak dalam mode pratinjau.
kiamlaluno
2
Untuk Drupal 6, jawaban di atas yang menyarankan menggunakan tidakhook_form_alter akan berfungsi, meskipun Anda akan berpikir itu akan berhasil. Biasanya Anda akan melakukan ini seperti:
function mymodule_form_alter(&$form,&$form_state, $form_id){if('comment_form'== $form_id){
$form['submit']['#value']= t('Post');}}
Meskipun ini tampaknya berfungsi, dan Anda akan melihat tombol dengan teks 'Posting', sebenarnya Anda akan menemukan dua masalah:
Jika situs Anda diatur untuk memaksa pratinjau komentar sebelum disimpan, Anda akan menemukan bahwa tombol 'Posting' ditambahkan ke formulir komentar awal, di mana seharusnya hanya ada tombol 'Pratinjau'. Ini mudah diperbaiki, meskipun.
Tombol 'Posting' baru Anda tidak akan benar-benar mengirimkan formulir - D6 comment.module mencari nilai tombol untuk melakukan logikanya, dan jika Anda mengubahnya ke sesuatu selain 'Simpan' ini merusak logika pengiriman.
Untuk benar-benar membuat pekerjaan ini Anda harus menyembunyikan tombol dan menggunakan handler ajukan formulir kustom Jika saya melakukannya saya akan kembali ke sini dan memposting kode kerja.
Saya lebih suka menggunakan hook_form_altervs String Overrides.
function YOURMODULENAME_form_comment_form_alter(&$form,&$form_state){
$form['buttons']['submit']['#value']='Submit Comment';//Your text for the submit button goes here.};
Tidak perlu modul khusus atau menggunakan modul string override. Di settings.php Anda, di sekitar baris 416, batalkan komentar dan modifikasi yang berikut dengan menggunakan penggantian Anda:
/**
String overrides:
To override specific strings on your site with or without enabling locale
module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/# $conf['locale_custom_strings_en'][''] = array(# 'forum' => 'Discussion board',# '@count min' => '@count minutes',# );
Masalah yang sama dengan modul String Override. Setiap kali modul memanggil t ("Simpan"), override akan digunakan, seperti formulir edit simpul dan banyak tempat lain di admin.
Jawaban:
Untuk Drupal 7, Anda perlu membuat modul khusus yang mengimplementasikan
hook_form_FORM_ID_alter()
menggunakan kode yang mirip dengan yang berikut (ganti "mymodule" dengan nama pendek dari modul yang Anda tulis):comment_form () menggunakan kode berikut, untuk menentukan tombol formulir:
Untuk Drupal 6, kode tersebut harus yang berikut:
Saya menambahkan
if (isset($form['submit'])) {}
bagian karena dalam Drupal 6,comment_form()
mendefinisikan tombol formulir menggunakan kode berikut, dan tombol yang Anda coba ubah tidak dapat hadir dalam formulir.sumber
hook_form_FORM_ID_alter()
.Untuk Drupal 6, jawaban di atas yang menyarankan menggunakan tidak
hook_form_alter
akan berfungsi, meskipun Anda akan berpikir itu akan berhasil. Biasanya Anda akan melakukan ini seperti:Meskipun ini tampaknya berfungsi, dan Anda akan melihat tombol dengan teks 'Posting', sebenarnya Anda akan menemukan dua masalah:
Untuk benar-benar membuat pekerjaan ini Anda harus menyembunyikan tombol dan menggunakan handler ajukan formulir kustom Jika saya melakukannya saya akan kembali ke sini dan memposting kode kerja.
sumber
Saya lebih suka menggunakan
hook_form_alter
vs String Overrides.sumber
Tidak perlu modul khusus atau menggunakan modul string override. Di settings.php Anda, di sekitar baris 416, batalkan komentar dan modifikasi yang berikut dengan menggunakan penggantian Anda:
sumber
Seperti Andy Laken disebutkan di atas
Bagaimana cara memperbaikinya:
Itu dia! Fungsi validasi Anda berjalan terlebih dahulu dan modul komentar akan memproses formulir dengan nilai pengiriman asli.
sumber