Das schone daran ist, dass man beim Update nichts mehr versehentlich updaten kann. @Moritz, könntest du nicht mal kurz zusammenfassen in welechen Dateitypen und Verzeichnissen dies möglich ist? Ich meine auch die Phpfiles. Sitze immer wiederdavor und überlege ob es hier und da möglich ist.
Dieser Mechanismus ist nur für Template-HTML- und -Javascript-Dateien möglich. Für PHP-Dateien gibt es, soweit diese schon als Klasse vorhanden sind, den Mechanismus der Klassenüberladung. @Gambio Wenn man die PHP-Anweisungen "include/require[_once]" durch Funktionen wie "gm_include/gm_require[_once]" ersetzt, könnte man auch für solche PHP-Dateien ein "USERMOD"-Konzept realisieren... Also z.B. statt require_once (DIR_FS_INC.'xtc_input_validation.inc.php'); gm_require_once (DIR_FS_INC.'xtc_input_validation.inc.php'); "gm_require_once" könnte prüfen, ob es die Datei "DIR_FS_INC.'xtc_input_validation.inc-USERMOD.php'" gibt, und dann alternativ diese laden, sonst die "DIR_FS_INC.'xtc_input_validation.inc.php'".....
Die Diskussion hatten wir schon einmal. gm_require_once scheitert, da sich damit der Namensraum ändert (es sei denn, es wird nicht dateiübergreifend auf Variablen des gleichen Namensraums zugegriffen ). Wenn überhaupt, dann so, wie es bisher implementiert ist: require_once(get_usermod(DIR_FS_INC.'xtc_input_validation.inc.php'));
Also eine Lösung für PHP-Dateien wäre natürlich nun das Sahnehäubchen. Gerade dort finden doch auch eine Menge Änderungen statt und die Dateien sind derzeit aussen vor.
Die Lösung gibt es doch: http://www.gambio-forum.de/threads/...n-PHP-Programmen?p=38698&viewfull=1#post38698 Habe das jetzt in 2 Shops im Einsatz, funktioniert prächtig.... Ein sehr viel entspannteres Arbeiten. Die htaccess wurde zwischenzeitlich noch etwas optimiert: PHP: ## Gambio SEO Boost## www.gambio.deRewriteEngine onRewriteRule ^(.*\.php)$ pt_shop_control.php?pt_shop_control_url=$1&%{QUERY_STRING} [L]RewriteCond %{REQUEST_FILENAME} ^(.*)\.(css|js|gif|jpg|jpeg|png|pdf)$ [NC]RewriteRule ^(.+) - [L]RewriteCond %{REQUEST_URI} (.*)?/admin/(.*)RewriteRule ^(.+) - [L]RewriteCond %{REQUEST_URI} (.*)?/images/(.*)RewriteRule ^(.+) - [L]RewriteCond %{REQUEST_URI} (.*)?/templates/(.*)RewriteRule ^(.+) - [L]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^(.+) - [L]RewriteCond %{REQUEST_FILENAME} -lRewriteRule ^(.+) - [L]##boosted CONTENTRewriteRule (.*/)?info/([A-Za-z0-9_-]+)\.html.* pt_shop_control.php?pt_shop_control_url=shop_content.php&gm_boosted_content=$2&%{QUERY_STRING} [PT,L]##boosted PRODUCTSRewriteRule (.*/)?([A-Za-z0-9_-]+)\.html pt_shop_control.php?pt_shop_control_url=product_info.php&gm_boosted_product=$2&%{QUERY_STRING} [PT,L]##boosted CATEGORIESRewriteRule (.*/)?([A-Za-z0-9_-]+)[/,\.html] pt_shop_control.php?pt_shop_control_url=index.php&gm_boosted_category=$2&%{QUERY_STRING} [L]
Ich gehe derzeit übrigens mit einer anderen Idee schwanger, die die Verwendung der "get_usermod"-Funktion überflüssig macht: eine Art automatisches get_usermod! Mal sehen, was daraus wird....
Hi Avenger, das habe ich wahrgenommen seinerzeit. Eine geniale Vorgehensweise, zudem einfach zu durchschauen und anzuwenden! Nur kann man Shop-Updates ja auch hier nur begrenzt einfach reinklatschen, da in den Original-Dateien jeweils der Aufruf geändert werden muss, oder habe ich das falsch verstanden? Wir ersetzen die direkten Änderungen in den Originalen durch veränderte Aufrufe und verlagern die Änderung in die Arbeitskopie. Aber es bleibt dabei: das Original muss auch hier verändert werden, wenn auch in deutlich geringerem Umfang. Das meinte ich seinerzeit auch mit dem Hinweis an das Gambio-Team, dass es an dieser Stelle prima wäre die Lösung intern zu diskutieren und ggf. entsprechend einzubauen, so dass die geänderten Aufrufe (ab da funzt das Ganze ja ohne weiteres Zutun) direkt mitgeliefert werden; man sich also zu Deiner Lösung comitted und diese offiziell einbaut. Deine Lösung ist schon eine Granate und das Sahnehäubchen wäre jetzt, dass auch Gambio es einbaut (was subjektiv gesehen der Weg des geringsten Widerstands wäre) oder eine alternative Lösung anbietet (was sicherlich heftig Arbeit machen würde, daher erstmal diskutieren, ob Deine Lösung nicht den Vogel schon abschiesst). Denn genau an dieser Stelle hakt das Konzept der Updatesicherheit noch enorm. Alles andere hat eine Lösung, nur die PHPs nicht. Und Dein Vorschlag funzt, ist pflegeleicht und nachvollziehbar; warum also nicht den letzten Schritt machen...
Ja, sicher, das ist auch meine Hoffnung.... Aber bis das so weit ist, kann man auch so sehr gut damit leben.... (Sehr viel besser jedenfalls als jetzt.) Man lässt WinMerge die die beiden Verzeidnisse vergleichen (USERMOD und Shop-Root), bekommt bequem alle Unterschiede angezeigt und kann die dann einfach übernehmen lassen.... Das würde das Problem natürlich auch sehr elegant lösen.... Mal schauen... Hab' einfach zu wenig Zeit
Kann es sein das in der general.js dann auch die Reihenfolge der zu ladenen Javascripte angepasst werden muß?
Hallo Moritz, hatte einen tooltip eingebaut und an mehreren Stellen versucht das einzubauen. Das nur in die /usermod/javascript/Global/ zu kopieren hatte nur Fehler mit den anderen Javascripten hervorgerufen. Nun gehts und klasse Ergebnis mit meinen neuen Baby, da mit Avengers {pt_load_cms_data coID=xxxx set_title=false} Smarty die Tooltips wunderbar über den Contentmanager gefüllt werden können.
Bei mir werden leider keine JS Dateien aus dem Verzeichnis usermod/javascript/global geladen. v2.0.10g r6545
Woran kann es liegen, wenn ich bei Umbenennung der geänderten Dateien in -USERMOD Smarty-Fehler erhalte? Z.B. unable to read resource: "/var/www/web57/html/gx/templates/EyeCandy/objects...
Danke Steffen, das war mein Trugschluss. Ich nahm an, dass die Dateien anstelle der Originaldatei verwendet würden und wenn dann ein Update erfolgt, bleibt das Template erst mal so, wie gehabt, bis man die Anpassungen gemacht hat. Hab das mit dem JTL-Shop verwechselt, da benennt man die geänderten Templatedateien um.
Javascript wird nicht geladen Ich habe ein kleines Javasript in Anlehnung an Michaels Code unter http://www.gambio-forum.de/threads/8206-Text-kürzen. In einer Demodatei auf meinem Rechner, in der das Javascript im Head eingetragen ist, funktioniert das einwandfrei. Wenn ich es allerdings in den Ordner templates/EyeCandy/usermod/javascript/Global/hello_world.js eintrage und den body-Teil meiner Demodatei im Contenmanager im HTML Modus einsetze, dann funktioniert es leider nicht. Ich befürchte, das Javascipt wird nicht geladen. Weiß jemand Rat, was ich ändern kann?