XH: alternatives Seitensplitten unabhängig von <hx> - Tags

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 8:30 am

Seht ihr irgendeine Möglichkeit, einen "alten" Inhalt in das neue Split-CMSXH zu übertragen?
Oder andersherum.
Kann man eine "alte" Installation updaten?
(Das ist jetzt eine "weitsichtige" Frage, denn der neue Pagemanager ist ja noch nicht da.)

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 11:50 am

Betrifft nicht nur Split_XH sondern auch die normale Version:

$tx['submenu']['heading'] (in deutsch: "weiter zu:") sollte nicht in irgendein <hx> gepresst werden.
Das kann u.U. die mühsam aufgebaute Struktur stören.

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by cmb » Sat Nov 26, 2016 12:07 pm

frase wrote:Seht ihr irgendeine Möglichkeit, einen "alten" Inhalt in das neue Split-CMSXH zu übertragen?
Dafür sollte auf jeden Fall wenigstens ein kleines Upgrade-Script entwickelt werden, was nicht allzu schwer sein sollte. Hier mal Entwurf für die userfuncs.php einer 1.6.7 installation:

Code: Select all

<?php

if (defined('XH_ADM') && XH_ADM && $edit) {
    convertContents();
}

function convertContents()
{
    global $pth, $cl, $c, $l, $h, $pd_router, $cf;

    $ml = $cf['menu']['levels'];
    $stream = fopen("{$pth['folder']['content']}content_new.htm", "w");
    for ($i = 0; $i < $cl; $i++) {
        fwrite($stream, "<!--XH_ml{$l[$i]}:{$h[$i]}-->\n");
        fwrite($stream, $pd_router->pageAsPHP($i));
        fwrite($stream, preg_replace("/<h[1-$ml].*?<\/h[1-$ml]>\s*/", '', $c[$i]));
    }
    fclose($stream);
} 
Nachdem dies "installiert" wurde, einfach Einloggen, und dann sollte auch schon content/content_new.htm erzeugt worden. Diese dann einfach in die XH_split Installation einfügen und zu content.htm umbenennen.
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 12:09 pm

in händisch angelegten Newsboxen (<!--XH_ml1:News01-->) lassen sich weder <h1> noch <h2> verwenden.
Sie werden nicht angezeigt.
Erst ab <h3> klappt es.
Habe ich da einen Denkfehler?

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 12:17 pm

cmb wrote:Dafür sollte auf jeden Fall wenigstens ein kleines Upgrade-Script entwickelt werden, was nicht allzu schwer sein sollte. Hier mal Entwurf für die userfuncs.php einer 1.6.7 installation:
...
Nachdem dies "installiert" wurde, einfach Einloggen, und dann sollte auch schon content/content_new.htm erzeugt worden. Diese dann einfach in die XH_split Installation einfügen und zu content.htm umbenennen.
Schnell probiert:
Funktioniert (auf den ersten Blick) hervorragend.
Eine Sorge weniger ;-)

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by cmb » Sat Nov 26, 2016 12:20 pm

frase wrote:Betrifft nicht nur Split_XH sondern auch die normale Version:

$tx['submenu']['heading'] (in deutsch: "weiter zu:") sollte nicht in irgendein <hx> gepresst werden.
Das kann u.U. die mühsam aufgebaute Struktur stören.
Guter Punkt! Für XH 1.6.x würde ich da aber nichts mehr ändern; wer will, kann ja eine der bestehenden Addon-Varianten oder SEO_XH nutzen (ansonsten stimmt ja die Struktur sowieso nicht). Aber für XH 1.7 sollte da unbedingt nachgebessert werden, zumindest wenn wir die neue Split-Variante übernehmen. Bin aber nicht sicher, wie wir das lösen könnten/sollten. Analog zum neuen $cf['headings']['format'] ist ein bisschen problematisch, weil der User da sicher kein fixes hX vorgeben möchte. Eventuell gar kein <hX> verwenden? Aber was statt dessen?
frase wrote:in händisch angelegten Newsboxen (<!--XH_ml1:News01-->) lassen sich weder <h1> noch <h2> verwenden.
Sie werden nicht angezeigt.
Erst ab <h3> klappt es.
Habe ich da einen Denkfehler?
Nein, im Gegenteil. Die function newsbox() müsste noch angepasst werden. Folgende Variante sollte es vielleicht schon tun:

Code: Select all

function newsbox($heading)
{
    global $c, $cl, $h, $cf, $edit;

    for ($i = 0; $i < $cl; $i++) {
        if ($h[$i] == $heading) {
            $body = $c[$i];
            $pattern = '/#CMSimple (.*?)#/is';
            return $edit
                ? $body
                : preg_replace($pattern, '', evaluate_scripting($body, false));
        }
    }
    return false;
}
 
Und zumindest für die Testphase sollte auch die Headingstruktur im TinyMCE-Format-Dropdown angepasst werden.
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 12:26 pm

cmb wrote:Eventuell gar kein <hX> verwenden? Aber was statt dessen?
Definitiv kein <hx> sondern eine CSS-Klasse. (.xh_subHeading ?)
Last edited by frase on Sat Nov 26, 2016 12:29 pm, edited 1 time in total.

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 12:28 pm

cmb wrote:Für XH 1.6.x würde ich da aber nichts mehr ändern; wer will, kann ja eine der bestehenden Addon-Varianten oder SEO_XH nutzen (ansonsten stimmt ja die Struktur sowieso nicht). Aber für XH 1.7

+1

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by frase » Sat Nov 26, 2016 12:47 pm

cmb wrote:Nein, im Gegenteil. Die function newsbox() müsste noch angepasst werden. Folgende Variante sollte es vielleicht schon tun:
...
Und zumindest für die Testphase sollte auch die Headingstruktur im TinyMCE-Format-Dropdown angepasst werden.
Wieder hervorragend: Funktioniert!

Im Tiny einfach alle oben - oddrrr?

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

Re: XH: alternatives Seitensplitten unabhängig von <hx> - Ta

Post by cmb » Sat Nov 26, 2016 1:06 pm

frase wrote:
cmb wrote:Eventuell gar kein <hX> verwenden? Aber was statt dessen?
Definitiv kein <hx> sondern eine CSS-Klasse. (.xh_subHeading ?)
Und welches Element? <p>? Gibt es nicht etwas spezielleres für Listenüberschriften?
frase wrote:Im Tiny einfach alle oben - oddrrr?
Genau, und zwar in absteigender Reihenfolge (<h1>-<h6>). Ich habe schon mal einen Patch vorbereitet, den ich als Pull Request einreichen werden, wenn Holger mit den Umbauarbeiten fertig ist. :-)

Hier der Patch:

Code: Select all

From 7d083279148aa4ea0bf278c2d1c79ded179ea388 Mon Sep 17 00:00:00 2001
From: "Christoph M. Becker" <cmbecker69@gmx.de>
Date: Sat, 26 Nov 2016 13:32:30 +0100
Subject: [PATCH] Fix TinyMCE 3 format select box

There is no difference between page headings and internal headings, so
we present all headings consecutively in the format select box.

Actually, we should remove the %PAGEHEADERS% and %HEADERS% placeholders
all together, but as TinyMCE 3 will likely be removed for XH 1.7 we
don't care to do so.
---
 source/plugins/tinymce/inits/init_full.js    | 2 +-
 source/plugins/tinymce/inits/init_medium.js  | 2 +-
 source/plugins/tinymce/inits/init_minimal.js | 2 +-
 source/plugins/tinymce/inits/init_sidebar.js | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/source/plugins/tinymce/inits/init_full.js b/source/plugins/tinymce/inits/init_full.js
index b68d280..6495fa8 100644
--- a/source/plugins/tinymce/inits/init_full.js
+++ b/source/plugins/tinymce/inits/init_full.js
@@ -24,7 +24,7 @@
     theme_advanced_resizing : true,
 
     // %PAGEHEADERS% = h1...hx for new pages, %NAMED_PAGEHEADERS% =  1. Level pageheader=h1 ...hx, %HEADERS% = remaining hy...h6
-    theme_advanced_blockformats : "%HEADERS%,p=p,div=div,%PAGEHEADERS%,code=code,pre=pre,dt=dt,dd=dd",
+    theme_advanced_blockformats : "%PAGEHEADERS%,%HEADERS%,p=p,div=div,code=code,pre=pre,dt=dt,dd=dd",
     theme_advanced_font_sizes : "8px=8px,10px=10px,12px=12px,14px=14px,16px=16px,18px=18px,20px=20px,24px=24px,36px=36px",
 
     content_css : "%STYLESHEET%",
diff --git a/source/plugins/tinymce/inits/init_medium.js b/source/plugins/tinymce/inits/init_medium.js
index 9cb4758..a890b3f 100644
--- a/source/plugins/tinymce/inits/init_medium.js
+++ b/source/plugins/tinymce/inits/init_medium.js
@@ -23,7 +23,7 @@
     theme_advanced_resizing : true,
 
     // %PAGEHEADERS% = h1...hx for new pages, %NAMED_PAGEHEADERS% =  1. Level pageheader=h1 ...hx, %HEADERS% = remaining hy...h6
-    theme_advanced_blockformats : "%HEADERS%,p=p,div=div,%PAGEHEADERS%,code=code",
+    theme_advanced_blockformats : "%PAGEHEADERS%,%HEADERS%,p=p,div=div,code=code",
     theme_advanced_font_sizes : "8px=8px,10px=10px,12px=12px,14px=14px,16px=16px,18px=18px,20px=20px,24px=24px,36px=36px",
 
     content_css : "%STYLESHEET%",
diff --git a/source/plugins/tinymce/inits/init_minimal.js b/source/plugins/tinymce/inits/init_minimal.js
index 224dfec..7eefa10 100644
--- a/source/plugins/tinymce/inits/init_minimal.js
+++ b/source/plugins/tinymce/inits/init_minimal.js
@@ -21,7 +21,7 @@
     theme_advanced_resizing : true,
 
     // %PAGEHEADERS% = h1...hx for new pages, %NAMED_PAGEHEADERS% =  1. Level pageheader=h1 ...hx, %HEADERS% = remaining hy...h6
-    theme_advanced_blockformats : "%HEADERS%,p=p,div=div,%PAGEHEADERS%",
+    theme_advanced_blockformats : "%PAGEHEADERS%,%HEADERS%,p=p,div=div",
     theme_advanced_font_sizes : "8px=8px,10px=10px,12px=12px,14px=14px,16px=16px,18px=18px,20px=20px,24px=24px,36px=36px",
 
     content_css : "%STYLESHEET%",
diff --git a/source/plugins/tinymce/inits/init_sidebar.js b/source/plugins/tinymce/inits/init_sidebar.js
index 943f985..82a2a40 100644
--- a/source/plugins/tinymce/inits/init_sidebar.js
+++ b/source/plugins/tinymce/inits/init_sidebar.js
@@ -15,7 +15,7 @@
     theme_advanced_resizing : true,
 
     // %PAGEHEADERS% = h1...hx for new pages, %NAMED_PAGEHEADERS% =  1. Level pageheader=h1 ...hx, %HEADERS% = remaining hy...h6
-    theme_advanced_blockformats : "%HEADERS%,p=p,div=div,%PAGEHEADERS%",
+    theme_advanced_blockformats : "%PAGEHEADERS%,%HEADERS%,p=p,div=div",
     theme_advanced_font_sizes : "8px=8px,10px=10px,12px=12px,14px=14px,16px=16px,18px=18px,20px=20px,24px=24px,36px=36px",
 
     content_css : "%STYLESHEET%",
-- 
2.8.1.windows.1
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply