Hat CMSimle XH eine Zukunft

A place for general not CMSimple related discussions
lck
Posts: 1599
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by lck » Mon Jan 14, 2019 5:48 pm

olape wrote:
Mon Jan 14, 2019 2:55 pm
An Regeln sollten wir uns halten. Das werden wir per DTD auch noch tun, das wird der nächste Schritt die xml und die Regeln genau festzulegen.
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?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

olape
Posts: 842
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by olape » Mon Jan 14, 2019 5:51 pm

lck wrote:
Mon Jan 14, 2019 5:48 pm
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?
Das soll nachher auch Sprachabhängig angezeigt werden. Deswegen jetzt nur eins.

cmb
Posts: 13211
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by cmb » Mon Jan 14, 2019 7:08 pm

lck wrote:
Mon Jan 14, 2019 5:32 pm
olape wrote:
Mon Jan 14, 2019 2:55 pm
Das 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.
In 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 pm
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
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.
olape wrote:
Mon Jan 14, 2019 5:51 pm
lck wrote:
Mon Jan 14, 2019 5:48 pm
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?
Das soll nachher auch Sprachabhängig angezeigt werden. Deswegen jetzt nur eins.
Finde ich gut. Könnte man vermutlich recht einfach umsetzen, etwa:

Code: Select all

$desc = $xml->xpath("//description_$sl");
if ($desc) { // not found? fall back to EN
    $xml->xpath('//description_en');
}
Ich selbst würde übrigens wohl eher folgende Struktur für die Beschreibungen verwenden:

Code: Select all

<description lang="en">english description</description>
<description lang="de">deutsche Beschreibung</description>
Ist natürlich Geschmackssache.
Christoph M. Becker – Plugins for CMSimple_XH

Tata
Posts: 2947
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by Tata » Mon Jan 14, 2019 7:58 pm

cmb wrote:
Mon Jan 14, 2019 7:08 pm
Ich selbst würde übrigens wohl eher folgende Struktur für die Beschreibungen verwenden:

Code: Select all

<description lang="en">english description</description>
<description lang="de">deutsche Beschreibung</description>
Ist natürlich Geschmackssache.
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.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

olape
Posts: 842
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by olape » Mon Jan 14, 2019 8:03 pm

cmb wrote:
Mon Jan 14, 2019 7:08 pm
Ich selbst würde übrigens wohl eher folgende Struktur für die Beschreibungen verwenden:

Code: Select all

<description lang="en">english description</description>
<description lang="de">deutsche Beschreibung</description>
Ist natürlich Geschmackssache.
Ne ist es nicht, deine Variante ist besser, wenn man mal davon ausgeht es vielleicht mal erweitern zu wollen.

olape
Posts: 842
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by olape » Mon Jan 14, 2019 9:03 pm

cmb wrote:
Mon Jan 14, 2019 3:54 pm
Und 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); 
Das ist prinzipiell der bessere Weg, wird es auch werden.
allow_url_fopen ist bei den meisten deaktiviert. Von daher.
Aber im Fall xml von Tata bringt es kein Besserung. Nach etwa 60 Sekunden, nicht gestoppt sondern gefühlt,
bricht er ab und macht mit dem nächsten weiter.
Warum weiß der Fuchs. Kein Fehler gar nichts auch nicht mit error_reporting.

Code: Select all

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
Bringt auch nix, es bleiben etwa 60 Sekunden, was nahelegt, es hängt woanders.

Nachtrag:
Ich werd nicht schlau daraus, jetzt geht es gerade wieder in beiden Varianten simplexml_load_file und cURL.

Und jetzt wieder nicht mehr, wieder in beiden Varianten.

cmb
Posts: 13211
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by cmb » Mon Jan 14, 2019 11:13 pm

olape wrote:
Mon Jan 14, 2019 9:03 pm
Ich werd nicht schlau daraus, jetzt geht es gerade wieder in beiden Varianten simplexml_load_file und cURL.

Und jetzt wieder nicht mehr, wieder in beiden Varianten.
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.
Christoph M. Becker – Plugins for CMSimple_XH

olape
Posts: 842
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by olape » Tue Jan 15, 2019 7:40 am

cmb wrote:
Mon Jan 14, 2019 11:13 pm
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.

Die Darstellung selbst, darauf habe ich im Moment noch keinen grossen Wert gelegt.
Es soll, so mein Plan, so wenig wie möglich vorgegeben sein.
So, dass es per css in die gewünschte Form gebracht werden kann.

Den genauen Aufbau der xml + dtd, das halte ich jetzt für das Wichtigste.

olape
Posts: 842
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by olape » Wed Jan 16, 2019 7:19 pm

So, letzter Stand, bevor ich plane es als Plugin umzusetzen.

Die Struktur der xml habe ich angepasst (Siehe unten!).
Die DTD kann aber noch nicht ganz ok sein, sonst dürften ausser en und de keine weitere Sprache funktionieren.

Die Sprachen der Beschreibung können dynamisch erweitert werden, English sollte aber wenigstens da sein.
Entsprechend der gewählten Sprache unter XH wird das ganze ausgegeben. En als Fallback.
--> In der Demo (Details der einzelnen Plugins) ist sehr rudimentär eine Sprachwahl drin, als XH-Simmulation (Nicht bei allen Plugins sind alle Sprachen enthalten)

Innerhalb der Beschreibungen, eigentlich aller Elemente, kann br, ol, ul, und li genutzt werden.
Nur nach diesem Motto:

Code: Select all

&lt; 	-> 	< 
&gt; 	-> 	> 
&amp; 	-> 	& 
&apos; 	-> 	' 
&quot; 	-> 	" 

Also br ist dann

Code: Select all

&lt;br&gt;
Icon und Screenshots habe ich bisher noch gar nicht berücksichtigt.
Für Screenshots ist auch die Möglichkeit einer dynamischen Erweiterung angedacht.
Aber ich weiss noch nicht wirklich, wie ich das mit dem Caching der Bilder mache.
Das Icon könnte man vielleicht noch als base64 mit in die csv speichern. Wenn das nicht zu viel wird.


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
		&lt; 		-> 		< 
		&gt; 		-> 		> 
		&amp; 		-> 		& 
		&apos; 		-> 		' 
		&quot; 		-> 		" 
-->

<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>

cmb
Posts: 13211
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Hat CMSimle XH eine Zukunft

Post by cmb » Wed Jan 16, 2019 10:44 pm

olape wrote:
Wed Jan 16, 2019 7:19 pm
So, letzter Stand, bevor ich plane es als Plugin umzusetzen.
Danke! :)
olape wrote:
Wed Jan 16, 2019 7:19 pm
Die DTD kann aber noch nicht ganz ok sein, sonst dürften ausser en und de keine weitere Sprache funktionieren.
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.
olape wrote:
Wed Jan 16, 2019 7:19 pm
Innerhalb der Beschreibungen, eigentlich aller Elemente, kann br, ol, ul, und li genutzt werden.
Nur nach diesem Motto:

Code: Select all

&lt; 	-> 	< 
&gt; 	-> 	> 
&amp; 	-> 	& 
&apos; 	-> 	' 
&quot; 	-> 	" 

Also br ist dann

Code: Select all

&lt;br&gt;
Warum nicht die erlaubten HTML-Elemente als XML-Elemente definieren? Das könnte man auch in der DTD ausdrücklich so spezifizieren:

Code: Select all

<! ELEMENT description(# PCDATA | br | ol | ul | li)* >
<b> und <i> (oder <strong> und <em>) fände ich auch noch ganz sinnvoll.
olape wrote:
Wed Jan 16, 2019 7:19 pm
Aber ich weiss noch nicht wirklich, wie ich das mit dem Caching der Bilder mache.
Das Icon könnte man vielleicht noch als base64 mit in die csv speichern. Wenn das nicht zu viel wird.
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.

Und auf jeden Fall würde ich vorschlagen noch eine Versionierung des XML selbst vorzunehmen; vielleicht einfach ein Attribut version für <plugin>; oder vermutlich eher über die DTD (so wie es für HTML mal gedacht war). Das erlaubt spätere Erweiterungen, ohne dass unbedingt alle bestehenden XML-Dokumente nachgebessert werden müssen.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply