Skip to content

Commit 5d3fdb5

Browse files
GeneraleCauchemarartggd
authored andcommitted
Add suffix and prefix options to meta title.
* Adding Block Resolver to the list of services * Adds the possibility to configure a prefix and/or a suffix to the metatitle * Fix title and description in placeholder * Revert "Adding Block Resolver to the list of services" This reverts commit a192622.
1 parent 2b9fd80 commit 5d3fdb5

File tree

4 files changed

+16
-22
lines changed

4 files changed

+16
-22
lines changed

src/DependencyInjection/Configuration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public function getConfigTreeBuilder()
3434
->addDefaultsIfNotSet()
3535
->children()
3636
->scalarNode('default_title')->defaultValue('Umanit Seo - Customize this default title to your needs.')->end()
37+
->scalarNode('title_prefix')->defaultValue('')->end()
38+
->scalarNode('title_suffix')->defaultValue('')->end()
3739
->scalarNode('default_description')->defaultValue('Umanit Seo - Customize this default description to your needs.')->end()
3840
->end()
3941
->end()

src/Form/Type/SeoMetadataType.php

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Umanit\SeoBundle\Entity\UrlHistory;
1919
use Umanit\SeoBundle\Utils\EntityParser\Excerpt;
2020
use Umanit\SeoBundle\Utils\EntityParser\Title;
21+
use Umanit\SeoBundle\Utils\SeoMetadataResolver;
2122

2223
/**
2324
* Class SeoMetadataType
@@ -40,25 +41,26 @@ class SeoMetadataType extends AbstractType
4041

4142
/** @var EntityManagerInterface */
4243
private $em;
44+
/**
45+
* @var SeoMetadataResolver
46+
*/
47+
private $seoMetadataResolver;
4348

4449
/**
4550
* SeoMetadataType constructor.
4651
*
47-
* @param Excerpt $excerpt
48-
* @param Title $title
52+
* @param SeoMetadataResolver $seoMetadataResolver
4953
* @param TranslatorInterface|\Symfony\Component\Translation\TranslatorInterface $translator
50-
* @param EntityManagerInterface $em
51-
* @param array $metadataConfig
54+
* @param EntityManagerInterface $em
55+
* @param array $metadataConfig
5256
*/
5357
public function __construct(
54-
Excerpt $excerpt,
55-
Title $title,
58+
SeoMetadataResolver $seoMetadataResolver,
5659
$translator,
5760
EntityManagerInterface $em,
5861
array $metadataConfig
5962
) {
60-
$this->excerpt = $excerpt;
61-
$this->title = $title;
63+
$this->seoMetadataResolver = $seoMetadataResolver;
6264
$this->metadataConfig = $metadataConfig;
6365
$this->translator = $translator;
6466
$this->em = $em;
@@ -94,25 +96,15 @@ public function buildForm(FormBuilderInterface $builder, array $options)
9496
$locale = method_exists($parentModelData, 'getLocale') ? $parentModelData->getLocale() : null;
9597
// Title
9698
if (null === $seoMetadata->getTitle()) {
97-
$title = $this->title->fromEntity($parentModelData) ?? $this->translator->trans(
98-
$this->metadataConfig['default_title'],
99-
[],
100-
$options['translation_domain'],
101-
$locale
102-
);
99+
$title = $this->seoMetadataResolver->metaTitle($parentModelData);
103100

104101
$this->setSubFormOption($seoForm, 'title', 'attr', [
105102
'placeholder' => html_entity_decode($title),
106103
]);
107104
}
108105
// Description
109106
if (null === $seoMetadata->getDescription()) {
110-
$description = $this->excerpt->fromEntity($parentModelData) ?? $this->translator->trans(
111-
$this->metadataConfig['default_description'],
112-
[],
113-
$options['translation_domain'],
114-
$locale
115-
);
107+
$description = $this->seoMetadataResolver->metaDescription($parentModelData);
116108

117109
$this->setSubFormOption($seoForm, 'description', 'attr', [
118110
'placeholder' => html_entity_decode($description),

src/Resources/config/services.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ services:
8383
# Forms
8484
umanit_seo.form_type.seo_metadata_type:
8585
class: Umanit\SeoBundle\Form\Type\SeoMetadataType
86-
arguments: ['@umanit_seo.utils_entity_parser.excerpt', '@umanit_seo.utils_entity_parser.title', '@translator', '@doctrine.orm.entity_manager','%umanit_seo.metadata%']
86+
arguments: ['@umanit_seo.utils.seo_metadata_resolver', '@translator', '@doctrine.orm.entity_manager','%umanit_seo.metadata%']
8787
tags:
8888
- { name: form.type, alias: Umanit\SeoBundle\Form\Type\SeoMetadataType }
8989
Umanit\SeoBundle\Form\Type\SeoMetadataType: '@umanit_seo.form_type.seo_metadata_type'

src/Utils/SeoMetadataResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function __construct(Title $title, Excerpt $excerpt, array $metadataConfi
4646
*/
4747
public function metaTitle(?object $entity): string
4848
{
49-
return $this->meta($entity, 'title');
49+
return $this->metadataConfig['title_prefix'].$this->meta($entity, 'title').$this->metadataConfig['title_suffix'];
5050
}
5151

5252
/**

0 commit comments

Comments
 (0)