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(); }