Google+

WP Download Codes

In diesen Tagen habe ich mein erstes Plugin für WordPress geschrieben, also für die Blogsoftware, auf der auch diese Seite läuft. Das wäre an sich nicht unbedingt an dieser Stelle erwähnenswert, aber es hängt auch mit meinen zukünftigen Veröffentlichungsaktivitäten zusammen.

Kurzbeschreibung
Im Wesentlichen ermöglicht das Plugin den Versand von Download Codes für zip-Dateien, die an einer oder mehreren Stellen in der Webseite eingegeben werden können. Bei Eingabe eines gültigen Codes kann die Datei heruntergeladen werden. Zur Anwendung kommt das beispielsweise bei Vinylveröffentlichungen, bei denen jeweils ein eindeutiger Download Code mitgeliefert wird. So muss der Hörer dann die Platte nicht mehr digitalisieren.
Das Plugin übernimmt darüber hinaus die Generierung der Zufallscodes auf Basis bestimmter fester Code-Anfänge (Präfixe) sowie deren Verwaltung für die einzelnen zip-Archive.

Hintergrund
Für Equinox Records hatte ich die Funktionalität für die letzten Vinyl-Releases programmiert, aber das ist nicht so leicht wartbar und nicht standardkonform. Die Download Codes, die wir bei der „Leseliste“ mitgeliefert haben, werden über leave.music abgewickelt, aber ich hatte bis vor ein paar Tagen nichts Eigenes. Und da ich in der Zukunft des Öfteren Download Codes ausgeben will, habe ich das kurzerhand ein Plugin für WordPress geschrieben, das „WP Download Codes“ heißt.

Ich hoffe, dass das Plugin vielleicht sogar auf mehr als zwei Seiten eingesetzt werden wird und werde soweit benötigt Verbesserungen einbauen.

WP Download Codes Homepage

56 comments

  1. dan djorgi sagt:

    Hi!

    Ich habe über mein wordpress-dashboard über dein plug-in erfahren, sieht sehr interessant aus.

    Könnte man auch gut für promo- oder free-tracks, etc nutzen – muss ich mir echt mal angucken.

    Wo werden denn die generierten Codes eingegeben? – An der Stelle im Artikel oder der Page an der im Backend [download-codes id=“xyz“] eingegeben wurde?

    Danke,
    Daniel

    • misanthrop sagt:

      Hi,

      danke, für Promo- und ähnliche Zwecke war das auch gedacht. Deine Frage verstehe ich nur nicht ganz komplett.

      Die Codes werden im Admin-Bereich generiert und können dort einfach als Liste angezeigt werden. Wie sie dann verteilt werden, liegt dann in der Hand des Promoters, d.h. sie können per Mail verschickt, in Foren gepostet, auf Aufkleber oder Cover gedruckt werden etc. Das alles muss aber manuell außerhalb des Plugins geschehen. [Es wäre aber eine Erweiterungsmöglichkeit.]

      Die Eingabe der Codes kann durch Einbettung von [download-code id="xyz"] in einem Artikel oder einer Seite geschehen. Im Endeffekt wird hier ein Eingabeformular mit einem einzelnen Textfeld und einem Senden-Button angezeigt, und die Codes werden überprüft und die Downloads gestartet.

      Viele Grüße,

      Misanthrop

  2. Jeromy sagt:

    Getting this error on the Manage Codes page when I activate it:

    WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‚GROUP BY r.ID, r.filename, r.title, c.code_prefix, c.final ORDER BY c.code_prefi‘ at line 1]
    SELECT r.ID, r.title, r.filename, c.code_prefix, c.final, COUNT(c.ID) AS codes, MIN(c.code_suffix) as code_example FROM 340035_dc_releases r LEFT JOIN 340035_dc_codes c ON c.release = r.ID WHERE r.ID = GROUP BY r.ID, r.filename, r.title, c.code_prefix, c.final ORDER BY c.code_prefix

    And this error on the Add New Release page:

    WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near “ at line 1]
    SELECT * FROM 340035_dc_releases WHERE ID =

    It’s also not recognizing any files in the folder under uploads I created. I’m running WP 2.8.3

    • misanthrop sagt:

      Hi Jeromy,

      Thank you, I think I know what the error is, but I will only be able to fix it tonight, i.e. in a few hours. The correction will be reflected in the new version 1.0.2.

  3. dan djorgi sagt:

    Genau das meinte ich: „Im Endeffekt wird hier ein Eingabeformular mit einem einzelnen Textfeld und einem Senden-Button angezeigt“.

    Sorry, hab‘ mich vielleicht etwas umständlich ausgedrückt.

    Super, danke für das PlugIn!

    Grüße,
    Dan

    p.s.: Coole Tracks, btw!

  4. Jeromy sagt:

    got the latest update! The error on the codes page is gone, but I’m still getting this error when adding a new release:

    WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near “ at line 1]
    SELECT * FROM 340035_dc_releases WHERE ID =

    I’ve created a folder in uploads called ‚releases‘ and put an mp3 there but that file isn’t being show in my uploads/releases dropdown menu

  5. misanthrop sagt:

    Hi Jeromy,

    Actually, I cannot reproduce the error you experienced in my development und productive environments. Therefore, I have to guess a little, and I am sorry for that. At least I added „mp3“ to the allowed file types (until that only zip files were enabled for download), and I improved the constraint check for fields on the ‚Manage Releases‘ page in version 1.0.3.

    But if you still get the error, it would be great if you could provide me with information about the sequence of steps you take until the error occurs. This will be helpful for me, and alongside I could improve the workflow.

    Best regards,

    Armin

  6. jason sagt:

    I can not seem to get the shortcode to work? I have installed everything properly and replace „xyz“ with the release id number, and nothing happens when i publish it, it just shows [download-codes id=“1″]

    please help.

    • misanthrop sagt:

      Thank you both, Jeromy and Jason. I’m sorry, it should be singular, i.e. [download-code id="..."]. I corrected this in the instructions.

  7. flo@rockt sagt:

    good idea, armin 😉

  8. azabeats sagt:

    Das PlugIn hört sich sehr gut an, werds am Wochenende gleich mal ausprobieren.
    Danke dafür 🙂

  9. noizeburger sagt:

    Hallo, hab mir auch das Plugin installiert. Bin leider auch erst nach einiger Zeit auf diese Kommentarliste hier gestoßen – wie du hier sagst:

    misanthrop sagt:
    Montag, 17. August 2009 um 23:21

    Thank you both, Jeromy and Jason. I’m sorry, it should be singular, i.e. [download-code id="..."]. I corrected this in the instructions.

    Hab mir das Plugin über WP installiert, da steht leider in der Anleitung immer noch [download codes…]

    Jetzt läuft’s – coole Sache – Danke!

  10. noizeburger sagt:

    Das mit dem „Laufen“ ist doch noch nicht ganz so, wie’s sollte:

    ich hab Permalinks aktiviert (aber auch testweise schon deaktiviert) – nach Eingabe des Codes wird mir der Link zum Zip-File gezeigt, wenn ich allerdings darauf klicke, lädt sich die Seite neu (der Link, der zum Zip-File verweist) ist zugleich immer die URL der Seite, auf der das Eingabeformular eingebunden ist. Hinweise oder Hilfestellungen?

    Lg
    Noizeburger

  11. misanthrop sagt:

    @noizeburger: Das weist darauf hin, dass es entweder kein mit dem Download Code assoziiertes zip gibt oder irgendetwas mit dem Upload-Verzeichnis nicht stimmt (ich habe nämlich Probleme mit absoluten oder relativen Pfaden festgestellt). Gestern habe ich die Version 1.0.7 hochgeladen, mit der letzteres Problem behoben werden sollte.

  12. noizeburger sagt:

    Hy misanthrop,

    danke für deine schnelle Rückmeldung.
    Ich habe bereits die neueste Version hochgeladen und aktiviert. Zip-File ist vorhanden.
    Standard-Upload-Verzeichnis von WordPress ist „wp-content/uploads“, darin befindet sich der Ordner „2009“ in welchem mein zip-File liegt. Nach Eingabe des Codes wird auch der richtige Zip-Ordner-Name angezeigt, aber eben nicht richtig verlinkt.

    Weitere Vorschläge – würde dieses Tool nur allzu gerne nutzen….

    Lg

  13. misanthrop sagt:

    Hi,

    jetzt habe ich mir die Details noch einmal angeschaut und versuche, den Ablauf richtig zu erklären: Wenn ein gültiger Code eingegeben wird, wird eine temporäre Session-Variable gesetzt und ein Link mit dem Namen des zips angezeigt, der (gewollt) auf dieselbe Seite zeigt. Sobald der Link dann geklickt wird (also nicht per „Save as…“), wird die Session-Variable gelöscht, und es sollte der Download-Dialog des Browsers aufgehen. Wenn das bei Dir nicht funktioniert, könnte es evtl. daran liegen, dass die Header für den Download der Datei nicht richtig gesendet werden können. Welche WP-Version hast Du?

    Vg

  14. noizeburger sagt:

    ich verwende wp 2.8.4 (De-Edition). Zwischenzeitlich funktioniert der Download ab und zu. Ich hab den Code auf einer Artikelseite eingebunden. Diese muss ich allerdings erst aufrufen (wenn ich die Kategorieübersicht verwende funktioniert’s nicht). Daraus schliesse ich, dass es wohl besser ist, wenn ich die Codes auf einer Seite einbaue und nicht in einem Artikel.

    Hab mittlerweile die Permalinks auf Standard gesetzt.

  15. noizeburger sagt:

    Hab mal den Browsercache geleert. Sobald ich die Permalinks wieder auf „Monat/Tag“ setze, funktioniert der Download nicht mehr. Mit der Standardeinstellung geht’s. Die möchte ich allerdings nicht haben. Kann ich den Code so adaptieren, dass auch Permalinks funktionieren?

    Lg

  16. misanthrop sagt:

    Das ist seltsam, und leider kann ich es bei mir nicht nachvollziehen. Ich habe dieselbe WP-Version und auch immer Permalinks aktiviert, und bei mir funktioniert es sowohl in Einzelartikeln und in Kategorieübersichten als auch auf normalen Seiten. Welches Template verwendest Du? Und welche Plugins? Vielleicht kollidieren hier bestimmte Elemente mit den Headers, die für den Download gesendet werden müssen (ohne das ist es leider nicht ohne Weiteres möglich).

  17. noizeburger sagt:

    Glaube auch, dass es am Template oder an den Plugins liegt. Die Zip’s werden mittlerweile korrekt verlinkt (aber nur mit Permalinks auf STandard), das Zip, das heruntergeladen wird ist allerdings winzig klein und kann anschließend auch nicht geöffnet werden.

    Wenn du willst, kann ich dir einen Zugang schicken. Wäre dankbar, wenn du dir das mal ansehen könntest.

    Lg

  18. misanthrop sagt:

    Es gibt anscheinend des Öfteren dasselbe Problem: http://wordpress.org/support/topic/308263. Ich werde dort die Laufenden Ermittlungen bekanntgeben.

  19. Thorsten sagt:

    Hallo Armin,

    da die Welt eine Google ist, bin ich rollend auf Dein Plugin aufmerksam geworden.
    Noch habe ich es nicht installiert, da die entspr. Website eh noch mit WP bestückt werden muss. Ich habe 2 Fragen:

    Ist es möglich, die Ziel-Datei (zip) auf einem anderen Server / externe Website (beispiel1.com statt wordpressseite.com) anzusprechen, oder muss zwingend das Upload-Verzeichnis im WP-Root angesprochen werden?

    Wie verhält es sich, wenn ich das Verzeichnis mit den Download-Dateien via htaccess (Deny from all) schütze, um den Direktdownload zu unterbinden? Hast Du da Erfahrungen?

    Im Voraus viele Grüße von der Ruhr (Bochum) an die Isar 🙂

    Thorsten

    • misanthrop sagt:

      Hallo Thorsten,

      es freut mich, dass Du auf das Plugin aufmerksam geworden ist. Beide Deiner Fragen gehören zusammen und führen zum selben Punkt: Ich hatte das Plugin gerade deshalb konzipiert, damit die Download-Archive geschützt sind, worauf ich allerdings in der Doku noch nicht genügend hingewiesen habe. Das Upload-Verzeichnis muss in der jetzigen Version auf dem Server liegen, da hier die Rechte (per CHMOD) so eingeschränkt werden können, dass nur der PHP-Service Zugriff hat. Damit ist der Zugriff über das Internet nicht ohne Hacken möglich, und die Dateien müssen nicht extra per .htaccess geschützt werden.

      Deine Anforderung nach der Download-Möglichkeit von einer externen Quelle müsste man sinnvollerweise so umsetzen, dass die Datei dort per .htaccess oder andere Authentifizierungsmechanismen geschützt ist, durch das Plugin aber ein Zugriff möglich wird. Momentan hatte ich gar nicht daran gedacht, aber ich schreibe das mal in Produkt-Backlog. Wie wichtig wäre denn die Funktion dafür, dass Du das Plugin dann einsetzen kannst?

      Viele Grüße,

      Armin

  20. Thorsten sagt:

    Hallo Armin,

    erstmal vielen Dank für Deine schnelle Antwort 🙂

    Lass es mich so sagen: wenn mal jemand „aus versehen“ an die direkte Download-URL käme, wäre das kein Beinbruch.
    Ich baue derzeit – peux à peux – ein Netlabel auf und will meine (und die anderer Projekte) Musik darüber vertreiben, ohne stets auf die bekannten Distributionen wie Itunes, Napster, beatport und Consorten angewiesen zu sein. Ist halt alles sehr klein und auch (noch) eine Frage der Finanzierung 😉

    Die eigentliche Label-Webseite hat derzeit nur 100 MB Space, weswegen die eigentlichen Download-Dateien derzeit dann auf einem anderen Server liegen würden. OK, klar, Upgrade in Sachen Webspace wäre im Prinzip nicht das größte Problem, jedoch kann es durchaus sein, dass „fremder“ Webspace in Betracht genommen werden muss. Ist im Prinzip aber auch nur eine Option. Und im Endeffekt auch nicht ausschlaggebend, Dein Plugin zu nutzen oder nicht.

    Denn ich werde es zum Wochenende hin installieren und ausprobieren.

    Dass die Download-Archive geschützt sind, ist eine Eigenschaft, die wohl nicht nur ich grandios finde!!!!
    Ich denke, das solltest Du in der Doku des Plugins auch explizit erwähnen, denn das macht die ganze Sache für viele Leute noch viel interessanter 🙂

    Im Voraus schonmal vielen Dank für das Plugin, ich freue mich schon drauf 🙂

    Viele Grüße aus Bochum

    Thorsten

  21. misanthrop sagt:

    Hallo Thorsten,

    danke. Deine Anmerkungen zur Doku werde ich auf jeden Fall aufnehmen, und ich werde auch schauen, dass ich in der nächsten Plugin-Version wenigstens den Zugriff auf externe Webspaces ermögliche. Das könnte nur manchmal an PHP-Restriktionen, wenn man sicherstellen will, dass der eigentliche Link nicht angezeigt wird.

    Viele Grüße,

    Armin

  22. Hi,
    Nice pugin !

    I have one problem.

    When i put the code and get the file, i click and nothing show up.

    I`ve tried all including

    wp_redirect( get_bloginfo( ‚url‘ ) . ‚/wp-content/plugins/wp-download-codes/dc_download.php‘ ); this…

    Please help !

    • misanthrop sagt:

      Hi,

      There are some issues with certain Firefox versions (especially for Mac OS). Which browser are you using?

      Can you verify the file relative file location ‚/wp-content/plugins/wp-download-codes/dc_download.php‘ and that the file is accessible from the browser? [The PHP file handles the file downstream of the requested archive.]

      Furthermore, you might check if your archive is existing and valid, maybe you might debug ‚dc_download.php‘.

      If this does not help, you could provide me with the information about your WP setup and customization level.

  23. Hi, thanks for quick answer.

    my link is http://raulmedia.ro/shop/
    try code: RO1IYR7LCZ

    i get

    i`ve tried in all browsers… mozila, ie, chrome, maxthon, opera…

  24. /wp-content/plugins/wp-download-codes/dc_download.php is accesible and if i put the code and i give the link download starts.

    Thanks in advance

  25. misanthrop sagt:

    Hi,

    there seems to be something with the download archive, and therefore the download does not start the normal way. When you download the zip via direct access to /wp-content/plugins/wp-download-codes/dc_download.php, then the zip file is invalid and contains the error message, which states that the file cannot be opened or the file size function does not work. Are you sure that the archive is valid and the according upload path, too? Which PHP version are you using?

  26. Hi,

    my version.
    PHP version 5.2.9
    MySQL version 5.0.81-community-log
    /wp-content/uploads/ is my upload folder and i`ve created an folder named archive, and in archive is the zip.

  27. Hi,

    I`ve tried with files from 50 kb— untill 1,5 Mb…
    I`ve tried mp3, zip and i have same problem

  28. i think that is an problem with the wp-download-codes archive.

    I`ve tried everything, i`ve lost an night last friday, and still nothing.

    Please help !

  29. in readme say…
    1. Create a folder within the `wp-content` directory and upload one or several zip files via FTP.

    An in download codes setings i have
    „File /home/raulmedi/public_html/wp-content/uploads/ “

    uploads is not created by me

  30. Hi,

    It`s possible to conflict with upload folder witch was already created ?

  31. misanthrop sagt:

    Hi,

    Please do not write so many comments in a row, but gather all of them in one entry.

    Actually, I do not quite understand. Your „archive“ folder with the zip should be placed in the wp-content/uploads/ folder, and I think, that this is the case, otherwise, you would not be able to assign the zip file to the release.

    The errors messages say, that there is a problem with the archive file, which should be located (internally) in /home/raulmedi/public_html/wp-content/uploads/archive. The file should be accessible directly via http://raulmedia.ro/wp-content/uploads/archive/ and the filename – as long as you have not protected it (which is in the end one purpose and benefit of the plugin).

  32. Hi,
    Sorry for multiple posts.
    http://raulmedia.ro/wp-content/uploads/archive/Celtic – Great Is The Lord.mp3 works
    i`ve put an index.php. file is not protected.

    i have
    http://raulmedia.ro/wp-content/uploads/archive/pommo_trackings_v_01.zip works

    tu download them:
    http://raulmedia.ro/shop/
    code for Celtic – Great Is The Lord.mp3: 2L13KN
    code for pommo_trackings_v_01.zip: 11N4G

    i see the download link but is http=““ and when i click them give me nothing.

    in dc_template.php i have:
    // Redirect to download page
    wp_redirect( get_bloginfo( ‚url‘ ) . ‚/wp-content/plugins/wp-download-codes/dc_download.php‘ );

    • misanthrop sagt:

      Hi,

      ok, at least it works except for the redirection. This might result from your WordPress installation. Which version are you using? Which plugins have you installed? You could try two things.

      1. Disable all other plugins one by one and try to get the redirection working.

      2. In dc_template.php, replace
      wp_redirect( get_bloginfo( ‘url’ ) . ‘/wp-content/plugins/wp-download-codes/dc_download.php’ );
      with
      echo get_bloginfo( ‘url’ ) . ‘/wp-content/plugins/wp-download-codes/dc_download.php’;
      to check if the URL is correct.

  33. i`ve disabled all plugins. i`ve tried on other wordpress.
    echo don`t show anything.

    i will try home in local apache with fresh install of wordpress.
    Meanwhile please send me the database tables… i think that is posible to have something else in database… something went wrongs.

    Thank you for your concern. if i get it to work i will donate to this plugin.

  34. Hi,

    I`ve instaled localhost apache, fresh wordpress when echo show me

    http://192.168.125.198/blog/wp-content/plugins/wp-download-codes/dc_download.php
    the link is good.
    message shown:
    Thank you for entering a valid download code! Please proceed with the download by clicking the following link:
    Thank you for entering a valid download code! Please proceed with the download by clicking the following link:
    but no download

  35. misanthrop sagt:

    Sorry, I think I have to give up for your case. Maybe it’s something with the PHP sessions or with your files, but I cannot tell without any chance of reproduction.

  36. Duru M Stelian sagt:

    Hi,

    I`ve seen that in template and template is used css, i don`t have any…

  37. curtis sagt:

    hello!

    this is a really great plugin, and I really want to start using it, but my server is currently running php 4, and after installation, the settings page reads:

    Fatal error: Call to undefined function: scandir() in /home/content/c/m/a/cmacjazz/html/blog/wp-content/plugins/wp-download-codes/dc_administration.php on line 138

    I think the scandir() function can be replaced or simplified if I specify a folder name in the code, as per the info on this link: http://us3.php.net/scandir

    do you think you could provide an alternative line or two of code for php 4?

    best regards,

    • misanthrop sagt:

      Hi,

      Actually, I did not want to integrate too much PHP4 legacy code, this version is really really old. But I will note this in my backlog and maybe this will be part of a future plugin version.

      Best regards,

      Armin

  38. curtis sagt:

    thanks for your response, i’ve since upgraded my server to php5 and the plugin works great!

    i would like to make a feature request for a future release – adding the ability to delete releases simply.

    thanks again!

    c

  39. misanthrop sagt:

    Hi,

    ok, great. I have noted your feature request, and deletion of releases will definitely get better soon.

    Best regards,

    Armin

  40. basti sagt:

    hi,
    ich besitze wordpress 2.8.5 und habe in deinem plugin scheinbar die perfekte lösung gefunden, nämlich ein system mit download-codes..

    jetzt habe ich leider das problem, dass ich es nicht konfigurieren kann:
    wenn ich auf settings klicke, öffnet sich zwar eine neue seite, aber dort steht nur „Download Codes » Settings“…

    kannst du mir weiterhelfen?

    • misanthrop sagt:

      Das von Dir beschriebene Problem hatte bis jetzt noch keiner. Wahrscheinlich gibt es einen Fehler beim Aufbau der Settingsseite, und bei WP wird die Fehleranzeige m.W. standardmäßig unterdrückt. Entweder Du kannst das einschalten und mir die Fehlermeldung mitteilen oder Du nennst mir die von Dir benutzten Plugins, vielleicht kollidiert eines mit meinem.

  41. jens sagt:

    Hallo Armin,

    Dein Plugin ist genau das, was ich gesucht habe: ich biete ein Photoshop-Plugin an, wobei updates hier zu kostenlos sind. Mit Deinem Teil kann ich das jetzt (eigentlich) auch so realisieren. Es ist nur so, daß ich, auch nach Lektüre der Postings hier, es immer noch nicht schaffe, die Eingabeseite her zu bekommen. Dort, wo ich den Aufruf plaziere [download-code id="xyz"] erscheint die Meldund „[Download not found] „. Ich denke, ich habe alles so weit richig connected, das zip-file liegt in ../uploads/updates/xyz.zip. Download-id ist richtig angegeben, file-name stimmt auch, ??? Hast DU einen Tip?

    Danke,
    jens

  42. theimo sagt:

    hejhej!

    super sache mit dem plugin, genau das, wonach ich gesucht habe!
    bekomme es nur leider nicht zum laufen oder schnalle es gerade nicht…

    unter „add new release“ kommt immer folgende fehlermeldung:

    Warning: scandir(/2010/) [function.scandir]: failed to open dir: No such file or directory in /users/brokenkid/www/wp-content/plugins/wp-download-codes/dc_administration.php on line 308

    Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /users/brokenkid/www/wp-content/plugins/wp-download-codes/dc_administration.php on line 308

    danke!

    • misanthrop sagt:

      Hast Du in den Settings den richtigen Download-Ordner eingestellt? Du kannst hier auch einen absoluten Pfad angeben (in Deinem Fall irgendetwas mit „/users/brokenkid/www/wp-content/…“).

  43. theimo sagt:

    hab: /users/brokenkid/www/wp-content/uploads/2010
    eingestellt. da liegen auch die files

    oder schnalle ich irgendwas mit dem absoluten pfad nicht? ist es immer /users/brokenkid/www/ ?

    danke für die schnelle antwort! top!

  44. theimo sagt:

    hab den pfad 1000x geändert und wieder den selben eingegeben. jetzt funktionierts. anders ist jetzt nur, dass das auswahlfenster für die „2010“ nicht mehr kommt. hmmmm… vielleicht weil feiertag ist. danke auf jeden fall!

  45. AMER sagt:

    Hi,
    Sorry, I’m new to your plugin and don’t speak german good enough.
    You might have answered to my question somewhere…

    I’ve installed your plugin on my wordpress site today.
    I’ve edited a release and complete the whole settings.

    Now I want to have a page or a post I can send my ‚downloaders‘ onto but I don’t seem to see a widget or a specific area for this.
    Can somebody advice ?

    I know this is basix.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.