Spaces:
No application file
No application file
namespace Mautic\PageBundle\Model; | |
use Mautic\CoreBundle\Helper\CoreParametersHelper; | |
use Mautic\LeadBundle\Tracker\ContactTracker; | |
use Mautic\PageBundle\Entity\Page; | |
use Mautic\PageBundle\Entity\Redirect; | |
use Symfony\Component\HttpFoundation\Request; | |
class Tracking404Model | |
{ | |
public function __construct( | |
private CoreParametersHelper $coreParametersHelper, | |
private ContactTracker $contactTracker, | |
private PageModel $pageModel | |
) { | |
} | |
/** | |
* @param Page|Redirect $entity | |
* | |
* @throws \Exception | |
*/ | |
public function hitPage($entity, Request $request): void | |
{ | |
$this->pageModel->hitPage($entity, $request, 404); | |
} | |
public function isTrackable(): bool | |
{ | |
if (!$this->coreParametersHelper->get('do_not_track_404_anonymous')) { | |
return true; | |
} | |
// already tracked and identified contact | |
if ($lead = $this->contactTracker->getContactByTrackedDevice()) { | |
if (!$lead->isAnonymous()) { | |
return true; | |
} | |
} | |
return false; | |
} | |
} | |