각 #__content 항목에 하나의 간단한 필드를 추가하려고하는데 튜토리얼을 매우 신중하게 따랐습니다. 핵심 구성 요소에 사용자 정의 필드 추가에 "contact"를 "content"로 대체했습니다. 이제 관리자 컨텐트 항목 편집 양식에 탭 / 필드를 성공적으로 포함하는 설치 가능한 플러그인이 있으며 그 성가신 "저장"기능을 제외하고는 훌륭하게 작동합니다.
저축에 대한 유일한 언급은 (다시 말해서, 연락처 대신에 내용)입니다.
추가 필드는 플러그인 디렉토리의 forms / contact.xml 파일에서로드됩니다. 이러한 필드는 name 속성이 "params"로 설정된 fields 요소에 있어야합니다. 이 속성 이름을 설정하지 않으면 필드가 관리 사이트에 나타나지만 값은 저장되지 않습니다.
이주의 사항이 있다는 사실은 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>