Problembeschreibung
Hin und wieder hat man die Situation, dass man ein Joomla-Projekt komplett offline entwickeln möchte, was ich eigentlich prinzipiell mache. Wenn man dann gerade keine Online-Verbindung hat, weil z.B. das LTE-Netz mal keine Daten liefert, hat man ein Problem in Joomla zu administrieren. Komponenten von Joomla, wie z.B. VirtueMart 2 benötigen im Backend jQuery und laden diese JavaScript-Bibliothek bei google. Wenn diese nun also nicht geladen werden kann, dann läßt sich VirtueMart nicht administrieren.
Problemlösung
Das Problem kann also nur gelöst werden, wenn man die jQuery-Bibliotheken lokal lädt. Während man für das Frontend dies ganz einfach konfigurieren kann, gibt es dies fürs Backend nicht - das will sich immer, hart kodiert bei google bedienen.
Die Lösung liegt im Script \administrator\components\com_virtuemart\helpers\config.php. Hier gibt es ca. in Zeile 1386 und 1389 die vmJsApi::js - Methoden die diese Bibliotheken laden. Diese Zeilen passen wir entsprechend an, und nutzen dabei die für das Frontend vorhanden lokalen Versionen:
vmJsApi::js('jquery','//ajax.googleapis.com/ajax/libs/jquery/1.6.4','',TRUE);
// vmJsApi::js('jquery', 'components/com_virtuemart/assets/js','',TRUE);
if (!$isSite) {
vmJsApi::js ('jquery-ui', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16', '', TRUE);
// vmJsApi::js ('jquery-ui', 'components/com_virtuemart/assets/js', '', TRUE);
}
In den Scriptzeilen sind beide Beispiel offline- und online-Variante zu sehen, die wahlweise auskommentiert werden können.