WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 25.05.2020 11:16:47

her-ha
Member

SectionPicker (modifiziert)

Hallo,
ich habe einen eigenen angepassten SectionPicker. Der funktioniert soweit ganz gut, aber wenn ich einen
Tab öffne und dann entweder auf einen Link klicke, einen anderen Menüpunkt anwähle oder ein reload mache,
springt es immer auf den ersten TAB zurück.
Ich möchte aber, auch wenn die Seite verlasse und wieder zurückkehre, auf den schon einmal geöffenten Tab zurückkehren,
ohne dass ich da erneut auf den gewünschten Tab klicken zu muß.

Mein SectonPicker auf der Homepage-Seite sieht so aus:

<script>
  $( function() {
    $( "#tabs" ).tabs();
  } );
  </script>
<style type="text/css">input.mpform_submit{background:#479cd3 !important;font-weight:bold;}
</style>
<div id="tabs">
<ul>
	<li><a href="#tabs-1">Mitteilung / Kontakt</a></li>
	<li><a href="#tabs-2">Kooperationaktion</a></li>
	<li><a href="#tabs-4">Kundenbetreuung</a></li>
</ul>

<div id="tabs-1">
<div>[[SectionPicker?sid=78]]</div>
</div>

<div id="tabs-2">
<div>[[SectionPicker?sid=77]]</div>
</div>

<div id="tabs-4">
<div>[[SectionPicker?sid=80]]</div>
</div>
</div>

<p style="clear:both">&nbsp;</p>

Wie die Tableiste vom SectionPicker auf meiner Homepage aussieht, ist im Bildanhang zu sehen.

Wird das so verstanden wie ich mich ausgedrückt habe?
Wer hätte da eine Lösung?

Viele Grüße

Offline

#2 25.05.2020 11:19:01

her-ha
Member

Re: SectionPicker (modifiziert)

Hier noch mein Droplet zu "SectionPicker":

global $database, $wb, $TEXT, $DGTEXT,$section_id,$page_id;
$content = '';
$sid = isset($sid) ? intval($sid) : 0;
if( $sid ) {
    $oldSid = $section_id; // save old sectionID
	$sql  = 'SELECT `module` FROM `'.TABLE_PREFIX.'sections` ';
	$sql .= 'WHERE `section_id`='.$sid;
	if (($module = $database->get_one($sql))) {
		if (is_readable(WB_PATH.'/modules/'.$module.'/view.php')) {
			$_sFrontendCss = '/modules/'.$module.'/frontend.css';
			if(is_readable(WB_PATH.$_sFrontendCss)) {
				$_sSearch = preg_quote(WB_URL.'/modules/'.$module.'/frontend.css', '/');
				if(preg_match('/<link[^>]*?href\s*=\s*\"'.$_sSearch.'\".*?\/>/si', $wb_page_data)) {
					$_sFrontendCss = '';
				}else {
					$_sFrontendCss = '<link href="'.WB_URL.$_sFrontendCss.'" rel="stylesheet" type="text/css" media="screen" />';
				}
			} else { $_sFrontendCss = ''; }
            $section_id = $sid;
			ob_start();
			require(WB_PATH.'/modules/'.$module.'/view.php');
			$content = $_sFrontendCss.ob_get_clean();
			$section_id = $oldSid; // restore old sectionID
		}
	}
}
return $content;

Offline

#3 25.05.2020 11:37:13

florian
Administrator

Re: SectionPicker (modifiziert)

Ich glaube, das hat weniger was mit dem Sectionpicker zu tun als dem jQuery-Plugin, das Du für die Tabs verwendest.
D.h. Du musst einen Cookie setzen, in dem der jeweils offene Tab gespeichert wird.
Hier ist eine Anleitung, die mir plausibel erscheint:
https://forum.jquery.com/topic/ui-tabs- … -26-6-2012

Edit: Nein, 8 Jahre alte Scripte funktionieren nicht mehr. Überraschung!

Last edited by florian (25.05.2020 22:14:45)


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#4 25.05.2020 20:40:46

her-ha
Member

Re: SectionPicker (modifiziert)

Danke, die Anleitung ist das, das ich eigentlich will.
Das mit dem SectionPicker hat mein verstorbener Bruder erstellt und jQuery übersteigt dann aber meine eingeschränkten Fähigkeiten. Ich weiß nicht, wo ich da weitermachen soll/kann.

Unter den installierten Modulen habe ich das gefunden: " /modules/lib_jquery/plugins/jquery.cookies ".
Das brachte mich aber auch nicht weiter.

Last edited by her-ha (25.05.2020 20:41:17)

Offline

#5 25.05.2020 22:17:22

florian
Administrator

Re: SectionPicker (modifiziert)

Wenn man bzw. Stackoverflow weiß, wie's geht, ist es ganz einfach.
Den Aufruf

<script>
  $( function() {
    $( "#tabs" ).tabs();
  } );
  </script>

ändern zu

<script>
    $(function() {
        $("#tabs").tabs({
            activate: function(event, ui) {
                localStorage.selectedTab = ui.newTab.index() + 1;
            },
            active: localStorage.selectedTab ? localStorage.selectedTab - 1 : 0
        });
    });
</script>

Dann sollte es sich wie gewünscht verhalten.


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

Board footer

up