CMSimple_XH 1.7.0rc1

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
frase
Posts: 3038
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by frase » Mon Jun 12, 2017 7:23 am

isometric wrote:Aus der Version 1.7 wurde das Plugin "page_params" entfernt.
Gibt es irgendwo einen Ersatz für die Funktion "Pageparams_isPublished"?
Leider bin ich kein PHP-Experte und kann dir nur laienhafte Hinweise geben.
Christoph schrieb in der 1.7-Ankündigung:
Die page_params Funktionalität betreffend des Versteckens und Unveröffentlichens von Seiten wurde in den Core verschoben.
Die Funktionalität ist also nicht weg, sondern nur verschoben.
Ich habe mal ein bisschen gestöbert.
In der Datei ..\cmsimple\classes\Publisher.php habe ich einige Funktionen dazu gefunden - z.B. public function isPublished($index).
Vielleicht kannst du ja schon damit was anfangen.
Spätestens, wenn Christoph online ist, wirst du eine fundiertere Antwort erhalten. ;-)

isometric
Posts: 152
Joined: Thu Jun 12, 2014 8:32 am

Re: CMSimple_XH 1.7.0rc1

Post by isometric » Mon Jun 12, 2017 7:38 am

Im Moment bin ich gerade etwas verwirrt. Bei der Version, die man vorne im ersten Post runterladen kann ist das Plugin "page_params" drin. Gestern habe ich an einem anderen Rechner rumgewerkelt, da war das Modul nicht dabei. Jetzt muss ich erst mal prüfen, ob ich das dort fehlende Modul aus Versehen gelöscht habe, deswegen habe ich meinen Post von vorhin durch einen "." ersetzt.

Aber Danke, dass du das versucht hast zu eruieren.
in diesem Sinne isometric

frase
Posts: 3038
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CMSimple_XH 1.7.0rc1

Post by frase » Mon Jun 12, 2017 7:56 am

isometric wrote:Gestern habe ich an einem anderen Rechner rumgewerkelt, da war das Modul nicht dabei. Jetzt muss ich erst mal prüfen, ob ich das dort fehlende Modul aus Versehen gelöscht habe
Das Plugin page_params gibt es weiterhin - nur etwas anders ;-)

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Mon Jun 12, 2017 9:38 am

frase wrote:
isometric wrote:Gestern habe ich an einem anderen Rechner rumgewerkelt, da war das Modul nicht dabei. Jetzt muss ich erst mal prüfen, ob ich das dort fehlende Modul aus Versehen gelöscht habe
Das Plugin page_params gibt es weiterhin - nur etwas anders ;-)
Ja, genau. Die wesentlichste Änderung erfolgte durch PR 189. Die Commit-Message beschreibt die Details.

Statt Pageparam_isPublished() kann man nun $xh_publisher->isPublished() verwenden, wobei letztere Funktion auch gleich noch prüft, ob die Seite per #cmsimple remove# unveröffentlicht wurde (das war vorher nicht unbedingt möglich).
Christoph M. Becker – Plugins for CMSimple_XH

isometric
Posts: 152
Joined: Thu Jun 12, 2014 8:32 am

Re: CMSimple_XH 1.7.0rc1

Post by isometric » Mon Jun 12, 2017 4:41 pm

cmb wrote:Statt Pageparam_isPublished() kann man nun $xh_publisher->isPublished() verwenden, wobei letztere Funktion auch gleich noch prüft, ob die Seite per #cmsimple remove# unveröffentlicht wurde (das war vorher nicht unbedingt möglich).
So ganz habe ich den Dreh noch nicht raus :(

Unter 1.6.x hat folgendes funktioniert:

Code: Select all

function isPublished_article($index)
{
    global $pd_router;

    $pd = $pd_router->find_page($index);
    if (function_exists('Pageparams_isPublished')) {
    return Pageparams_isPublished($pd);
    } else {
    return $pd['published'] == '1';
    }
} 
Unter 1.7 klappt das nicht mehr. Wenn ich mit dem Pagemanager eine neue Seite anlege, dann steht dort im $page_data[]=array erst mal

Code: Select all

'published'=>''
Ich muss erst auf den Seitentab "Seite" gehen und speichern, damit folgendes in die Pagedata eingetragen wird:

Code: Select all

'published'=>'1'
anschliessend funktioniert die obige Funktion.

Folgender Versuch ist gescheitert:

Code: Select all

function isPublished_article($index)
{
    global $pd_router;

    $pd = $pd_router->find_page($index);
    if (function_exists('isPublished')) {
    return $xh_publisher->isPublished($pd);
    } else {
    return $pd['published'] == '1';
    }
} 
in diesem Sinne isometric

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Mon Jun 12, 2017 5:10 pm

isometric wrote:Unter 1.7 klappt das nicht mehr. Wenn ich mit dem Pagemanager eine neue Seite anlege, dann steht dort im $page_data[]=array erst mal

Code: Select all

'published'=>''
Ja, das mit den Default sollte vielleicht mal überarbeitet werden. Im Zweifel gilt hier wohl, dass eine Seite unveröffentlicht ist, wenn published=='0'; in allen anderen Fällen ist sie veröffentlicht.
isometric wrote:Folgender Versuch ist gescheitert:

Code: Select all

function isPublished_article($index)
{
    global $pd_router;

    $pd = $pd_router->find_page($index);
    if (function_exists('isPublished')) {
    return $xh_publisher->isPublished($pd);
    } else {
    return $pd['published'] == '1';
    }
} 
Die Funktion isPublished() gibt es nicht; es gibt nur die Methode isPublished() der Klasse XH_Publisher. Außerdem müsste $xh_publisher als global deklariert werden. Darüberhinaus erwartet XH_Publisher::isPublished() als Argument nicht die Page-Data, sondern den Seitenindex. Folgender Code müsste funktionieren:

Code: Select all

function isPublished_article($index)
{
    global $pd_router, $xh_publisher;

    $pd = $pd_router->find_page($index);
    if (isset($xh_publisher) && method_exists($xh_publisher, 'isPublished')) {
        return $xh_publisher->isPublished($index);
    } elseif (function_exists('Pageparams_isPublished')) {
        return Pageparams_isPublished($pd);
    } else {
        return $pd['published'] !== '0';
    }
} 
Christoph M. Becker – Plugins for CMSimple_XH

isometric
Posts: 152
Joined: Thu Jun 12, 2014 8:32 am

Re: CMSimple_XH 1.7.0rc1

Post by isometric » Mon Jun 12, 2017 5:47 pm

Super funktioniert :D
in diesem Sinne isometric

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Tue Jun 13, 2017 11:03 pm

cmb wrote:
oldnema wrote:I am also sorry that plugin translator is not supported.
Okay, I'll release a CMSimple_XH 1.7 compatible version of Translator_XH as soon as possible (probably next week).
Took a bit longer, but now it's there: https://cmsimpleforum.com/viewtopic.php ... =20#p60543.
Christoph M. Becker – Plugins for CMSimple_XH

isometric
Posts: 152
Joined: Thu Jun 12, 2014 8:32 am

Re: CMSimple_XH 1.7.0rc1

Post by isometric » Sat Jun 17, 2017 1:23 pm

Gibt es Script, was das Entfernen der Funktion tag() aus bestehendem Code erledigen kann, oder muss man alles von Hand ändern?
cmb wrote: ... und tag() missbilligt. Es wird empfohlen statt dessen einfach valides HTML5 zu erzeugen.

Bis zu welcher Version von CMSimple muss initvar() noch verwendet werden?
cmb wrote: initvar() wurde missbilligt. Beachtet, dass es nicht nötig ist initvar('action') oder initvar('admin') aufzurufen, weil dies bereits vom Core getan wird. Für alle anderen Verwendungen von initvar(): erwägt keine globalen Variable zu verwenden.
in diesem Sinne isometric

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

Re: CMSimple_XH 1.7.0rc1

Post by cmb » Sat Jun 17, 2017 1:38 pm

isometric wrote:Gibt es Script, was das Entfernen der Funktion tag() aus bestehendem Code erledigen kann, oder muss man alles von Hand ändern?
Für den allgemeinen Fall dürfte das nicht einfach sein, aber wenn tag() als Argument immer nur single-quoted Strings übergeben werden, dann tut es vielleicht schon folgendes:

Code: Select all

echo preg_replace(
    '/\Wtag\(\'([^\']+)\'\)/',
    '\'<$1\'>',
    $code
);
isometric wrote:Bis zu welcher Version von CMSimple muss initvar() noch verwendet werden?
cmb wrote: initvar() wurde missbilligt. Beachtet, dass es nicht nötig ist initvar('action') oder initvar('admin') aufzurufen, weil dies bereits vom Core getan wird. Für alle anderen Verwendungen von initvar(): erwägt keine globalen Variable zu verwenden.
initvar($action) ist schon seit "Ewigkeiten" nicht mehr erforderlich. initvar($admin) ist ebenfalls seit "Ewigkeiten" nicht mehr erforderlich, falls vor dem Lesen von $admin bereits print_plugin_menu() aufgerufen wurde. Vgl. das Beispiel unter http://www.cmsimple-xh.org/wiki/doku.ph ... rial_admin.

"Ewigkeiten" heißt vermutlich CMSimple_XH 1.0 oder gar noch früher.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply