]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Create internal setting on install & fixtures
authorJeremy Benoist <jeremy.benoist@gmail.com>
Thu, 21 Jan 2016 11:23:45 +0000 (12:23 +0100)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Sun, 31 Jan 2016 13:48:26 +0000 (14:48 +0100)
src/Wallabag/CoreBundle/Command/InstallCommand.php
src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php [new file with mode: 0644]

index 7a7e3a643f63271d2017cc24ef09dea96f9ca326..f6c85cf973f446a5b446a585ab9f43241fc95cf4 100644 (file)
@@ -12,6 +12,7 @@ use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Question\ConfirmationQuestion;
 use Symfony\Component\Console\Question\Question;
 use Wallabag\CoreBundle\Entity\Config;
+use Craue\ConfigBundle\Entity\Setting;
 
 class InstallCommand extends ContainerAwareCommand
 {
@@ -212,6 +213,95 @@ class InstallCommand extends ContainerAwareCommand
 
         $em->persist($config);
 
+        // cleanup before insert new stuff
+        $em->createQuery('DELETE FROM CraueConfigBundle:Setting')->execute();
+
+        $settings = [
+            [
+                'name' => 'download_pictures',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'carrot',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_diaspora',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'diaspora_url',
+                'value' => 'http://diasporapod.com',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_shaarli',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'shaarli_url',
+                'value' => 'http://myshaarli.com',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_mail',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_twitter',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'export_epub',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'export_mobi',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'export_pdf',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'pocket_consumer_key',
+                'value' => NULL,
+                'section' => 'import',
+            ],
+            [
+                'name' => 'show_printlink',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'wallabag_support_url',
+                'value' => 'https://www.wallabag.org/pages/support.html',
+                'section' => 'misc',
+            ],
+            [
+                'name' => 'wallabag_url',
+                'value' => 'http://v2.wallabag.org',
+                'section' => 'misc',
+            ],
+        ];
+
+        foreach ($settings as $setting) {
+            $newSetting = new Setting();
+            $newSetting->setName($setting['name']);
+            $newSetting->setValue($setting['value']);
+            $newSetting->setSection($setting['section']);
+            $em->persist($newSetting);
+        }
+
         $em->flush();
 
         $this->defaultOutput->writeln('');
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
new file mode 100644 (file)
index 0000000..863d28f
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+
+namespace Wallabag\CoreBundle\DataFixtures\ORM;
+
+use Doctrine\Common\DataFixtures\AbstractFixture;
+use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
+use Doctrine\Common\Persistence\ObjectManager;
+use Craue\ConfigBundle\Entity\Setting;
+
+class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load(ObjectManager $manager)
+    {
+        $settings = [
+            [
+                'name' => 'download_pictures',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'carrot',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_diaspora',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'diaspora_url',
+                'value' => 'http://diasporapod.com',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_shaarli',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'shaarli_url',
+                'value' => 'http://myshaarli.com',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_mail',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'share_twitter',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'export_epub',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'export_mobi',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'export_pdf',
+                'value' => '1',
+                'section' => 'export',
+            ],
+            [
+                'name' => 'pocket_consumer_key',
+                'value' => NULL,
+                'section' => 'import',
+            ],
+            [
+                'name' => 'show_printlink',
+                'value' => '1',
+                'section' => 'entry',
+            ],
+            [
+                'name' => 'wallabag_support_url',
+                'value' => 'https://www.wallabag.org/pages/support.html',
+                'section' => 'misc',
+            ],
+            [
+                'name' => 'wallabag_url',
+                'value' => 'http://v2.wallabag.org',
+                'section' => 'misc',
+            ],
+        ];
+
+        foreach ($settings as $setting) {
+            $newSetting = new Setting();
+            $newSetting->setName($setting['name']);
+            $newSetting->setValue($setting['value']);
+            $newSetting->setSection($setting['section']);
+            $manager->persist($newSetting);
+        }
+
+        $manager->flush();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getOrder()
+    {
+        return 50;
+    }
+}