[TYPO3-jobs] Re: JSTree Navigation im FE einbauen
wagner
wr at cabag.ch
Fri Feb 6 22:21:56 CET 2015
Ich bin nicht sicher ob das der richtige Ort ist um das hier zu posten. Falls es der falsche Ort ist "Asche über mein Haupt"..
Es ist nicht die eleganteste Lösung aber sie funktioniert (ich bin halt auch nur ein Hobby Entwickler -.-')
Die JS Tree files in den Fileadmin schmeissen..
Dann im TS Setup die nötigen JS und CSS includen
includeCSS {
jstree = fileadmin/jstree/dist/themes/default/style.min.css
jstree.media = all
}
includeJSlibs.jquery = //ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
includeJSlibs.jquery{
external = 1
disableCompression = 1
excludeFromConcatenation = 1
}
includeJS {
jstree = fileadmin/jstree/dist/jstree.min.js
}
Im <li> wrap für das Menü mit der uid versehen.. (hab jetzt nicht das ganze Navi TS gepostet, sollte ja klar sein..)
NO.wrapItemAndSub = <li data-pid='{field:uid}'> | </li>
Damit es dann auch wirklich funzt am Ende irgendwo dran hängen..
page.jsFooterInline {
10 = TEXT
10.value (
$(function () {
$("#jstree").bind("loaded.jstree", function(event, data) {
data.instance.open_all();
});
$('#jstree').jstree({
core: {
expand_selected_onload: true
}
});
)
20 = TEXT
20.dataWrap = mySelectNode({field:uid}); curpid = {field:uid};
30 = TEXT
30.value (
$('#jstree').on("changed.jstree", function (e, data) {
var url = data.instance.get_node(data.selected[0]).a_attr.href;
if (data.instance.get_node(data.selected[0]).data.pid != curpid)
window.location.href = url;
});
});
function mySelectNode(pid) {
var el = $("li[data-pid='" + pid + "']");
if (el) {
var nodeid = $(el).attr('id');
$('#jstree').jstree(true).select_node(nodeid, true, true);
}
}
)
Viel Spass! Gibt sicher bessere Lösungen, aber es funzt.
More information about the TYPO3-jobs
mailing list