ฉันกำลังพยายามเพิ่มฟิลด์เดียวที่เรียบง่ายให้กับรายการ #__content แต่ละรายการและฉันได้ปฏิบัติตามบทแนะนำอย่างระมัดระวังที่การเพิ่มฟิลด์ที่กำหนดเองให้กับองค์ประกอบหลักโดยแทนที่ "เนื้อหา" สำหรับ "ผู้ติดต่อ" ตอนนี้ฉันมีปลั๊กอินที่ติดตั้งได้ซึ่งรวมแท็บ / ฟิลด์บนฟอร์มการแก้ไขรายการเนื้อหาของผู้ดูแลระบบและทำงานได้อย่างยอดเยี่ยมยกเว้นคุณสมบัติ "บันทึก" ที่น่ารำคาญ
การอ้างอิงถึงการบันทึกเท่านั้นคือ (อีกครั้งเนื้อหาแทนการติดต่อ):
ฟิลด์เพิ่มเติมถูกโหลดจากฟอร์มไฟล์ / contact.xml ในไดเรกทอรีปลั๊กอิน สิ่งสำคัญคือเขตข้อมูลเหล่านี้อยู่ในองค์ประกอบเขตข้อมูลที่มีคุณสมบัติชื่อตั้งค่าเป็น "params" หากคุณไม่ได้ตั้งชื่อคุณสมบัตินี้ฟิลด์จะปรากฏในไซต์ผู้ดูแลระบบ แต่ค่าจะไม่ถูกบันทึก
ความจริงที่ว่ามีคำเตือนนี้อยู่แนะนำให้ฉันรู้ว่า Joomla ควรรู้ว่ามีทุ่งนาและรหัสหลักจัดการกับมัน แต่เนื่องจากมันไม่ได้บันทึกฉันสงสัยว่ามีอีกเหตุการณ์ที่ฉันควรเพิ่ม
นี่คือฟิลด์ง่าย ๆ ที่ฉันต้องการ - ผู้ใช้ไม่สามารถมองเห็นได้ แต่สิ่งสำคัญยังคงอยู่และไม่มีที่ไหนใกล้กับความต้องการของ CCK ในการจัดเก็บ
มีอะไรผิดปกติ / ขาดหายไปซึ่งทำให้ไม่สามารถบันทึกฟิลด์ที่กำหนดเองได้
อัปเดต: หวังว่าจะไม่ได้เก็บฟิลด์ที่กำหนดเองไว้ในฐานข้อมูลฉันหวังว่าจะเพิ่มคอลัมน์ในตาราง #__content ด้วยชื่อเดียวกันและลองใช้โดยไม่มีโชค
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 (ไม่มีฉลาก)
<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>