Werbung / Banner buchen
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: Verbesserungen für DB Funktionen, Templates, usw.

    saithis

    • Neu im Forum
    • Beiträge: 31
    Ich hatte etwas Langeweile und hab mal etwas mit dem Code rumgespielt.
    Herausgekommen sind folgende Dinge (Code auf Github):

    • Sämtliche deprecated Warnungen unter PHP 5.5, die mir über den Weg gelaufen sind, habe ich gefixt
    • Alle xtc_db_* Funktionen umgeschrieben, so das sie Doctrine DBAL nutzen. Dadurch sind einerseits die deprecated Warnungen der mysql_* funktionen weg, andererseits kann man damit auch die schönen prepared statements von Doctrine/PDO nutzen. Alles das nicht die xtc Funktionen genutzt hat, hab ich umgeschrieben. Bei den Häufig genutzten Funktionen sollte es keine BC Breaks geben. Wenn ich mich richtig erinnere, hab ich nur 2 oder 3 von xtc nicht genutzte Funktionen entfernt, die nicht so einfach nachzubilden gewesen wären.
    • Twig eingebunden. Jetzt kann man anhand der Endung des Templates festlegen welche Template-Engine hergenommen wird (.twig -> twig, alle anderen weiterhin smarty um keine BC Breaks hervorzurufen). Die Übersetzungen aus den lang_<sprache>.conf Dateien sind auch in Twig nutzbar, Format kann man in der account_password.html.twig sehen, die ich beispielhaft konvertiert hab.
    • composer.phar eingebunden, damit man doctrine, twig und co. nicht im Repo haben muss, sondern bequem nachgeladen werden können. Das wurde auch schon grob in den Installer aufgenommen - könnte aber noch verbessert & verschönert werden :)
    • Die column_left.php aus dem Admin hab ich etwas umgeschrieben, jetzt ist sie übersichtlicher.
    • Diverse Fixes für Sachen wie constant reassignments, silly assignments oder fehlende Anführungszeichen in der modified.sql Datei

    Vermutlich wird die nächste Zeit noch das ein oder andere hinzu kommen.

    Wenn euch etwas davon gefällt, könnt ihr es gerne übernehmen, wenn nicht dann lasst es bleiben ;)

    [EDIT Tomcraft 24.06.2014: Link mit tinyurl gekürzt.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=30464.0

    baustelle

    • Fördermitglied
    • Beiträge: 1.622
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #1 am: 25. Juni 2014, 09:07:37
    Moin saithis,

    ich versteh zwar nur Bahnhof (moi = Shopbetreiber), finde es aber toll, dass du dich über Dinge hergemacht hast, die in den Untiefen des Shops offensichtlich geknirscht haben.

    Solltest du nochmal Langeweile haben, wäre ich höchst begeistert, wenn du dir das Thema Statistik mal anschauen könntest. Insbesondere bei der Umsatzstatistik liegt einiges im Argen, und das Thema ist so komplex, dass offensichtlich keiner so richtig da ran will. Ich hab dazu vor ein paar Wochen ein Ticket erstellt, wäre jedoch für eine baldige Lösung sehr dankbar.

    So dankbar, dass ich dafür auch gerne was löhne. Andere ja vielleicht auch...? Gerne mache ich eine Liste fertig mit den Bugs & Punkten, die optimiert werden müss(t)en. Sag also bitte an, falls du Lust auf das Thema hast.

    Greets,
    Chris

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #2 am: 25. Juni 2014, 11:00:30
    Ohje die Statistiken :S

    Das sich da keiner ran traut wundert mich nicht, der Code ist so wirr, wenn man da eine Stelle anpasst, gehen 5 andere Stellen kaputt.
    Ich bin gerade noch an einer anderen Idee, aber ich kann ja mal zwischendurch einen Blick drauf werfen.
    Ist die Liste mit den Bugs und Optimierungen groß?
    Falls ja ist es eventuell leichter das Modul komplett neu zu schreiben.

    baustelle

    • Fördermitglied
    • Beiträge: 1.622
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #3 am: 25. Juni 2014, 11:21:44
    Hey, das hört sich gut an!!!

    Vorschlag: damit das Ganze keine Individuallösung wird, sondern für alle nutzbar ist, mache ich dazu ein neues Thema auf und versuche, alle Bedürfnisse unter 1 Hut zu bekommen. Das kann allerdings etwas dauern, weil hier gerne viel und ausufernd ausdauernd diskutiert wird   8-)

    Ich tue mein Bestes, damit du eine klare Arbeitsunterlage bekommst. Mach du solange in Ruhe an deiner anderen Idee weiter.

    Ich sag erstmal  :worship: und verlinke dann hier auf den entsprechenden Thread.

    Hocherfreute Grüße,
    Chris

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #4 am: 25. Juni 2014, 11:34:12
    Ich hab grad den Sales Report kurz angeschaut, der Code ist weniger schlimm als ich ihn in Erinnerung hatte.
    Da ich mich aber 0 mit Buchhaltungskram und co auskenne, sind die exakten Formeln nötig, bevor ich da etwas anfasse :)
    Und bitte die Sachen nach Wichtigkeit sortieren, da ich nicht unendlich Langeweile hab ;D

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #5 am: 25. Juni 2014, 11:39:37
    Hey saithis.
    Um beim eigentlichen Thema zu bleiben (Sales Report ist ja ein Nebenthema und sollte hier nicht zum Hauptthema werden):
    Das nenne ich ja mal Engagement, Respekt und Danke dafür.
    Wenn du wirklich keine BC Breaks (für Unbedarfte (einfach gesagt): = backwards compatibility) eingebaut hast, dann sollte sich das Team das mal näher anschauen.

    Das Team hatte sich ja für die neue 2.0 aufgrund der Komplexität des Systems für MySQLi entschieden um auch noch prozedurale und nicht lediglich objektorientierte Vorgänge nutzen zu können.
    Ist das bei deinen Anpassungen auch so ?
    Du sagst:
    "...kann man damit auch die schönen prepared statements von Doctrine/PDO nutzen."
    "kann" heißt "muß nicht" ?
    (Ich weiß, könnte es mir anschauen, mom. nur nicht die Zeit und Muße dazu.)

    Wenn ich fragen darf:
    Wie kommt es, daß du dich damit in der Art befasst ?
    Dafür dürfte es neben meiner Wenigkeit hier einige andere Interessenten geben, zu denen hoffentlich auch das modified-Team gehört.
    (Daß Tomcraft den Thread besucht und zwar nur die die URL zu GitHub gekürzt hat, aber wer weiß, lässt ein wenig hoffen...)

    Gruß,
    noRiddle

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #6 am: 25. Juni 2014, 12:40:45
    Die BC Breaks oder Probleme, deren ich mir bewusst bin sind folgende:
    • Es wird mindestens PHP 5.3 benötigt, da die vorigen Versionen keine Namespaces unterstützen
    • xtc_db_data_seek gibt es nicht mehr, ich hab aber allen code der die Funktion genutzt hatte umgeschrieben
    • Die service_xtc_db_* Funktionen im admin wurden entfernt, das sie nirgends verwendet wurden und genau das gleiche machen wie die Funktionen ohne das service_ prefix
    • Die Funktion xsb_db_query aus dem xsbooster macht keine retries mehr, wenn die DB Verbindung futsch ist
    • Die Funktion xsb_db_affected_rows wurde entfernt, weil sie an der Stelle, an der sie verwendet wurde jetzt unnütz war
    • Die Funktion xtc_db_fetch_fields wurde entfernt, da sie ungenutzt war und nicht so einfach nachzubilden ist
    • Sollte ein Modul die mysql_ Funktionen anstatt die xtc_db_ Funktionen nutzen, gibt es Probleme.

    Nummer 1, 2, 4 und 6 sind entweder nicht oder nur schwer anzupassen, so das es keine BC breaks gäbe.
    Nummer 3 und 5 wären leicht anpassbar, falls wirklich ein Modul sie benutzt.
    Nummer 7 sollte im Modul gefixt werden und nicht in xtc.

    Wenn man die xtc_db_ Funktionen nutzt, kann man weiterhin auf die DB zugreifen, wie man es gewohnt ist.
    Wenn man sich über xtc_db_get_conn() das Doctrine Objekt holt, kann man damit die Prepared Statements nutzen und auch alles andere was Doctrine DBAL unterstützt. (NICHT Doctrine ORM!!! ORM mit normalen SQL Zugriffen mischen geht meistens schief!)

    Und ja, du darfst fragen :D
    Ich muss oft mit modified eCommerce Shopsoftware arbeiten und mir gingen einige Sachen schon lange auf den Senkel.
    Dementsprechend hab ich meinem Chef vorgeschlagen, wenn ich etwas Luft hab, diese Dinge zu ändern.
    Wenn das Team hier meine Änderungen übernimmt... gut, wenn nicht... können wir Sie intern trotzdem weiter nutzen.
    Er war einverstanden und dementsprechend hab ich damit angefangen.
    Ein weiterer Grund ist, das wir jetzt ein Grund Repo haben, von dem wir die einzelnen Projekte Forken können und somit Updates leichter einzupflegen sind. (Da es ja leider kein offizielles offenes Repo gibt)

    Und falls es noch jemanden interessiert:
    Der Grund für die Twig Integration war z.B. das wir Twig auch für unsere Symfony Projekte nutzen und es weniger anfällig für XSS Angriffe ist.
    Der Grund für Doctrine anstatt mysqli waren die Prepared Statements, um SQL Injections vorzubeugen.

    Edit:
    Drei Ideen die ich noch gerne umsetzen würde, aber nicht weis ob ich das in der begrenzten Zeit schaffe und ob es Sinn macht (z.B. weil es BC Breaks geben könnte) sind folgende:
    • Alle Übersetzungen in ein System zusammenfassen (keine Defines mehr und evtl ein schöneres Format als die .conf files) und symfony/translaton dafür nutzen, so wie es in Twig schon der Fall ist (BC Breaks nicht vermeidbar)
    • Das Product/Category Listing umbauen, so das man verschiedene Module schreiben kann, die die Logik bestimmen. Beispielsweise ein Modul, das alle Produkte aus allen Subcategories anzeigt und die Kategorieauswahl das nur einschränkt. Oder ein Modul, das die Subcategories auflistet und für jede Subcategory die X topseller anzeigt, usw. (BC Breaks kaum vermeidbar)
    • Ein echtes Plugin System mit event dispatcher und so. Damit nicht überall im Core die Codefetzen von irgendwelchen Modulen rumfliegen. (Schwierig das gut umzusetzen und würde ich nicht gerne alleine machen, sondern sollte von mehreren schlauen Köpfen zusammen geplant werden, damit nichts wichtiges übersehen wird. Nachträgliche Änderungen bei Plugin Systemen sind nicht so toll...)

    mshopuser

    • Neu im Forum
    • Beiträge: 29
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #7 am: 25. Juni 2014, 13:37:06
    Welches modified shop soll ich (am besten) jetzt runterladen ?

    diese:
    https://github.com/saithis?tab=repositories

    oder diese:
    http://www.modified-shop.org/forum/index.php?topic=30386.0

    Hat das modified team schon reagiert auf diese verbesserungen
    von saithis ?

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #8 am: 25. Juni 2014, 14:02:19
    Lad das offizielle runter.

    Meine Verbesserungen sind aktuell nur für Entwickler relevant und noch nicht sonderlich gut getestet.
    Vor allem die Module konnte ich kaum/nicht testen ob sie noch alle 100% funktionieren, weil man für die meisten irgendwelche Accounts braucht.

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #9 am: 25. Juni 2014, 15:14:29
    Man sollte es vllt. im 1. Beitrag vermerken, dass es keine Final-Version ist.

    Gruß

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #10 am: 25. Juni 2014, 15:24:06
    Guter Einwand, nur scheint es als könnte man seine eigenen Beiträge nur begrenzt lang editieren...
    Also falls ein Moderator das bitte ergänzen könnte :)

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #11 am: 25. Juni 2014, 15:28:51
    Ok, hätte ich auch dazuschreiben können  :-D
    Habe Moderator natürlich informiert.

    Gruß

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #12 am: 25. Juni 2014, 16:27:12
    Tolle Arbeit! :!:
    Ich habe das in Ticket #254 festgehalten, damit wir uns das nochmal genauer anschauen.

    Ich würde dich noch bitten das Repository umzubenennen in "modified-shop", denn den alten Namen dürfen wir aus markenrechtlichen Gründen nicht mehr benutzen.

    Grüße

    Torsten

    saithis

    • Neu im Forum
    • Beiträge: 31
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #13 am: 25. Juni 2014, 17:01:13
    Hab es umbenannt.

    Zudem gibt es ein neues Feature:

    Man kann jetzt im Order /includes/modules/listing/ neue Module (eigentlich nur PHP Dateien, die included werden) anlegen.
    Diese Module sind dann beim editieren von Kategorien auswählbar.
    Wenn man im Frontend anschließend auf diese Kategorie geht, wird das ausgewählte Modul benutzt um die Daten vorzubereiten und anschließend an das Template übergeben.
    Jedes Modul hat im Template Order einen eigenen Unterordner /<current template>/module/listing/<listing modul name>/ in dem die passenden Templates liegen.
    Ausnahmen gibt es für die alten product und category listings, die hab ich so angepasst, das sie als Fallback auch in den alten Ordnern suchen. (Nur im Admin bei der Auswahl leider noch nicht, das fixe ich morgen noch)

    So wie ich es umgesetzt habe, sind selbst angepasste Shops leicht auf das neue System anpassbar und es sollte eigentlich auch keine Probleme mit irgendwelchen anderen Erweiterungen geben.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Verbesserungen für DB Funktionen, Templates, usw.
    Antwort #14 am: 25. Juni 2014, 17:30:38
    Die Idee mit den Plugins à la
    "suche zum includen im Plugin-Ordner und wenn du da nichts findest verwende das default file"
    hatte ich auch schonmal, das stieß nicht auf Wohlwollen.
    So habe ich's verstanden, oder hast du's anders gemacht ?
    Große CMS wie z.B. concrete5 benutzen diese Methode auch.

    Gruß,
    noRiddle
    9 Antworten
    5992 Aufrufe
    26. Februar 2018, 12:53:27 von lithoverlag
    1 Antworten
    1516 Aufrufe
    21. November 2017, 15:12:01 von webald
    6 Antworten
    4262 Aufrufe
    05. Juli 2018, 11:47:25 von webald
    1 Antworten
    2449 Aufrufe
    24. Oktober 2011, 20:04:52 von strohk