Calendar_XH (1.4.6): keine https-Links möglich?

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

Post Reply
ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Mon Feb 29, 2016 7:16 pm

Hallo,

ich nutze den Calendar_XH 1.4.6 mit CMSimple 4.6.1.

Kann es sein, das es nicht möglich ist, https-Adressen in das Feld "Weiterer Link" mit "Link-Text" eintragen lässt.
Es werden die Adressen als "http//www." (ohne Doppelpunkt (:)) angezeigt. - somit wurden ungültige Links produziert. :?

Ist das schon bekannt, kann man das beheben?

Danke,
Gruß
Olaf
Last edited by ojay on Tue Mar 01, 2016 11:43 am, edited 1 time in total.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by cmb » Tue Mar 01, 2016 9:40 am

ojay wrote:ich nutze den Calendar_XH 1.4.6 mit CMSimple 4.6.1.
Dazu siehe http://cmsimple.org/forum/viewtopic.php?f=11&t=434. SCNR.
ojay wrote:Kann es sein, das es nicht möglich ist, https-Adressen in das Feld "Weiterer Link" mit "Link-Text" eintragen lässt.
Es werden die Adressen als "http//www." (ohne Doppelpunkt (:)) angezeigt. - somit wurden ungültige Links produziert. :?
Ich habe das gerade mal schnell unter CMSimple_XH 1.6.7 ausprobiert, und da fehlt der Doppelpunkt ebenfalls. Für normale Events liegt das Problem in plugins/calendar/includes/eventlist.php Zeile 1162ff, wo der URL immer ein http:// vorangestellt wird:

Code: Select all

                        case 'pfx:':
                        case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
                                             .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                            break;
Wenn Du das Protokoll bei allen solchen Links explizit mit angegeben hast, dann genügt es einfach das zusätzliche http:// zu entfernen:

Code: Select all

                        case 'pfx:':
                        case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                             .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                            break;
Eine allgemeinere Lösung wäre z.B. mit parse_url() leicht zu realisieren.
Christoph M. Becker – Plugins for CMSimple_XH

ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Tue Mar 01, 2016 5:01 pm

cmb wrote:
ojay wrote:ich nutze den Calendar_XH 1.4.6 mit CMSimple 4.6.1.
Dazu siehe http://cmsimple.org/forum/viewtopic.php?f=11&t=434. SCNR.
Das ist eben Deutschland. Nur hier ist es möglich... Schade für CMSimple!

Danke, Christoph für den Ort der Änderung.

Ich habe dann gleich auch diese Änderung gemacht... denn ich wusste wonach ich suchen musste.
eventform.php
Zeile 515

Code: Select all

 case 'ext:': $o .= "<a href='http://".$addr."' target='_blank' title='"
zu

Code: Select all

 case 'ext:': $o .= "<a href='".$addr."' target='_blank' title='"
Nun ist wieder alles gut.
Ich hoffe es wird in den aktuellen Download eingefügt.
Denn https-Adressen werden immer mehr genutzt.

Auch gut, das es eine bessere Doku zu den Plugins von CMSimple_XH verfügbar ist.
Der einzigartige Kalender wird leider nur hier beworben und darf hier namentlich genannt werden... ;)

Nochmals vielen Dank, denn ich möchte nicht jeden Link kontrollieren müssen, den ich selbst nicht einfüge!

ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Tue Mar 15, 2016 9:31 pm

Ich habe die Änderung wieder zurück genommen.
Das klappt irgendwie nicht.
Dann sind eben keine https-Adressen möglich. :|
Dritten (nur Datenlieferer) ist eh nicht zu vermitteln.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by cmb » Wed Mar 16, 2016 9:11 am

ojay wrote:Ich habe die Änderung wieder zurück genommen.
Das klappt irgendwie nicht.
Was genau klappt nicht? Soweit ich mich erinnere, gibt es in der Datei 3 Stellen, die wohl entsprechend geändert werden müssten.
ojay wrote:Dann sind eben keine https-Adressen möglich. :|
Das fände ich schon sehr bedauerlich. Immerhin entwickelt sich HTTPS immer mehr zum Standard, und HTTP spielt vielleicht in ein paar Jahren nur noch eine Nebenrolle.
Christoph M. Becker – Plugins for CMSimple_XH

ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Wed Mar 16, 2016 10:47 am

cmb wrote:
ojay wrote:Ich habe die Änderung wieder zurück genommen.
Das klappt irgendwie nicht.
Was genau klappt nicht? Soweit ich mich erinnere, gibt es in der Datei 3 Stellen, die wohl entsprechend geändert werden müssten.
listform.php - an zwei Stellen
eventlist.php - an vier Stellen
Ich hatte zwar eine Stelle übersehen...
cmb wrote:
ojay wrote:Dann sind eben keine https-Adressen möglich. :|
Das fände ich schon sehr bedauerlich. Immerhin entwickelt sich HTTPS immer mehr zum Standard, und HTTP spielt vielleicht in ein paar Jahren nur noch eine Nebenrolle.
...aber nun funktionieren http://www.domain.tld/unterseite.html nicht (mehr) , aber https://www.domain.tld/unterseite.html wohl noch.
Es werden immer die Seitenadresse und URL aneinander gehängt.
Es muss aber auch etwas mit Unterverzeichnissen zu tun haben... :? Denn auch dort werden Adressen mit http://www.domain.tld/unterverzeichnis/ ... rzeichnis/ auch nicht richtig angezeigt. (an Seitenadresse angehängt).

Oder man kann diese "Problem-URLs" nur noch im "Info"-Feld unterbringen, da sie dort in html programmiert werden :!: :?:
(was erst mal meine Lösung wird)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by cmb » Thu Mar 17, 2016 9:10 am

ojay wrote:listform.php - an zwei Stellen
eventlist.php - an vier Stellen
Ah! listform.php ist u.a. für die Speicherung von Kalendereinträgen zuständig (eventlist.php nur für die Anzeige). Da sollte man dann wohl mal ein Auge auf die Datendatei von Calendar haben, und prüfen, was vor bzw. nach den Änderungen gespeichert wird.
ojay wrote:(an Seitenadresse angehängt)
Das passiert wohl beim Speichern des Eintrags. Die Logik könnte so sein, dass relative URLs so verstanden werden, dass sie sich auf die aktuelle Installation beziehen.

Ich bin zeitlich mal wieder knapp dran, versuche aber mir die Sache mal genauer anzuschauen (falls mir niemand zuvor kommt).
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by cmb » Thu Mar 17, 2016 10:27 am

cmb wrote:
ojay wrote:listform.php - an zwei Stellen
eventlist.php - an vier Stellen
Ah! listform.php ist u.a. für die Speicherung von Kalendereinträgen zuständig […]
Unfug. Für das Speichern ist editevents.php zuständig, und dort müsste Zeile 253 auch noch auskommentiert werden:

Code: Select all

    //$linkadr[$j] = str_replace ('http://','',$linkadr[$j]);   
Ansonsten wird der Link ohne "http://" gespeichert, und die Protokollinfo fehlte dann später. Hier noch einmal der komplette Diff:

Code: Select all

 includes/editevents.php | 2 +-
 includes/eventlist.php  | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/includes/editevents.php b/includes/editevents.php
index 578439b..05b2f56 100644
--- a/includes/editevents.php
+++ b/includes/editevents.php
@@ -250,7 +250,7 @@ if ($dataset=='' && !$newfilename) {
     if ($linkadr[$j] && !$linktxt[$j]) $linkicon[$j]= TRUE;
 
     //eliminating superfluous http://
-    $linkadr[$j] = str_replace ('http://','',$linkadr[$j]);
+    //$linkadr[$j] = str_replace ('http://','',$linkadr[$j]);
 
     // converting $linkadr, which may be just page names or file names to $linkadd ready for saving
     $linkadd[$j] = '';
diff --git a/includes/eventlist.php b/includes/eventlist.php
index 25bfd91..e214f79 100644
--- a/includes/eventlist.php
+++ b/includes/eventlist.php
@@ -643,7 +643,7 @@ while($x<=7){
 
                     switch ($type) {
                         case 'pfx:':
-                        case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                        case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                              .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                             break;
 
@@ -942,7 +942,7 @@ while($x<=$end_month){
 
                         switch ($type) {
                             case 'pfx:':
-                            case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                            case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                                  .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                                 break;
 
@@ -1160,7 +1160,7 @@ while($x<=$end_month){
 
                     switch ($type) {
                         case 'pfx:':
-                        case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                        case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                              .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                             break;
 
Nach diesen Änderungen müssen die Protokolle (also "http://" oder "https://" etc. bei externen Links immer mit angegeben werden); dann sollte die Verlinkung aber auch für Unterverzeichnisse funktionieren.

Ein potentielles Problem ist mir noch aufgefallen. In eventlist.php (und wohl weiteren Dateien) wird eine Variable $root verwendet:

Code: Select all

$root = $sl!=$cf['language']['default']? 'http://'.$_SERVER['SERVER_NAME'].CMSIMPLE_ROOT : '' ;
Das kann möglicherweise in seltenen Fällen Probleme bereiten (siehe http://cmsimpleforum.com/viewtopic.php?f=29&t=4730); das sollte vielleicht noch mal geprüft werden.
Christoph M. Becker – Plugins for CMSimple_XH

ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Sat Mar 19, 2016 9:58 pm

Danke, Christoph. :)
cmb wrote:... Für das Speichern ist editevents.php zuständig, und dort müsste Zeile 253 auch noch auskommentiert werden:

Code: Select all

    //$linkadr[$j] = str_replace ('http://','',$linkadr[$j]);     
...
Ansonsten wird der Link ohne "http://" gespeichert, und die Protokollinfo fehlte dann später.
Nach diesen Änderungen müssen die Protokolle (also "http://" oder "https://" etc. bei externen Links immer mit angegeben werden); dann sollte die Verlinkung aber auch für Unterverzeichnisse funktionieren.
Jetzt funktioniert es auch bei den anderen externen Links.
Sieben Änderungen. Entweder sollte man die Anpassungen auf der Hilfe-Seite eintragen oder gleich in der Download-Datei ändern. (wenn jemand auch https-Links eintragen möchte)
cmb wrote:Das kann möglicherweise in seltenen Fällen Probleme bereiten (siehe http://cmsimpleforum.com/viewtopic.php?f=29&t=4730); das sollte vielleicht noch mal geprüft werden.
Ich habe auf einem anderen Gebiet auch zwei Plattformen, die "konkurrieren".
Man verliert bei allem einfach den Benutzer aus dem Auge.
Letztendlich "gewinnt" keiner von beiden und Nutzer, die ein CMSystem suchen, gehen dann zu einem Drittanbieter. :|

ojay
Posts: 78
Joined: Sun Nov 09, 2014 10:24 am
Location: da, wo die Zeit entsteht

Re: Calendar_XH (1.4.6): keine https-Links möglich?

Post by ojay » Sun Mar 10, 2019 8:28 pm

Hallo Christoph,

auch 3 Jahre später hilft dieser Eintrag noch.
Die Fehler sind wohl noch in Calendar_XH Version 1.4.8 noch drin...

Danke!
Gruß
Olaf
cmb wrote:
Thu Mar 17, 2016 10:27 am

Ansonsten wird der Link ohne "http://" gespeichert, und die Protokollinfo fehlte dann später. Hier noch einmal der komplette Diff:

Code: Select all

 includes/editevents.php | 2 +-
 includes/eventlist.php  | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/includes/editevents.php b/includes/editevents.php
index 578439b..05b2f56 100644
--- a/includes/editevents.php
+++ b/includes/editevents.php
@@ -250,7 +250,7 @@ if ($dataset=='' && !$newfilename) {
     if ($linkadr[$j] && !$linktxt[$j]) $linkicon[$j]= TRUE;
 
     //eliminating superfluous http://
-    $linkadr[$j] = str_replace ('http://','',$linkadr[$j]);
+    //$linkadr[$j] = str_replace ('http://','',$linkadr[$j]);
 
     // converting $linkadr, which may be just page names or file names to $linkadd ready for saving
     $linkadd[$j] = '';
diff --git a/includes/eventlist.php b/includes/eventlist.php
index 25bfd91..e214f79 100644
--- a/includes/eventlist.php
+++ b/includes/eventlist.php
@@ -643,7 +643,7 @@ while($x<=7){
 
                     switch ($type) {
                         case 'pfx:':
-                        case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                        case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                              .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                             break;
 
@@ -942,7 +942,7 @@ while($x<=$end_month){
 
                         switch ($type) {
                             case 'pfx:':
-                            case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                            case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                                  .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                                 break;
 
@@ -1160,7 +1160,7 @@ while($x<=$end_month){
 
                     switch ($type) {
                         case 'pfx:':
-                        case 'ext:': $field4 .= "<a href='http://".$addr."' target='_blank' title='"
+                        case 'ext:': $field4 .= "<a href='".$addr."' target='_blank' title='"
                                              .  strip_tags($addr) .  "'>". $icon . $linktexts[$key] .'</a>';
                             break;
 
Nach diesen Änderungen müssen die Protokolle (also "http://" oder "https://" etc. bei externen Links immer mit angegeben werden); dann sollte die Verlinkung aber auch für Unterverzeichnisse funktionieren.

Post Reply