function run($request) { $data = (require_once __DIR__ . '/../../../BlockFiller.php'); if ($data) { foreach (Block::get() as $block) { $block->delete(); } } //Loop through all blocks, defined in root/BlockFiller.php foreach ($data as $key => $blockData) { $block = Block::create($blockData); //Find page by classname, so it can link block to page $page = Page::get()->filter(['ClassName' => $blockData['ClassName']])->first(); //If page is found, write block if (isset($page->ID)) { $block->PageID = $page->ID; $block->write(); //Loop through all blocks translations, which are defined in block section under 'trans' foreach ($blockData['trans'] as $key => $translation) { $blockTrans = BlockTranslation::create($translation); $blockTrans->BlockID = $block->ID; $blockTrans->write(); } var_dump($block->Title); } } }
public function write() { $id = parent::write(); foreach (json_decode(SS_LANGUAGES) as $slang => $lang) { if (isset($this->record['Title-' . $slang])) { $existingTrans = BlockTranslation::get()->filter(['BlockID' => $id, 'Language' => $slang])->first(); $trans = ['Language' => $slang]; foreach ($this->record as $key => $value) { if (strpos($key, $slang) !== false) { $key = explode('-', $key); $trans[$key[0]] = $value; } } if ($existingTrans) { DB::query('UPDATE "BlockTranslation" SET "Title"=\'' . $trans['Title'] . '\', "Content"=\'' . pg_escape_string($trans['Content']) . '\' WHERE "ID" = ' . $existingTrans->ID . ';'); } else { $newTrans = BlockTranslation::create(); $newTrans->Title = $trans['Title']; $newTrans->Content = $trans['Content']; $newTrans->Language = $slang; $newTrans->BlockID = $id; $newTrans->write(); } } } }