Beiträge von Re:Later

    Zu #3

    Oder, die mit diversen Fonts erst mal rumprobieren wollen, weil man ja beliebig viele einbinden kann und deaktivieren oder nicht. Da wäre natürlich ein weiteres Feature hübsch, dass man seinen eigenen "font-family" definieren kann, der dann für die geladenen Fonts im CSS verwendet wird, so, dass man tatsächlich nur noch im Plugin umschalten muss und der Blah-Font über das selbe "font-family" wie der Blubb-Font angesprochen wird. Da ich selbst aber mit SCSS ode LESS arbeite, ist das kein Thema. Da stellt man einfach die entsprechenden font-Variablen einmalig um und gut ist's...

    Musst halt genau lesen oder vielleicht mal ausprobieren.


    Das Plugin macht ja nichts anderes als die herokuapp-Seite


    PLUS der Features:

    Das macht es, um auch jeweils das passende unicode-range-Gedöns im CSS zu haben.

    Das meint CSSe exakt passend und optimiert für den jeweiligen UserAgent. Und da liefert Google Diverses aus.

    Danach werden dann die Fonts und CSSe gelöscht und (ggf. neuere) Versionen des Fonts geladen und gespeichert.

    Auch kombinierte Links, die mehrere Fonts in einem enthalten können eingesetzt werden.


    Exakt das waren die Gründe, warum ich mich überhaupt damit beschäftigt habe.


    Es gibt auch eine Einstellung, dass man die Standard-UserAgents verwenden kann, die dein Link auch verwendet. Damit werden dann alle Fonts exakt so runtergeladen (eot, ttf usw.), wie es auch die herokuapp-Seite macht. Je nach Einstellung dann aber mit Erneuerung der Version in eingestellten Zeitintervallen.


    Mindestens aber eine Erleichterung für Leute, die dann Probleme oder Mühe damit haben, die Fonts und CSSe per FTP ins richtige Verzeichnis zu legen.

    Ändere mal die viewport-Zeile im Template-index.php nach

    Code
    1. <meta name=viewport content="width=device-width, initial-scale=1.0, shrink-to-fit=no"/>

    Es gab nach Safari 9 diesbzgl. Änderungen wie sich der Browser verhält. Und da auch Chrome auf Apples die Safari-Engine verwenden (muss), erklärt das vielleicht dann auch, warum auch auf Chrome.


    Browser-Cache dann löschen. Man weiß ja nie ;-)

    Eine kleine Spielerei, obwohl mir das Thema eigentlich ziemlich wurst ist, wo meine Google Fonts abgeholt werden ;-) Paar Kunden von mir aber nicht.


    Im Plugin kann man mehrere Google Fonts hinterlegen in der Art

    Das sind die Links wie man sie auf Google Fonts angeboten bekommt.

    der Art

    Code
    1. https://fonts.googleapis.com/css?family=

    Auch kombinierte Links, die mehrere Fonts in einem enthalten können eingesetzt werden.


    Ob es nun alles an Link-Möglichkeiten kann, keine Ahnung.


    Das Plugin lädt die Fonts und zugehörige CSS herunter. Dabei verwendet es die IP des Servers, auf dem das Plugin läuft und nicht die IP des Besuchers, was ja "DSGVO-schlimm-schlimm-schlimm" ist.


    Dafür verwendet es zwar den UserAgent, also die Kennung des Browsers (Firefox, Chrome oder sonstwas, Version, Betriebssystem usw.), des Besuchers, aber das ist ja nicht "DSGVO-schlimm-schlimm-schlimm" und ohne private Infos. Das macht es, um auch jeweils das passende unicode-range-Gedöns im CSS zu haben.


    Fonts und CSSe werden in Joomla in Ordner media/fontsghsvs gespeichert, um beim nächsten mal wiederverwendet zu werden. Eine Verfallzeit kann man einstellen. Danach werden dann die Fonts und CSSe gelöscht und (ggf. neuere) Versionen des Fonts geladen und gespeichert.


    Das Einbinden der Fonts und CSSe findet final also vom eigenen Server statt und nicht von Google.


    Wie oft bei mir, sind noch nicht alle Hilfstexte vorhanden oder ins Deutsche übersetzt, aber das Plugin läuft seit > 1 Jahr ohne größere Probleme auf diversen Haus-und Wiesen-Seiten.


    Was es nicht kann: Verhindern, dass dann irgendwo anders konfigurierte Fonts (z.B. in einer CSS-Datei) dann doch vom Google abgeholt werden.


    Es bindet das Font-CSS inline in den <HEAD>...</HEAD> ein, sollte man noch wissen, also nicht die CSS-Datei per <link>. Keine Ahnung, warum ich das damals so gemacht habe ;-)


    https://github.com/GHSVS-de/plg_system_importfontsghsvs
    Dort unter Releases.


    Fragen, Gemecker, Input, Sonstwas (Deutsch oder Englisch) unter

    https://github.com/GHSVS-de/pl…m_importfontsghsvs/issues


    oder via Kontaktemail ghsvs.de/kontakt

    Ja, das ist es. Crash-Anleitung:


    Kopiere ALLE (also auch die XML) Dateien aus dem tmpl/-Ordner in den Override-Ordner und benenne sie um (wohl am besten vorher, wenn schon vorhandene ;-) )


    Ich habe "rasepase" genommen.


    rasepase.php

    rasepase_children.php

    rasepase_items.php

    rasepase.xml


    In der xml-Datei rasepase.xml änderst 3x das DEFAULT nach RASEPASE

    XML
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <metadata>
    3. <layout title="COM_CONTACT_CATEGORY_VIEW_RASEPASE_TITLE" option="COM_CONTACT_CATEGORY_VIEW_RASEPASE_OPTION">
    4. <help
    5. key = "JHELP_MENUS_MENU_ITEM_CONTACT_CATEGORY"
    6. />
    7. <message>
    8. <![CDATA[COM_CONTACT_CATEGORY_VIEW_RASEPASE_DESC]]>
    9. </message>
    10. </layout>

    Jatzt kannst im Backend beim Anlegen eines neuen Menü-Eintrags unter Kontakte deinen eigenen Override

    COM_CONTACT_CATEGORY_VIEW_RASEPASE_TITLE

    als Menüeintragstyp auswählen.


    Diese unschönen Sprachstrings kannst dann noch unter Erweiterungen > Sprachen > Overrides für den Backendbereich "hübschen".

    Wurde für kommendes 3.9.15 gefixt. Keine Ahnung was wie in J4 passieren wird.

    https://github.com/joomla/joomla-cms/pull/27398

    Diese Buttons müssen auch accessible gemacht werden und zwar überall auf dieselbe Art.

    Wurde gemacht, aber, wie oft bei dem Thema, Unklarheit, wie weit man da bei der Auszeichnung nun geht bzw., was man Screenreadern verstecken darf ;-)

    https://github.com/joomla/joomla-cms/issues/27399

    OT:

    was Du mit "unbedarften Klicks" meinst

    z.B. Dateirechte und Ordner-Rechte. Und beim einen oder anderen Icon ist auch nicht immer klar, ob Admin-Tools sofort loslegt oder noch einen Zwischenschritt macht.


    Wie immer, sollte man halt wissen, was man tut. Z.B. SSL in Joomla-Konfiguration aktivieren, aber kein Zertifikat eingerichtet haben ;-)


    Zur Pro-Version würde mich interessieren, ob man die htaccess fürs Frontend konfigurieren kann oder, ob die immer komplett geschrieben wird. Falls das wer weiß...

    Wissen Sie, ob man in Java Daten per Google Suche beziehen kann?

    https://serpapi.com/

    Ist (happig) kostenpflichtig, weil sich G sonst selbst ins Knie schießen würde bzgl. Werbeeinnahmen. Es gibt aber eine kostenlose Testmöglichkeit.


    Glaub zwar nicht, aber wenn es um Einbindung von einer domain-spezifischen Google-Suche auf einer Webseite gehen sollte, also bspw. Suche nur auf de.wikipedia.org gibt es kostenloses Google CSE (Custom Search Engine). Allerdings mit Werbung, wie man es auch von normaler Google-Suche kennt.

    Eine Datenbank ist eigentlich für Daten, nicht für Dateien gedacht

    Es geht um Extraktion spezifischer Daten aus einer XML-Datei.

    ----------------------------------

    Vorneweg: Mediawikis verfügen über eine so genannte API-Schnittstelle, die auch für Exporte verwendet werden kann. Deshalb wäre mein Vorschlag, du schaust auch mal in einem MediaWiki-Forum, ob dir jemand besser weiterhelfen kann. Ich pflege zwar auch 2 Mediawikis, aber die schaffen zum Glück nicht öffentlich und ich blieb bis jetzt verschont von Nutzung dieser API ;-)


    Jedesmal, wenn ich anhand eines Programmes versuche, die Datei zu bearbeiten, wird die Datei als zu groß gemeldet.

    Eben. Deshalb habe ich unter Linux und in der Linux-Konsole das Programm "sed" verwendet (wie oben gepostet), um die <links> erst zu entfernen und damit eine kleinere Datei zu erstellen, die sich aber auch nicht ohne extreme Wartezeit öffnen lässt.

    Kann ich die Daten auch auf der Festplatte anstatt auf einem Server in MySQL speichern?

    Ab dem Moment, wo es dir gelingt, alle 2.377.925 Millionen Einträge der XML-Datei auszulesen besser: zu durchlaufen, ohne, dass sich was aufhängt, bist du vollkommen frei, als was oder wo du die abspeicherst.


    Es geht also weniger darum, ob du die aus dem XML extrahierten Daten nun gleich in eine MySQL-Datenbank ablegst oder in einer oder mehreren Dateien speicherst, sondern ob es dir gelingt, die Tausende Schleifen zu durchlaufen, ohne, dass sich das ausführende Programm aufhängt oder das Programm, dass die Daten später anzeigen soll.

    Und weißt du zufällig, ob die hier behandelte Datei alle Wikipedia Artikel einschließt?

    Keine Ahnung. Sind 2.377.925 Millionen realistisch?

    -----------

    Alles, was ich mit folgendem Sermon zum Ausdruck bringen will: Trial&Error und ein gewisses KnowHow muss man sich schon rangeschafft haben oder ranschaffen, um Lösungen für solche Probleme zu finden ;-) Das können wir dir leider nicht abnehmen. Folgendes hat mich jetzt auch mehrere Stunden beschäftigt ;-)


    - Ich arbeite mit Windows 10.


    - Ich habe die Datei heruntergeladen und entpackt.

    - Hatte dann eine XML-Datei, 2,5 Gigabyte, mit der ich nichts anfangen konnte, weil kein Editor sie öffnen wollte.


    - Ich habe WIN runtergefahren und mein LINUX (Debian) gestartet, was reecht lange dauert ;-)


    - An der LINUX-Konsole obige "sed"-Zeile laufen lassen, um sie etwas zu verkleinern.


    - Dann unter WINDOWS den Notepad++ in der 64-bit-Variante installiert, weil der etwas größere Dateien auch kann.

    - Dort die verkleinerte Datei geöffnet, was nach 2 Kafee und etwas Abspülen dann auch ging. Um dir zu bestätigen, dass das klappte. Eine Garantie gibt es für das Öffnen-Können aber nicht.


    - Dann unten folgendes Test-Script auf meiner stinknormalen Webseite bei stinknormalem Hoster laufen lassen, um zu probieren, ob man die XML-Datei in seine Einträge zerlegen kann, egal, was man nun damit danach vorhat. Dieses Testscript versucht nur Titel und Abstract simpel in eine Textdatei zu schreiben.


    - Kann man nicht, weil sich der stinknormale Server wegen Speicherüberlauf aufhängt.


    - Dann das Script auf meinem WSL (Windows Subsystem for Linux, DEBIAN) probiert. WSL ist eine Möglichkeit unter WIndows 10 LINUX zu nutzen, ohne, dass man Windows erst runterfahren muss (https://docs.microsoft.com/en-us/windows/wsl/install-win10).


    - Das Script lief > 30 Minuten und fehlerfrei durch.


    - Zwar ist die Ergebnisdatei wieder zu groß für verlässliches Öffnen-Können am Windows, aber man könnte das Script ja auch so ändern, dass mehrere Dateien erstellt werden. Das könnten dann ja ach Dateien sein, die man problemlos in kleinen Häppchen in MySQL importieren könnte. Oder sonst was.


    - Da dieses WSL Vieles aber nicht von alleine kann, muss man sich auch etwas damit beschäftigen.


    - Resümee ist aber, es geht, wohl auch mit XAMPP, wenn der Server, egal ob WSL oder XAMPP lang genug Zeit und ausreichend Speicher hat, seine Arbeit zu beenden ;-)


    Mein Test-Script, dass ich mit der schon reduzierten Datei ausprobiert habe:

    Und man könnte es ergänzen, dass es den Download und Entpacken und Verkleinern gleich mitmacht, aber eben nur... Kennen wir schon... "Wenn das ausführende System mitspielt,"

    Unterm Strich kommt es immer auf das selbe heraus. Wenn das System mitspielt, geht alles... Man könnte vielleicht ein XAMPP oder ähnlich so aufbohren, dass er auch Stunden vor sich hinrödelt und brav die Datenbank befüllt.

    Anderes Problem könnte dann aber vielleicht sein, dass die Datenbank zu groß wird, um sie irgendwo anders zu verwenden oder problemlos zu importieren. Vielleicht lästiger Rattenschwanz. Hängt einfach vom Provider ab, was der erlaubt.

    Also gibt es keine Möglichkeit, die XML Datei automatisiert zu reduzieren? Manuell ist das ja kaum möglich.

    Auf meinem Linux-Rechner, der allerdings recht üppig ausgestattet ist, gelingt mir durch ein

    Code
    1. sed -i.bak '/<links>/,/<\/links>/d' dewiki-latest-abstract.xml

    das Entfernen der <links>...</links>-Blöcke. Sogar unerwartet schnell.


    Hinterher habe ich 620MB und sieht dann so aus

    Theoretisch geht ähnliches natürlich auch mit PHP, vielleicht preg_replace oder so. Aber noch mal, dein System muss das packen.


    Wenn du auf dem Server auch exec() in PHP verwenden darfst, wäre eine Möglichkeit

    Code
    1. $command = 'sed -i.bak \'/<links>/,/<\/links>/d\' dewiki-latest-abstract.xml';
    2. exec($command);

    -------

    Nur als Hinweis. Das

    Code
    1. -i.bak

    oben, wenn man Originaldatei bewahren will. Wenn man sie direkt ändern will, halt nur

    Code
    1. -i

    Na ja, wenn du entsprechende Server-Kapazitäten hast und Zugriff auf entsprechende Tools, dann wohl nicht unbedingt. Ich hab keine Ahnung, ob ein XML-Reader (bspw. in PHP) da mitspielt.


    Musst halt erst herunterladen, dann entpacken, dann mit XML-Reader die ca. 24 Millionen Zeilen durchlaufen, die entsprechenden Tags isolieren, dann in DB schreiben.


    Jedenfalls enthält die Datei folgende Struktur. 1 einzelner <doc>-Eintrag vollständig:

    Das musst du bitte etwas präziser beschreiben, unter anderem, was in den XML-Dateien zu finden ist, welche du meinst (sind ja Unmengen unter deinem Link), in welcher Form und zu welchem Zweck sie in deine Datenbank eingebaut werden soll. Soll sie dann ausgelesen werden und irgendwelche Daten auf einer Webseite anzeigen .... oder... oder? Oder einfach nur das XML-Gerüst in ein einzelnes Feld der Datenbank gespeichert werden?


    Und was dir noch einfällt und hier weiterhelfen könnte.

    Ah, nee! Geht richtiger ;-)


    Mach aus

    PHP
    1. <?php//no direct accessdefined( '_JEXEC' ) or die( 'Restricted access' );
    PHP
    1. <?php
    2. //no direct access
    3. defined( '_JEXEC' ) or die( 'Restricted access' );

    Und mit einem geeigneten Text-Editor bearbeiten! Keinesfalls mit dem Windows-eigenen (danach sieht dein Code nämlich aus).

    Oder im Templateeditor im Backend.

    Die .htaccess als PDF ist für testende Helfer nicht gut, da Sonderzeichen und Zeilenumbrüche drinnen, wo keine sein dürfen. Bitte als Textdatei oder als Code hier im Forum, so, dass man simpel kopieren kann. Eine *.txt-Datei kann man vorher zippen (*.zip), falls das Forum upload verbietet.


    Na ja, Sicherheit ist das eine Paranoia was anderes ;-) Ich tät diese .htaccess in die Tonne klopfen oder wenigstens ausdünnen. Oder, wenn du die .htaccess in AdminTools PRO konfigurieren kannst, dann umkonfigurieren.


    In der .htaccess, die du postest (von Admintools Pro), findet sich eine Zeile

    Code
    1. ## Explicitly allow access to the site's robots.txt file
    2. RewriteRule ^robots.txt$ - [L]

    Hinter die setzt du eine weitere

    Code
    1. ## Explicitly allow access to the site's sitemap.xml file
    2. RewriteRule ^sitemap.xml$ - [L]


    Die .htaccess erlaubt explizit einige Pfade und Dateierweiterungen. Alle andern sind verboten.


    Weiter hatte ich dann keine Lust mehr wegen PDF. Vielleicht noch weiteres drinnen.


    EDIT: Die Anmerkung von Elwood ist auch wichtig. Ich glaube zwar nicht, dass man ohne Server-Konfiguration umschreiben kann, welche .htaccess gezogen wird (theoretisch ginge auch .htaccess.admintools), aber das sollte abgesichert sein, welche, durch Umbenennen der jeweils anderen.