Page 1 of 2

jm_landingpage

Posted: Wed Aug 16, 2017 8:24 pm
by mhz
Hallo zusammen,
habe gerade versucht, unter XH 1.70 und PHP_7.1.2 das Plugin jm_landingpage ans Laufen zu bringen, was leider fehlschlägt.
Dabei bin ich in der Jquery – Konfiguration darauf gestoßen, dass bei mir Core 1.12.4 eingestellt ist. Es gibt aber auch noch die höheren Einstellungen 1 2.2.4, 3.1.1, 3.2.1
Bei Migrate ist Version jquery-migrate-1.4.1.min.js eingestellt, es gibt aber auch noch jquery-migrate-3.0.0.min.js
Soll ich diese voreingestellten Versionen behalten?
Danke schon mal für eure Antworten.

Re: jm_landingpage

Posted: Wed Aug 16, 2017 10:12 pm
by cmb
mhz wrote:Dabei bin ich in der Jquery – Konfiguration darauf gestoßen, dass bei mir Core 1.12.4 eingestellt ist. Es gibt aber auch noch die höheren Einstellungen 1 2.2.4, 3.1.1, 3.2.1
Bei Migrate ist Version jquery-migrate-1.4.1.min.js eingestellt, es gibt aber auch noch jquery-migrate-3.0.0.min.js
Soll ich diese voreingestellten Versionen behalten?
Bei jQuery muss man v.a. die Hauptversionen unterscheiden. Version 1 unterstützt IE 6+, Version 2 und 3 nur IE 9+. Wem also Benutzer von IE 8 und älter "egal" sind, sollte Version 2 oder 3 wählen. Allerdings kann es natürlich sein, dass auf der Website jQuery-Plugins verwendet werden, die nur mit bestimmten Versionen harmonieren. Hier hilft im Zweifel nur ausprobieren, welche jQuery-Version die geeignete ist.

Um solche Inkompatibilitäten zu minimieren (und beim Entwickeln/Debuggen zu helfen), wurde das Migrate-Plugin entwickelt. Da es vergleichsweise wenig Resourcen verbraucht, bietet es sich an dieses im Zweifel zu aktivieren. Dabei ist aber unbedingt darauf zu achten, dass die Haupt-Version von jQuery und dem Migrate-Plugin übereinstimmt (also jQuery 1.12.4 mit Migrate 1.4.1, oder jQuery 3.2.1 mit Migrate 3.0.0; welche Migrate-Version für jQuery 2 genutzt werden kann/sollte, weiß ich nicht).

Darüber hinaus ist zu beachten, dass jQuery 3 wohl die Version ist, die am besten gepflegt wird. Daher bietet es sich an diese zu wählen, falls halt alle Plugins zumindest mit Migrate-Plugin mitspielen. Und ja, IE 8 Nutzer haben dann halt oft die A-Karte gezogen, weil zu selten Progressive Enhancement implementiert wird (was jQuery allerdings auch nicht gerade unterstützt – im Gegenteil), aber damit kann man heutzutage vielleicht gut leben (und letztlich wäre es für fast alle besser, wenn diese User updaten oder auf einen anderen Browser wechseln würden).

Re: jm_landingpage

Posted: Thu Aug 17, 2017 4:42 am
by mhz
Das Plugin jm_landingpage funktioniert!
Leider funktioniert auch hier die Admin-Edition nicht.

Re: jm_landingpage

Posted: Thu Aug 17, 2017 9:45 am
by lck
mhz wrote:Leider funktioniert auch hier die Admin-Edition nicht.
So funktioniert es bei mir. Ersetze in admin.php Zeile 16

Code: Select all

if($jm_landingpage){ 
durch

Code: Select all

if (function_exists('XH_wantsPluginAdministration') && XH_wantsPluginAdministration('jm_landingpage')) { 
Leider gibt es im Debug-Modus noch folgende Meldungen, die sollten aber harmlos sein(? Christoph).
XH-DEPRECATED: Function initvar() is deprecated
D:\xampp\htdocs\cmsimplexh170\plugins\jm_landingpage\admin.php:15

NOTICE: Undefined index: jm_landingpage
D:\xampp\htdocs\cmsimplexh170\cmsimple\classes\PluginConfig.php:84
BTW: Die Plugins von maeg gibt es anscheinend auch nicht mehr zum download.
Da müsste das Wiki angepasst werden, Hartmut.

Re: jm_landingpage

Posted: Thu Aug 17, 2017 10:17 am
by mhz
Danke,
werd ich nahher mal entsprechend ändern, lck.
XH-DEPRECATED: Function initvar() is deprecated
ist bei mir im debug-Modus öfter vorhanden und ist harmlos bzw. scheint keine negativen Auswirkungen zu haben.

Re: jm_landingpage

Posted: Thu Aug 17, 2017 10:45 am
by cmb
lck wrote:
XH-DEPRECATED: Function initvar() is deprecated
D:\xampp\htdocs\cmsimplexh170\plugins\jm_landingpage\admin.php:15

NOTICE: Undefined index: jm_landingpage
D:\xampp\htdocs\cmsimplexh170\cmsimple\classes\PluginConfig.php:84
XH-DEPRECATED ist immer harmlos, kann aber in einer folgenden Version echte Probleme machen (wenn eben die Funktionalität tatsächlich entfernt wurde). In diesem Fall kann die Zeile mit dem initvar('jm_landingpage') einfach entfernt werden.

Die Notice ist ganz interessant. Letztlich wird sie dadurch ausgelöst, dass in index.php $plugin_cf['jm_landingpage'] verwendet wird, obwohl es gar keine Pluginkonfiguration gibt. Man kann also einfach diese Zeile entfernen, und gut ist. Sauberer wäre es aber wohl, wenn cmsimple/classes/PluginConfig.php so angepasst wird, dass solche Fälle berücksichtigt werden.
lck wrote:Die Plugins von maeg gibt es anscheinend auch nicht mehr zum download.
Na ja, die gesamte Website sieht nicht so aus wie sie sollte. Ich frage mal bei maeg nach.

Re: jm_landingpage

Posted: Thu Aug 17, 2017 11:05 am
by Hartmut
cmb wrote:
mhz wrote:Dabei bin ich in der Jquery – Konfiguration darauf gestoßen, dass bei mir Core 1.12.4 eingestellt ist. Es gibt aber auch noch die höheren Einstellungen 1 2.2.4, 3.1.1, 3.2.1
Bei Migrate ist Version jquery-migrate-1.4.1.min.js eingestellt, es gibt aber auch noch jquery-migrate-3.0.0.min.js
Soll ich diese voreingestellten Versionen behalten?
Bei jQuery muss man v.a. die Hauptversionen unterscheiden. Version 1 unterstützt IE 6+, Version 2 und 3 nur IE 9+. Wem also Benutzer von IE 8 und älter "egal" sind, sollte Version 2 oder 3 wählen. Allerdings kann es natürlich sein, dass auf der Website jQuery-Plugins verwendet werden, die nur mit bestimmten Versionen harmonieren. Hier hilft im Zweifel nur ausprobieren, welche jQuery-Version die geeignete ist.

Um solche Inkompatibilitäten zu minimieren ...
... Browser wechseln würden).
ich habe die Anmerkungen zum jQuery Plugin in die CMSimple_XH 1.7 Dokumentation aufgenommen, da zu diesem Thema gelegentlich nachgefragt wird und es in der Doku so genau auch nicht gestanden hat.

Viele Grüße
Hartmut

Re: jm_landingpage

Posted: Thu Aug 17, 2017 11:19 am
by cmb
cmb wrote:Ich frage mal bei maeg nach.
Und er hat prompt geantwortet, dass er sich alsbald darum kümmern wird. :) Also keine Notwendigkeit, etwas an der Doku zu ändern.

Re: jm_landingpage

Posted: Thu Aug 17, 2017 11:28 am
by lck
cmb wrote:Und er hat prompt geantwortet, dass er sich alsbald darum kümmern wird.
Super!

Mit den von dir oben genannten Änderungen läuft das Plugin jetzt auch ohne Meldungen, danke.

Re: jm_landingpage

Posted: Mon Aug 21, 2017 8:26 pm
by oldnema
TIP: Modifying jm_landing page, automatically closing the window after the selected time, and hiding the window if the content of the newsbox is empty.
Edit index.php as follows:

Code: Select all

<?php
//*** mod by tata
// utf8-marker: äöüß
// Mods:
// *** Tata – hide the pop-up if there is no message for the landingpage
// +++ Oldnema – set the time for automatic pop-up’s fading


if (!defined('CMSIMPLE_XH_VERSION')) {
    header('HTTP/1.0 403 Forbidden');
    exit;
}

function jm_landingpage() {
    global $hjs, $pth, $plugin_cf, $plugin_tx;

    $pcf = $plugin_cf['jm_landingpage']['name']; //*** added config variable
    $ptx = $plugin_tx['jm_landingpage'];
//*** test if the page has any content excl. heading   
        $test =  strip_tags(newsbox($plugin_cf['jm_landingpage']['name']));
        $test = str_replace(array(" ", "\r","\n", " "), '', $test);
//*** if there is any content, show the page content in newsbox
            if(strlen($test) > 0){
	
    $o = ' <script src="'.$pth['folder']['plugins'].'jm_landingpage/jm_landingpage.js"></script>
	      <div id="fade_out"><div id="page-space"></div>                
            <div id="page-consent">
                <div id="page-inner">
				   <div id="page-text">'.newsbox($plugin_cf['jm_landingpage']['name']).' </div>
                    <button id="accept1">'.$ptx['button'].'</button>
             </div>';
    return $o;
	}else{
//*** if the page is empty, hide the newsbox
    $o = '';
    } 
}

?>
<!-- //+++ -->
<script type="text/javascript">
setTimeout("document.getElementById('fade_out').style.display = 'none'",10000); 
//***  fading out: 10000 = 10 sec.
</script>