* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Import\EntityField\Provider; use PrestaShop\PrestaShop\Core\Import\EntityField\EntityField; use PrestaShop\PrestaShop\Core\Import\EntityField\EntityFieldCollection; use Symfony\Contracts\Translation\TranslatorInterface; /** * Class StoreContactFieldCollectionFactory defines a store contact fields provider. */ final class StoreContactFieldsProvider implements EntityFieldsProviderInterface { /** * @var TranslatorInterface */ private $translator; /** * @param TranslatorInterface $translator */ public function __construct(TranslatorInterface $translator) { $this->translator = $translator; } /** * {@inheritdoc} */ public function getCollection() { $fields = [ new EntityField('id', $this->trans('ID', 'Admin.Global')), new EntityField('active', $this->trans('Active (0/1)', 'Admin.Advparameters.Feature')), new EntityField('name', $this->trans('Name', 'Admin.Global')), new EntityField('address1', $this->trans('Address', 'Admin.Global'), '', true), new EntityField('address2', $this->trans('Address (2)', 'Admin.Advparameters.Feature')), new EntityField('postcode', $this->trans('Zip/Postal code', 'Admin.Global')), new EntityField('state', $this->trans('State', 'Admin.Global')), new EntityField('city', $this->trans('City', 'Admin.Global'), '', true), new EntityField('country', $this->trans('Country', 'Admin.Global'), '', true), new EntityField('latitude', $this->trans('Latitude', 'Admin.Advparameters.Feature'), '', true), new EntityField('longitude', $this->trans('Longitude', 'Admin.Advparameters.Feature'), '', true), new EntityField('phone', $this->trans('Phone', 'Admin.Global')), new EntityField('fax', $this->trans('Fax', 'Admin.Global')), new EntityField('email', $this->trans('Email address', 'Admin.Global')), new EntityField('note', $this->trans('Note', 'Admin.Global')), new EntityField('hours', $this->trans('Hours (x,y,z...)', 'Admin.Advparameters.Feature')), new EntityField('image', $this->trans('Image URL', 'Admin.Advparameters.Feature')), new EntityField( 'shop', $this->trans('ID / Name of the store', 'Admin.Advparameters.Feature'), $this->trans('Ignore this field if you don\'t use the Multistore tool. If you leave this field empty, the default store will be used.', 'Admin.Advparameters.Help') ), ]; return EntityFieldCollection::createFromArray($fields); } /** * A shorter name method for translations. * * @param string $id translation ID * @param string $domain translation domain * * @return string */ private function trans($id, $domain = 'Admin.Advparameters.Feature') { return $this->translator->trans($id, [], $domain); } }