मैं प्रत्येक #__content आइटम में एक एकल, सरल क्षेत्र जोड़ने की कोशिश कर रहा हूं, और मैंने "कॉन्टैक्ट" के लिए "सामग्री" को प्रतिस्थापित करते हुए, कस्टम घटकों को कोर घटकों में जोड़ने के लिए बहुत सावधानी से अनुसरण किया है । मेरे पास अब एक इंस्टॉल करने योग्य प्लगइन है जिसमें सफलतापूर्वक व्यवस्थापक सामग्री आइटम संपादन फ़ॉर्म पर टैब / फ़ील्ड शामिल है, और उस pesky "बचत" सुविधा को छोड़कर, आश्चर्यजनक रूप से काम करता है।
सहेजने का एकमात्र संदर्भ है (फिर, संपर्क के बजाय सामग्री):
अतिरिक्त फ़ील्ड प्लगइन निर्देशिका में फ़ाइल रूपों / contact.xml से भरी हुई हैं। यह महत्वपूर्ण है कि ये फ़ील्ड फ़ील्ड तत्व में हैं, जिनके नाम "परमेस" पर सेट संपत्ति हैं। यदि आप यह गुण नाम सेट नहीं करते हैं, तो फ़ील्ड व्यवस्थापक साइट में दिखाई देंगे, लेकिन मान सहेजे नहीं जाएंगे।
तथ्य यह है कि यह सावधानी नोट मौजूद है, मुझे सुझाव देता है कि जूमला को पता होना चाहिए कि क्षेत्र वहां हैं, और कोर कोड इसे संभालता है, लेकिन चूंकि यह बचत नहीं कर रहा है, इसलिए मैं सोच रहा हूं कि क्या कोई और घटना है जिसे मुझे जोड़ना चाहिए।
यहाँ पर मुझे जो सरल क्षेत्र चाहिए वह है - उपयोगकर्ता के लिए अदृश्य, लेकिन फिर भी महत्वपूर्ण है, और कहीं भी इसे संग्रहीत करने के लिए 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>