Loading...
Skip navigation
Please note that this documentation is for the most recent version of this extension. It may not be relevant for older versions. Related documentation can be found in the documentation directory of the extension.

Override JavaScript functionality

In case of that some JavaScript section needs to be modified, you can override the related method simply like following example:

DoubleOptinDownload.showLoadingInfo = function (formUid) {
    document.querySelectorAll(`#download-form-${formUid} input`).forEach(el => el.disabled = true);
    document.querySelectorAll(`#download-form-${formUid} button`).forEach(el => el.disabled = true);
};
DoubleOptinDownload.hideLoadingInfo = function () {
    document.querySelectorAll('.tx-double-optin-download input').forEach(el => el.disabled = false);
    document.querySelectorAll('.tx-double-optin-download button').forEach(el => el.disabled = false);
};
DoubleOptinDownload.refreshFormFeedback = function (response) {
    Object.keys(response.form).forEach(key => {
        const field = document.getElementById(`download-${key}-${response.uid}`);
        if (!field) return;
        const wrapper = field.closest('.form-group');
        const feedback = wrapper && wrapper.querySelector('.invalid-feedback');
        field.classList.remove('is-invalid', 'is-valid');
        if (response.form[key].isValid) {
            if (feedback) feedback.innerHTML = '';
            field.classList.add('is-valid');
        } else {
            if (feedback) feedback.innerHTML = response.form[key].error;
            field.classList.add('is-invalid');
        }
    });
};
DoubleOptinDownload.clearForm = function (response) {
    Object.keys(response.form).forEach(function(key) {
        const field = document.getElementById(`download-${key}-${response.uid}`);
        if (!field) {
            return;
        }
        const type = field.type;
        const node = field.nodeName;
        if (type === 'text' || type === 'tel' || type === 'email') {
            field.value = '';
            field.classList.remove('is-valid');
        }
        else if (type === 'checkbox') {
            field.checked = false;
            field.classList.remove('is-valid');
        }
        else if (node === 'SELECT') {
            field.selectedIndex = 0;
            field.classList.remove('is-valid');
        }
    });
};
Last change: 2026-04-02
Documentation
TYPO3 Double-Optin-Download Extension

TYPO3 Double-OptIn-Download by coding.ms

Double-Optin-Download for TYPO3 lets you provide downloads through a request form and sends the download link by email after submission. Each link can be used exactly once. Required fields, forms, texts, and recipients can be configured per download collection, while backend management, logging, and email reports help organize and track download requests.

Menu

Contact request

You can contact us at any time

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
Q___________29I______
X_Q____8____8_____RN9
5ZK___1ML___6ZD______
__P____F____S_8___HFB
__N_________XDH______