WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 17.02.2020 10:36:23

tomno399
Member

Seite neu laden - Sprung immer zum Seitenanfang?

Hallöle

Wenn ich im Frontend beim Template WBCEZon mir etwas in der Seitenmitte (der Länge nach) anschaue und die Seite über den Browser neu lade, bleibt die Seite mittig stehen. Das finde ich sehr gut!

Bin ich im Backend und füge mehrere Abschnitte hinzu, wird die Seite auch lang. Beim Speichern springt die Seite leider nach oben zur Kopfzeile. Das ist sicherlich so gewollt, aber zum Bearbeiten wäre es angenehmer, die Seite bliebe auch mittig "Stehen".

Gibt es dafür Erklärungen?


Online: WBCE 1.4.2, PHP 7.3.x; Lokal: XAMPP WBCE 1.4.5, PHP 7.4.11

Offline

#2 17.02.2020 11:09:10

florian
Administrator

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Neu Laden im Frontend ist technisch gesehen etwas anderes als auf Speichern klicken im Backend. Beim Anklicken des Speichern-Buttons wird das jeweilige Formular abgesendet. Vereinfacht ausgedrückt passiert da dann mehr im Hintergrund.
So gewollt ist das eigentlich nicht, ich finde das auch unpraktisch, aber es hat sich technisch so ergeben bzw. ist schon immer™ so.
Du kannst Dir zumindest bei WYSIWYG-Abschnitten damit behelfen, auf den "Speichern"-Button des in der Symbolleiste zu klicken anstatt auf den Speichern-Button unter dem Eingabefeld, dann wird die Änderung gespeichert, ohne dass die Seite im Backend neu aufgebaut wird.

Offline

#3 17.02.2020 15:52:56

tomno399
Member

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Tja man kann nicht alles haben. Wer mal 100 PDFs in die DLG3 als letzten Abschnitt auf der Seite eingetragen hat, der wird allein vom Scrollen müde. Danke Florian!


Online: WBCE 1.4.2, PHP 7.3.x; Lokal: XAMPP WBCE 1.4.5, PHP 7.4.11

Offline

#4 17.02.2020 16:07:43

colinax
Administrator

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Man kann auf dass Mausrad auch klicken, dann steuert man die Scrollrichtung und das Tempo mit der Bewegung der Maus.

Offline

#5 17.02.2020 16:33:35

bernd
Developer

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Man kann auf dass Mausrad auch klicken, dann steuert man die Scrollrichtung und das Tempo mit der Bewegung der Maus.

Vorausgesetzt der Browser ist entsprechend konfiguriert  wink

Ich persönlich habe für so Fälle die Tastatursteuerung lieb gewonnen, ein beherztes "Strg + Ende" und schon ist man am Seitenende ...


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#6 17.02.2020 16:41:28

florian
Administrator

Re: Seite neu laden - Sprung immer zum Seitenanfang?

...oder man schiebt vorübergehend den Abschnitt, an dem man am intensivsten arbeitet, bei "Abschnitte verwalten" ganz nach oben. Falls dadurch das Frontend-Layout sehr in Unordnung gerät, blendet man den betr. Abschnitt halt übers Ablaufdatum (=> gestern) vorübergehend aus.

Offline

#7 18.02.2020 11:12:39

boeseroeser
Guest

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Helft mir nach, wenn ich was nicht kapiert habe..

Es wird ja - zumindest in neueren Versionen - der Abschnittsanker mitübertragen.

An sich wäre es auch leicht möglich, beim Speichern die aktuelle Scrollposition zu speichern und dann wieder auszulesen. Ich hab mich da gestern etwas gespielt, es ist mir leider nicht gelungen, per JS zu scrollen (im Flat Theme), keine Ahnung, was es da hat.

#8 18.02.2020 15:22:17

tomno399
Member

Re: Seite neu laden - Sprung immer zum Seitenanfang?

@Chio:
"Es wird ja - zumindest in neueren Versionen - der Abschnittsanker mitübertragen."
Das Bedarf einer näheren Erläueterung zu meinem Verständnis, was wo wie?


Online: WBCE 1.4.2, PHP 7.3.x; Lokal: XAMPP WBCE 1.4.5, PHP 7.4.11

Offline

#9 18.02.2020 16:29:10

bernd
Developer

Re: Seite neu laden - Sprung immer zum Seitenanfang?

@Chio:
zumindest beim WYSIWIG-Module wird der Section-Anker ja direkt von der save.php als Sprungmarke mit zurückgegeben:
http://localhost/spielwiese/backend/pages/modify.php?page_id=2#wb_83
In Chrome basierten Browsern funktioniert der auch einwandfrei nur der Firefox (unter Linux) zickt da rum und springt irgendwohin.

Die meisten anderen Module bieten den Komfort anscheinend leider nicht.

@tomno:
Im HML-Quelltext hat jeder Abschnitt durch die Section-ID eine eindeutige Kennung welche man dazu verwenden kann, wenn sie in einer URL angegeben wird (siehe oben), diesen Abschnitt gezielt anzuspringen.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

florian

#10 18.02.2020 20:36:10

boeseroeser
Guest

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Jepp, jetzt hab ichs wieder im Hirn,

Hier eine mögliche Lösung. Funktioniert nicht in jeder Situation, aber doch oft, und tut ansonsten nicht weh.

/templates/[das Theme]/jquery/theme.js

VOR dem letzten
});

[== JavaScript ==]
setTimeout(function(){ getscrolled(); }, 1000);	
setscrolled();

Danach, also GANZ am Ende:

[== JavaScript ==]
function setscrolled() {
	$( "form" ).submit(function( event ) {		
	
		var lastmodifyscroll = $(document).scrollTop();
		localStorage.setItem('lastmodifyscroll', lastmodifyscroll);		
	
		var lastmodifypage = window.location.href.split('#')[0];
		localStorage.setItem('lastmodifypage', lastmodifypage);		
		console.log('SET: ' + lastmodifyscroll + ', '+lastmodifypage);					
	});

}

function getscrolled() {
	if (localStorage.getItem('lastmodifypage') === null) { return; }
	
	url = window.location.href.split('#')[0];
	var lastmodifypage = localStorage.getItem('lastmodifypage');	
	if (url != lastmodifypage) {
		localStorage.removeItem('lastmodifypage');
		console.log('REMOVE '+lastmodifypage);
		return;
	}
	
	var lastmodifyscroll = parseInt(localStorage.getItem('lastmodifyscroll'), 10);
	if (lastmodifyscroll > 0) {
		console.log('GET: '+lastmodifyscroll + ', '+lastmodifypage);
		window.scrollTo(0, lastmodifyscroll);
	}	
}

Die console.log(..) kann man natürlich entfernen.

EDIT: Da könnte man natürlich noch mehr draus machen: sessionStorage statt localStorage, jede Seite extra notieren, auf Links ausweiten, usw.

Last edited by boeseroeser (18.02.2020 21:04:51)

#11 19.02.2020 13:25:05

tomno399
Member

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Hmm Chio,
mit den wysiwyg-Abschnitten klappt dein Code, die Seite bleibt beim Abschnitt. Aber das erreicht man ja auch, wenn "nur" auf die Diskette im CK-Editor-Menü geklickt wird.

Last edited by tomno399 (19.02.2020 13:25:18)


Online: WBCE 1.4.2, PHP 7.3.x; Lokal: XAMPP WBCE 1.4.5, PHP 7.4.11

Offline

#12 19.02.2020 14:18:49

boeseroeser
Guest

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Der Code sollte bei allen Modulen funktionieren, die ein form-submit haben. Bei Modulen wie Itemz oder Topcs (Auflistung) funktioniert er nicht, weil da normale Links sind.
Solche Module müsste man gesondert behandeln.

Aber: Da hängt dann ja mehr dran, da müsste man überhaupt eine History machen - und da wird man ins Schleudern kommen.

Liked by:

florian

#13 20.02.2020 11:54:29

florian
Administrator

Re: Seite neu laden - Sprung immer zum Seitenanfang?

Also, was man machen könnte:

1) https://webcloud.se/jQuery-Collapse/ runterladen
2) Zip lokal entpacken
3) Auf der Website in /templates/wbce_flat_theme/jquery/ ein Verzeichnis collapse anlegen
4) aus dem entpackten Collapse-Zip den Inhalt des Verzeichnisses /src nach /templates/wbce_flat_theme/jquery/collapse kopieren
5) /templates/wbce_flat_theme/templates/pages_modify.htt ändern zu

<!-- BEGIN main_block -->

<section id="page-modify">
    <h2 class="page_titel"> {HEADING_MODIFY_PAGE}
        <div class="headline-link">
            <a href="{ADMIN_URL}/pages/settings.php?page_id={PAGE_IDKEY}"> <i class="fa fa-cog"></i> {TEXT_CHANGE_SETTINGS} </a> <span style="{DISPLAY_MANAGE_SECTIONS}"> &nbsp;&nbsp;|&nbsp;&nbsp; </span>
            <a href="{ADMIN_URL}/pages/sections.php?page_id={PAGE_IDKEY}" style="{DISPLAY_MANAGE_SECTIONS}"> <i class="fa fa-bars"></i> {TEXT_MANAGE_SECTIONS} </a>
        </div>
    </h2>

    <h2 class="{DISPLAY_MODIFIED}">
        {TEXT_CURRENT_PAGE}: <b>{PAGE_TITLE}</b> &nbsp;&nbsp;|&nbsp;&nbsp; PageID: <b>{PAGE_ID}</b> &nbsp;&nbsp;|&nbsp;&nbsp; <i>{LAST_MODIFIED}: {MODIFIED_BY} ({MODIFIED_BY_USERNAME}) - {MODIFIED_WHEN}</i>
    </h2>
</section>
<div class="clearfix"></div>

<div id="collpapse" data-collapse="persist">
<!-- BEGIN section_module_block -->
<h3 class="section-info" id="{SECTION_ANCHOR}" >
    <b>{TEXT_BLOCK}: </b>{BLOCK_NAME} <b>Modul: </b>{SECTION_MODULE} <b>ID: </b>{SECTION_ID} <b>Name: </b>{SECTION_NAME}
</h3>
<div>
<div class="pageModuleWrapper {SECTION_MODULE}">
    {SECTION_MODIFY_OUTPUT}
</div>
</div>
<!-- END section_module_block -->
</div>



    <script src="{THEME_URL}/jquery/collapse/jquery.collapse.js"></script>
    <script src="{THEME_URL}/jquery/collapse/jquery.collapse_storage.js"></script>
    <script src="{THEME_URL}/jquery/collapse/jquery.collapse_cookie_storage.js"></script>
<!-- END main_block -->

Das Ergebnis ist dann, dass erstmal alle Abschnitte zugeklappt sind und durch Anklicken der jeweiligen Dachzeile geöffent werden.  Das Plugin merkt sich aber, welcher Abschnitt zuletzt geöffnet war, d.h. nach dem Neu laden der Seite ist dann der betr. Abschnitt weiterhin sichtbar. (Sonst wäre es ja auch witzlos.)

attachment.php?item=2207&download=1

Offline

Liked by:

screamindan

Board footer

Powered by FluxBB

up