diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml
index 5dd991c3a..b438c10e0 100644
--- a/core/lib/Thelia/Config/Resources/routing/admin.xml
+++ b/core/lib/Thelia/Config/Resources/routing/admin.xml
@@ -466,7 +466,7 @@
Thelia\Controller\Admin\ContentController::createAction
-
+
Thelia\Controller\Admin\ContentController::updateAction
\d+
diff --git a/core/lib/Thelia/Model/Breadcrumb/FolderBreadcrumbTrait.php b/core/lib/Thelia/Model/Breadcrumb/FolderBreadcrumbTrait.php
new file mode 100644
index 000000000..af000b3e9
--- /dev/null
+++ b/core/lib/Thelia/Model/Breadcrumb/FolderBreadcrumbTrait.php
@@ -0,0 +1,86 @@
+generate('admin.catalog', [], Router::ABSOLUTE_URL);
+ $breadcrumb = [
+ $translator->trans('Home', [], 'bo.default') => $router->generate('admin.home.view', [], Router::ABSOLUTE_URL),
+ $translator->trans('Folder', [], 'bo.default') => $catalogUrl,
+ ];
+
+ $folderPath = new FolderPath($container);
+ $folderPath->initializeArgs([
+ 'folder' => $folderId,
+ 'visible' => '*'
+ ]);
+
+ $results = $folderPath->buildArray();
+
+ foreach ($results as $result) {
+ $breadcrumb[$result['TITLE']] = sprintf("%s?folder_id=%d",
+ $router->generate('admin.folders.default',[], Router::ABSOLUTE_URL),
+ $result['ID']
+ );
+ }
+
+ $locale = $result['LOCALE'];
+
+ return $breadcrumb;
+ }
+
+ public function getFolderBreadcrumb($router, $container, $tab)
+ {
+ $locale = null;
+ $folder = $this->getFolder();
+ $breadcrumb = $this->getBaseBreadcrumb($router, $container, $this->getParentId(), $locale);
+
+ $folder->setLocale($locale);
+
+ $breadcrumb[$folder->getTitle()] = sprintf("%s?current_tab=%s",
+ $router->generate('admin.folders.update',['folder_id' => $folder->getId()], Router::ABSOLUTE_URL),
+ $tab
+ );
+
+ return $breadcrumb;
+ }
+
+ public function getContentBreadcrumb(Router $router, ContainerInterface $container, $tab)
+ {
+ $content = $this->getContent();
+ $locale = null;
+
+ $breadcrumb = $this->getBaseBreadcrumb($router, $container, $content->getDefaultFolderId(), $locale);
+
+ $content->setLocale($locale);
+
+ $request = $container->get('request');
+ //$breadcrumb[$product->getTitle()] = $product->getUrl().'¤t_tab=images';
+ $breadcrumb[$content->getTitle()] = sprintf("%s?current_tab=%s",
+ $router->generate('admin.content.update', ['content_id' => $content->getId()], Router::ABSOLUTE_URL),
+ $tab
+ );
+
+ return $breadcrumb;
+ }
+}
\ No newline at end of file
diff --git a/core/lib/Thelia/Model/ContentDocument.php b/core/lib/Thelia/Model/ContentDocument.php
index 0ffa355d7..bd3e16ec9 100644
--- a/core/lib/Thelia/Model/ContentDocument.php
+++ b/core/lib/Thelia/Model/ContentDocument.php
@@ -2,13 +2,18 @@
namespace Thelia\Model;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Router;
use Thelia\Model\Base\ContentDocument as BaseContentDocument;
use Propel\Runtime\Connection\ConnectionInterface;
+use Thelia\Model\Breadcrumb\BreadcrumbInterface;
+use Thelia\Model\Breadcrumb\FolderBreadcrumbTrait;
-class ContentDocument extends BaseContentDocument
+class ContentDocument extends BaseContentDocument implements BreadcrumbInterface
{
use \Thelia\Model\Tools\ModelEventDispatcherTrait;
use \Thelia\Model\Tools\PositionManagementTrait;
+ use FolderBreadcrumbTrait;
/**
* Calculate next position relative to our parent
@@ -62,4 +67,15 @@ class ContentDocument extends BaseContentDocument
return true;
}
+
+ /**
+ *
+ * return the complete breadcrumb for a given resource.
+ *
+ * @return array
+ */
+ public function getBreadcrumb(Router $router, ContainerInterface $container, $tab)
+ {
+ return $this->getContentBreadcrumb($router, $container, $tab);
+ }
}
diff --git a/core/lib/Thelia/Model/ContentImage.php b/core/lib/Thelia/Model/ContentImage.php
index d8b919647..98fe5a669 100644
--- a/core/lib/Thelia/Model/ContentImage.php
+++ b/core/lib/Thelia/Model/ContentImage.php
@@ -2,13 +2,18 @@
namespace Thelia\Model;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Router;
use Thelia\Model\Base\ContentImage as BaseContentImage;
use Propel\Runtime\Connection\ConnectionInterface;
+use Thelia\Model\Breadcrumb\BreadcrumbInterface;
+use Thelia\Model\Breadcrumb\FolderBreadcrumbTrait;
-class ContentImage extends BaseContentImage
+class ContentImage extends BaseContentImage implements BreadcrumbInterface
{
use \Thelia\Model\Tools\ModelEventDispatcherTrait;
use \Thelia\Model\Tools\PositionManagementTrait;
+ use FolderBreadcrumbTrait;
/**
* Calculate next position relative to our parent
@@ -62,4 +67,15 @@ class ContentImage extends BaseContentImage
return true;
}
+
+ /**
+ *
+ * return the complete breadcrumb for a given resource.
+ *
+ * @return array
+ */
+ public function getBreadcrumb(Router $router, ContainerInterface $container, $tab)
+ {
+ return $this->getContentBreadcrumb($router, $container, $tab);
+ }
}
diff --git a/core/lib/Thelia/Model/FolderDocument.php b/core/lib/Thelia/Model/FolderDocument.php
index 3fce9450f..9e38d37fc 100644
--- a/core/lib/Thelia/Model/FolderDocument.php
+++ b/core/lib/Thelia/Model/FolderDocument.php
@@ -2,13 +2,18 @@
namespace Thelia\Model;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Router;
use Thelia\Model\Base\FolderDocument as BaseFolderDocument;
use Propel\Runtime\Connection\ConnectionInterface;
+use Thelia\Model\Breadcrumb\BreadcrumbInterface;
+use Thelia\Model\Breadcrumb\FolderBreadcrumbTrait;
-class FolderDocument extends BaseFolderDocument
+class FolderDocument extends BaseFolderDocument implements BreadcrumbInterface
{
use \Thelia\Model\Tools\ModelEventDispatcherTrait;
use \Thelia\Model\Tools\PositionManagementTrait;
+ use FolderBreadcrumbTrait;
/**
* Calculate next position relative to our parent
@@ -62,4 +67,9 @@ class FolderDocument extends BaseFolderDocument
return true;
}
+
+ public function getBreadcrumb(Router $router, ContainerInterface $container, $tab)
+ {
+ return $this->getFolderBreadcrumb($router, $container, $tab);
+ }
}
diff --git a/core/lib/Thelia/Model/FolderImage.php b/core/lib/Thelia/Model/FolderImage.php
index 8c66e98d2..dfc630190 100644
--- a/core/lib/Thelia/Model/FolderImage.php
+++ b/core/lib/Thelia/Model/FolderImage.php
@@ -2,13 +2,18 @@
namespace Thelia\Model;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Router;
use Thelia\Model\Base\FolderImage as BaseFolderImage;
use Propel\Runtime\Connection\ConnectionInterface;
+use Thelia\Model\Breadcrumb\BreadcrumbInterface;
+use Thelia\Model\Breadcrumb\FolderBreadcrumbTrait;
-class FolderImage extends BaseFolderImage
+class FolderImage extends BaseFolderImage implements BreadcrumbInterface
{
use \Thelia\Model\Tools\ModelEventDispatcherTrait;
use \Thelia\Model\Tools\PositionManagementTrait;
+ use FolderBreadcrumbTrait;
/**
* Calculate next position relative to our parent
@@ -62,4 +67,15 @@ class FolderImage extends BaseFolderImage
return true;
}
+
+ /**
+ *
+ * return the complete breadcrumb for a given resource.
+ *
+ * @return array
+ */
+ public function getBreadcrumb(Router $router, ContainerInterface $container, $tab)
+ {
+ return $this->getFolderBreadcrumb($router, $container, $tab);
+ }
}