LUX LUX

Installation

This part of the documentation describes how to install lux to your TYPO3 instance.

1. Requirements (of the latest version)

  • TYPO3 12 or 13
  • PHP 8.1 or higher
  • TYPO3 must run in composer mode

2. Installation via composer

Example composer.json file:

{
  "require": {
    "php": "^8.1",
    "typo3/cms": "^13.4",
    "in2code/lux": "^38.0",
  }
}
Copied!

Because lux is registered at packagist.org, you can simply do a composer req in2code/lux for example to install the package. Don't forget to activate (e.g. in the extension manager) the extension once it is installed.

Note: You need access to our private packagist for an installation of EXT:luxenterprise

Note: Lux itself will also load some other php packages:

  • symfony/expression-language for a calculating magic
  • whichbrowser/parser to show some information about the user agent
  • in2code/google-image-grabber to show an image by email address from google images

Extension Manager settings

If you click on the settings symbol for extension lux, you can change some basic settings in lux extension.

Setting Description
Overview: Extension status Just a small overview over the extension.
Basic: Scoring Calculation Define a calculation model for the basic lead scoring.Available variables are - numberOfSiteVisits, numberOfPageVisits, downloads, lastVisitDaysAgo.Note - you should run a commandController (e.g. every night) and calculate the scoring again, if you are using the variable "lastVisitDaysAgo".
Basic: Add on page visit Categoryscoring: Add this value to the categoryscoring if a lead visits a page of a lux-category
Basic: Add on news visit Categoryscoring: Add this value to the categoryscoring if a lead visits a news page (tx_news)
Basic: Add on download Categoryscoring: Add this value to the categoryscoring if a lead downloads an asset of a lux-category
Basic: Add on click on Link Listener Categoryscoring: Add this value to the categoryscoring if a lead clicks on a Link Listener link
Basic: PID to save Link Listener records Define a PID where the link listener records should be stored (relevant for the editors user rights)
Module: Disable analysis module Toggle the backend module Analysis in general
Module: Disable lead module Toggle the backend module Leads in general
Module: Disable workflow module Toggle the backend module Workflows in general
Advanced: Disable lux in page overview module Toggle the lux analysis or leads box in page module in general
Advanced: Pageoverview mode If not disabled, choose between classic leads view or the new analysis view
Advanced: Disable ckeditor configuration Toggle if an automatic ckeditor configuration should be added or not (for email4link feature)
Advanced: Disable ip logging Disable the logging of the visitors IP address
Advanced: Anonymize IP As an alternative to disableIpLogging, you can anonymize the visitors IP-address when saving. The last part of the IP will be anonymized with "***"
Advanced: Lead picture Decide if TYPO3 should try to find an image of a lead by searching on gravatar.com (with hashed email) or on bing image search by given email domain (not full address).
Advanced: Show render time For an easier debugging all views in backend can be shown with render times. This is only visible for backend administrators.
Advanced: Use cache layer If you are facing performance issues with lux backend modules or with the page overview view (quick analysis), you can cache views (e.g. for 24h) when turning the feature on. In addition there is a command that can be executed via scheduler task to warmup caches (e.g. every night).

3. Add TypoScript

If you have already activated lux in your TYPO3 instance, you can add the static TypoScript file Main TypoScript (lux) in your root template. Most of the TypoScript configuration is used for frontend and for backend configuration.

3a Constants

Look at the default settings of your lux in TypoScript constants. At least the sender email address needs to be modified from you.

plugin.tx_lux.settings {
  # cat=lux//0010; type=boolean; label= Activate frontend functionality: All frontend functionalities can be toggled for testing or against flooding
  enableFrontendController = 1

  # cat=lux//0020; type=boolean; label= Activate autoenable: Decide if user tracking is turned on by default (no opt-in needed here). If you turn autoenable off, you have to build an opt-in.
  autoenable = 1

  # cat=lux//0030; type=options[0,2]; label= Identification method: Decide if fingerprinting (0) or local storage (2) method should be used for tracking your leads. Both methods have their ups and downs (see documentation for details).
  identificationMethod = 0

  email {
    # cat=lux//0100; type=text; label= Default sender name: Default sender name for mails
    defaultSenderName = Marketing

    # cat=lux//0110; type=text; label= Default sender email: Default sender email address for mails
    defaultSenderEmail = marketing@website.org
  }

  tracking {
    # cat=lux//0200; type=boolean; label= Activate page tracking: (De)Activate tracking of the users pagefunnel.
    page = 1

    # cat=lux//0210; type=boolean; label= Activate download tracking: (De)Activate tracking if the user downloads an asset.
    assetDownloads = 1

    # cat=lux//0220; type=text; label= Activate download tracking: (De)Activate tracking if the user downloads an asset.
    assetDownloads.allowedExtensions = pdf,txt,doc,docx,xls,xlsx,ppt,pptx,zip

    search {
      # cat=lux//0230; type=boolean; label= Activate searchterm tracking: (De)Activate tracking searchterms if user searched for someone on your website.
      enable = 1

      # cat=lux//0240; type=text; label= search GET parameters: Listen for searchterms in available GET parameters
      getParameters = q,tx_solr[q],tx_indexedsearch[sword],tx_indexedsearch_pi2[search][sword],tx_kesearch_pi1[sword]
    }

    company {
      # cat=lux//0300; type=boolean; label= Activate tracking via wiredminds: (De)Activate tracking enrichment of lead data via wiredminds.com
      enable = 0

      # cat=lux//0310; type=text; label= Wiredminds token: Add token from Wiredminds
      token =

      # cat=lux//0320; type=text; label= Wiredminds limit per month: Define a limit for requests per month (for best cost control)
      connectionLimit = 5000

      # cat=lux//0330; type=text; label= Wiredminds limit per hour: This limit is a safety function to prevent unwanted number of requests to interface (e.g. on a DoS attack)
      connectionLimitPerHour = 150

      autoConvert {
        # cat=lux//0340; type=boolean; label= Activate automatic tracking: (De)Activate tracking of new and unknown leads
        enable = 0

        # cat=lux//0350; type=int+; label= Scoring for automatic tracking: Start automatic tracking only of lead has a minimum scoring of this value
        minimumScoring = 0
      }
    }
  }

  # cat=lux//0400; type=boolean; label= Activate field and form identification: (De)Activate identification by filling out web forms.
  fieldandformidentification = 1

  # cat=lux//0400; type=boolean; label= Disable for identified: Disable email4link lightbox in frontend if the visitor is already identified.
  disableEmail4DownloadForIdentifiedVisitors = 1

  # cat=lux//0500; type=boolean; label= Disable for backend users: Disable lux tracking in frontend if you are also logged in into backend.
  disableTrackingForBackendUsers = 1

  # cat=lux//0600; type=int+; label= PID privacy page: Set the pid of the privacy page for links in lux forms.
  pidPrivacyPage = 11
}
Copied!

Note: For a first testing, you may want to be logged in into backend and also track your page visits. This can be done with this constants: plugin.tx_lux.settings.disableTrackingForBackendUsers=0

3b Fingerprint or LocalStorage

With the constant identificationMethod (see above) you can decide if lux should work in fingerprint or in localstorage mode. While a fingerprint can be calculated by hardware details automatically, a localstorage mode is similar to a cookie. We would also don't use autoenable if you want to go for local storage and ask your visitors for an opt-in.

TypoScript

If you want to see in detail what kind of TypoScript will be included and how to overwrite some parts, look at ../../../Configuration/TypoScript/Lux

4. Ready to go

lux is now up and running. If you go into the frontend of your webpage and open the browser console, you should see an asynchronical request to every page request.

Note: Take care to be not logged in into your TYPO3-backend at the same time with the same browser or turn on tracking for BE-Users via TypoScript.

Note2: Take care that your browser does not have activated the DoNotTrack (DNT) setting (Default for FireFox Anonymous Tab)