VirtueMart 3 - Währungsumrechnung Hintergrundinfos
- Details
Etwas Grundwissen zur convertECB - Währungsumrechnung in VirtueMart
Für die Währungsumrechnung nutzt VirtueMart 2 und 3 die tagesaktuellen Wechselkurse der ECB und holt sich diese von dieser Adresse: https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml. Achtung! Wer noch alte Shop-Scripte nutzt, die Downloadadresse für die ECB-XML-Datei hat sich seit Oktober 2018 endgültig geändert auf das SSL-Protokoll, muss also mit https:// beginnen!
Hierfür verwendet VirtueMart üblicherweise das ein Admin-Plugin-Script administrator/components/com_virtuemart/plugins/currency_converter/convertECB.php, wenn nicht in der VM-Configuration ein anderes Währungsumrechnungs-Script (currency-converter) bestimmt ist. Dieses Script erzeugt eine Klasse: convertECB.
In diesem Convert-Script gibt es immer auch ein Prüfung, wann zuletzt die o.g. Wechselkurzdatei geladen wurde. Spätestens nach 365 Tage erfolge eine Warnung.
Die XML-Datei wird i.d.R. 4x täglich geladen, also alle 6 Stunden. Das wird durch diese Zeile in der convertECB.php erreicht: $cache->setLifeTime(360);. Ein anderer Wert könnt hier gesetzt werden. Die geladene XML-Datei wird in den Cache gelegt (liegt dann also überlicherweise, wenn die Schreirechte vorhanden sind im Pfad /cache/ bzw. im Verzeichnis /media/ und steht damit für die Währungsumrechnung zur Verfügung. Im cache-Verzeichnis gibt es dann jeweils ein Unterordner, der genauso heißt wie das contver-Script also z.B. /convertECB/. In diesem liegen dann die gecachten Daten im JSON-Format. Wenn alles korrekt geladen wurde, dann sollte so eine Cache-Datei ca. 850kb haben.
Weiterlesen: VirtueMart 3 - Währungsumrechnung Hintergrundinfos
Ein Joomla-Template für immer
- Details
Immer wieder erreichen mich Fragen von Kunden die etwas verwundert sind darüber, dass von mir nur schon wieder ein neues Template empfohlen wird, i.d.R. im Zusammenhang mit einer Joomla-Migration zwischen großen Versionnummern. Die Fragen sind dann z.B. derart:
- Warum müssen wir denn mit jedem neuen Versionssprung von Joomla auch ein neues Template machen?
- Warum installieren wir nicht ein Template, welches für die Zukunft auch in neuen Joomla-Versionen genutzt werden kann?
- Wenn ich für jetzt und für die Zukunft ein Template haben möchte, wie ist dies dann bei einem joomla update. Muss dieses dan jedes mal komplett neu erstellt werden?
Nun, diese Frage ist berechtigt, zumal der Aufbau eines neuen Templates speziell bei komplexen Websites doch erheblich ist und eben Geld kostet. Und um neuen Joomla-Versionen und die damit verbundene Migration kommt man auch nicht herum, denn dafür sprechen unschlagbare Argumente.
Österreichisches Sprachpaket (de-AT) für Joomla 3.x erstellen
- Details
Nachfolgend finden Sie eine Anleitung, wie man aus einem Joomla de-DE-Sprachpaket ein Sprachpaket für de-AT also Österreich erzeugt. Dies kann notwendig sein, wenn man unter einer Joomla-Version unterschiedliche Sprachausgaben für Deutsche und Österreichische Seitenbesucher anbieten will, beispielsweise um spezielle Dialekte oder Sprachspezifiken wiedergeben zu können.
Gleiche Verfahrensweise könnte interessant sein, wenn man ausgeprägte regionale Sprachdialekte anbieten möchte, z.B. in Plattdeutsch, Sächsisch, Bayerisch oder Sorbisch.
Weiterlesen: Österreichisches Sprachpaket (de-AT) für Joomla 3.x erstellen
Seitenbewertung, Pagerank
- Details
Alexa
Ermittelt nach div. Kriterien die Bedeutung einer Website:
z.B.: http://www.alexa.com/siteinfo/www.media-web.de > Global Rank
Seitwert
Divers Test, u.a. Google-Pagerank
http://www.seitwert.de/seitwert.php
Advertising.de
Detailierte Bewertung, Keywords, Ranking, Fehler etc.
Bei Mehrfachnutzg. kostenl. Regist. notw.
z.B.: http://www.oneproseo.com/seo-site-check/?url=http%3A%2F%2Fwww.media-web.de
Unter Rankingcheck können Sie Adresse und Wunschkeyword auf Trefferrang checken lassen.Backlink-Test
Backlink-Test
Prüft Verlinkungen zur eigenen Website
z.B.: http://www.backlinktest.com/?set=http://www.media-web.de
Seitenreport
Vielfältigen Seitenanalysen. Leider nur einmal abrufbar, dann ist Registrierung notw.
http://www.seitenreport.de/
Google-Developer PagerSpeed-Test
https://developers.1d5920f4b44b27a802bd77c4f0536f5a-gdprlock/speed/pagespeed/insights/
Fixed Tabellenkopf
- Details
Dieses kleine JQuery-JavaScript ist eine sehr schmale Variante, um auf einer scrollbaren Seiten bei langen Tabellen den Tabellenkopf (angelegt im Bereich THEAD) über der Tabelle zu fixieren, so dass dieser sichtbar über der Tabelle stehen bleibt und nicht aus dem sichbaren Bereich herausscrollt.
Bei der HTML-Ausgabe der Tabelle, muss diese ein ID-Attribut mit dem Inhalt #StructureTbl besitzen.
Projekt migrieren oder besser ein neues aufsetzen
- Details
Die Schwierigkeit der Mirgration von Projekten
Häufig erhalte ich Anfragen von Bestandskunden oder von fremden möglichen Auftraggebern zur Migration von Bestandprojekten auf eine neuere Joomla-Haupt-Version, verbunden mit der Bitte einer Aufwandseinschätzung und der Abgabe eines Preisangebotes. Diese Frage ist jedoch nicht einfach zu beantworten, denn viele Faktoren spielen eine Rolle und hinzu kommen Dinge die einfach von vornherein schwer einzuschätzen sind, sondern erst ihre Probleme beim ersten Migrationsversuch offenbaren. An dieser Stelle seinen dafür ein paar lesenswerte Gründe genannt, um Verständnis für die Problematik zu vermitteln.
Dieser Beitrag bezieht sich ganz speziell auf die Arbeit mit dem OpenSource CMS Joomla!, betrifft aber auch andere CMS wie WordPress, Drupal etc.
Update vs. Migration
Zunächst sei auf den Sachverhalt hingewiesen, dass wir bei größeren Versionssprüngen üblicherweise von einer Migration ausgehen und nicht von einem Update.
Ein Update ist meist eine einfache Sache, die mit einem Knopfdruck erledigt ist. Ein Update ist nie so gravierend, dass sich Datenstrukturen maßgeblich ändern oder ganz Basistechnologien in den Corescripten verändern. Das Update ist i.d.R. mit einem "Drüberbügeln" und einer Kontrolle der Auswirkungen abgeschlossen. Selten gibt es dann noch Anpassungsaufwand.
Weiterlesen: Projekt migrieren oder besser ein neues aufsetzen
MySQL: Vergleich von Datensätzen die es in eine Resultat gibt aber nicht im anderen
- Details
Zielstellung
Häufig gibt es die Situation, und sei es nur zur Datenanalyse oder Fehlersuche, dass man die Datensätze in einer MySQL-Tabelle finden möchte, die es in einem Abfrageresultat gibt, aber nicht in dem anderen.
Z.B.: Sie wollen alle Produkt-Ids/Artikelnummern von Produkten finden, die es in einer Artikelgruppe gibt aber nicht in der anderen.
Umsetzung / Lösung per MySQL
Für die Lösung sind 3 Bausteine notw.
- Damit alle DS mit einer einzigen Abfrage aufgelistet werden, die es in der einen Artikelgruppe nicht gibt bzw. in der anderen nicht gibt, führen wir zwei Teilabfragen durch, die dann mit UNION zusammengeführt werden und als eine gemeinsame Ergebnisliste ausgegeben werden. Hier könnten weitere Teilergebnislisten angefügt werden z.B. für weiter Artikelgruppen.
- Innerhalb dieser Teilabfragen für jede Artikelgruppe erstellen wir zunächst eine Trefferliste über alle gefundenen DS die entweder der einen oder anderen ArtGrp angehören. Dazu nutzen wir zwei Teilabfrage, die mit UNION ALL zusammengefügt werden. Dann reduzieren wir diese Treffer auf je max. 1 DS pro artnr durch Verwendung von GROUP BY artnr. Das ist unsere Gesamtmenge.
- An diese gruppierte Gesamttrefferliste fügen wir nun per LEFT JOIN die Datensätze der zu prüfenden ArtikelGruppe an. Wir suchen als die Vergleichs-Teilmenge. Dort wo es keinen Treffer gibt, wird das Feld artnr mit NULL <null> geschrieben. Genau nach diesem NULL fragen wir dann ab und lassen uns per artnr IS NULL als Trefferliste alle Datensätze zeigen, die keine ArtNr aus dem LEFT JOIN bekommen haben.
Hier mal ein Codebeispiel, die Umsetzung beispielsweise erfolgen kann:
Weiterlesen: MySQL: Vergleich von Datensätzen die es in eine Resultat gibt aber nicht im anderen
Limit Standard und Schrittweite für VM 1.1.x ändern
- Details
Problembeschreibung
In VirtueMart gibt es unter den Browse-Pages die Möglichkeit über Pull-Down-Listen die Anzahl der zu zeigenden Produkte pro Seite einzustellen. Das ist die Konfigurationsmöglichkeit, die dem Seitenbesucher angebot wird. Wenn man diese Pulldownliste und das Standardverhalten verändern möchte, kann das kompliziert werden. Dafür gibt es verschiedene Gründe:
- Die Einstellungen sind nicht durchweg konfigurierbar, sondern teilweise hart in Scripten kodiert.
- Die Werte kommen nicht nur aus der Komponente VirtueMart, sondern VM bezieht diese teilweise aus globalen Joomla-Parametern.
Weiterlesen: Limit Standard und Schrittweite für VM 1.1.x ändern
Zielseite nach Joomla-Login ändern (redirect)
- Details
Problembeschreibung
Standardmäßig springt Joomla nach einem Benutzerlogin auf die Seite für die Profilverwaltung. Wenn das nicht die gewünschte Zielseite ist, dann läßt sich das in Joomla ändern.
Nachfolgende Lösung betrifft speziell die Version 3 von Joomla, trifft aber auf frühere Versionen adäquat zu, vermutl. auch auch spätere.
Redirect-Seite nach Anmeldung ändern
Es gibt verschiedene Möglichkeiten ein Login-Formular in Joomla anzubieten.
- Zum einen kann ein Login über ein Menüeintrag/-element eingebunden werden. In diesem Fall ist das Loginformular der Hauptseiteninhalt, also ein Komponenten-Inhalt.
- Zum anderen kann auch über ein Login-Modul, welches an jeder beliebigen Modulposition und Seite veröffentlicht werden kann, ein Anmeldedialog erreicht werden.
Je nach dem welche der beiden Varianten Sie für Ihre Seiten nutzen, muss die Konfiguration der Zielseite entweder unter dem Menüeintrag für die Loginseite oder im Login-Modul erfolgen. Hier gibt es in jedem der beiden Fälle eine Feld Anmeldumleitung.
Migration von Joomla 2.5.x zu 3.x
- Details
Zielstellung
In einer kurzen Anleitung soll beschrieben werden, wie man ein Joomla-2.5.x-Projekt zu Joomla 3.x migriert oder upgradet, was dabei zu beachten ist, und wie evtl. Stolperfallen umgangen werden können.
Grundwissen
Zunächst ist wichtig zu wissen, dass man eigentlich erstmals von einer Migration gar nicht reden kann. Denn üblicherweise ist eine Migration sehr viel aufwändiger und nicht mit einfachen Installationen erledigt. Meist sind spezielle Nacharbeiten notw. Jedoch haben uns die Joomla-Entwickler diese Migration so leicht gemacht, dass man eigentlich von einem Upgrade sprechen kann. Wer sein Joomla-Projekt schon bisher immer regelmäßig per Updates aktuell gehalten hat, kennt die Arbeit mit dem Joomla-Installer. Genau der kann auch für das Upgrade auf 3.x verwendet werden.
Prüfung der USt-IdNr. (EU-VAT-ID) in Joomla/VirtueMart per VIES-Server (SOAP)
- Details
Zielstellung
Für gewerbliche Kunden innerhalb der EU (vorsteuerabzugsberechtigt) ist es erforderlich auf den Rechnungen die Umsatzsteuer-Identifikationsnummer (USt-IdNr.) anzugeben. Diese muss geprüft sein. Dafür gibt es unter http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl eine SOAP-Dienst an den die EU-VAT-ID übergeben werden kann. Man erhält einen Validitationsstatus als Ergebnis. Wer die Spezifikation erfahren will kann einfach auf diesen Link klicken und erhält diese als beschreibendes XML-Schema.
Die meisten Shop-Script, so auch in VM machen per JavaScript eine Plausibilitätsprüfung, ob die Eingabe für das gewählte Land dem typischen Muster der VAT-ID entspricht. Besser ist es natürlich direkt die Existenz der Eingabe-VAT über den VIES-Server zu prüfen. Mit dem nachfolgenden Script habe ich das mal für ein Projekt, noch unter VM 1.1.x laufend umgesetzt.
Prüfscript
Das Script Es enthält zwei Klassen
vatLiveCheck() macht eine einfache Prüfung über die SAOP-Methode checkVat(). Hier wird die VAT aufgesplittet in den Länderkode und die VAT-Nummer und als Parameter übergeben. Es wird das Prüfegebnis valid ausgewertet und evtl. Fehler.
Weiterlesen: Prüfung der USt-IdNr. (EU-VAT-ID) in Joomla/VirtueMart per VIES-Server (SOAP)
Kleine Sammlung von nützlichen MySQL-Befehlen
- Details
Diese kleine Liste zeigt einige MySQL-Befehle die auf Kommandozeile eigegeben werden können.
Aufgabe | Kommando Beispiel |
Anzeigen der Tabellenstruktur |
DESCRIBE tabelle; |
löschen einer Spalte |
ALTER TABLE tabelle DROP COLUMN spalte; |
Einfügen einer Spalte |
ALTER TABLE tabelle ADD spalte tinyint(4) NULL; |
Ändern von Spalteneigenschaften |
ALTER TABLE tabelle MODIFY spalte NOT NULL; |
VirtueMart-Menü oder VirtueMart-Menüelement im Joomla-Backendmenü nicht vorhanden
- Details
Wenn nach einem Update oder einer Installation von VirtueMart das VirtueMart-Menü im Backend nicht vorhanden ist, liegt das häufig daran, dass in der Datentabelle für die Menü-Einträge (Verwaltet in der Tabelle #_menu) die Componenten-Id component_id bei der Erzeugung der Einträge nicht korrekt gesetzt wurde. Dann sollte man in der Tabelle #_extensions schauen, welche ID die Komponente VirtueMart erhalten hat - i.d.R. wird dass eine ID > 10000 sein. Mit dieser ID führt man dann folgende SQL-Anweisung z.B. in phpMyAdmin aus:
UPDATE `#_menu` SET `component_id` = '10000' WHERE `component_id` = 10036;
Der Grund warum es vermutlich bei der Installation von VM zu diesem Fehler kommt, ist dass vor der Installation schon ein Virtuemart-Plugin für die Erweiterung xMap gibt. Beim Versuch die Komponenten-ID für VM zu ermitteln, findet der VM-Installer irrtümlich die ID dieses Plugins und verwendet dann diese fälschlich.
Weiterlesen: VirtueMart-Menü oder VirtueMart-Menüelement im Joomla-Backendmenü nicht vorhanden
- Gantry Template-Overrides erzeugen
- Mit RokCandy im Joomla-Gantry-Template eine Modulposition mit Cover-Background-Image füllen
- Aufbau und Pflege Mehrsprachiges Projekt unter Joomla 2.5/3.x mit jDiction
- Datei- und Verzeichnismonitoring von Webprojekten zur Erkennung von Fremdmodifikationen und Seiten-Kompromitierungen
- VirtueMart auch offline administrieren
- Webseiten-Inhalte per Mausklick in Zwischenablage kopieren
- Teilweiser Transfer von Daten zu einem anderen Joomla-Projekt mittels Akeeba Backup
- Ändern des Tabellen-Präfixes von MySQL-Datenbanken
- Limit-Select-List in VM funktionierend konfigurieren
- VirtueMart 2: Pagination Limit-Select-Box korrekte Funktion und Konfiguration
- Konfigurationen und Anpassungen für das VM-Categorie-Menu/-Navigator (de)
- Mit phpMyAdmin Daten direkt aus Excel importieren
- Aus dem Internet-Explorer heraus einen Link mit FireFox öffnen
- Wenn Erfolgsmeldungen in VirtueMart verschwinden
- Suchen und ersetzen von URL-kodierten Sonderzeichen in MySQL-Datenbankfeldern
- Android USB-PC-Verbindung funktioniert nicht (MTP-Treiber)
- Korrekte numerische Sortierung von Datensätzen aus komplexen String-Feldern
- Spamschutz mit BreezingForms unter Joomla 2.5 ... 3.x
- Reihenfolge in der Joomla Scripte im Header lädt beeinflussen
- Virtuemart 2: Verfügbarkeit von Produkten anzeigen/verwalten
Seite 4 von 14