Files
CloudOps/docker-compose/mautic-setup/mautic-backup-files/docroot/app/bundles/LeadBundle/Services/ContactColumnsDictionary.php

56 lines
1.9 KiB
PHP
Executable File

<?php
namespace Mautic\LeadBundle\Services;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\LeadBundle\Model\FieldModel;
use Symfony\Contracts\Translation\TranslatorInterface;
class ContactColumnsDictionary
{
/**
* @var mixed[]
*/
private array $fieldList = [];
public function __construct(
protected FieldModel $fieldModel,
private TranslatorInterface $translator,
private CoreParametersHelper $coreParametersHelper,
) {
}
public function getColumns(): array
{
$columns = array_flip($this->coreParametersHelper->get('contact_columns', []));
$fields = $this->getFields();
foreach ($columns as $alias=>&$column) {
if (isset($fields[$alias])) {
$column = $fields[$alias];
}
}
return $columns;
}
public function getFields(): array
{
if ([] === $this->fieldList) {
$this->fieldList['name'] = sprintf(
'%s %s',
$this->translator->trans('mautic.core.firstname'),
$this->translator->trans('mautic.core.lastname')
);
$this->fieldList['email'] = $this->translator->trans('mautic.core.type.email');
$this->fieldList['location'] = $this->translator->trans('mautic.lead.lead.thead.location');
$this->fieldList['stage'] = $this->translator->trans('mautic.lead.stage.label');
$this->fieldList['points'] = $this->translator->trans('mautic.lead.points');
$this->fieldList['last_active'] = $this->translator->trans('mautic.lead.lastactive');
$this->fieldList['id'] = $this->translator->trans('mautic.core.id');
$this->fieldList = $this->fieldList + $this->fieldModel->getFieldList(false);
}
return $this->fieldList;
}
}