Page 1 of 6

Shariff_XH

Posted: Tue Apr 05, 2016 9:30 am
by olape
Auf Basis von Shariff_XH light (deshalb auch gleich beta5)

https://olaf.penschke.net/?CMSimple_XH/ ... Shariff_XH

Es darf nur Shariff_XH light oder Shariff_XH installiert werden. Nicht beide gleichzeitig.

Re: Shariff_XH

Posted: Wed Apr 06, 2016 4:33 pm
by cmb
Gefällt mir! :)

Allerdings konnte ich es nicht ohne weiteres testen. Zunächst einmal wurden die Counter nicht angezeigt, da auf meiner Entwicklungsumgebung PHP-Notices ausgegeben wurden, die das JS nicht verarbeiten kann. Einfache Lösung: error_reporting=0. Das Problem könnte aber auch bei Shared Hostern auftreten. Am besten aktivierst Du das error_reporting bei Dir (falls möglich), und beseitigst diese (es betrifft zumindest $op_shariff_counturl, das in Application::run() nicht als global "deklariert" ist, und das ein Array anstatt eines String enthalten sollte).

Danach lieferte das Backend aber einfach ein leeres JSON-Array zurück. Debuggen brachte zutage, dass Guzzle cURL verwendet, welches für die HTTPS Zugriffe noch ein Certificate Authority (CA) bundle braucht, welches PHP per curl.cainfo bekannt gemacht werden muss (was XAMPP nicht tut).

Danach hat dann soweit alles geklappt.

Unsicher bin ich mir, ob im Heise-Backend ein Fehler vorliegt. Dadurch, dass $op_shariff_counturl nicht global "deklariert" ist, bleiben die domains leer. Die Doku sagt:
domains = Domains for which share counts may be requested
isValidDomain() liefert allerdings TRUE zurück, wenn domains leer ist. Da sollte wohl zumindest die Doku klarer sein; ich reiche wohl mal einen PR ein.

PS: PR eingereicht.

Re: Shariff_XH

Posted: Wed Apr 06, 2016 6:16 pm
by olape
Hallo Christoph,

danke für die ausführliche Rückmeldung.

Da ich von verschiedenen Stellen arbeite, teste ich oft direkt bei einem Hoster, nicht in einer lokalen Umgebung.
So auch in diesem Fall.
Damit ist mir das Problem mit cURL gar nicht aufgefallen.
Offensichtlich geht man aber auch bei Heise davon aus, dass es so funktioniert.

Das die Domain als Array übergeben werden soll stimmt natürlich, scheint ja aber auch als String zu funktionieren.
Bei CMSimple_XH kommt ja auch immer nur eine Domain.

Ich schau mir das an und hoffe, das ich deinen Ausführungen folgen kann. :oops:

Re: Shariff_XH

Posted: Wed Apr 06, 2016 7:16 pm
by cmb
olape wrote:Damit ist mir das Problem mit cURL gar nicht aufgefallen.
Offensichtlich geht man aber auch bei Heise davon aus, dass es so funktioniert.
Und das zurecht. Ich habe Problem und Lösung nur gepostet, weil es vielleicht anderen auch so geht wie mir – dann muss man nicht erst lange rätseln und/oder googeln. :)
olape wrote:Das die Domain als Array übergeben werden soll stimmt natürlich, scheint ja aber auch als String zu funktionieren.
Ja, bisher noch. Da aber die Übergabe als String deprecated wurde, ist davon auszugehen, dass in einer künftigen Version nur noch Arrays akzeptiert werden (ansonsten wäre das deprecaten unnötig). Am besten also schon möglichst bald darauf einstellen. Ist auch schnell gemacht; einfach die Zeile ändern in:

Code: Select all

        $op_arrayconfig = array("cache" => array("ttl" => $ttl, "cacheDir" => $cacheDir), "domains" => array($op_shariff_counturl), "services" => $op_services);

Re: Shariff_XH

Posted: Thu Apr 07, 2016 9:13 am
by olape
Hallo,

jetzt läuft es zwar ohne Warnungen :D , aber dafür werden auch keine Counter mehr angezeigt. :cry:

mit

Code: Select all

...backend/?url=http://....
funktioniert die Ausgabe, aber auf der Webseite wird kein Counter mehr anzeigt.

@Christoph
Bei dir hat es so funktioniert?

***Update***

Es liegt an der URL für die abgefragt wird.
So wie dort irgend etwas anderes ausser www.domain.tld drin ist, oder wie in meinem Fall test.penschke.net, sind die Counter weg. Egal ob das Protokoll, oder ein / oder gar /?Seite.

Re: Shariff_XH

Posted: Thu Apr 07, 2016 9:58 am
by olape
So, ich glaube ich habe das Rätsel gelöst.

in Domains muss nicht die URL, um dies es gerade geht, sondern die Domains, die innerhalb des Scriptes als erlaubt zur Abfrage gelten sollen.
Das ist dann auch der Grund, warum es in der ersten Version, trotz Warnung funktioniert hat.
es betrifft zumindest $op_shariff_counturl, das in Application::run() nicht als global "deklariert" ist,
Dadurch, das die Variable nicht deklariert war, war domains leer und damit waren praktisch alle URLs zur Abfrage erlaubt.

Re: Shariff_XH

Posted: Thu Apr 07, 2016 12:11 pm
by cmb
olape wrote:Dadurch, das die Variable nicht deklariert war, war domains leer und damit waren praktisch alle URLs zur Abfrage erlaubt.
Ja, genau. Dass ein leeres domains alle Domains erlaubt, ist übrigens neu in Version 5.2 (wie ich gerade erfuhr).

Die einfachste Lösung ist also einfach domains leer zu lassen. Allerdings ist es vielleicht auch sinnvoll doch eben explizit nur die eigene Domain zu erlauben, damit das Script nicht von anderen für ihre eigenen Domains missbraucht werden kann.

Re: Shariff_XH

Posted: Thu Apr 07, 2016 12:48 pm
by olape
Da hätte ich mir viel Zeit sparen können.
Denn so wie es jetzt wieder wird / ist, hatte ich es anfangs schon.

So ist das mit dem Licht. ...

Re: Shariff_XH

Posted: Thu Apr 07, 2016 1:48 pm
by olape
Eine aktualisiert Version ist online

https://olaf.penschke.net/?CMSimple_XH/ ... Shariff_XH

- die von Christoph angezeigten Fehler sind bereinigt
- aktualisierte Version des Heise Backends (5.2.3 2016-04-01)

Re: Shariff_XH

Posted: Thu Apr 14, 2016 10:42 am
by lck
Hallo Olaf,

danke für das Plugin.
Beim Testen ist mir aufgefallen, dass bei einer Plugin-Konfiguration: "vertical" + "round" das Info-Symbol rechts floatet anstatt links.

Bisher konnte ich den Counter nicht dazu bewegen sich zu zeigen. Lokal mit Xampp scheint es ja nicht möglich zu sein das zu testen, obwohl hier alle geforderten Systemvoraussetzungen wie cURL und php 5.5.0 erfüllt sind. Online ist entweder cURL nicht aktiv oder es läuft eine PHP-Version kleiner PHP 5.5.0.
olape wrote:die von Christoph angezeigten Fehler sind bereinigt
Wenn dem so ist, mal ein paar grundsätzliche Fragen zu Shariff_XH, speziell zur Anzeige des Counters. Nehmen wir mal an, alle wichtigen Parameter für das Plugin sind erfüllt und der Plugin-Aufruf im Template oder Content sind korrekt eingebunden, in der Konfiguration der Counter aktiviert usw.:
[1] Gibt es dann immer noch bestimmte Vorraussetzungen zur Anzeige des Counters, hinsichtlich der URL oder dergleichen?
[2] Wird/sollte der Counter auch angezeigt werden, wenn die Seite noch nicht geteilt wurde, also mit einer "0"?