Skip to content

Commit

Permalink
Merge branch 'release/35.8.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
einpraegsam committed Jul 18, 2024
2 parents 3934af3 + 5b60b40 commit 1dc491b
Show file tree
Hide file tree
Showing 9 changed files with 545 additions and 137 deletions.
549 changes: 422 additions & 127 deletions Classes/Domain/Service/Referrer/Readable.php

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions Classes/Events/ReadableReferrersEvent.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php

declare(strict_types=1);
namespace In2code\Lux\Events;

final class ReadableReferrersEvent
{
protected string $referrer;
protected array $sources;

public function __construct(string $referrer, array $sources)
{
$this->referrer = $referrer;
$this->sources = $sources;
}

public function getReferrer(): string
{
return $this->referrer;
}

public function setReferrer(string $referrer): self
{
$this->referrer = $referrer;
return $this;
}

public function getSources(): array
{
return $this->sources;
}

public function setSources(array $sources): self
{
$this->sources = $sources;
return $this;
}
}
1 change: 1 addition & 0 deletions Documentation/Technical/Changelog/Index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Double check if you have cleared all caches after installing a new LUX version t

| Version | Date | State | TYPO3 | Description |
|------------|------------|----------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 35.8.0 | 2024-07-18 | Feature | `11.5 + 12.4` | Add new event to extend ReadableReferrer class, bugfix for additional checkboxes in email4link popup |
| 35.7.0 | 2024-07-12 | Feature | `11.5 + 12.4` | Extend redable referrer list with Google AdSense and some other platforms |
| 35.6.0 | 2024-07-03 | Task | `11.5 + 12.4` | Use a typoscript constant now for default sender email and name, documentation update |
| 35.5.0 | 2024-07-02 | Feature | `11.5 + 12.4` | Add new getter to visitor model to get latest A/B test, some small CSS improvements, bugfix to always use pagevisit data for pagevisit timestamps |
Expand Down
1 change: 1 addition & 0 deletions Documentation/Technical/Events/Index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Contact us if you need further events.
| LinkClickTracker::addLinkClick() | \In2code\Lux\Events\Log\LinkClickEvent | This event can be used when a linkclick is tracked from LUX |
| NewsTracker::track() | \In2code\Lux\Events\NewsTrackerEvent | This event can be used when a news visit is tracked from LUX |
| PageTracker::trackPage() | \In2code\Lux\Events\PageTrackerEvent | This event can be used when a pagevisit is tracked from LUX |
| Readable::__construct | \In2code\Lux\Events\ReadableReferrersEvent | This event can be used to extend the readable referrer list |
| SearchTracker::track() | \In2code\Lux\Events\Log\SearchEvent | This event can be used when a visitor searches with a searchterm that would be tracked from LUX |
| SendAssetEmail4LinkService::sendMail() | \In2code\Lux\Events\Log\LogEmail4linkSendEmailEvent | This event can be used when email4link function sends an email to the visitor |
| SendAssetEmail4LinkService::sendMail() | \In2code\Lux\Events\Log\LogEmail4linkSendEmailFailedEvent | This event can be used when email4link function fails to send an email to the visitor (e.g. file is not allowed, file is not existing, etc...) |
Expand Down
14 changes: 6 additions & 8 deletions Resources/Private/Build/JavaScript/Frontend/Lux.js
Original file line number Diff line number Diff line change
Expand Up @@ -968,15 +968,13 @@ function LuxMain() {
var target = link.getAttribute('target');
var sendEmail = link.getAttribute('data-lux-email4link-sendemail') || 'false';

var formArguments = {};
var form = that.lightboxInstance.element().querySelector('[data-lux-email4link="form"]');
for (var i = 0; i < form.elements.length; i++) {
var field = form.elements[i];
var name = field.getAttribute('name');
if (name !== null && name.indexOf('email4link[') !== -1) {
var value = field.value;
var nameParts = name.split('[');
name = nameParts[1].substring(0, nameParts[1].length - 1);
var formData = new FormData(form);
var formArguments = {};

for (var [key, value] of formData.entries()) {
if (key.startsWith('email4link[')) {
var name = key.split('[')[1].split(']')[0];
formArguments[name] = value;
}
}
Expand Down
2 changes: 1 addition & 1 deletion Resources/Public/JavaScript/Lux/Lux.min.js

Large diffs are not rendered by default.

62 changes: 62 additions & 0 deletions Tests/Unit/Domain/Service/Referrer/ReadableTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?php

namespace In2code\Lux\Tests\Unit\Domain\Service;

use In2code\Lux\Tests\Unit\Fixtures\Domain\Service\Referrer\ReadableFixture;
use TYPO3\TestingFramework\Core\Unit\UnitTestCase;

/**
* @coversDefaultClass \In2code\Lux\Domain\Service\Referrer\Readable
*/
class ReadableTest extends UnitTestCase
{
public static function getReadableReferrerDataProvider(): array
{
return [
[
'https://www.google.com', // Referrer URL
'Google Organic', // Readable name
],
[
'https://t.co/anything/new',
'X (Twitter)',
],
[
'https://syndicatedsearch.goog/abc12345',
'Google AdSense',
],
[
'https://ads.microsoft.com/',
'Microsoft Advertising',
],
[
'https://stackoverflow.com/questions/75556288/typo3-lux-newsletter',
'Stack Overflow',
],
];
}

/**
* @param string $referrer
* @param string $expectedResult
* @return void
* @dataProvider getReadableReferrerDataProvider
* @covers ::getReadableReferrer
* @covers ::getDomain
*/
public function testGetReadableReferrer(string $referrer, string $expectedResult): void
{
$readable = new ReadableFixture($referrer);
self::assertSame($expectedResult, $readable->getReadableReferrer());
}

/**
* @return void
* @covers ::getOriginalReferrer
*/
public function testGetOriginalReferrer(): void
{
$readable = new ReadableFixture('');
self::assertGreaterThan($readable->getOriginalReferrer(), 10);
}
}
13 changes: 13 additions & 0 deletions Tests/Unit/Fixtures/Domain/Service/Referrer/ReadableFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace In2code\Lux\Tests\Unit\Fixtures\Domain\Service\Referrer;

use In2code\Lux\Domain\Service\Referrer\Readable;

class ReadableFixture extends Readable
{
public function __construct(string $referrer = '')
{
$this->referrer = $referrer;
}
}
2 changes: 1 addition & 1 deletion ext_emconf.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
'description' => 'Living User Experience - LUX - the Marketing Automation tool for TYPO3.
Turn your visitors to leads. Identification and profiling of your visitors within your TYPO3 website.',
'category' => 'plugin',
'version' => '35.7.0',
'version' => '35.8.0',
'author' => 'Alex Kellner',
'author_email' => '[email protected]',
'author_company' => 'in2code.de',
Expand Down

0 comments on commit 1dc491b

Please sign in to comment.