浏览代码

Minor - By default create the site in en + fix page creation

Julio Montoya 6 年之前
父节点
当前提交
71c807e4d0
共有 2 个文件被更改,包括 36 次插入44 次删除
  1. 1 0
      main/install/install.lib.php
  2. 35 44
      src/PageBundle/Controller/PageController.php

+ 1 - 0
main/install/install.lib.php

@@ -3153,6 +3153,7 @@ function finishInstallationWithContainer(
     $site->setEnabledTo(new \DateTime('+20 years'));
     $site->setRelativePath('');
     $site->setIsDefault(true);
+    $site->setLocale('en');
     $siteManager->save($site);
 
     // Create home page

+ 35 - 44
src/PageBundle/Controller/PageController.php

@@ -26,8 +26,10 @@ class PageController extends BaseController
      * @Route("/cms/page/latest/{number}")
      *
      * @param int $number
+     *
+     * @return Response
      */
-    public function getLatestPages($number)
+    public function getLatestPages($number): Response
     {
         $site = $this->container->get('sonata.page.site.selector')->retrieve();
 
@@ -80,50 +82,39 @@ class PageController extends BaseController
             'locale' => $request->getLocale(),
             'host' => $host,
         ];
+
         $site = $siteManager->findOneBy($criteria);
-        //$site = $siteSelector->retrieve();
-
-        if ($request->getLocale() !== $site->getLocale()) {
-            // Check if there's site for this locale
-            $siteManager = $container->get('sonata.page.manager.site');
-            $host = $request->getHost();
-            $criteria = [
-                'locale' => $request->getLocale(),
-                'host' => $host,
-            ];
-            $site = $siteManager->findOneBy($criteria);
-            if (!$site) {
-                // Create new site for this host and language
-                $site = $siteManager->create();
-                $site->setHost($host);
-                $site->setEnabled(true);
-                $site->setName($host.' in language '.$request->getLocale());
-                $site->setEnabledFrom(new \DateTime('now'));
-                $site->setEnabledTo(new \DateTime('+20 years'));
-                $site->setRelativePath('');
-                $site->setIsDefault(false);
-                $site->setLocale($request->getLocale());
-                $site = $siteManager->save($site);
-
-                // Create first root page
-
-                /** @var PageManager $pageManager */
-                $pageManager = $container->get('sonata.page.manager.page');
-                /** @var \Sonata\PageBundle\Model\Page $page */
-                $page = $pageManager->create();
-                $page->setSlug('homepage');
-                $page->setUrl('/');
-                $page->setName('homepage');
-                $page->setTitle('home');
-                $page->setEnabled(true);
-                $page->setDecorate(1);
-                $page->setRequestMethod('GET|POST|HEAD|DELETE|PUT');
-                $page->setTemplateCode('default');
-                $page->setRouteName('homepage');
-                //$page->setParent($this->getReference('page-homepage'));
-                $page->setSite($site);
-                $pageManager->save($page);
-            }
+        // If site doesn't exists or the site has a different locale from request, create new one.
+        if (!$site || ($site && ($request->getLocale() !== $site->getLocale()))) {
+            // Create new site for this host and language
+            $site = $siteManager->create();
+            $site->setHost($host);
+            $site->setEnabled(true);
+            $site->setName($host.' in language '.$request->getLocale());
+            $site->setEnabledFrom(new \DateTime('now'));
+            $site->setEnabledTo(new \DateTime('+20 years'));
+            $site->setRelativePath('');
+            $site->setIsDefault(false);
+            $site->setLocale($request->getLocale());
+            $site = $siteManager->save($site);
+
+            // Create first root page
+            /** @var PageManager $pageManager */
+            $pageManager = $container->get('sonata.page.manager.page');
+            /** @var \Sonata\PageBundle\Model\Page $page */
+            $page = $pageManager->create();
+            $page->setSlug('homepage');
+            $page->setUrl('/');
+            $page->setName('homepage');
+            $page->setTitle('home');
+            $page->setEnabled(true);
+            $page->setDecorate(1);
+            $page->setRequestMethod('GET|POST|HEAD|DELETE|PUT');
+            $page->setTemplateCode('default');
+            $page->setRouteName('homepage');
+            //$page->setParent($this->getReference('page-homepage'));
+            $page->setSite($site);
+            $pageManager->save($page);
         }
 
         $em = $this->getDoctrine()->getManager();