Man kann auch eine Modulposition mit bestimmtem Namen in das Template-Layout einbauen.
Kommt halt auf die Anwendung an.
STS
Man kann auch eine Modulposition mit bestimmtem Namen in das Template-Layout einbauen.
Kommt halt auf die Anwendung an.
STS
Hier den Stack Trace posten.
Die Fehlermeldung mit den vielen Dateipfaden.
STS
Servus,
in dem Fall würde es helfen, in der Joomla-Konfiguration Debug einzuschalten, so dass man einen Stack Trace bekommt.
Dann sieht man, wo der Fehler herkommt.
Grüße
Stefan
PS. Und bitte immer genaue Versionsnummern angeben. Auch die Revisionsnummern am Ende. Z. Bsp. 4.0.12.10777.
Kleiner Copy and Paste, da ist allerdings login noch mit drin, das müsste evtl. entfernt werden.
Das gibt ein 403 forbidden, keine Weiterleitung zur Startseite. Die Bots sollen nur sehen, dass die Tür zu ist.
Wenn da mehrere Botanfragen pro Sekunde kommen, sollen die nicht noch einmal Serverkapazitäten durch Aufruf der Homepage in Anspruch nehmen.
RewriteEngine On
## Redirect REGISTER to 403 Forbidden - START
RewriteCond %{REQUEST_URI} /component/users [NC]
RewriteCond %{QUERY_STRING} view=registration [NC]
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} /component/users [NC]
RewriteCond %{QUERY_STRING} view=login [NC]
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} /login [NC]
RewriteCond %{QUERY_STRING} view=registration [NC]
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} / [NC]
RewriteCond %{QUERY_STRING} option=com_users&view=registration [NC]
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} / [NC]
RewriteCond %{QUERY_STRING} option=com_users&view=login [NC]
RewriteRule .* - [F]
## Redirect REGISTER to 403 - END
Grüße
Stefan
Hallo Martin,
ich hatte nur Print eingeschaltet, nicht PDF.
PDF funktioniert bei mir auch nicht, aber ein Stack Trace funktioniert.
JResponse scheint es in J4 nicht mehr zu geben.
https://docs.joomla.org/Potent…a_Platform_12.2#JResponse
Leider bin ich jetzt raus. Ist aber weitergeleitet.
in /j4vm3/libraries/src/Document/HtmlDocument.php (line 592)
$options['type'] = $args[1];
$options['name'] = $args[2] ?? null;
$options['title'] = $args[3] ?? null;
}
parent::$_buffer[$options['type']][$options['name']][$options['title']] = $content;
return $this;
}
/**
HtmlDocument->setBuffer() in /j4vm3/libraries/src/Document/HtmlDocument.php (line 565)
HtmlDocument->getBuffer() in /j4vm3/libraries/src/Document/HtmlDocument.php (line 848)
HtmlDocument->_renderTemplate() in /j4vm3/libraries/src/Document/HtmlDocument.php (line 633)
HtmlDocument->render() in /j4vm3/libraries/src/Document/ErrorDocument.php (line 139)
ErrorDocument->render() in /j4vm3/libraries/src/Error/Renderer/HtmlRenderer.php (line 78)
HtmlRenderer->render() in /j4vm3/libraries/src/Exception/ExceptionHandler.php (line 121)
ExceptionHandler::render() in /j4vm3/libraries/src/Exception/ExceptionHandler.php (line 72)
ExceptionHandler::handleException() in /j4vm3/libraries/src/Application/CMSApplication.php (line 323)
CMSApplication->execute() in /j4vm3/includes/app.php (line 61)
require_once(' /j4vm3/includes/app.php') in /j4vm3/index.php (line 32)
Und dieses:
Error
Class "JResponse" not found
in /j4vm3/libraries/src/Document/PdfDocument.php (line 212)
$data = $pdf->Output('', 'S');
// Set document type headers
parent::render();
//JResponse::setHeader('Content-Length', strlen($data), true);
JResponse::setHeader('Content-type', 'application/pdf', true);
JResponse::setHeader('Content-disposition', 'inline; filename="'.$this->getName().'.pdf"', true);
//Close and output PDF document
return $data;
}
JDocumentPDF->render() in /j4vm3/libraries/src/Application/CMSApplication.php (line 1017)
CMSApplication->render() in /j4vm3/libraries/src/Application/SiteApplication.php (line 714)
SiteApplication->render() in /j4vm3/libraries/src/Application/CMSApplication.php (line 299)
CMSApplication->execute() in /j4vm3/includes/app.php (line 61)
require_once(' /j4vm3/includes/app.php') in /j4vm3/index.php (line 32)
Danke Martin,
ich habe das in gleicher Konfiguration einmal ausprobiert, nur PHP 8.0.x hat eine andere Unterversion.
https://php80.sts-hosting.de/j…s/scott-aspect-940-detail
Hier funktioniert der Aufruf der Druck-Seite.
Vielleicht hilft es, das Template auf Cassiopeia umzustellen und zu schauen, ob es damit geht.
Vielleicht gibt es Overrides, die alte Funktionen aufrufen. Dann müsste man dort Hand anlegen.
Edit: Möglicherweise ist auch TCPDF nicht aktuell, am besten die einzelnen Pakete aus dem VM-Installer-Paket einmal einzeln installieren.
Edit2: Wenn alles nichts hilft, den Joomla Debug Modus einschalten und schauen, ob es ein Stack Trace gibt. Eigentlich ist das Schritt 1. ![]()
Grüße
Stefan
Ist das unter VirtueMart 2 und Joomla 2 auf einem PHP 5.6 Server?
Wie bekomme ich schnellstens hilfreiche Antworten
STS
Sehr schön,
der neue Schalter war mir auch entgangen. Da hab ich mich aufs Glatteis führen lassen.
Falls jemand Selbsterstellte Felder mit Preisänderung oder weitere Regeln für Produkte verwendet, und der Endpreis dadurch verändert werden soll, ist der Override-Preis allerdings nicht zu gebrauchen.
Dazu habe ich vorhin ein kurzes Tutorial geschrieben.
https://www.jooglies.com/tutor…-rechenregeln-fuer-rabatt
Hope it helps
Stefan
Servus,
ich bin auch nicht unbedingt glücklich mit der Entscheidung, dass dieses Feld nicht mehr angezeigt wird.
Es wird zumindest ein Feld "UVP" oder "alter Preis" benötigt, der festgelegt werden kann. Hier sollte auch die Berechnung des Preisnachlasses mit einfließen, damit man nicht durch die Schmerzen eines verschwundenen Features muss.
In der Vergangenheit haben meine Kunden öfter das Feld EAN oder MPN zweckentfremdet, um den UVP anzuzeigen.
Die Funktionalität des "durchgestrichenen Preises" steht übrigens weiterhin zur Verfügung. Die Templates müssen dazu nicht geändert werden.
Wer das mit Regeln ausprobieren möchte, kann das gerne am Beispiel von Flix versuchen.
1. "Nicht veröffentlichte" Kategorie "Rabatt 10 Euro" erstellen.
2. Rechenregel "Regel Rabatt 10 Euro" (Preismodifikator nach Steuern, - , 10 ) erstellen und der Kategorie aus 1. zuweisen.
3. Kategorie aus 1. im Produkt zuweisen.
Das ist im Grunde alles, um die Funktionen des Override-Preises zu ersetzen. In jedem gewünschten Produkt kann nun eine Rabatt-Kategorie hinzugefügt werden.
Der Vorteil dieser Methode ist, dass nun auch Selbsterstellte Felder mit Preisanpassungen funktionieren. Das ging mit dem Override-Preis nicht, ein Grund, warum er ganz verschwinden soll.
Hat man jetzt
- ein Produkt Pizza Hawaii 7 Euro reduziert auf 5 Euro,
mit einer Option "Extra Käse + 1,00 Euro",
kostet die Pizza mit extra Käse 6 Euro.
Mit dem Override-Preis hätte sie 5 Euro gekostet, weil der Override-Preis "alles" überschrieben hat.
Grüße
Stefan
PS. Ich mache da einmal ein Tutorial zu.
Hallo Martin,
da liegen leider die Stärken und die Schwächen von Joomla. Nur wenn man Menüeinträge erstellt, können Module eindeutig zugeteilt werden.
Deshalb habe ich für die Hauptkategorien von VM immer Menüeinträge, Alle darunter liegenden Submenüs müssen dann nicht unbedingt einen Menüpunkt haben.
Ohne Menüeinträge bleibt wohl wirklich als einfachste Selbstbau-Lösung dann nur, Module direkt in der Startseite mit loadposition zu laden.
Nur begrenzt sich das dann halt auf den Bereich, der für die Komponente vorgesehen ist.
Oder man muss mit einem externen Plugin wie Modules Anywhere von Regular Labs arbeiten.
Grüße
Stefan
Servus,
evtl. werden jquery un jquery-ui nicht in der richtigen Reihenfolge geladen.
Möglicherweise gibt es eine externe Erweiterung, die jQuery noch einmal lädt oder dergleichen.
Vielleicht einmal in der Liste der Erweiterungen schauen, was dort installiert ist, und externe Plugins, Module usw. deaktivieren.
Im Quelltext im HEAD-Bereich der Seite einmal nach jquery und jquery-ui schauen.
Welche VM-Version wird genutzt?
Die 4.0.12 gibt es hier: https://dev.virtuemart.net/projects/virtuemart/files
Grüße
Stefan
Servus,
ich habe das gerade unter Joomla 3.10.11 und 4.2.6 versucht. Bei mir klappt das in beiden Fällen mit Chrome unter Linux.
Vielleicht einmal mit F12 in die Browserkonsole schauen und überprüfen, ob irgendwo das JavaScript nicht richtig geladen wird.
Grüße
Stefan
Auf der VM-Startseite kann ich keine Module platzieren, die nur dort und sonst nirgends im Shop ausgegeben werden.
Wenn man einen Menüeintrag für die Startseite als VM-Kategorie der höchsten Ebene angelegt hat, kann man diesem Menüeintrag Module zuweisen.
Darunter gelegene VM-Kategorien benötigen dann ebenfalls einen Menüeintrag. Dort werden die Module nicht veröffentlicht.
<?php echo JHtml::_('content.prepare', '{loadposition test}'); ?>
Dieser Test scheint zu funktionieren. Muss das aber noch mit der Mehrsprachigkeit austesten...
Dies ist eine Lösung, wenn man innerhalb einer Komponente Positionen anlegen möchte. In den Produktdetails habe ich das schon einmal verwendet. Das wird aber sehr selten verwendet, weil man dazu PHP-Dateien bearbeiten muss. Mit allen Vor- und Nachteilen.
Grüße
Stefan
Hallo Martin,
Module werden in deren Einstellungen im Reiter Menüzuordnung entsprechenden Menüeinträgen zugewiesen. Das ist eine ganz normale Joomla-Technik. Da findet Google sicher etwas Schlaues zu. Da muss man kein PHP schreiben.
Grüße
Stefan
Servus,
vielleicht fehlt in der neuen Version im Aufruf irgendwo die Klasse, auf die das Skript zur Berechnung zugreift.
So etwas ist schwer ohne Blick in den Code zu beurteilen.
Grüße
Stefan
Servus,
wenn es ohne Rechenregeln sein soll, würde ich einfach ein Selbsterstelltes Feld anlegen, das den alten Preis angibt, und den neuen reduzierten Preis als "normalen" Preis angeben.
So mache ich das in einigen Fällen seit Jahren. Das ist einmal eingerichtet auch nicht schwieriger als der Override-Preis.
Leider gibt es noch keine Möglichkeit, ein Selbsterstelltes Feld (alter Preis/UVP usw.) im ersten Reiter anzuzeigen, da muss man leider auf den letzten Reiter umschalten, in dem der "durchgestrichene alte" Preis angegeben werden kann.
Natürlich kann man sich da auch selbst etwas umbauen, wenn es komfortabler sein soll. Oder ein Crowdfunding anstoßen, damit es da eine schöne Lösung geben kann.
Wie ich Max verstanden hatte, wird der Override-Preis nicht mehr in die Grundeinstellung kommen. Kann ich auch verstehen, der Override-Preis sollte nicht in den Feldern stehen, in denen wirklich etwas berechnet wird. Da sind Selbsterstellte Felder sinnvoller, die nicht an die Rechenregeln gekoppelt sind. Der Override-Preis hat in der Vergangenheit bei komplizierten Preisberechnungen sehr oft Ärger gemacht.
Ich würde in diesem Zusammenhang auch einen Blick auf die gesetzliche Regelung werfen, die vor kurzem in Kraft getreten ist. Dort gibt es Vorgaben, welchen "alten Preis" man überhaupt angeben darf.
Kurz noch einmal, eine vielseits genutzte Lösung:
1. Selbsterstelltes Feld "UVP/alter Preis" als Zeichenkette anlegen.
2. Neuen Preis an der Stelle des alten Preises angeben.
Für den UVP kann man evtl. eine neue Position im Template anlegen, falls "addtocart" oder "normal" nicht passt.
Fertig.
Wer es komplizierter möchte, kann es wie weiter oben beschrieben mit Regeln und (unveröffentlichen) Steuerungs-Kategorien machen.
Grüße
Stefan
[Update] Siehe unten Milbos Kommentar. Es gibt eine neue Einstellung in der VM-Konfiguration im Reiter Preise. Expertenpreise anzeigen. Dort kann man den Override-Preis wieder einschalten.[/Update]
Servus,
Das Überschreiben-Feld hat viele ungewollte Nebenwirkungen und ist eine Altlast aus, ich glaube, VirtueMart 1.
Zum Beispiel wurde bei Selbsterstellten Feldern ein verändernder Wert nicht berücksichtigt.
Das System wurde schon zu VM 2 auf Rechenregeln erweitert. Das Überschreiben-Feld wurde aus Gründen der Rückwärtskompatibilität behalten.
[Update]
Zu VM 4 wurde dieses Feld in der Grundeinstellung nun aus dem neuen Admin-Template entfernt. Man kann es weiterhin über die VirtueMart-Konfiguration im Reiter Preise über Expertenpreise einschalten.
[/Update]
Ich empfehle in vielen Fällen, die entsprechenden Rechenregeln anzulegen, mit einer versteckten Kategorie zu verknüpfen, und diese versteckte Kategorie dann im Produkt zuzuweisen.
Dann werden auch alle Berechnungen richtig durchgeführt.
Das mag am Anfang sehr viel komplizierter aussehen. Wenn man sich erst einmal daran gewöhnt hat, hat diese System jedoch viele Vorteile.
Grüße
Stefan
Den J4/VM4-Shop habe ich inzwischen in eine Testumgebung gelegt, ich war so sicher dass das problemlos funktioniert, dass ich am Live-Shop gearbeitet habe.
Das VirtueMart Team und meine Wenigkeit empfehlen weiterhin, noch mit Joomla 3 zu arbeiten.
Ich hatte an einigen Stellen im Forum berichtet, wie die neuen Joomla-Versionen VM-Funktionen plötzlich abgeschaltet haben.
Diese Rückwärtskompatibilitätsbrüche finden am Anfang der Entwicklung von neuen Joomla-Versionen immer statt.
Die Lehre aus der Vergangenheit ist, warten, bis der Neuerungsdrang in Joomla aufhört. Dann erst aktualisieren.
Die Shops meiner Kunden laufen weiterhin auf Joomla 3. Die ersten Shops werden im ersten bis zweiten Quartal 2023 auf Joomla 4 umgestellt, wenn die Entwickler sich auf Joomla 5 konzentrieren und Joomla 4 für über 2 Jahre Sicherheitssupport erhält.
Bisher ist Joomla 3 ein stabiles und sicheres System, weil keine Entwicklung mehr stattfindet.
Der offizielle Support läuft erst im August 2023 aus. Vorbereiten sollte man sich natürlich darauf, allerdings wurden auch damals für Joomla 2 vom VM Team noch Sicherheitsupdates für Joomla 2.5.28 zur Verfügung gestellt, obwohl der offizielle Support schon lange ausgelaufen war.
Damals hatte sich bewährt, lange auf Joomla 2.5 zu bleiben. Man erinnere sich an den kritischen Fehler in Joomla 3.6. Die Shops unter Joomla 2.5.28 blieben sicher.
So wird sicher auch niemand im Regen stehen gelassen, der länger auf Joomla 3 fährt. Irgendwann ist natürlich Schluss mit Sicherheitsupdates, aber nicht am Tag nach Ende des offiziellen Supports durch die Joomla Entwickler.
Deshalb, vor Ende des offiziellen Supports das Update auf Joomla 4 planen und schon jetzt ausgiebig testen, aber wenn es etwas länger dauert, ist man nicht gleich in einer kritischen Sicherheitslage.
Es gibt öfter Rufe, dass Joomla 4 schon lange stabil ist, die gab es schon ziemlich bald nach dem ersten Release. Bitte nicht auf diese Rufe hören, das mag für eine Visitenkarte einer Zahnarztpraxis gut genug sein, dafür würde ich auch Joomla 4 nehmen, VirtueMart braucht aber eine stabile sichere Grundlage, und die ist im Moment noch Joomla 3, vielmehr als Joomla 4, das sich noch zu stark weiterentwickelt.
Grüße
Stefan
Ps. Klappt es, wenn das modale Popup-Fenster in der VM-Konfig eingeschaltet wird?
Und einseitiges Auschecken aktiviert -> Ja.
STS
Das Geheimnis zu den News ist einfach erklärt. Eigentlich war die News zu VM 4.0.8 geplant, der Newsbeitrag war wohl schon angelegt.
Dann gab es noch einige Dinge, die geändert werden mussten, so dass die News wohl erst zu VM 4.0.12 herauskamen.
Man sieht es am Link "4-0-8", Überschrift ist aber 4.0.12.
Das Datum der Veröffentlichungen von VM 4.0.12 stimmt mit dem von https://dev.virtuemart.net/projects/virtuemart/files überein.
Demnach kam VM 4.0.12 am 20.12.2022 heraus.
Falls nach einer erneuten Installation aller einzelnen Paket dieser JRequest-Fehler immer noch auftaucht, sollte in der Joomla-Konfiguration Joomla Debug eingeschaltet werden, so dass es einen Stack Trace gibt.
Diesen hier als Text posten, dann findet sich der Fehler sicher.
Grüße
Stefan