Ok, danke.
Noch etwas, zu http://test.penschke.net/tmp/xml.php. Da fehlen auf den Detailseiten auch die Ausgaben der Beschreibung in Englisch oder muss das auch erst noch eingebaut werden?
Ok, danke.
Das soll nachher auch Sprachabhängig angezeigt werden. Deswegen jetzt nur eins.lck wrote: ↑Mon Jan 14, 2019 5:48 pmNoch etwas, zu http://test.penschke.net/tmp/xml.php. Da fehlen auf den Detailseiten auch die Ausgaben der Beschreibung in Englisch oder muss das auch erst noch eingebaut werden?
Mir sieht das wie ein schneller Fix aus, um zu verhindern, dass das Script die Datei lädt, aber die URL eben nicht komplett löschen zu müssen.lck wrote: ↑Mon Jan 14, 2019 5:32 pmIn dieser Datei fällt mir schon mal auf, dass hinter sitr_XH zwei || sind. Weiß nicht, ob das damit zu tun hat oder so gewollt ist . Anscheinend, wenn ich das richtig verstehe, oder?olape wrote: ↑Mon Jan 14, 2019 2:55 pmDas zweite Element der jeweiligen Zeile aus http://test.penschke.net/tmp/xml_source.dat.
Bei Tata habe ich momentan des zweite Element leer, damit es da nicht hängt.Code: Select all
sitr_XH||https://plugins-172.cmsimple.sk/plugins/sitr/sitr-xh.xml|Tata|2019.01.12
Finde ich gut. Könnte man vermutlich recht einfach umsetzen, etwa:olape wrote: ↑Mon Jan 14, 2019 5:51 pmDas soll nachher auch Sprachabhängig angezeigt werden. Deswegen jetzt nur eins.lck wrote: ↑Mon Jan 14, 2019 5:48 pmNoch etwas, zu http://test.penschke.net/tmp/xml.php. Da fehlen auf den Detailseiten auch die Ausgaben der Beschreibung in Englisch oder muss das auch erst noch eingebaut werden?
Code: Select all
$desc = $xml->xpath("//description_$sl");
if ($desc) { // not found? fall back to EN
$xml->xpath('//description_en');
}
Code: Select all
<description lang="en">english description</description>
<description lang="de">deutsche Beschreibung</description>
Es ist aber auch zu denken, dass es Nutzer gibt, die wenig Deutsch/Englisch sprechen und oft beide Sprachen lesen, um besse zu verstehen, was in den Beschreibungen steht. So wird es wilkommen beide Sprachen zu sehen. Es wäre dann wohl praktisch, die Beschreibungen in verschiedenen Sprachen mit etwas wie Accordion aufklapbar zu haben.cmb wrote: ↑Mon Jan 14, 2019 7:08 pmIch selbst würde übrigens wohl eher folgende Struktur für die Beschreibungen verwenden:Ist natürlich Geschmackssache.Code: Select all
<description lang="en">english description</description> <description lang="de">deutsche Beschreibung</description>
Ne ist es nicht, deine Variante ist besser, wenn man mal davon ausgeht es vielleicht mal erweitern zu wollen.cmb wrote: ↑Mon Jan 14, 2019 7:08 pmIch selbst würde übrigens wohl eher folgende Struktur für die Beschreibungen verwenden:Ist natürlich Geschmackssache.Code: Select all
<description lang="en">english description</description> <description lang="de">deutsche Beschreibung</description>
Das ist prinzipiell der bessere Weg, wird es auch werden.cmb wrote: ↑Mon Jan 14, 2019 3:54 pmUnd alternativ einfach malv mit cURL versuchen:Code: Select all
$curl = curl_init('https://plugins-172.cmsimple.sk/plugins/sitr/sitr-xh.xml'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $contents = curl_exec($curl); simplexml_load_string($contents);
Code: Select all
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
Kann vermutlich alles Mögliche sein, aber vielleicht sollten wir uns damit jetzt auch gar nicht wirklich aufhalten. Der Abruf der Dateien hat wenig mit dem konkreten Dateiformat und der Darstellung zu tun, und mir scheint, dass gerade diese beiden Punkte noch einige Ausarbeitung benötigen, und wir uns darum zuerst kümmern sollten. Also vielleicht zunächst ein separates Script, dass die Dateien von den Providern liest und zwischenspeichert, und ein CMSimple_XH Plugin, dass die zwischengespeicherten Daten nutzt.
Das ist wohl war. Aber das Lesen der Dateien soll schon auch zum Plugin gehören.cmb wrote: ↑Mon Jan 14, 2019 11:13 pmund mir scheint, dass gerade diese beiden Punkte noch einige Ausarbeitung benötigen, und wir uns darum zuerst kümmern sollten. Also vielleicht zunächst ein separates Script, dass die Dateien von den Providern liest und zwischenspeichert, und ein CMSimple_XH Plugin, dass die zwischengespeicherten Daten nutzt.
Code: Select all
< -> <
> -> >
& -> &
' -> '
" -> "
Code: Select all
<br>
Code: Select all
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE plugin [
<!ELEMENT plugin (name,date_update,version,date_version,coder,tags,url,compatibility,php_ver,license,descriptions,screenshots,icon)>
<!ELEMENT url (download_url,coder_url,demo_url)>
<!ELEMENT descriptions (description+)>
<!ELEMENT screenshots (screenshot+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT date_update (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT date_version (#PCDATA)>
<!ELEMENT coder (#PCDATA)>
<!ELEMENT tags (#PCDATA)>
<!ELEMENT compatibility (#PCDATA)>
<!ELEMENT php_ver (#PCDATA)>
<!ELEMENT license (#PCDATA)>
<!ELEMENT icon (#PCDATA)>
<!ELEMENT download_url (#PCDATA)>
<!ELEMENT coder_url (#PCDATA)>
<!ELEMENT demo_url (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT screenshot (#PCDATA)>
<!ATTLIST description lang (en|de) #REQUIRED>
<!ATTLIST screenshot view CDATA #REQUIRED>
]>
<!--
To avoid the error, the special characters must be written as an entity reference
Um den Fehler zu vermeiden müssen die Sonderzeichen als Entitätsreferenz geschrieben werden
< -> <
> -> >
& -> &
' -> '
" -> "
-->
<plugin>
<!-- the name of the Plugin -->
<name>Plugin Name</name>
<!-- Date this file was updated, yyyy.mm.dd -->
<date_update>2018.03.14</date_update>
<!-- version of Plugin -->
<version>1.2</version>
<!-- date of publication, yyyy.mm.dd -->
<date_version>2015.09.12</date_version>
<!-- the name of the programmer -->
<coder>Gerda Hasenfuß</coder>
<!-- Plugin Categories, i.e. SocialMdia, System, Admin, Backup, Calendar. More than one possible, separated by comma. -->
<tags>System</tags>
<url>
<!-- URL where you can download the plugin -->
<download_url>https://domain.tld/downloads/plugin_name.zip</download_url>
<!-- URL of the programmer's website -->
<coder_url>https://domain.tld</coder_url>
<!-- URL where find a demo -->
<demo_url>n.a.</demo_url>
</url>
<!-- compatibility with versions of XH, i.e. 1.6, 1.6.7 - 1.7.2, ... -->
<compatibility>1.6</compatibility>
<!-- minimum version of PHP that is required, i.e. 5.3, 5.6, 7, ...-->
<php_ver>4.3</php_ver>
<!-- the License for the Plugin, GPL3, ... -->
<license>GPL3</license>
<descriptions>
<!-- description of the plugin, ca. 200 characters -->
<description lang="en">Description of the plugin name in English, Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext</description>
<!-- Beschreibung des Plugins, ca. 200 Zeichen -->
<description lang="de">Beschreibung des Plugins Name in Deutsch, Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext Blindtext</description>
</descriptions>
<screenshots>
<screenshot view="in_use">https://domain.tld/xxx/screenshot_1.png</screenshot>
<screenshot view="backende">https://domain.tld/xxx/screenshot_2.png</screenshot>
</screenshots>
<icon>https://domain.tld/xxx/icon.png</icon>
</plugin>
Danke!
Man könnte als Typ für lang einfach NMTOKEN wählen; dann ist es beliebig erweiterbar, und es liegt eben in der Verantwortlichkeit des Pluginentwicklers hier passende Sprachkürzel zu verwenden.
Warum nicht die erlaubten HTML-Elemente als XML-Elemente definieren? Das könnte man auch in der DTD ausdrücklich so spezifizieren:olape wrote: ↑Wed Jan 16, 2019 7:19 pmInnerhalb der Beschreibungen, eigentlich aller Elemente, kann br, ol, ul, und li genutzt werden.
Nur nach diesem Motto:Code: Select all
< -> < > -> > & -> & ' -> ' " -> "
Also br ist dannCode: Select all
<br>
Code: Select all
<! ELEMENT description(# PCDATA | br | ol | ul | li)* >
Vielleicht auch noch mal über Holgers Anregung nachdenken, alles in einer SQLite3-Datenbank zu speichern. Dann spielt die Datenmenge keine Rolle, und Binärdaten können auch direkt abgelegt werden (ohne Base64). Alternativ können Bilder natürlich auch mit einem eindeutigen generierten Dateinamen separat gespeichert werden (evtl. tut's schon ein SHA256 Hash), und in der CSV wird eben nur der Dateiname hinterlegt.