WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 25.05.2020 10:16:47

her-ha
Mitglied

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 10:19:01

her-ha
Mitglied

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 10: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!

Beitrag geändert von florian (25.05.2020 21:14:45)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 25.05.2020 19:40:46

her-ha
Mitglied

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.

Beitrag geändert von her-ha (25.05.2020 19:41:17)

Offline

#5 25.05.2020 21: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.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Fußzeile des Forums

up