Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug Fix and optimization #28

Open
rayfurak opened this issue Jun 29, 2018 · 1 comment
Open

Bug Fix and optimization #28

rayfurak opened this issue Jun 29, 2018 · 1 comment

Comments

@rayfurak
Copy link

rayfurak commented Jun 29, 2018

Hallo!
Bei der Installation des Moduls müssen Sie beim Lesen der CSV-Datei explizit einen Begrenzer im Konstruktor angeben. Andernfalls wird die Datei in einigen Situationen nicht analysiert:
$this ->_csvReader->setDelimiter(',');
Außerdem müssen Sie das Vorhandensein von Seiten mit diesen IDs überprüfen, da vorhandene Seiten überschrieben werden. Hier ist ein Beispiel für den Optimierungscode:

public function install()
{
$fixtures = ['Magenerds_GermanLaw::fixtures/pages.csv'];

    foreach ($fixtures as $fileName) {
        $fileName = $this->_fixtureManager->getFixture($fileName);
        if (!file_exists($fileName)) {
            continue;
        }

        $rows = $this->_csvReader->getData($fileName);
        $header = array_values(array_shift($rows));

        foreach ($rows as $row) {

            $cmsData = array_combine($header, $row);

            if (!$this->checkIfPageExists($cmsData['identifier'])) {
                /** @var $page \Magento\Cms\Api\Data\PageInterface */
                $page = $this->_pageFactory->create()
                    ->load($cmsData['identifier'], 'identifier')
                    ->addData($cmsData)
                    ->setStores([\Magento\Store\Model\Store::DEFAULT_STORE_ID]);

                $this->_pageRepository->save($page);
            }

        }
    }
}

public function checkIfPageExists($identifier)
{
    $cmsPage = $this->_pageFactory->create();
    $cmsPage->load($identifier);
    if ($pageId = $cmsPage->getId()) {
        return $pageId;
    } else {
        return false;
    }
}`

PS:
Hier wird die vorherige Datei heruntergeladen
$fixtureFile = 'Magenerds_GermanLaw::fixtures/tax_rules.csv';
$fixtureFileName = $this->_fixtureManager->getFixture($fixtureFile);
if (!file_exists($fileName)) {
continue;
}
$rows = $this->_csvReader->getData($fileName);
$header = array_values(array_shift($rows));

@sydekumf
Copy link
Contributor

sydekumf commented Jul 2, 2018

Hallo,

das Überschreiben ist jetzt mal so gewollt, falls sich etwas ändert in Zukunft. Der Delimiter dürfte der Default Delimiter, also , sein oder?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants