die neue Modul Verwaltung ist zwar toll für den Benutzer, der Entwickler hat aber einige Hürden.
Die Settings, eigene Klassen, Templates und Blocks werden in verschiedenen Tabellen und auch noch als Blobs gespeichert, was während der Entwicklung nur unnötig viel Zeit und Aufwand kostet die Einträge mal zu aktualisieren.
Deswegen habe ich ein Modul gebastelt, das die alten Einträge für ein Modul löscht und jeweils die neuen Einträge für Templates, Blocks, Files etc. aus der metadata.php wieder übernimmt.
Bis jetzt gibts nur 5 Funktionen:
1: tmp/ leeren ( + Anzahl und Gesamtgröße der gelöschten Dateien)
2: templates Einträge aktualisieren
3: blocks aktualisieren
4: files aktualisieren
5: settings aktualisieren
und hier gibts das gute Stück:
freue mich auf die Rückmeldung und Verbesserungsvorschläge
Ich denke, ich werde mir davon etwas in mein Modul rüberkopieren. Muss ich nur umlizenzieren, befürchte ich
Zwei Anmerkungen hab ich:
Da bei Oxid der Doc-Root im Wurzelverzeichnis der Applikation liegt, dürften einige Benutzer in das tmp-Verzeichnis eine .htaccess legen, um den Zugriff darauf zu sperren, anstatt das in der Server-Config zu definieren. Weiters könnten sich dort auch eine .gitignore oder ein .svn-Verzeichnis befinden, die sicher nicht gelöscht werden sollten. Daher würde ich Dotfiles nicht löschen. Ich habs so gelöst: https://github.com/tueena/oxid_module_tueena_dev/blob/master/views/tueena_dev_views_shopcontrol.php
Ist es wirklich nötig bzw. sinnvoll, vier verschiedene Links zur Aktualisierung der Moduldaten anzubieten? Die Performance ist in dem Fall egal und falls man mehr als eine Sache löschen muss, muss man mehrmals klicken. Ich würde einen Link für den kompletten Modul-Cache bevorzugen.
1: php Funktion glob() liefert (zumindest unter Linux) keine versteckten Dateien, das bedeutet, dass alle Ordner und Dateien mit einem Punkt am Anfang (und alle git und svn Ordener/Dateien haben das) nicht gefunden und somit nicht gelöscht werden.
Problem gelöst
2: Das hatte ich anfangs auch so, allerdings hat es mich schnell frustriert, dass die Einstellungen jedes Mal verloren gingen, wenn ich zum Beispiel Blocks aktualisieren wollte. Und dann habe ich die Funktion dann auf 4 Funktionen verteilt, so dass man das aktualisieren kann, was gerade benötigt wird.
1: php Funktion glob() liefert (zumindest unter Linux) keine versteckten Dateien[/QUOTE]
Oh ja, stimmt. Du hast recht.
[QUOTE=vanilla thunder;104834]
2: Das hatte ich anfangs auch so, allerdings hat es mich schnell frustriert, dass die Einstellungen jedes Mal verloren gingen, wenn ich zum Beispiel Blocks aktualisieren wollte.[/QUOTE]
Ja, das ist ein Argument. Allerdings würde es dann doch reichen, die Settings extra zu machen und den Rest zusammen zu packen, oder?
[QUOTE=toxid;105344]
Ja, das ist ein Argument. Allerdings würde es dann doch reichen, die Settings extra zu machen und den Rest zusammen zu packen, oder?[/QUOTE]
hier ist eine kleine Vorschau von dem kommenden Feature:
man kann php Code (inklusive dem Shop Framework) eingeben und live die Ergebnisse betrachten.
Spart eine Menge Zeit im Vergleich mit dem sonstigen ändern-speichern-hochladen-neuladen.
wenn ich das Modul _dev-core aktiviere, dann werden in einigen anderen Modulen die Admin language files nicht mehr erkannt, wenn ich es wieder deaktiviere dann funktioniert wieder alles. An was kann das liegen?
ist das die neuste Version?
Dann gitbs in den Modul-Einstellungen des core Moduls 3 checkboxen, deaktiviere sie mal.
und schreib mit bitte per PN, welche fremden Module davon betroffen sind.
Ja, ist die neuste Version (1.2.0).
Bei mir gibts nur zwei Checkboxen, Language und Smarty Cache deaktivieren.
Habe sie beide deaktiviert, hat aber leider nicht geholfen
wir haben es in einem 4.9er PE drin, aber 4.10 ist nicht wirklich anders (bis auf das visual cms beta Ding)
“Module kann nicht gerladen werden” kommt meistens dann, wenn der Pfad zum Modul aus diversen Gründen nicht richtig aufgelöst werden konnte oder Moduldateien fehlen.
Lade die Module vorsichtshalber nochmal hoch.
Und führe mal diesen Code in der console aus:
ich habe gerade die Dev Utils installiert und habe Probleme mit dev_console und dev_modules. Die Dev Utils sind die aktuelle Version von Github, OXID ist Version 4.10.4.
Die Konsole wird angezeigt, aber wenn ich auf “Run Code” klicke, tut sich nichts weiter. Laut der Fehlermeldung in der Browserkonsole wird eine Funktion von Angular verwendet, die aus Angular 1.6.x entfernt wurde:
17:29:45.678 TypeError: $http(...).success is not a function
Anstelle von success() (und auch error()) soll man jetzt then() verwenden, siehe z. B. diese SE-Frage.
Wenn ich dev_modules aktiviere, kann ich keine Veränderung erkennen. Wo genau sollten die zusätzlichen Module über die Module auftauchen?
warte bitte bis morgen Nachmittag, ich habe am Montag JS Frameworks aktualisiert und neues Modul eingebaut, weswegen dev-modules nicht funktioniert. Morgen spiele ich das Update auf github hoch und dann sollte es gehen.
edit:
die größten Baustellen sind fertig:
framework updates
bisschen redesign
core Modul
"dev-module" heißt jetzt "dev-metadata"
editor
nicht einsatzbereit sind:
email preview (da kommen etwas größere Umbauten)
checkout (neues Modul, ist eigentlich noch gar nix drin)