Files
2017-11-14 15:04:59 +01:00

72 lines
1.8 KiB
PHP
Executable File

<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Solwin\Cpanel\Model;
use Magento\Framework\Setup\SampleData\Context as SampleDataContext;
class Page
{
/**
* @var \Magento\Framework\Setup\SampleData\FixtureManager
*/
private $fixtureManager;
/**
* @var \Magento\Framework\File\Csv
*/
protected $csvReader;
/**
* @var \Magento\Cms\Model\PageFactory
*/
protected $pageFactory;
/**
* @param SampleDataContext $sampleDataContext
* @param \Magento\Cms\Model\PageFactory $pageFactory
*/
public function __construct(
SampleDataContext $sampleDataContext,
\Magento\Cms\Model\PageFactory $pageFactory
) {
$this->fixtureManager = $sampleDataContext->getFixtureManager();
$this->csvReader = $sampleDataContext->getCsvReader();
$this->pageFactory = $pageFactory;
}
/**
* @param array $fixtures
* @throws \Exception
*/
public function install(array $fixtures)
{
foreach ($fixtures as $fileName) {
$fileName = $this->fixtureManager->getFixture($fileName);
if (!file_exists($fileName)) {
continue;
}
$rows = $this->csvReader->getData($fileName);
$header = array_shift($rows);
foreach ($rows as $row) {
$data = [];
foreach ($row as $key => $value) {
$data[$header[$key]] = $value;
}
$row = $data;
$this->pageFactory->create()
->load($row['identifier'], 'identifier')
->addData($row)
->setStores([\Magento\Store\Model\Store::DEFAULT_STORE_ID])
->save();
}
}
}
}