Skip to content

Commit 2476589

Browse files
author
Leny BERNARD
committed
Merge pull request #348 from Charlie-Lucas/master
Add the possibility to use businessTemplate constant to generate business links
2 parents fe8eef7 + e0aa1e7 commit 2476589

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

Bundle/CoreBundle/DependencyInjection/Configuration.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ public function getConfigTreeBuilder()
3535
->defaultValue(['%kernel.root_dir%/../src', '%kernel.root_dir%/../vendor/victoire/victoire/Bundle/BlogBundle', '%kernel.root_dir%/../vendor/friendsofvictoire'])
3636
->end()
3737
->end()
38+
->children()
39+
->variableNode('businessTemplates')
40+
->defaultNull()
41+
->treatNullLike([])
42+
->end()
43+
->end()
3844
->children()
3945
->variableNode('applicative_bundle')
4046
->defaultNull()

Bundle/CoreBundle/DependencyInjection/VictoireCoreExtension.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,8 @@ public function load(array $configs, ContainerBuilder $container)
7474
$container->setParameter(
7575
'victoire_core.base_paths', $config['base_paths']
7676
);
77+
$container->setParameter(
78+
'victoire_core.businessTemplates', $config['businessTemplates']
79+
);
7780
}
7881
}

Bundle/WidgetBundle/Resources/config/services.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ services:
7070
- @victoire_business_page.business_page_helper
7171
- @victoire_page.page_helper
7272
- @doctrine.orm.entity_manager
73-
- @victoire_core.url_builder
73+
- %victoire_core.businessTemplates%
7474
tags:
7575
- { name: twig.extension }
7676

Bundle/WidgetBundle/Twig/LinkExtension.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,29 @@ class LinkExtension extends \Twig_Extension
2222
protected $BusinessPageHelper; // @victoire_business_page.business_page_helper
2323
protected $pageHelper;
2424
protected $em; // @doctrine.orm.entity_manager
25+
protected $abstractBusinessTemplates;
2526

27+
/**
28+
* LinkExtension constructor.
29+
*
30+
* @param Router $router
31+
* @param RequestStack $requestStack
32+
* @param $analytics
33+
* @param BusinessEntityHelper $businessEntityHelper
34+
* @param BusinessPageHelper $BusinessPageHelper
35+
* @param PageHelper $pageHelper
36+
* @param EntityManager $em
37+
* @param array $abstractBusinessTemplates
38+
*/
2639
public function __construct(
2740
Router $router,
2841
RequestStack $requestStack,
2942
$analytics,
3043
BusinessEntityHelper $businessEntityHelper,
3144
BusinessPageHelper $BusinessPageHelper,
3245
PageHelper $pageHelper,
33-
EntityManager $em
46+
EntityManager $em,
47+
$abstractBusinessTemplates = []
3448
) {
3549
$this->router = $router;
3650
$this->request = $requestStack->getCurrentRequest();
@@ -39,6 +53,7 @@ public function __construct(
3953
$this->BusinessPageHelper = $BusinessPageHelper;
4054
$this->pageHelper = $pageHelper;
4155
$this->em = $em;
56+
$this->abstractBusinessTemplates = $abstractBusinessTemplates;
4257
}
4358

4459
/**
@@ -212,6 +227,9 @@ public function victoireMenuLink($parameters, $label, $attr = [])
212227

213228
public function victoireBusinessLink($businessEntityInstance, $templateId = null, $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
214229
{
230+
if (isset($this->abstractBusinessTemplates[$templateId])) {
231+
$templateId = $this->abstractBusinessTemplates[$templateId];
232+
}
215233
if (!$templateId) {
216234
$templateId = $this->BusinessPageHelper
217235
->guessBestPatternIdForEntity(new \ReflectionClass($businessEntityInstance), $businessEntityInstance->getId(), $this->em);

0 commit comments

Comments
 (0)