Saya mencoba menambahkan satu bidang sederhana ke setiap item #__content, dan saya telah dengan sangat hati-hati mengikuti tutorial di Menambahkan Bidang Kustom ke Komponen Inti , menggantikan "konten" untuk "kontak". Saya sekarang memiliki plugin yang dapat diinstal yang berhasil menyertakan tab / bidang pada formulir pengeditan Item Konten Admin, dan berfungsi dengan sangat baik, kecuali untuk fitur "penghematan" yang sial itu.
Satu-satunya referensi untuk Menyimpan adalah (sekali lagi, konten alih-alih kontak):
Kolom tambahan diambil dari bentuk file / contact.xml di direktori plugin. Penting bahwa bidang-bidang ini dalam elemen bidang dengan properti nama diatur ke "params". Jika Anda tidak menyetel nama properti ini, bidang akan muncul di situs admin tetapi nilainya tidak akan disimpan.
Fakta bahwa catatan peringatan ini ada, menunjukkan kepada saya bahwa Joomla harus mengetahui bidang-bidang yang ada, dan kode inti menanganinya, tetapi karena itu tidak menyimpan, saya bertanya-tanya apakah ada peristiwa lain yang harus saya tambahkan.
Inilah bidang sederhana yang saya butuhkan - tidak terlihat oleh pengguna, namun tetap penting, dan tidak ada yang dekat dengan kebutuhan CCK untuk menyimpannya.
Apa yang salah / hilang yang mencegah disimpannya bidang khusus?
Pembaruan: Berharap melampaui harapan bahwa bidang khusus disimpan dalam database, saya menambahkan kolom ke tabel #__content dengan nama yang sama dan mencoba - tidak berhasil.
gdp.php
class plgContentGdp extends JPlugin {
protected $autoloadLanguage = true;
function onContentPrepareForm($form, $data) {
$app = JFactory::getApplication();
$option = $app->input->get('option');
switch($option) {
case 'com_content':
if ($app->isAdmin()) {
JForm::addFormPath(__DIR__ . '/forms');
$form->loadFile('content', false);
}
return true;
}
return true;
}
}
/forms/content.xml
<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="params" >
<fieldset name="params" >
<field
name="content_myfield"
type="text"
label="PLG_CONTENT_GDP_MYFIELD"
/>
</fieldset>
</fields>
</form>
HTML yang diterjemahkan (tanpa label)
<div class="tab-pane active" id="attrib-params">
<div class="control-group ">
<div class="controls">
<input
type="text"
value=""
id="jform_params_content_myfield"
name="jform[params][content_myfield]"
class=""
aria-invalid="false"
>
</div>
</div>
</div>