Есть ли возможность сделать автозаполнение поля записи через TCA? - PullRequest
0 голосов
/ 04 апреля 2019

Интересно, возможно ли создать какое-либо поле в пользовательской записи в пользовательском расширении для автоматического получения и сохранения данных из другого поля без использования задачи или перехватчика планировщика?

Я пытаюсь получить sectionот 1: n отношение к обычному news;

Один section может иметь несколько news добавленных, но нет news информации о его родителе section.

Цельэто автоматически сохранять информацию о section в записи news.

Я пробовал это, просто используя тип поля group, но, конечно, он будет показывать только контент, который я могу вставить в него.field.

Пример ниже:

Домен / Модель:

/**
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 * @lazy
 */
protected $sections;

[...]

/**
 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 * @return void
 */
 public function setSection( $section)
{
    $this->section = $section;
}

/**
 * @return  \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\XXX\XXX\Domain\Model\Section>
 */
public function getSections()
{
    return $this->sections;
}

/**
 * @param \XXX\XXX\Domain\Model\Section $sections
 * @return void
 */
public function addSection(\XXX\XXX\Domain\Model\Section $sections)
{
    $this->sections->attach($sections);
}

/**
 * @param \XXX\XXX\Domain\Model\Section $sections
 * @return void
 */
public function removeSection(\XXX\XXX\Domain\Model\Section $sections)
{
    $this->sections->detach($sections);
}

TCA:

    'xxx_newsframework_sections' => [
        'label' => $localLang . 'tx_news_domain_model_news.xxx_newsframework_sections',
        'config' => [
            'type' => 'group',
            'internal_type' => 'db',
            'allowed' => 'tx_xxx_domain_model_section',
            'MM' => 'tx_xxxnewslettersystem_section_news_mm',
            'MM_table_where' => 'AND tx_xxx_news_mm.news_id=###THIS_UID###',
            'MM_oppositeUsage' => [],
            'size' => 10,
            'fieldWizard' => [
                'recordsOverview' => [
                    'disabled' => true,
                ],
            ],
        ],
    ],

ext_tables.sql поля выше

xxx_newsframework_sections int(11) DEFAULT '0' NOT NULL
...