<mediaDESIGN> St. Kraft + lens*flares
  • Joomla-Erweiterungen
  • Knowledgebase
  • Startseite

Sprache auswählen

  • Deutsch
  • English (UK)
Suche - Kategorien
Suche - Inhalt
  • FAQs für meine Kunden
  • Eigene Joomla-Erweiterungen
    • Update-Downloads
    • VM2/3-Category-Menu-Modul
  • Software-Design / Interface-Design
  • Referenzen / Auszeichnungen
  • Knowledgebase
    • Joomla und Erweiterungen (allg.)
    • Gantry 4 und 5 - Tipps, Know How
    • VirtueMart - Know How und Bugfixes
    • MySQL - Tipps
    • BreezingFoms / FacileForms
    • J!-Extensions selbst erstellen
    • JTL-Shop und -WaWi
  • Shop Warenkorb

Die Views-Scripte von VirtueMart 2

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4 / 5

Korrekte Initialisierung von VM im Shop-Frontend

Es ist ganz wichtig, dass VirtueMart 2 korrekt initialisiert und somit in das Joomla-Framework eingebunden wird. Leider ist das mit einer einfachen Installation von VirtueMart nicht gleich gegeben. VirtueMart ansich funktioniert dann zwar grundsäztlich, aber es gibt diverse Feature, speziell von anderen Joomla-Erweiterungen (z.B. Sitemaps, div. Module, Suchfunktionen usw.), die erst dann korrekt funktionieren. Bei der Initialisierung geht es im Kern darum, dass Joomla-Erweiterungen in der Lage sind VirtueMart zu finden, so dass deren Produkte und Kategorien gelesen werden können. Das geht zum einen nur dadurch, dass Virtuemart im Hauptmenü eingebunden ist und zum anderen dieser Menüeintrag vom richtigen Typ ist.

Konkret sieht es so aus, dass wir im Mainmenu eine Virtuemart-Komponenten-Eintrag einbinden der auf den Type Kategorie-Layout verweist. Ich möchte nicht beschwören, dass der Menüeintrag auch in ein anderes Menü erfolgen kann, aber ich bin mir sicher, dass es exakt dieser Menütyp sein muss. In der Typ-Auswahlliste steht er bezeichnet als Kategorie Layout. In der Liste der Menüeinträge eines Menü steht in der Spalte Menütyp dann VirtueMart » Kategorie Layout. Es sollte die unterste Shop-Kategorieebenen gewählt werden.

 

Bedeutung diverser VirtueMart 2 Template-Scripte

Nachfolgend eine Aufstellung der Views-Scripte von VirtueMart 2. Diese Scripte befinden sind alle in Unterverzeichnissen von components/com_virtuemart/views/. In den dortigen Unterverzeichnissen gibt es dann immer ein Verzeichnis /tmpl/ und den darin befindlichen üblicherweise default.php und/oder default_teiltemplate.php heißenden Scripten. Jedes dieser Scripte ist verantwortlich für die Darstellung eines Shopbereiches oder einer einzelnen Shopfunktion. Gegliedert sind diese zusätzlich für die Shopbereiche in Unterverzeichnisse.

Entspr. des MVC-Models, welches in Joomla! und VM 2 umgesetzt ist, sind das die Viewbestandteile der Komponente und unterstützen damit auch konsequent das Template-Overriding von J!. D.h., jedes hier vorhandenen Scripte kann zusammen mit seinem Unterpfad in das Verzeichnis templates/Ihr-Template/html/com_virtuemarte/ kopiert werden. Dort kann es nach eigenen Wünschen und Bedürfnissen modifiziert werden, ohne Angst haben zu müssen, dass ein späteres VM-Update diese Templatescritpe überschreibt. Nebenbei: Man könnte das Oberriding von Joomla auch ignorieren und statt dessen kann man für einige default.php-Scripte auch anders benannte Scripte im gleichen Verzeichnis ablegen. In der Shop-Konfiguration könnte man dann statt der default-Style diese anderes benannten Style-Scripte zuweisen. Das ist jedoch nicht ganz konsequent und die Struktur des Template-Overridings ist transparenter.

Weiterlesen: Die Views-Scripte von VirtueMart 2

Joomla 1.5.x CSS Dateien nach Modifikationen zwingend aktuell laden

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Problembeschreibung / Zielstellung

Jedem Webmaster ist dieses leidliche Problem bekannt und es betrifft in J!1.5 auch Joomla-Projekte: Sie haben Modifikationen an einer wichtigen CSS-Datei vorgenommen aber auf den Browsern erscheinen diese Änderungen erst nach einem hart erzwungenem Reload per Strg.+F5. Mit Recht befürchten Sie nun, dass evtl. Ihr Layout auf Userrechnern nicht die gewünschte Änderungen anzeigen oder die Darstellung sogar gestört ist.

Den meisten Webmastern ist nun auch die Methode bekannt an die zu ladenden CSS-Datei einfach einen Parameter anzuhängen z.B. in der Form /templates/css/template.css?v=101. Über die hochzählbare Versionsnummer kann ich nun mit jeder Änderung auch die Version und damit den URI ändern und erzwinge damit, dass diese CSS neu geladen wird. So weit so gut, aber wie sage ich das Joomla.

 

Weiterlesen: Joomla 1.5.x CSS Dateien nach Modifikationen zwingend aktuell laden

Mit MySQL einen nächst kleineren Wert finden

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4 / 5

Problembeschreibung / Aufgabenstellung

Angenommen Sie haben haben eine Tabelle in der Sie Rohre mit unterschiedlichem Durchmesser verwalten und wollen nun per Datenbankabfrage das Rohr finden, welches von einem Abfragedurchmesser aus gesehen den nächst kleineren Durchmesser hat. Einfach nur eine kleiner-Abfrage verbunden mit Limit 1 wäre sehr unzuverlässig und denkbar sowieso nur bei sortierten Daten.

 

Lösung

Dazu braucht man keine aufwändigen Query-Konstrukte bauen, oder gar einer Trefferliste mit Datensätzen von kleineren Durchmesser mit z.B. php das Array durchlaufen und nach dem kleinsten suchen. Das geht schon allein mit MySQL-Boardmitteln durch z.B. folgenden Abfrage:

SELECT * FORM tabelle 
WHERE rohrdurchmesser < abfragedurchmesser
ORDER BY rohrdurchmesser DESC
LIMIT 1;

 

Weiterlesen: Mit MySQL einen nächst kleineren Wert finden

jos_session-Tabelle wird extrem groß

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Problembeschreibung

Wer sich mal die Mühe macht und unter Joomla 1.5.xx sich die Tabelle jos_session anschaut, wird evtl. feststellen dass diese extreme Größen annehmen kann. Bei einer dieser Kontrollen per phpMyAdmin sah ich in einem meiner Projekte, dass diese 1,6GB(!) groß geworden ist.

Bei weiterer Analyse zeigte sich:

  1. Es waren nur knapp 700 Einträge in der Tabelle
  2. und alle Einträge nur max 1 Stunde alt.

Also von daher war der eigentliche Tabelleninhalt vollkommen okay. Dadurch wurde mir klar, dass die Tabelle vermutlich mit gelöschten Datensätzen zugemüllt ist und dies offensichtlich kein ernst zu nehmendes Joomla-Problem ist.

Weiterlesen: jos_session-Tabelle wird extrem groß

Rücksprung zur Ausgangsseite nach Warenkorb-Löschen in VirtueMart 1.1.x

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3.5 / 5

Zielsetzung und Problembeschreibung

Zunächst einmal die Beschreibung, was passiert soll: Wenn der Nutzer auf den Link „Warenkorb löschen" im Mini-Cart-Modul klickt, dann wird die aktuelle Seite auf der sich der User gerade befindet verlassen um die Warenkorb-Löschen-Seiten anzuzeigen. Nach Bestätigung der Löschabsicht erfolgt das Leeren des Warenkorbes und der User soll dann wieder zurück auf seine ursprüngliche Seite geleitet werden, von wo aus der im Modul den Warenkorb-Löschen-Link betätigt hatte.

Prinzipiell könnte man die Löschaktion auch über eine Ajax-Funktion ausführen und die Bestätigungsabfrage und ggf. Erfolgsmeldung in einem modalen Dialog anzeigen, dann könnte man sich die Rücksprungaktivitäten sparen. In unserem Fall soll dies abe über eine separate Seiten erfolgen. Das wiederum ist dann aber nicht so einfach, weil der Server die Information verarbeiten muss, von wo der User ursprünglich kam.

Hierbei gibt es weiterhin eine Besonderheit zu berücksichtigen. Solange wir komplette Seiten aufrufen, ist dem Server auch immer über die REQUEST_URI die Ursprungsadresse bekannt, so dass auch bei Anzeige des Warenkorb-Moduls die Rücklinkinfos abgefragt und weitergegeben werden können. Anders wenn der Warenkorb per Ajax aktualisiert wird, z.B. wenn ein Produkt zum Warenkorb per Ajax-Request hinzugefügt wird.

Weiterlesen: Rücksprung zur Ausgangsseite nach Warenkorb-Löschen in VirtueMart 1.1.x

Virtuemart 2: Nutzerfelder ohne Warenkorb-Attribut / Produktvarianten / mit Warenkorb-Attribut / Child-Produkte

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Anwendungsmöglichkeit / Beschreibung

Angenommen Sie haben Produktgruppen, die typischerweise immer den gleichen Strukturaufbau haben sollen. Zu jedem dieser Strukturdaten sollen Informationen erfasst und angezeigt werden. Beispielsweise haben Sie verkaufen Audio-CD's. Diese haben ja i.d.R. ihren festen, nicht "konfigurierbaren" Preis. Aber die Informationen die zu jeder CD bereitgestellt werden sind immer die gleiche: Album, Interpret/Gruppe, Erscheinungsjahr, Label, Genre etc. Bei diesen beschreibenden Attributen wird dem Seitenbesucher im Produkt kein Auswahl angeboten. Jedoch wäre es denkbar, dass er alle Alben eines bestimmten Interpreten suchen will, oder eines bestimmten Genres. Dafür wäre strukturierte Daten noch obigen Schema notwenig.

Wer schon mit VM 1.x gearbeitet hat, wird dies bekannt vorkommen von den dortigen Produkttypen.

 

Erstellen und Anwenden von Produktvarianten ohne Warenkorb-Attribute

Prinzipiell gibt es zwei sich wiederholende Schritte. Sie müssen so viele Attribute anlegen wie Sie brauchen. Dann weisen Sie den Produkten dies Attribute zu und befüllen diese mit den konkreten Inhalten.

Weiterlesen: Virtuemart 2: Nutzerfelder ohne Warenkorb-Attribut / Produktvarianten / mit Warenkorb-Attribut /...

Virtuemart 2: Nutzerfelder mit Bestandskontrolle

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4 / 5

Anwendungsmöglichkeit / Beschreibung

Bei diesen Produkten geht es um die Typische Beziehung von Produkte und Artikeln, oder, wem diese Benennung aus VM 1.x noch bekannt ist, um Parent-Produkte und Child-Produkte.

Auch hier ein Beispiel anhand dessen erkennbar ist, mit welcher Absicht man diese Produktattributisierung einsetzen sollte:

Sie wollen Schrauben verkaufen. Typische Merkmale der Schrauben sind die Verwendungsart (Holz, Metall, Kunststoff), die Kopfform (Senk-, Halbrund-, Linsen-), die Bit- oder Stecköffnung (Schlitz-, Kreuz-, Torx-, Innensechskant-), evtl. der Güte (Normal, Niro ...) oder der Gewindeart (Normal, fein, ...). Darüber definieren wir i.d.R. das Produkt "Schraube", auch weil wohl üblich ein Bild und eine gemeinsame Beschreibung genügt, um eine so klassifizierte Schraube optimal zu charakterisieren. Anders ist es aber mit der Länge und der Gewindegröße einer Schraube. Auch hierin unterscheiden sich Schrauben, aber es bleibt für uns ein Produkt. Im Baumarkt liegen quasi alle Schrauben mit o.g. Merkmalen in einem Regalbereich, aber getrennt in Schachteln nach iher jeweiligen Größe.  Wir untergliedern also das Produkt Schraube noch einmal, weil wir für jede dieser Schraubengrößen nicht nur separate Preise haben, sondern ggf. separate Bestände, Gewichte, Verpackungseinheiten etc. Die sich so ergebenden Artikel sind in der Regel so auch in unserem Warenmanagementsystem geführt - eben mit eigenen Beständen für den Ein-/Verkauf etc. In unserem Shop ist die Schraubenart dann unser Parentprodukt (Regalbereich) und die Schachtel getrennt nach Größe unsere Artikel.

 

Weiterlesen: Virtuemart 2: Nutzerfelder mit Bestandskontrolle

Anpassungen von sh404SEF für PHP5.3

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Problembeschreibung

Mit Umstellung von Webservern von der PHP-Version 5.2.x auf 5.3.x gelten einige Befehle als veraltet (deprecated). Wurden Komponenten von den Herstellen diesbezüglich nicht weitergepflegt wird es bei dem einen oder anderen Projekt zunächst zu Warnmeldungen kommen und später zur Funktionsverweigerung.

Wenn es nur Warnungen sind, kann man das Problem vorübergehend unterbinden, wenn man die Ausgabe von Warnungen für den Webserver abstellt (display_errors = off). Damit ist das Problem aber nur in die Zukunft verschoben, aber man gewinnt Zeit um die Projektumstellung in Ruhe zu realisieren - entweder in dem Komponenten selbst angepasst werden oder indem man das Joomla auf z.B. 2.5.x migriert inkl. der neuen Komponenten.

Eine diese Komponenten ist z.B. sh404SEF für Joomla 1.5.x. Hier wird z.B. häufig der veraltete Befehle eregi() zum String-Ersetzen verwendet, was durch die jetzt gültige funktion preg_match() ersetzt werden muss.

 

Weiterlesen: Anpassungen von sh404SEF für PHP5.3

Unix-Timestamp in MySQL-Tabellen als Datum anzeigen

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Problembeschreibung

Häufig wird in MySQL-Tabellen in Datensätzen auch Datum und Uhrzeit gespeichert, z.B. vom Erstellungs- oder Änderungszeitpunkt. Das erfolgt häufig als Integerzahl im Unix-Timestamp-Format und ist dann bei Tabellenanzeigen für Menschen schwer lesebar. Deshalb möchte man mitunter diesen UNIX-Timestamp gerne in eine normale Schreibweise von Datum und Uhrzeit angezeigt haben.

 

Hier die Lösung

... am Beispiel einer User-Tabelle, wo wie das Anmeldedatum umgewandelt haben wollen.

 

SELECT *, FROM_UNIXTIME(time) as realtime
FROM `session`
ORDER BY `time` DESC
LIMIT 30

 

Mit nachfolgender Lösung werden alle DS in einer MySQL-Tabelle gefunden, bei der das modified_on-Datum darauf verweist, dass der DS zuletzt vor 30 Tagen bearbeitet wurde:

select *, modified_on, timestampdiff(DAY, modified_on, now()) as diffdays 
from j2ms_virtuemart_categories c
  left join j2ms_users u on c.modified_by = u.id
  WHERE timestampdiff(DAY, modified_on, now()) < 30
ORDER BY timestampdiff(DAY, modified_on, now()) ASC 
limit 0, 100

 

Man kann die Datum/Zeit-Ausgabe auch gezielt formatieren in dem ein Formatstring übergeben wird:

FROM_UNIXTIME(`timestamp_column`, '%Y-%m-%d %H:%i:%s')

 

 

Vorausgewählte Multicheckbox-Felder in der VirtueMart-Benutzerregistrierung

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3.5 / 5

Problembeschreibung / Zielsetzung

Eigentlich recht flexibel ist die Möglichkeit benutzerdefinierte Felder für die Benutzerregistrierung in VirtueMart 1.x einzurichten. Unter anderem können auch Felder als sogenannte Mutlicheckbox-Gruppen angelegt werden, d.h. Eine Gruppe von Checkboxen, die intern als Information in einem gemeinsamen DB-Tabellenfeld geschrieben und verwaltet werden. Eine kleine Sache, die hierbei allerdings von den Entwicklern nicht vorgesehen wurde, ist die Möglichkeit ggf. einzelne Felder davon schon beim Aufruf des Registrierungsformulars als gesetzt vorauszufüllen.

Mit nachfolgendem Workaround soll dieses umgesetzt werden, wobei hier keine dynamisch/flexible Lösung geboten wird, sondern nur ein schnell intergrierte Lösung an einem ganz konkreten Fall - also hart kodiert.

 

Weiterlesen: Vorausgewählte Multicheckbox-Felder in der VirtueMart-Benutzerregistrierung

Kategorie-Vorschaubilder in ihren Höhen vereinheitlichen und vertikal zentrieren

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Zielsetzung / Problembeschreibung

Häufig hat man z.B. in Webshops auf Kategorie- oder Produktauswahlseiten diese als Tableau mit Vorschaubildern angezeigt. Hierbei reiht sich Vorschaubild an Vorschaubild jeweils in kleinen Blöcken. Bei einem tabellenfreien und in der Breite flexiblen Layout läßt man diese Vorschaubildblöcke einfach floaten.

Hierbei will man der schönen Optik wg. gerne zwei Dinge erreichen:

  • die Container für die Vorschaubilder sollen alle gleich groß sein
  • und die Bilder darin auch bei unterschiedlicher physikalischen Größe untereinander vertikal zentriert ausgerichtet sein.

Wer sich schon mal mit einer solchen Aufgabenstellung befasst hat, wird erfahren haben, dass dies per HTML und CSS so nicht möglich ist. Neuerdings findet man in Foren dazu eine Lösung die mit display:table, display:table-cell und vertikal-align:middle als Styleanweisungen arbeitet. Jedoch hat diese Formatierung als Tabellenzellen den Nachteil, dass Bilder die physikalisch größer abgelegt wurden als im Layout vorgesehen mit 100% angezeigt werden und dann einfach über den Tabellenrand hinausragen.

Wer sich jetzt fragt, warum ich dann nicht einfach die Bilder in der Breite korrekt skaliert auf den Server schiebe, der kennt meine Kunden nicht. Die sind dazu nicht in der Lage und erwarten einfach dass es trotzdem schick aussieht.

 

Weiterlesen: Kategorie-Vorschaubilder in ihren Höhen vereinheitlichen und vertikal zentrieren

Modulposition eines veröffentlichen Moduls im Template-Script ermitteln

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Aufgabenstellung

Mitunter kann es in einem Joomla-Template notwendig sein, ein Modul unterschiedlich darzustellen, je nach dem an welcher Modulposition es ausgegeben wird. Beispiel ein Warenkorb in der Modulposition "left" würde vertikal aufgebaut werden und alle Bestellpositionen enthalten. Würde der Warenkorb z.B. in der Toggelbar am unteren Browserrand angezeigt werden, müßte der Aufbau gänzlich anders erfolgen. Das kann nicht immer nur über Styles erreicht werden, sondern mitunter muss das Modul-Templatescript die Ausgabe komplett anders ansteuern. Hierfür muss man aber Im Templatescript zunächst erfahren können, an welcher Position das Modul nun gerade veröffentlich ist. Nachfolgend die ganz einfache Lösung (zutreffend für Joomla 1.5.x):

 

Weiterlesen: Modulposition eines veröffentlichen Moduls im Template-Script ermitteln

Verwendung von reply-to als Lösung für Mail-Relay-Server-Problem in VirtueMart 1.x

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Problembeschreibung

Immer mehr Provider stellen Ihre Mail-Server um, so dass ein Spam-Mißbrauchsloch geschlossen wird. Häufig werden Mail-Server als Relayserver mitbraucht. Hierbei nutzt ein Mailabsender eine Absenderadresse die nicht dem Domainbereich des Mail-Servers entspricht. Das wird nicht immer nur im Bösen getan, manchmal sind das auch ganz reguläre praktische Beweggründe. Bsp. Wenn man mit seinem Webshop Bestellmails an den Shopbetreiber und Kunden automatisch herausschickt, nutzt man einen SMPT-Account auf dem Host. Als Absender regulär würde dann z.B. stehen Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.. Diese Adresse soll aber nur vom Webserver verwendet werden. Gerne wird auf derlei Mails geantwortet. Aber an diese Adresse will man keine Mails empfangen. Man selbst müßte beim Beantworten immer erst die Kundenadresse heraussuchen und statt dessen als Anwortadresse eintragen. Das ist mühselig und geht regelmäßig schief. Deshalb wäre es bequemer wenn als Absender nicht diese Webserver-Adresse stünde, sondern die Adresse des Kunden, der die Bestellung aufgibt. Das entspräche aber genau dem Spam-Missbrauchs-Modell wie oben beschrieben. Fast alle Provider unterdrücken mittlerweile diese Verfahrensweise.

Weiterlesen: Verwendung von reply-to als Lösung für Mail-Relay-Server-Problem in VirtueMart 1.x

  • Dateianhänge an VirtueMart-Bestellmails
  • Floating-Problem bei jQuery.SyncHeight
  • Vorschaubildgröße in VirtueMart 2 nachträglich anpassen
  • htaccess unter Win 7 / xampp umbenennen und nutzen
  • XAMPP PHP-Warnmeldungen in Joomla
  • Ändern der Anzeigedaten in SobiPro
  • Wie erstellt man eigene VM-Layouts
  • Leere Produkt-Detailseiten in VirtueMart 2.x
  • Das SEF-System unter Joomla 2.5
  • Die SEF-Adressen-Generierung in VirtueMart 2.x
  • Edimax PS-1210MFN Probleme beim Installieren/Einrichten
  • Mehrwertsteuer-Anzeige in VirtueMart 2.x
  • SEF für VirtueMart 2.0.x korrekt unter J!2.5.x einrichten
  • SobiPro - Templates anpassen
  • JQuery doppelt geladen unter Joomla 2.5
  • BreezingForms-Kontaktformular mit Virtuemart-Kontaktdaten vorausfüllen
  • JoomFish und Akkeba-Backup - Plugin-Reihenfolgen-Konflikt
  • Migration von Phoca-Gallery von J!1.5 zu J!2.5
  • Migration von Joomla von Version 1.5.x zu J!2.5.x
  • Modulpositionen im JYAML 4.0

Seite 8 von 14

  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
<mediaDESIGN> St. Kraft + lens*flares
© St. Kraft <mediaDESIGN> + lens*flares 1996 - 2025
Verantwortlich für den Inhalt nach § 5 TMG und § 55 Abs. 2 RStV
  • Impressum
  • Datenschutzerklärung
  • Seitenübersicht
Back to top