Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: modified eCommerce Shopsoftware 2.0.6.0 rev 13500 veröffentlicht

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    [...]
    Kannst du vielleicht schon abschätzen, wann mit einem Update, oder einem vorzeitig veröffentlichten "fix", zu rechnen ist?
    [...]

    Ich habe das Changeset r13513 in Ticket #1805 angehängt.
    Bitte mal drüber schauen, ob uns da noch Stellen fehlen, die zu korrigieren sind.

    [...]
    Der Installer wurde anscheinend nicht mit der PHP8 Version getestet.
    [...]

    Doch, wurde er! Es scheint aber unter bestimmten Umständen mit InnoDB Probleme zu geben, wie uns noRiddle in Antwort #46 mitteilte:

    [...]
    *NACHTRAG*
    Daß der Installer einige Warnings wirft, u.A. auch MySQL-Syntax-Errors, wisst Ihr ?

    Es wurde in Ticket #2014 festgehalten.

    [...]
    Meiner Meinung nach sollte vom Installer eine Abfrage erfolgen ob bereits eine Shop Version im Webverzeichnis liegt, wenn ja sollte ein Update Script laufen, wenn nein sollte eine Neu Installation mit einem aktuellen SQL Skript durchgeführt werden ohne das vorher ein Alt SQL Skript läuft und danach während der Installation noch unbeaufsichtigte (unattended) SQL Skripte durchgeführt werden.  Des weiteren sollte für eine Neu Installation nur noch UFT-8 zur Verfügung stehen.
    [...]

    Genau das macht der Installer doch aber schon seit langem!

    Noch eine kleine Anmerkung, auch könnte in diesem Zuge bei einer kompletten Neuinstallation eines Shops von utf8_general_ci auf utf8mb4_general_ci umgestellt werden. Alle 95 Tabellen der Grundinstallation sind dazu in der Lage.
    [...]

    Das haben wir auf dem Schirm, allerdings müssen wir dafür alle Partnermodule und ggf. auch externe Schnittstellen (Wawis, etc.)  prüfen, ob es ggf. zu Problemen kommt.

    Grüße

    Torsten

    snocer

    • Fördermitglied
    • Beiträge: 312
    Hallo Torsten,

    freut mich zu hören, dass Ihr das bereits auf dem Schirm habt. Den momentanen Workaround hatte ich ja bereits angesprochen. Installation unter PHP7 läuft auch problemlos durch, kann in install_step1 auch gleich UFT8mb4 eingestellt werden und danach einfach auf PHP8 wechseln. So läuft es erst einmal problemlos. Wünsche dem Team weiter den guten Erfolg und freue mich zu sehen wie gut sich modified weiterentwickelt. Macht weiter so. Spende kommt.

    cu snocer

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    @Tomcraft
    Die von mir in Post #48 genannten Dateien fehlen im Changeset.
    *EDIT* Quatsch, nur die /admin/content_manager.php fehlt *END_EDIT*

    Gut, daß Ihr alle Vorkommen angepasst zu haben scheint, auch da wo es nicht nötig gewesen wäre, sicher ist sicher.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Das war Teil eines anderen Tickets, nämlich Ticket #2012.
    Ich habe den Commit-Kommentar nun aber erweitert und das Changeset in beiden Tickets (Ticket #1805 & Ticket #2012) ergänzt.

    Grüße

    Torsten

    snocer

    • Fördermitglied
    • Beiträge: 312
    @Tomcraft, und wenn wir in den nächsten Versionen, auch noch die ganzen HTML Entitäten, die ja nun nicht wirklich mehr gebraucht werden bei UTF8 aus dem Shop System endlich mal rausbekommen würden, wäre mir das auch etwas Wert.  :)
    Muss meine IDE immer anweisen alle Umlaute wieder in HTML Entitäten umzuwandeln vor dem speichern, die macht normalerweise von Haus aus bei UFT8 die entsprechenden Umlaute ohne Entitäten.

    cu snocer

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Nein das werden wir erstmal nicht machen, da wir damit den früheren Updatern von 1.0x Shopversionen das Leben unnötig schwer machen, da deren Datenbank noch auf latin1 steht.

    Grüße

    Torsten

    Karl1

    • Experte
    • Beiträge: 1.749
    Hallo Torsten,
    Ich habe mir nochmal die strpos-Stellen durchgesehen.

    Die Templates sind nicht im changeset enthalten, deshalb habe ich meine Änderungsvorschläge mal angehängt.

    Schwierigkeiten beim Durchsehen habe ich mit solchen Codestellen, wie z.B.
    Code: PHP  [Auswählen]
    if (!strpos($sOrdersComment, 'ExtendedOrderID')) {
    oder
    Code: PHP  [Auswählen]
    if (strpos($key, 'customers_') === false
    Man kann an vielen Stellen nicht genau nachvollziehen, ob es dem Programmierer klar war, dass der Rückgabewert "0" auch als "false" gewertet wird (im 2. Beispiel wird der Rückgabewert "0" bewusst als "false" verwendet).

    Anders ist es meiner Ansicht nach aber in inc/xtc_php_mail.inc.php
    Code: PHP  [Auswählen]
    $path_to_attachments[$i] = ((strpos($path_to_attachments[$i], DIR_FS_DOCUMENT_ROOT)===false) ? DIR_FS_DOCUMENT_ROOT:'') . trim($path_to_attachments[$i]);
    Wenn hier ein Mailanhang beginnend mit dem absoluten Shoppfad ankommt, wird im nochmal der absolute Pfad vorangestellt - hier müsste man eher auf "=== 0" prüfen.

    Leider kann ich nicht mehr liefern, da mir an so vielen Passagen im Code das "Know how" fehlt.
    Mal schnell den Code von "strstr()" nach "strpos()" umzustellen ist bestimmt nicht leicht gewesen.

    Gruß Karl

    snocer

    • Fördermitglied
    • Beiträge: 312
    Nein das werden wir erstmal nicht machen, da wir damit den früheren Updatern von 1.0x Shopversionen das Leben unnötig schwer machen, da deren Datenbank noch auf latin1 steht.

    Ein Stück weit nachvollziehbar. Aber wirklich nur ein Stück weit. :)
    Kann mir nicht vorstellen, das es noch Shop Betreiber gibt, die tatsächlich noch die Versionen von 1.x.x nutzen. Die haben doch schon längst andere Probleme als wie nur Latin1 in der DB. Auch eine DB kann relativ schnell umgestellt werden und die Entitäten in der DB durch die entsprechenden Umlaute schnell ersetzt werden. Aber ich übe mich da noch in Geduld, ist ja noch nicht Lebensnotwendig. Verhindert eben auch nur das zum Beispiel der interne Editor mal angepasst werden kann. Ich setze da auf Euren Einsatz und denke das wird sich auch lösen. Früher oder später. Ist eben einfach nicht mehr Zeitgemäß seit min. 2008.

    cu snocer

    PS: Auch MS hat kapiert, auch wen es lange gedauert hat das man nicht mehr mit Latin1 hantiert. Die haben Ihren SQL Server in den neueren Versionen auch nun Standard mäßig Unicode Unterstützung hinzugefügt. Fahren natürlich wieder ihren eigenen Weg und nutzen UTF-16/32 was wieder nicht mit UTF-8 kompatibel ist. Mal sehen was da noch kommt. Aber Latin1 wird auch bei Ihnen abgelöst.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Es geht nicht darum, dass sie die Version noch nutzen, sondern dass die eben mit einer latin1 Datenbank daher kommen, auch wenn sie mittlerweile auf Shopversion 2.0.4.2 unterwegs sind.

    Hallo Torsten,
    Ich habe mir nochmal die strpos-Stellen durchgesehen.

    Die Templates sind nicht im changeset enthalten, deshalb habe ich meine Änderungsvorschläge mal angehängt.

    Schwierigkeiten beim Durchsehen habe ich mit solchen Codestellen, wie z.B.
    Code: PHP  [Auswählen]
    if (!strpos($sOrdersComment, 'ExtendedOrderID')) {
    oder
    Code: PHP  [Auswählen]
    if (strpos($key, 'customers_') === false
    Man kann an vielen Stellen nicht genau nachvollziehen, ob es dem Programmierer klar war, dass der Rückgabewert "0" auch als "false" gewertet wird (im 2. Beispiel wird der Rückgabewert "0" bewusst als "false" verwendet).

    Anders ist es meiner Ansicht nach aber in inc/xtc_php_mail.inc.php
    Code: PHP  [Auswählen]
    $path_to_attachments[$i] = ((strpos($path_to_attachments[$i], DIR_FS_DOCUMENT_ROOT)===false) ? DIR_FS_DOCUMENT_ROOT:'') . trim($path_to_attachments[$i]);
    Wenn hier ein Mailanhang beginnend mit dem absoluten Shoppfad ankommt, wird im nochmal der absolute Pfad vorangestellt - hier müsste man eher auf "=== 0" prüfen.

    Leider kann ich nicht mehr liefern, da mir an so vielen Passagen im Code das "Know how" fehlt.
    Mal schnell den Code von "strstr()" nach "strpos()" umzustellen ist bestimmt nicht leicht gewesen.
    [...]

    Hallo Karl,

    lieben Dank! Ich habe das in Ticket #1805 ergänzt.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    ...
    Anders ist es meiner Ansicht nach aber in inc/xtc_php_mail.inc.php
    Code: PHP  [Auswählen]
    $path_to_attachments[$i] = ((strpos($path_to_attachments[$i], DIR_FS_DOCUMENT_ROOT)===false) ? DIR_FS_DOCUMENT_ROOT:'') . trim($path_to_attachments[$i]);
    Wenn hier ein Mailanhang beginnend mit dem absoluten Shoppfad ankommt, wird im nochmal der absolute Pfad vorangestellt - hier müsste man eher auf "=== 0" prüfen.
    ...

    Veto.
    Dieser Code ist vollkommen in Ordnung.
    Zwar wird das Ergebnis 0 als false gewertet, jedoch nicht als === false.
    Drei Gleichheitszeichen prüfen hier auch auf den Typ der Rückgabe und das müsste bei === false ein Boolean sein.
    0 oder '0' wäre jedoch ein Interger oder ein String.
    Würde man schreiben == false würde bei Rückgabe 0 das Ergebnis zu true ausgewertet und die Kondition würde zutreffen.
    Bei === false trifft sie nur zu wenn die Rückgabe ein Boolean ist, nämlich dann, wenn die Needle, also der String-Abschnitt welcher gesucht wird, nicht im String gefunden wird.

    Gruß,
    noRiddle

    *NACHTRAG zu den Template-Dateien*
    ...
    Schwierigkeiten beim Durchsehen habe ich mit solchen Codestellen, wie z.B.
    Code: PHP  [Auswählen]
    if (!strpos($sOrdersComment, 'ExtendedOrderID')) {
    oder
    Code: PHP  [Auswählen]
    if (strpos($key, 'customers_') === false
    Man kann an vielen Stellen nicht genau nachvollziehen, ob es dem Programmierer klar war, dass der Rückgabewert "0" auch als "false" gewertet wird (im 2. Beispiel wird der Rückgabewert "0" bewusst als "false" verwendet).
    ...

    Der erste Fall ist nur dann in Ordnung wenn ExtendedOrderID nicht am Anfang von $sOrdersComment vorkommen kann, sollte jedoch sicherheitshalber auch geändert werden auf
    Code: PHP  [Auswählen]
    if (strpos($sOrdersComment, 'ExtendedOrderID') === false) {

    während der zweite Fall völlig in Ordnung ist weil man etwas nur dann ausführen oder ausgeben möchte wenn customers_ nicht in $key vorkommt (was nämlich dann Boolean false ergäbe).

    *NACHTRAG 2, zur weiteren Erklärung*
    Diese Korrektur in /shop_content.php
    Code: PHP  [Auswählen]
    if (strpos($shop_content_data['content_file'], '.txt'))

    zu
    Code: PHP  [Auswählen]
    if (strpos($shop_content_data['content_file'], '.txt') !== false)

    hätte man z.B. nicht zwingend machen müssen, da .txt niemals an erster Position vorkommen kann (und somit an Position 0), da es eine File-Endung ist. Sicherer ist trotzdem die typen-sichere Abfrage.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    GoogleAnalytices Cookies werden gesetzt, auch wenn sie nicht aktiviert sind (Backend => Konfiguration => Statistik) und außerdem GoogleAnalytics nicht aktiviert* ist (Backend => erweiterte Konfiguration => Google, Matomo & Facebook).
    Der JS-Code wird teilweise ausgegeben weil er in /includes/extra/application_bottom/10_google_analytics.php nicht komplett in dieser Condition steht:
    Code: PHP  [Auswählen]
    if (defined('MODULE_COOKIE_CONSENT_STATUS') && strtolower(MODULE_COOKIE_CONSENT_STATUS) == 'true' && (in_array(3, $_SESSION['tracking']['allowed']) || in_array(4, $_SESSION['tracking']['allowed']) || defined('COOKIE_CONSENT_NO_TRACKING'))) {

    Darüber hinaus wird auch nicht abgefragt ob TRACKING_GOOGLEANALYTICS_ACTIVE == 'true' ist (siehe * oben).

    Kann das mal bitte jemand bestätigen, bevor ich ein Ticket dafür eröffne ?

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.056
    Ist das nicht mit Ticket #2017 gefixt?

    BG Karsta

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Ah, gut, daß ich vorher gefragt habe. War mir entgangen.
    Danke.

    Gruß,
    noRiddle

    Duncan

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    Ich suche und suche  :-? ... selbst das Wiki bringt keine Lösung ...   :’-(

    Während unserer Tests habe ich auf einen Linux/Apache Server mit php 8.03 und 10.3.28-MariaDB die Shopversion 2.0.6.0 installiert.
    Die server_info.php unseres Servers als der des Modified-DEV-Shops zeigen faktisch gleiche Module und Werte....

    Soweit ganz OK,
    die Datenbank liefert zwar beim ersten Install-Versuch "keine Antwort",
    also einfach die erste Seite nochmal gestartet,
    dann meckert die Installroutine existierende Tabellen an, aber arbeitet letztendlich bis zum Ende durch.
    (Etwas verwirrend für Neulinge) Dieser Fehler zur Datenbankanmeldung ist bei uns reproduzierbar.

    Was ich nun suche? Redis !
    Der Shop zeigt mir Redis nicht zur Auswahl an. :nixweiss:

    Vielleicht sehe ich den Wald vor lauter Bäumen nicht,
    aber auf den schnellen Cache wollen wir nun auch nicht verzichten.

    Gruß

    Timm

    • Fördermitglied
    • Beiträge: 6.318
    Redis funktioniert nicht out of the box. Müssen mehrere Dateien angepasst werden und du brauchst dafür extra Redis Datenbanken bei deinem Hoster. Bei @GTB kannst du eine kostenpflichtige Lösung anfragen. Hab ich im Einsatz und bin sehr zufrieden.

    Gruss Timm