tl_page::generateArticle PHP Method

generateArticle() public method

Automatically create an article in the main column of a new page
public generateArticle ( DataContainer $dc )
$dc DataContainer
    public function generateArticle(DataContainer $dc)
    {
        // Return if there is no active record (override all)
        if (!$dc->activeRecord) {
            return;
        }
        // No title or not a regular page
        if ($dc->activeRecord->title == '' || !in_array($dc->activeRecord->type, array('regular', 'error_403', 'error_404'))) {
            return;
        }
        /** @var Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface $objSessionBag */
        $objSessionBag = System::getContainer()->get('session')->getBag('contao_backend');
        $new_records = $objSessionBag->get('new_records');
        // Not a new page
        if (!$new_records || is_array($new_records[$dc->table]) && !in_array($dc->id, $new_records[$dc->table])) {
            return;
        }
        // Check whether there are articles (e.g. on copied pages)
        $objTotal = $this->Database->prepare("SELECT COUNT(*) AS count FROM tl_article WHERE pid=?")->execute($dc->id);
        if ($objTotal->count > 0) {
            return;
        }
        // Create article
        $arrSet['pid'] = $dc->id;
        $arrSet['sorting'] = 128;
        $arrSet['tstamp'] = time();
        $arrSet['author'] = $this->User->id;
        $arrSet['inColumn'] = 'main';
        $arrSet['title'] = $dc->activeRecord->title;
        $arrSet['alias'] = str_replace('/', '-', $dc->activeRecord->alias);
        // see #5168
        $arrSet['published'] = $dc->activeRecord->published;
        $this->Database->prepare("INSERT INTO tl_article %s")->set($arrSet)->execute();
    }