Für das Joomla Fancy TagCloud-Module eigene Themes erstellen
- Details
Problembeschreibung
Es gibt zwar für das Joomla-Module Fancy TagCloud viele Konfigurationsmöglichkeiten, aber leider ist darüber nicht alles vollständig konfigurierbar. Im Zuge der Umstellung von Projekten auf DSGVO-Konformität bestand ein Bemühen darin, den Zugriff des Projektes auf externe Ressourcen wir z.B. Fonts vom Google-Font-Server zu verhindern. Fancy TagCloud hat diese Einbindung von Fonts fest in Scripte verankert. Es ist nicht konfigurierbar lokale Fonts zu verwenden. Da die Style-Anweisungen auch aus PHP-Scripten kommen, ist es schwer zu verhindern, dass die Fonts von Fremdservern geladen werden. Die einzig Chance bestand darin das Theme-Script anzupassen in dem diese Fonts von e10f949fcaacdb195442bfb5062d59de-gdprlock geladen werden.
Lösung
Immerhin bietet Fancy TagCloud die Möglichkeit an im Modul wahlweise alternative Themes zu laden. Zwar wird nur ein einziges im Installationspaket mitgeliefert, aber es ist doch recht einfach daraus weitere Themes zu abzuleiten. In diesem eigenen Theme kann man dann seine gewünschten Modifikationen vornehmen ohne Angst haben zu müssen, dass durch ein Update des Modules diese Modifikationen überschrieben werden würden.
Dazu sind zwei Schritte notwendig:
Weiterlesen: Für das Joomla Fancy TagCloud-Module eigene Themes erstellen
Das Formular "Fragen zum Produkt" in Virtuemart um Felder erweitern
- Details
Problembeschreibung
Virtuemart bietet in der Produkt-Detail-Seite einen Button mit einem Link zu einem Formular, über welches der Seitennutzer eine Frage zum Produkt stellen kann. Vielen Shopbetreibern ist dieses Formular mit seinen angebotenen Feldern zu dürftig. Es fehlen ggf. wichtige Felder um mit dem Kunden in Kontakt treten zu können. Nur die E-Mail-Adresse ist einfach zu wenig. Deshalb trat ein Kunde mit der Bitte an mich heran, diese Formular um die Felder Straße-und-Hausnummer, PLZ-Ort, Telefon und Betreff zu erweitern. Zunächst hatte ich befürchtet, dass man dazu Core-Scripte modifizieren müsste. Jedoch stellte sich heraus, dass die Lösung zum einen recht einfach ist, und zum anderen keine Core-Scripte betreffen muss. Alles gelingt durch Erzeugen von Template-Override-Scripten im einen Joomla-Template. Diese Beitrag beschreibt den Weg zur Lösung.
Lösung in drei Schritten
Natürlich wäre es vom sauberen Stil her notwendig, speziell das Abholen der gesendeten Formularinhalte über das Control-Script components/com_virtuemart/views/askquestion/view.html.php zu realisieren. Dort gehört die Request-Abfrage der Feldinhalte und das Bereitstellen der Inhalte für die Mail-Sende-Aktion eigentlich hin. Nur, das ist eben ein Core-Script und nicht über das Overriding eingebunden. Deshalb sollte man eine Modifikation dort vermeiden. Betroffen sind sind schließlich drei PHP-Template-Scripte und und eine paar CSS-Styles, die man in die custom.css einfügen kann.
Weiterlesen: Das Formular "Fragen zum Produkt" in Virtuemart um Felder erweitern
Maßnahmen zur Beschleunigung von Joomla-Projekten
- Details
Eines der Kriterien für eine gutes Suchmaschinenranking und eine positive Nutzererfahrung ist die Geschwindigkeit mit der Seiten geladen werden. Neben dem rein subjektiven Eindruck gibt es auch Webservices, mit denen man objektive Tests durchführen kann. Eine Seite ist z.B. der PageSpeed-Test der Google-Deverloper-Seiten. Hier werden neben einer Bewertung auch Maßnahmen zur Beschleunigung vorgeschlagen.
Für einen Seitenbetreiber eines Joomla-Projektes stellt sich nun also die Frage, wie man die eigene Seite schneller machen kann. Dazu möchte ich nachfolgend ein paar Maßnahmen ausführen.
Weiterlesen: Maßnahmen zur Beschleunigung von Joomla-Projekten
PHP get_class_methods liefert kein Ergebnis obwohl Methoden in der Klasse vorhanden sind
- Details
Problembeschreibung: get_class_methods liefert NULL
Ich hatte letztens in einem PHP-Projekt eine neue Klasse programmiert. Über den PHP-Befehl get_class_methods (s. PHP-Manual) sollte ein anderes Script die Methoden dieser php-class auslesen und in einem Pulldown-Selectfeld zur Auswahl zur Verfügung stellen. Das Ergebnis, was die get_class_methods() lieferte war jedoch immer NULL, es wurden keine Methoden erkannt und als Resultat der Abfrage geliefert. Bei anderen class-Scripten funktionierte dieser PHP-Befehl jedoch zuverlässig.
Die Lösung war sehr versteckt
Nachdem ich diverse Dinge probiert hatte und schon ziemlich verzweifelt war, und den Fehler in allen möglichen und unmöglichen Ursachen vermutete, was die Lösung schließlich sehr einfach aber versteckt: Ich programmiere mit der IDE PhpStorm unter Windows. Beim Neuanlegen von Scripten wurde als der Zeilenumbruch-Standard für Windows CRLF verwendet.
Verhindern dass ENTER ein Formular absendet - statt dessen Verhalten wie Tabulator-Taste
- Details
Aufgabenstellung / Zielsetzung
Üblicherweise reagieren alle Formulare auf Websites lt. Browser-Standard gleich, in dem diese beim Drücken der ENTER-Taste auf der Tastatur abgesendet werden. Beginnend mit dem Formular RM-Zuschnitte anfragen/blanko bestellen, sollte dieses Standardverhalten geändert werden, weil der Chef meint, dass das kein Benutzer im Internet so erwarten würde. Vermutlich rührt diese falsche Benutzererwartung daher, dass EXCEL-Benutzer mit Enter zur nächsten Zelle springen können. Deshalb wurde das Verhalten des o.g. Formular speziell für ENTER wie folgt verbogen :
- Zunächst sollte das Formular nicht mehr abgesendet werden bei ENTER
- Statt dessen sollte ENTER wie Tab funktionieren und bei jedem ENTER zum jeweils nächsten Feld springen.
- Welches Feld das nächste ist, weiss ein Formular bei Nutzung der TABULATOR-Taste, aber nicht bei ENTER. Deshalb muss dem Fomular speziell über das Feld-Attribut tabindex eine Reihenfolge mitgegeben werden.
- Nur die Felder (z.B. nur Inputfelder aber keine Radio-Buttons) sollen in der Tab-Reihenfolge angesprungen werden. Hier soll also eine Auswahlfreiheit bestehen.
- Für die erste ENTER-Eingabe soll bevorzugt ein Feld konfiguriert werden können, welches dann den Fokus erhält. Wenn kein solches Feld definiert wurde, soll das erste Feld in der TabIndex-Liste den Focus erhalten.
- Der Submit-Button soll erst wenn er selbst schon den Focus auf sich hat mit ENTER das Formular absenden.
Umsetzung im Detail
Für die Gesamte Aufgabenstellung wurde zur Umsetzung eine jQuery-Funktion erstellt, die mit dem betreffenden Fomular geladen wird.
Vorgehensweise beim Umbenennen von Bildern in Virtuemart
- Details
Aufgabenstellung / Zielsetzung / Problembeschreibung
Wie benenne ich Bilddatein im VirtueMart um, damit diese SEO-friendly und "sauber" also mit Keywords, ohne Umlaute und Unterschtriche, Sonderzeichen oder Ähnliches sind.
Am sinnvollsten ist es, beim erstmaligen Hochladen von Bilddatein bereits auf solche Dinge zu achten.
Folgende Probleme treten womöglich auf: Wenn man ein Bild per FTP auf dem Server umbennen oder löschen ist dieses noch nicht in VirtueMart umbenannt bzw. gelöscht. Problematisch: andersrum allerdings auch nicht! (Auch wenn eine Datei in VirtueMart umbennt oder löscht, ist diese trotzdem noch auf dem Server)
Weiterlesen: Vorgehensweise beim Umbenennen von Bildern in Virtuemart
Welche Bedeutung hat der Unterstrich bei SASS-Scripten
- Details
Sie haben es sicher schon gesehen, dass es bei SASS (scss) manche Style-Scripte mit einem Unterstrich im Dateinamen beginnen, andere wiederum nicht. Bei der Import-Einbindung dieser Scripte aber scheint die Schreibweise egal. Was hat das damit aussich?
Der Sinn der Underscore-Syntax
...ist, daß hierüber dem SASS-Compiler mitgeteilt werden kann, ob man eine importierte Scriptdatei wirklich mit ihrem Inhalt in eine aufrufende Scriptdatei einbetten will, es also am Ende nur eine einzige Scriptdatei entsteht in der alle so importierten Unterscripte mit ihrem Inhalt enthalten sind. Ohne Unterstrich demgegenüber sagt man jedoch dem Compiler, dass diese so importierte scss-Datei als eine eigenständige css-Datei compiliert erhalten bleibt und klassisch per @import in der fertigen css-Hauptscript aufgerufen wird. D.h., in diesem Fall entstehen ggf. nicht eine einzige CSS-Datei, sondern sehr viele einzelne.
Weiterlesen: Welche Bedeutung hat der Unterstrich bei SASS-Scripten
Virtuemart: Sprachabhängige Verfügbarkeitsanzeige, fallabhängiges Stylen und weitere Verfügbarkeitsanzeigen
- Details
Zielstellung / Aufgabe
Lt. einer Aufgabenstellung eines Kunden sollten für Virtuemart in Bezug auf die Verfügbarkeitsanzeige von Produkte drei Aufgabenstellungen erreicht werden:
- Die Anzeige der Verfügbarkeiten in VM erfolgt standardmäßig per vordefinierte Grafiken. Diese liegen alle in einem Verzeichnis und daraus wird im Backend-Produkt-Editor eine Pulldown-Auswahlliste erzeugt. Nun kann man eine dieser Grafiken auswählen und diese wird mit ihrem Dateinamen in das Verfügbarkeitsfeld eingetragen und gespeichert. Alternativ kann man auch in das Verfügbarkeitsfeld einen beliebigen Text schreiben. Nachteil, egal ob Text oder Grafik, es findet keine Übersetzung in die jeweilige Sprache statt. Die Grafiken sind von VM alle in engl. erstellt. 1. Aufgabenstellung war, dass die Anzeige sprachkonform erfolgt.
- Neben den vorhandenen Verfügbarkeitsangaben sollten weitere mgl. sein, so z.B. eine, die die Aussage zulässt, dass ein Produkt vom Hersteller nicht mehr länger angeboten/produziert wird.
- Abhängig vom Inhalt der Verfügbarkeitsangabe soll ein mehr oder weniger auffälliger Style zur Anzeige genutzt werden. Um z.B. sicher zu verhindern, dass ein Kunde ein Produkt bestellt, welches aktuell oder gar nicht mehr verfügbar ist, soll die Nicht-Verfügbarkeit mit weißem Text auf einem roten Block angezeigt werden während andere Verfügbarkeiten anders z.B. grün ausgezeichnet werden.
Weiterlesen: Virtuemart: Sprachabhängige Verfügbarkeitsanzeige, fallabhängiges Stylen und weitere...
Fonts in Gantry 5 einbinden, die nicht vom google-Server geladen werden
- Details
Zielstellung:
Über den Template-Manager von Gantry 5 ist es sehr einfach Fonts in das Template einzubinden, ganz besonders dann, wenn man einfach nur einen Font vom Google-Font-Server einbinden möchte. Hierfür wird von Gantry 5 im Template-Manager ein Font-Selector-Tool angeboten Base-Outline > Register Styles > Gruppe Font Families. Das wäre ein Methode.
Eine weitere Methode, aber ein klein wenig komplizierter, wäre es, wenn man z.B. für Kundenprojekte eine CI-Schrift einbinden soll, die nicht aus dem Google-Fundus kommt. Zunächst sind hier natürlich die Urheber- und Lizenzrechte für die Schrift zu beachten! Nicht jede Schrift darf einfach über eine Webseite eingebunden werden. Das wäre eine unzulässig Verbreitung, denn jede so eingebundene Schrift ist dann für jedermann downloadbar. Es gibt aber neben den Google-Fonts weitere Seiten die auch kostenlose Schriften anbieten - z.B. fontfabric.com oder fontsquirrel.com. Hier allerdings werden diese nicht als Dienst bereitgestellt, sondern man muss diese als ZIP-Archiv herunterladen und selbst hosten und entsprechend als Font-Family einbinden. Diese Methode soll nun beschrieben werden.
Weiterlesen: Fonts in Gantry 5 einbinden, die nicht vom google-Server geladen werden
Eigene Gantry 5 Style-Formulare anlegen
- Details
In Gantry 5 Templates kann man unter dem Menü-Button Styles grundsätzliche Einstellungen und Parameter für seine Templates vornehmen. Dort werden z.B. die CI-Farben hinterlegt, die Hauptschriften, Sectionsfarben oder Hintergrundbilder etc.
Dieser Artikel beschreibt, wie Sie das Set an Konfigurationsparametern in Ihrem Gantry-5-Template projektabhängig verändern oder erweitern können am zwei Beispielen:
- Sie wollen weitere CI-Farben hinzufügen
- Sie wollen für eine selbst erstellte Section Hauptfarben und Hintergrundbilder definieren.
Beispiel A: Hinzufügen und bereitstellen weiterer CI-Farben
Entscheidend für alle Erweiterungen und Änderungen im Set der Styles-Konfigurationsformulare ist das Verzeichnis templates/g5_helium/blueprints/styles. Hier gilt die Regel, jede dort abgelegt YAML-Datei erzeugt eine neue Formulargruppe. Die accent.yaml ist z.B. für die Konfigurationsparameter der Akzent-Farben veranwortlich. Diese hat typischerweise folgenden Aufbau:
Verwendung von CLi in GRAV-Projekten
- Details
Vorbereitungen
Zunächst muss das Grav-Download-Paket in einen Webspace-Pfad kopiert und entpackt werden.
In Folge dessen entsteht die Verzeichnisstruktur von Gravity und dort unter anderem das Verzeichnis /bin/ in welchem sich die 4 Dateien gpm, grav, plugin und composer.phar befinden. In das Verzeichnis wechseln und diesen Dateien Ausführungsrechte (750) vergeben. Dann wieder zurück in das Webspace-Root der Gravity-Installation. (Sollte diese Rechte nicht gesetzt werden kann man diese CLi-Befehle auch ausführen, in dem man diese über php startet ($ php befehl optionen).
Zu berücksichtigen ist noch wem die Grav-Installtion gehört, also z.B. dem ftp-User oder wp-User. Mit diesem sollte man eingeloggt sein.
Nun kann's los gehen.
Gantry 5 Layouts anpassen
- Details
Wie passt man für Gantry 5 das Layout nach eigenen Bedürfnissen an - Erstellung eigener Outlines
Eigene Outline anlegen.
Outlines sind die Vorlagen für Gantry-Layouts. Von diesen können Layouts abgeleitet werden in dem ein Layout erstellt wird und dann über den load-Button dieses Outline auf das neue Layout angewendet wird. Das Layout erhält dann die vollst. Struktur wie im Outline angelegt, allerdings kann man für späteteres Überschreiben eines Layouts mit einem Outline festlegen, wie konsequent das Überschreiben erfolgen soll. So können z.B. bereits vorgenommene Modifikationen im Layout erhalten bleiben und trotzdem neue oder geänderte Strukturen aus dem Outline geladen werden.
Um nun ein eigenes Outline anzulegen, geht man in den Ordner templates/g5_helium/layouts. Die hier vorhandenen YAML-Scripte beschreiben die vorhandenen Outlines. Entweder kopiert man sich eine als Ausgangsbasis geeignete Vorlage mit eigenem Namen oder man erstellt von grundauf per Editor seine eigenen Vorlage.
Häufig findet man als Vorlagen die default.yaml, welche die Standardvorlage (Base-Outline) ist, welche meist auf alle Projektseiten angewendet wurde. Dann gibt es häufig eine home_-_particle.yaml, welche beispielhaft eine Layout mit Particeln für die HomePage liefert. Das trifft so meist bei fertigen RocketTheme-Templates für Joomla, Wordpress oder Grav zu. Weitere Outlines sind für die Error- und Offline-Page bestimmt.
Erstellung eines Kontaktformulars im CMS GRAV (gravity)
- Details
Voraussetzungen für das Erstellen einen Kontaktformulars in GRAV
Informationen zum Erstellen findet man auch im GRAV-Tutorial.
Das Form-Plugin von gravity muss installiert und aktiviert sein.
Das Mail-Plugin von gravity muss installiert und konfiguriert sein. Hier müssen die E-Mail-Adressen eingetragen werden, an die das Formular seine Daten schickt und wer als Absender übergeben werden soll. Bisher war es ausreichend den PHP-Mailer zu verwenden.
Das Formular wurde als Inhalt auf der Home-Page platziert. Dazu muss zuerst für die Site der Template-Type Form ausgewählt werden. Infolge dessen wird die default.md im Verzeichnis user/pages/01.home ersetzt durch eine Datei form.md.
Register Options:
- Folder Numeric Prefix: enabled (das setzt eine Nummer vor den Ordner und ermöglicht zum einen die Sortierung zum anderen wird diese Seite dann sofort auch als Menüeintrag im Hauptmenü erscheinen.)
- Folder Name: kontaktformular
- Parent: -Root-
- Display Template: Form
Danach muss im Feld Frontmatter im Expert-Modus für die Page nachfolgender Inhalt eingesetzt (s.u.). Über das Template-Layout wird der Page Content eingeblendet im Mainbar.
Weiterlesen: Erstellung eines Kontaktformulars im CMS GRAV (gravity)
- Update von MySQL z.B. unter XAMPP und auftretende Probleme und Fehlerquellen
- Wo speichert Gantry 5 seine Daten
- Gantry-Klassen richtig verwenden - kleine Tipps
- Überschriften Tags in Joomla 3 (H1, H2, H3 ...)
- E-Mail Cloaking in Gantry-5 Template Particles
- PHP-Server-Monitor (Website-Verfügbarkeitsüberwachung)
- Logo im Seitenkopfbereich verkleinern beim Scrollen nach unten
- Gantry Template - Grid-Blöcke in der Höhe synchronisieren (equal height)
- c54e4e5635912ef26f54b51cd9a13fa6-gdprlock keine Seite erreichbar - Login und Shop-Bezahlung nicht möglich
- FTP-Protokoll oder wget nutzen für Datentransfer von Webserver zu Webserver
- ProjectFork Änderung der Benachrichtigungsmails bei Dokumentenuplaod
- Modifikation der Eigenschaften eines Gantry 5 Particles per Overriding
- Eigene Verfügbarkeitsgrafiken in VirtueMart 3 als Overrides sicher gegen Updates ablegen
- VirtueMart 3.x Versandkosten-Ausgabe in den Produktdetailseiten unterdrücken
- VirtueMart 3 - Währungsumrechnung Hintergrundinfos
- Ein Joomla-Template für immer
- Österreichisches Sprachpaket (de-AT) für Joomla 3.x erstellen
- Seitenbewertung, Pagerank
- Fixed Tabellenkopf
- Projekt migrieren oder besser ein neues aufsetzen
Seite 2 von 14