openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit ffdfd1a077c602de036f3aed53ec7b83310aedfc
parent 9bf303afa88754c22223837454e2802d6731952d
Author: Jan Dankert <devnull@localhost>
Date:   Fri,  2 Feb 2018 02:17:38 +0100

Sprachen-Id aus dem Baum in die Views übertragen. Verwenden der JQuery-Data-Funktionen für das Speichern von Daten, da das Speichern in Attributen zu Encoding-Problemen führen kann. Außerdem ist das native setzen von Daten schneller als der Weg über die DOM-Attribute.

Diffstat:
modules/cms-core/action/FolderAction.class.php | 1+
modules/cms-core/action/TemplatelistAction.class.php | 7+++++--
modules/cms-ui/themes/default/script/openrat.js | 33++++++++++++++++++++-------------
modules/cms-ui/themes/default/script/openrat.min.js | 14+++++++-------
modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.js | 37++++++++++++++++++++++++++++++++-----
modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.min.js | 6++++--
modules/util/AdministrationTree.class.php | 69+++++++++++++++++++++++++++++++++++++++------------------------------
7 files changed, 108 insertions(+), 59 deletions(-)

diff --git a/modules/cms-core/action/FolderAction.class.php b/modules/cms-core/action/FolderAction.class.php @@ -52,6 +52,7 @@ class FolderAction extends ObjectAction public function __construct() { $this->folder = new Folder( $this->getRequestId() ); + $this->folder->languageid = $this->getRequestVar('languageid'); $this->folder->load(); } diff --git a/modules/cms-core/action/TemplatelistAction.class.php b/modules/cms-core/action/TemplatelistAction.class.php @@ -57,8 +57,11 @@ class TemplatelistAction extends Action global $conf_php; $list = array(); - - foreach( Template::getAll() as $id=>$name ) + + $template = new Template(); + $template->projectid = $this->getRequestId(); + + foreach( $template::getAll() as $id=>$name ) { $list[$id] = array(); $list[$id]['name'] = $name; diff --git a/modules/cms-ui/themes/default/script/openrat.js b/modules/cms-ui/themes/default/script/openrat.js @@ -72,12 +72,12 @@ function refreshAllRefreshables() if ( $(this).hasClass('static') ) return; - var method = $(this).attr('data-method'); - var action = $(this).attr('data-action'); - var id = $(this).attr('data-id'); - var extraid = $(this).attr('data-extra'); + var method = $(this).data('method'); + var action = $(this).data('action'); + var id = $(this).data('id'); + var extraid = $(this).data('extra'); - loadView( $(this).closest('div.panel').find('div.content'),action,method,id); + loadView( $(this).closest('div.panel').find('div.content'),action,method,id,extraid); }); } @@ -641,8 +641,8 @@ function loadTree() // Wurzel des Baums laden //loadBranch( $('div#tree ul.tree > li'),'root',0); - $('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree( { type:'root',id:0,onSelect:function(name,type,id) { - openNewAction( name,type,id, '' ); + $('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree( { type:'root',id:0,onSelect:function(name,type,id,extraId) { + openNewAction( name,type,id, extraId ); } }); // Die ersten 2 Hierarchien öffnen: @@ -817,9 +817,16 @@ function openNewAction( name,action,id,extraId ) var maxTabs = 7; if ( $('div#panel-content > div.header > ul.views > li.action').length >= maxTabs ) $('div#panel-content > div.header > ul.views > li.action').first().remove(); - - $('div#panel-content > div.header > ul.views').append('<li class="action active '+action+' id'+id+'" title="'+name+'" data-action="'+action+'" data-id="'+id+'" data-method="'+DEFAULT_CONTENT_ACTION+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+action+'.png" title="" /><div class="tabname">'+name+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>'); - resizeTabs( $('div#contentbar'),true); + + var newLi = $('<li class="action active '+action+' id'+id+'" title="'+name+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+action+'.png" title="" /><div class="tabname">'+name+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>'); + $('div#panel-content > div.header > ul.views').append(newLi); + + newLi.data('action',action); + newLi.data('id',id); + newLi.data('extra',extraId); + newLi.data('method',DEFAULT_CONTENT_ACTION); + + resizeTabs( $('div#contentbar'),true); $('div#panel-content > div.header > ul.views').scrollLeft(9999); // Klick auf den "Schließen"-Knopf @@ -912,7 +919,7 @@ function filterMenus(action) function setNewAction( action,id,extraId ) { filterMenus(action); - $('#workbench ul.views > li.action.dependent').attr('data-action',action).attr('data-id',id).attr('data-extra',JSON.stringify(extraId)); + $('#workbench ul.views > li.action.dependent').data('action',action).data('id',id).data('extra',extraId); // Alle refresh-fähigen Views mit dem neuen Objekt laden. refreshAllRefreshables(); @@ -1109,9 +1116,9 @@ function createUrl(action,subaction,id,extraid) } else if ( typeof extraid === 'object') { - url += '?0=0'; + url += '?action='+action+'&subaction='+subaction+'&id='+id; jQuery.each(extraid, function(name, field) { - url = url + '&' + field.name + '=' + field.value; + url = url + '&' + name + '=' + field; }); } else diff --git a/modules/cms-ui/themes/default/script/openrat.min.js b/modules/cms-ui/themes/default/script/openrat.min.js @@ -1,19 +1,19 @@ ;var DEFAULT_CONTENT_ACTION='edit',OR_THEMES_EXT_DIR='modules/cms-ui/themes/';$(function(){$('html').removeClass('nojs');$('.initial-hidden').removeClass('initial-hidden');refreshAll();window.setInterval(function(){ping()},300000)});function ping(){$.ajax(createUrl('title','ping',0))};function refreshAll(){refreshTitleBar();refreshWorkbench();$('div#filler').click(function(){if($('div#dialog').hasClass('modal')){} -else{$('div#dialog').html('').hide();$('div#filler').fadeOut(500)}})};function refreshAllRefreshables(){$('#workbench div.panel > div.header > ul.views > li.active').each(function(){if($(this).hasClass('static'))return;var e=$(this).attr('data-method'),i=$(this).attr('data-action'),t=$(this).attr('data-id'),a=$(this).attr('data-extra');loadView($(this).closest('div.panel').find('div.content'),i,e,t)})};function refreshActualView(e){$(e).closest('div.panel').find('li.active').each(function(){var e=$(this).attr('data-method'),i=$(this).attr('data-action'),t=$(this).attr('data-id');loadView($(this).closest('div.panel').find('div.content'),i,e,t)})};function refreshWorkbench(){$('ul#history').empty();resizeWorkbench();$('div.modaldialog').fadeOut(500);$('#workbench').removeClass('modal');$('div#filler').fadeOut(500);$('#workbench').fadeIn(750).find('li.active').each(function(){var i=$(this).attr('data-method'),e=$(this).attr('data-action');if(e)loadView($(this).closest('div.panel').find('div.content'),e,i,0)});$('div.backward_link').click(function(){var e=$(this).closest('div.header').find('ul.views'),i=e.find('li.action.active').prev();e.scrollTo(i,500,{'axis':'x'});i.click()});$('div.forward_link').click(function(){var e=$(this).closest('div.header').find('ul.views'),i=e.find('li.action.active').next();e.scrollTo(i,500,{'axis':'x'});i.click()});registerWorkbenchEvents();$(window).resize(function(){resizeWorkbench()})};function registerWorkbenchEvents(){$('ul.views > li.action').draggable({cursor:'move',revert:'invalid'});$('ul.views').droppable({accept:'li.action',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var a=i.draggable,n=$(this),s=a.parent();if($(a).closest('div.panel').attr('id')==$(n).closest('div.panel').attr('id'))$(a).css({top:0,left:0});else $(a).detach().css({top:0,left:0}).appendTo(n).click();if(s.find('li').size()==0){var t=s.closest('div.container');s.closest('div.panel').remove();if(t.hasClass('autosize'))t.children('div.panel').addClass('autosize').removeClass('resizable');else t.children('div.panel').addClass('resizable').removeClass('autosize');t.replaceWith(t.children('div.panel'));resizeWorkbench()}}});$('div.content').droppable({accept:'li.action',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var s=i.draggable,n=$(this),o=s.parent(),d=s.offset(),l=n.offset(),h=d.left-l.left,v=l.left+n.width()-d.left,r=d.top-l.top,c=l.top+n.height()-d.top,t=$('<div class="container"><div class="first" /><div class="divider" /><div class="second"></div>');if(h<Math.min(v,Math.min(r,c))){t.addClass('axle-x');t.children('div.divider').addClass('to-right');t.children('div.first').removeClass('first').addClass('resizable');t.children('div.second').removeClass('first').addClass('autosize')} +else{$('div#dialog').html('').hide();$('div#filler').fadeOut(500)}})};function refreshAllRefreshables(){$('#workbench div.panel > div.header > ul.views > li.active').each(function(){if($(this).hasClass('static'))return;var e=$(this).data('method'),i=$(this).data('action'),t=$(this).data('id'),a=$(this).data('extra');loadView($(this).closest('div.panel').find('div.content'),i,e,t,a)})};function refreshActualView(e){$(e).closest('div.panel').find('li.active').each(function(){var e=$(this).attr('data-method'),i=$(this).attr('data-action'),t=$(this).attr('data-id');loadView($(this).closest('div.panel').find('div.content'),i,e,t)})};function refreshWorkbench(){$('ul#history').empty();resizeWorkbench();$('div.modaldialog').fadeOut(500);$('#workbench').removeClass('modal');$('div#filler').fadeOut(500);$('#workbench').fadeIn(750).find('li.active').each(function(){var i=$(this).attr('data-method'),e=$(this).attr('data-action');if(e)loadView($(this).closest('div.panel').find('div.content'),e,i,0)});$('div.backward_link').click(function(){var e=$(this).closest('div.header').find('ul.views'),i=e.find('li.action.active').prev();e.scrollTo(i,500,{'axis':'x'});i.click()});$('div.forward_link').click(function(){var e=$(this).closest('div.header').find('ul.views'),i=e.find('li.action.active').next();e.scrollTo(i,500,{'axis':'x'});i.click()});registerWorkbenchEvents();$(window).resize(function(){resizeWorkbench()})};function registerWorkbenchEvents(){$('ul.views > li.action').draggable({cursor:'move',revert:'invalid'});$('ul.views').droppable({accept:'li.action',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var a=i.draggable,n=$(this),s=a.parent();if($(a).closest('div.panel').attr('id')==$(n).closest('div.panel').attr('id'))$(a).css({top:0,left:0});else $(a).detach().css({top:0,left:0}).appendTo(n).click();if(s.find('li').size()==0){var t=s.closest('div.container');s.closest('div.panel').remove();if(t.hasClass('autosize'))t.children('div.panel').addClass('autosize').removeClass('resizable');else t.children('div.panel').addClass('resizable').removeClass('autosize');t.replaceWith(t.children('div.panel'));resizeWorkbench()}}});$('div.content').droppable({accept:'li.action',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var s=i.draggable,n=$(this),o=s.parent(),d=s.offset(),l=n.offset(),h=d.left-l.left,v=l.left+n.width()-d.left,r=d.top-l.top,c=l.top+n.height()-d.top,t=$('<div class="container"><div class="first" /><div class="divider" /><div class="second"></div>');if(h<Math.min(v,Math.min(r,c))){t.addClass('axle-x');t.children('div.divider').addClass('to-right');t.children('div.first').removeClass('first').addClass('resizable');t.children('div.second').removeClass('first').addClass('autosize')} else if(v<Math.min(r,c)){t.addClass('axle-x');t.children('div.divider').addClass('to-left');t.children('div.first').removeClass('first').addClass('autosize');t.children('div.second').removeClass('first').addClass('resizable')} else if(r<c){t.addClass('axle-y');t.children('div.divider').addClass('to-bottom');t.children('div.first').removeClass('first').addClass('resizable');t.children('div.second').removeClass('first').addClass('autosize')} else{t.addClass('axle-y');t.children('div.divider').addClass('to-top');t.children('div.first').removeClass('first').addClass('autosize');t.children('div.second').removeClass('first').addClass('resizable')};t.children('div.resizable').addClass('bar').data('size-factor',0.4);$(s).closest('div.panel').clone().addClass('resizable').removeClass('autosize').replaceAll(t.children('div.resizable'));t.find('ul.views > li').remove();$(s).detach().css({top:0,left:0}).appendTo(t.find('ul.views')).click();var a=$(n).closest('div.panel').replaceWith(t);t.children('div.autosize').replaceWith(a);if(a.hasClass('autosize')){t.addClass('autosize').removeClass('resizable')};if(a.hasClass('resizable')){t.addClass('resizable').removeClass('autosize')};a.addClass('autosize').removeClass('resizable');if(o.find('li').length==0){var a=o.closest('div.container');o.closest('div.panel').remove();if(a.hasClass('autosize'))a.children('div.panel').addClass('autosize').removeClass('resizable');else a.children('div.panel').addClass('resizable').removeClass('autosize');a.replaceWith(a.children('div.panel'));resizeWorkbench()};resizeWorkbench();registerWorkbenchEvents()}});if($('#workbench div.panel.modal').length>0){$('#workbench div.panel.modal').parent().addClass('modal');$('div#filler').fadeTo(500,0.5);$('#workbench').addClass('modal')};$('div.container.axle-x > div.divider').draggable({stop:function(e,i){var t=i.position.left,a=$(this).hasClass('to-right')?1:-1;$(this).parent().children('div.resizable').each(function(){var e=((a*t)+$(this).width())/($(this).parent().width());e=Math.min(0.5,Math.max(0.1,e));$(this).data('size-factor',e)});resizeWorkbenchContainer($(this).parent())},axis:'x',revert:!0,revertDuration:0});$('div.container.axle-y > div.divider').draggable({stop:function(e,i){var t=i.position.top,a=$(this).hasClass('to-bottom')?1:-1;$(this).parent().children('div.resizable').each(function(){var e=((a*t)+$(this).height())/($(this).parent().height());e=Math.min(0.5,Math.max(0.1,e));$(this).data('size-factor',e)});resizeWorkbenchContainer($(this).parent())},axis:'y',revert:!0,revertDuration:0});$('ul.views > li.action').click(function(){$(this).orLoadView()});$('div.header').dblclick(function(){fullscreen(this)});loadTree()};function refreshTitleBar(){$('#header').load(createUrl('title','show',0),function(){$(this).fadeIn('slow');registerHeaderEvents()})};function loadViewByName(e,i){alert('loadViewByName');loadView($('div#'+e),i)};function loadView(e,i,t,s,n){var a=$(e).children('div.sheet.action-'+i+'.method-'+t+'.id-'+s);if(a.length==0){$(e).children('div.sheet').hide();a=$('<div class="sheet action-'+i+' method-'+t+' id-'+s+'" />');$(e).append(a)} else{if(a.is(':visible')){return} -else{$(e).children('div.sheet').hide();a.show();return}};var d=createUrl(i,t,s,n);$(a).empty().fadeTo(1,0.7).addClass('loader').html('').load(d,function(e,i,t){$(a).fadeTo(350,1);if(i=='error'){$(a).html('');$(a).removeClass('loader');notify('error',e);return};$(a).removeClass('loader');registerViewEvents(a)})};function registerViewEvents(e){$(e).trigger('orViewLoaded');$(e).find('input[data-hint]').orHint();$(e).closest('div.panel').find('div.header div.dropdown div.entry.perview').remove();$(e).find('div.headermenu > a').each(function(e,i){});$(e).find('div.header > a.back').each(function(i,t){$(t).removeClass('button').wrap('<div class="entry perview" />').parent().appendTo($(e).closest('div.panel').find('div.header div.dropdown').first())});$(e).find('div.selector.tree').each(function(){var e=this;$(this).orTree({type:'project',selectable:$(e).attr('data-types').split(','),id:$(e).attr('data-init-folderid'),onSelect:function(i,t,a){var s=$(e).parent();$(s).find('input[type=text]').attr('value',i);$(s).find('input[type=hidden]').attr('value',a)}})});$('div.content li.object').draggable({cursor:'move',revert:'invalid'});$('div.content li.object > div.entry[data-type=\'folder\']').droppable({accept:'li.object',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var t=i.draggable,a=$(this).parent();startDialog($(this).text(),$(t).attr('data-type'),'copy',$(a).attr('data-id'),{'action':$(t).attr('data-type'),'subaction':'copy','id':$(t).attr('data-id'),'targetFolderId':$(a).attr('data-id')});$(t).detach().css({top:0,left:0}).appendTo(a).click()}});$(e).find('input').change(function(){$(this).closest('div.panel').find('ul.views li.action.active').addClass('dirty')})};function registerHeaderEvents(){$('body').click(function(){$('.toolbar-icon.menu').parent().removeClass('open')});$('#header .toolbar-icon.menu').click(function(e){e.stopPropagation();$(this).parent().toggleClass('open')});$('#header .toolbar-icon.menu').mouseover(function(){$(this).parent().find('.toolbar-icon.menu').removeClass('open');$(this).addClass('open')});$('#header').trigger('orHeaderLoaded');$('div.search input').blur(function(){$('div.search input div.dropdown').fadeOut()});$('div.search input').orHint();$('div.search input').orSearch({dropdown:'div.search div.dropdown'})};function fullscreen(e){$(e).closest('div.panel').fadeOut('fast',function(){$(this).toggleClass('fullscreen').fadeIn('fast')})};function loadTree(){if($('div#panel-tree li.action').data('action')=='tree'){$('div#panel-tree div.content > div.sheet.action-tree.method-tree').html('&nbsp;');$('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree({type:'root',id:0,onSelect:function(e,i,t){openNewAction(e,i,t,'')}});$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click();$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click()}};function submitUrl(e,i){postUrl(i,e);refreshAllRefreshables()};function postUrl(e,i){e+='&output=json';$.ajax({'type':'POST',url:e,data:{},success:function(e,t,a){$('div.panel div.status div.loader').html('&nbsp;');doResponse(e,t,i)}})};function startView(e,i){var t=$('#panel-content').find('li.active').data('action'),a=$('#panel-content').find('li.active').data('id');loadView($(e).closest('div.panel').find('div.content'),t,i,a)};function startDialog(e,i,t,a,s){if(i==null||i.length==0)i=$('#panel-content').find('li.active').data('action');if(a==null||a.length==0)a=$('#panel-content').find('li.active').data('id');$('div#filler').fadeTo(500,0.5);$('div#dialog').html('<div class="header"><ul class="views"><li class="action active"><img class="icon" title="" src="./themes/default/images/icon/'+t+'.png" /><div class="tabname" style="width:100px;">'+e+'</div></li></ul></div><div class="content" />');$('div#dialog').data('id',a);$('div#dialog').show();loadView($('div#dialog div.content'),i,t,a,s)};function modalView(e,i){var t=$(e).closest('div.panel').find('li.active').attr('data-action'),a=$(e).closest('div.panel').find('li.active').attr('data-method'),s=$(e).closest('div.panel').find('li.active').attr('data-id');$(e).closest('div.content').modal({'overlayClose':'true','xxxonClose':function(){alert('close)')}});loadView($(e).closest('div.content'),t,a,s)};function setTitle(e){if(e)$('head > title').text(e+' - '+$('head > title').data('default'));else $('head > title').text($('head > title').data('default'))};function openNewAction(e,i,t,a){setTitle(e);$('ul#history li.active').removeClass('active');if($('ul#history li.'+i+'.id'+t).length>0){$('ul#history li.'+i+'.id'+t).addClass('active')} +else{$(e).children('div.sheet').hide();a.show();return}};var d=createUrl(i,t,s,n);$(a).empty().fadeTo(1,0.7).addClass('loader').html('').load(d,function(e,i,t){$(a).fadeTo(350,1);if(i=='error'){$(a).html('');$(a).removeClass('loader');notify('error',e);return};$(a).removeClass('loader');registerViewEvents(a)})};function registerViewEvents(e){$(e).trigger('orViewLoaded');$(e).find('input[data-hint]').orHint();$(e).closest('div.panel').find('div.header div.dropdown div.entry.perview').remove();$(e).find('div.headermenu > a').each(function(e,i){});$(e).find('div.header > a.back').each(function(i,t){$(t).removeClass('button').wrap('<div class="entry perview" />').parent().appendTo($(e).closest('div.panel').find('div.header div.dropdown').first())});$(e).find('div.selector.tree').each(function(){var e=this;$(this).orTree({type:'project',selectable:$(e).attr('data-types').split(','),id:$(e).attr('data-init-folderid'),onSelect:function(i,t,a){var s=$(e).parent();$(s).find('input[type=text]').attr('value',i);$(s).find('input[type=hidden]').attr('value',a)}})});$('div.content li.object').draggable({cursor:'move',revert:'invalid'});$('div.content li.object > div.entry[data-type=\'folder\']').droppable({accept:'li.object',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var t=i.draggable,a=$(this).parent();startDialog($(this).text(),$(t).attr('data-type'),'copy',$(a).attr('data-id'),{'action':$(t).attr('data-type'),'subaction':'copy','id':$(t).attr('data-id'),'targetFolderId':$(a).attr('data-id')});$(t).detach().css({top:0,left:0}).appendTo(a).click()}});$(e).find('input').change(function(){$(this).closest('div.panel').find('ul.views li.action.active').addClass('dirty')})};function registerHeaderEvents(){$('body').click(function(){$('.toolbar-icon.menu').parent().removeClass('open')});$('#header .toolbar-icon.menu').click(function(e){e.stopPropagation();$(this).parent().toggleClass('open')});$('#header .toolbar-icon.menu').mouseover(function(){$(this).parent().find('.toolbar-icon.menu').removeClass('open');$(this).addClass('open')});$('#header').trigger('orHeaderLoaded');$('div.search input').blur(function(){$('div.search input div.dropdown').fadeOut()});$('div.search input').orHint();$('div.search input').orSearch({dropdown:'div.search div.dropdown'})};function fullscreen(e){$(e).closest('div.panel').fadeOut('fast',function(){$(this).toggleClass('fullscreen').fadeIn('fast')})};function loadTree(){if($('div#panel-tree li.action').data('action')=='tree'){$('div#panel-tree div.content > div.sheet.action-tree.method-tree').html('&nbsp;');$('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree({type:'root',id:0,onSelect:function(e,i,t,a){openNewAction(e,i,t,a)}});$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click();$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click()}};function submitUrl(e,i){postUrl(i,e);refreshAllRefreshables()};function postUrl(e,i){e+='&output=json';$.ajax({'type':'POST',url:e,data:{},success:function(e,t,a){$('div.panel div.status div.loader').html('&nbsp;');doResponse(e,t,i)}})};function startView(e,i){var t=$('#panel-content').find('li.active').data('action'),a=$('#panel-content').find('li.active').data('id');loadView($(e).closest('div.panel').find('div.content'),t,i,a)};function startDialog(e,i,t,a,s){if(i==null||i.length==0)i=$('#panel-content').find('li.active').data('action');if(a==null||a.length==0)a=$('#panel-content').find('li.active').data('id');$('div#filler').fadeTo(500,0.5);$('div#dialog').html('<div class="header"><ul class="views"><li class="action active"><img class="icon" title="" src="./themes/default/images/icon/'+t+'.png" /><div class="tabname" style="width:100px;">'+e+'</div></li></ul></div><div class="content" />');$('div#dialog').data('id',a);$('div#dialog').show();loadView($('div#dialog div.content'),i,t,a,s)};function modalView(e,i){var t=$(e).closest('div.panel').find('li.active').attr('data-action'),a=$(e).closest('div.panel').find('li.active').attr('data-method'),s=$(e).closest('div.panel').find('li.active').attr('data-id');$(e).closest('div.content').modal({'overlayClose':'true','xxxonClose':function(){alert('close)')}});loadView($(e).closest('div.content'),t,a,s)};function setTitle(e){if(e)$('head > title').text(e+' - '+$('head > title').data('default'));else $('head > title').text($('head > title').data('default'))};function openNewAction(e,i,t,a){setTitle(e);$('ul#history li.active').removeClass('active');if($('ul#history li.'+i+'.id'+t).length>0){$('ul#history li.'+i+'.id'+t).addClass('active')} else{$('ul#history').append('<li class="action active '+i+' id'+t+'"><img src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+i+'.png" title="" />'+e+'</li>');$('ul#history li.active').click(function(){$('ul#history li.active').removeClass('active');$(this).addClass('active');setNewAction(i,t,a)})};$('div#panel-content > div.header > ul.views li.active').removeClass('active');if($('div#panel-content > div.header > ul.views > li.'+i+'.id'+t).length>0){$('div#panel-content > div.header > ul.views > li.'+i+'.id'+t).addClass('active')} -else{$('div#panel-content > div.header > ul.views > li.active').removeClass('active');var s=7;if($('div#panel-content > div.header > ul.views > li.action').length>=s)$('div#panel-content > div.header > ul.views > li.action').first().remove();$('div#panel-content > div.header > ul.views').append('<li class="action active '+i+' id'+t+'" title="'+e+'" data-action="'+i+'" data-id="'+t+'" data-method="'+DEFAULT_CONTENT_ACTION+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+i+'.png" title="" /><div class="tabname">'+e+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>');resizeTabs($('div#contentbar'),!0);$('div#panel-content > div.header > ul.views').scrollLeft(9999);$('div#panel-content > div.header > ul.views img.close').click(function(){setTitle('');var i=$(this).closest('li.action').data('action'),t=$(this).closest('li.action').data('id');$('#workbench div.content > div.sheet.action-'+i+'.id-'+t).remove();if($(this).closest('li.action').hasClass('active')){$('#workbench div.refreshable div.content').html('');var e=$(this).closest('ul.views');$(this).parent().remove();$(e).find('li.action').last().click()} -else{$(this).parent().remove()};resizeTabs($('div#panel-content'),!0)});$('div#panel-content > div.header > ul.views > li.active').click(function(){$('div#panel-content > div.header > ul.views li.active').removeClass('active');$(this).addClass('active');setTitle($(this).children('div.tabname').text());setNewAction(i,t,a)});resizeTabs($('div#panel-content '))};setNewAction(i,t,a)};function filterMenus(e){$('div.clickable').addClass('active');$('div.clickable.filtered').removeClass('active').addClass('inactive');$('div.clickable.filtered.on-action-'+e).addClass('active').removeClass('inactive')};function setNewAction(e,i,t){filterMenus(e);$('#workbench ul.views > li.action.dependent').attr('data-action',e).attr('data-id',i).attr('data-extra',JSON.stringify(t));refreshAllRefreshables()};function setNewId(e){$('#workbench div.refreshable').attr('data-id',e);refreshAllRefreshables()};function notifyBrowser(e){if(!('Notification' in window)){return} +else{$('div#panel-content > div.header > ul.views > li.active').removeClass('active');var n=7;if($('div#panel-content > div.header > ul.views > li.action').length>=n)$('div#panel-content > div.header > ul.views > li.action').first().remove();var s=$('<li class="action active '+i+' id'+t+'" title="'+e+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+i+'.png" title="" /><div class="tabname">'+e+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>');$('div#panel-content > div.header > ul.views').append(s);s.data('action',i);s.data('id',t);s.data('extra',a);s.data('method',DEFAULT_CONTENT_ACTION);resizeTabs($('div#contentbar'),!0);$('div#panel-content > div.header > ul.views').scrollLeft(9999);$('div#panel-content > div.header > ul.views img.close').click(function(){setTitle('');var i=$(this).closest('li.action').data('action'),t=$(this).closest('li.action').data('id');$('#workbench div.content > div.sheet.action-'+i+'.id-'+t).remove();if($(this).closest('li.action').hasClass('active')){$('#workbench div.refreshable div.content').html('');var e=$(this).closest('ul.views');$(this).parent().remove();$(e).find('li.action').last().click()} +else{$(this).parent().remove()};resizeTabs($('div#panel-content'),!0)});$('div#panel-content > div.header > ul.views > li.active').click(function(){$('div#panel-content > div.header > ul.views li.active').removeClass('active');$(this).addClass('active');setTitle($(this).children('div.tabname').text());setNewAction(i,t,a)});resizeTabs($('div#panel-content '))};setNewAction(i,t,a)};function filterMenus(e){$('div.clickable').addClass('active');$('div.clickable.filtered').removeClass('active').addClass('inactive');$('div.clickable.filtered.on-action-'+e).addClass('active').removeClass('inactive')};function setNewAction(e,i,t){filterMenus(e);$('#workbench ul.views > li.action.dependent').data('action',e).data('id',i).data('extra',t);refreshAllRefreshables()};function setNewId(e){$('#workbench div.refreshable').attr('data-id',e);refreshAllRefreshables()};function notifyBrowser(e){if(!('Notification' in window)){return} else if(Notification.permission==='granted'){var i=new Notification(e)} else if(Notification.permission!=='denied'){Notification.requestPermission(function(i){if(i==='granted'){var t=new Notification(e)}})}};function setUserStyle(e){var i=$('html'),t=i.attr('class').split(/\s+/);$.each(t,function(e,t){if(t.startsWith('theme-')){i.removeClass(t)}});i.addClass('theme-'+e.toLowerCase())};function insert(e,i,t){var a=document.forms[0].elements[e];a.focus();if(typeof document.selection!='undefined'){var d=document.selection.createRange(),s=d.text;d.text=i+s+t;d=document.selection.createRange();if(s.length==0){d.move('character',-t.length)} else{d.moveStart('character',i.length+s.length+t.length)};d.select()} else if(typeof a.selectionStart!='undefined'){var l=a.selectionStart,o=a.selectionEnd,s=a.value.substring(l,o);a.value=a.value.substr(0,l)+i+s+t+a.value.substr(o);var n;if(s.length==0){n=l+i.length} else{n=l+i.length+s.length+t.length};a.selectionStart=n;a.selectionEnd=n} -else{n=a.value.length;var s=prompt('Text');a.value=a.value.substr(0,n)+i+s+t+a.value.substr(n)}};function loadSubaction(e,i,t,a){alert('nobody should call loadSubaction()');var n={skin:'v2',baseHref:OR_THEMES_EXT_DIR+'../editor/editor/',customConfig:'config-openrat.js',filebrowserUploadUrl:'./dispatcher.php?action=filebrowser&subaction=directupload&name=upload',filebrowserBrowseUrl:'./dispatcher.php?action=filebrowser&subaction=browse'};var s=$(e).parent().parent().parent('div.panel').children('div.content').first();$(s).load(createUrl(i,t,a)+' div.content',null,function(){var e=CKEDITOR.instances[$('textarea.editor').attr('name')];if(e)e.destroy();CKEDITOR.replace('text',{customConfig:'config-openrat.js'})});$(e).parent().parent().find('.active').removeClass('active');$(e).parent().addClass('active')};function createUrl(e,i,t,s){var a='./';if(typeof s==='string'){a+='?action='+e+'&subaction='+i+'&id='+t;jQuery.each(jQuery.parseJSON(s),function(e,i){a=a+'&'+e+'='+i})} -else if(typeof s==='object'){a+='?0=0';jQuery.each(s,function(e,i){a=a+'&'+i.name+'='+i.value})} -else{a+='?action='+e+'&subaction='+i+'&id='+t};console.log('URL='+a);return a};function resizeWorkbenchContainer(e){var t=e.width(),a=e.height(),s=e.children('div.resizable').data('size-factor');if(!s)s=0.3;var n=e.hasClass('axle-x');if(n){var i=Math.floor(t*s);e.find('div.panel.resizable').css('width',''+i+'px');e.find('div.panel.resizable > div.content').css('height',''+(a-26)+'px');e.find('div.panel.autosize ').css('width',''+(t-i-9)+'px');e.find('div.panel.autosize > div.content').css('height',''+(a-26)+'px');e.children('div.resizable').css('width',''+i+'px');e.children('div.resizable').css('height',''+a+'px');e.children('div.autosize').css('width',''+(t-i-9)+'px');e.children('div.autosize').css('height',''+a+'px');e.children('div.divider').css('height',''+a+'px')} +else{n=a.value.length;var s=prompt('Text');a.value=a.value.substr(0,n)+i+s+t+a.value.substr(n)}};function loadSubaction(e,i,t,a){alert('nobody should call loadSubaction()');var n={skin:'v2',baseHref:OR_THEMES_EXT_DIR+'../editor/editor/',customConfig:'config-openrat.js',filebrowserUploadUrl:'./dispatcher.php?action=filebrowser&subaction=directupload&name=upload',filebrowserBrowseUrl:'./dispatcher.php?action=filebrowser&subaction=browse'};var s=$(e).parent().parent().parent('div.panel').children('div.content').first();$(s).load(createUrl(i,t,a)+' div.content',null,function(){var e=CKEDITOR.instances[$('textarea.editor').attr('name')];if(e)e.destroy();CKEDITOR.replace('text',{customConfig:'config-openrat.js'})});$(e).parent().parent().find('.active').removeClass('active');$(e).parent().addClass('active')};function createUrl(e,i,t,a){var s='./';if(typeof a==='string'){s+='?action='+e+'&subaction='+i+'&id='+t;jQuery.each(jQuery.parseJSON(a),function(e,i){s=s+'&'+e+'='+i})} +else if(typeof a==='object'){s+='?action='+e+'&subaction='+i+'&id='+t;jQuery.each(a,function(e,i){s=s+'&'+e+'='+value})} +else{s+='?action='+e+'&subaction='+i+'&id='+t};console.log('URL='+s);return s};function resizeWorkbenchContainer(e){var t=e.width(),a=e.height(),s=e.children('div.resizable').data('size-factor');if(!s)s=0.3;var n=e.hasClass('axle-x');if(n){var i=Math.floor(t*s);e.find('div.panel.resizable').css('width',''+i+'px');e.find('div.panel.resizable > div.content').css('height',''+(a-26)+'px');e.find('div.panel.autosize ').css('width',''+(t-i-9)+'px');e.find('div.panel.autosize > div.content').css('height',''+(a-26)+'px');e.children('div.resizable').css('width',''+i+'px');e.children('div.resizable').css('height',''+a+'px');e.children('div.autosize').css('width',''+(t-i-9)+'px');e.children('div.autosize').css('height',''+a+'px');e.children('div.divider').css('height',''+a+'px')} else{var i=Math.floor(a*s);e.find('div.panel.resizable ').css('width',''+t+'px');e.find('div.panel.resizable > div.content').css('height',''+(i-26)+'px');e.find('div.panel.autosize ').css('width',''+t+'px');e.find('div.panel.autosize > div.content').css('height',''+(a-i-26)+'px');e.children('div.resizable').css('width',''+t+'px');e.children('div.resizable').css('height',''+i+'px');e.children('div.autosize').css('width',''+t+'px');e.children('div.autosize').css('height',''+(a-i-5)+'px');e.children('div.divider').css('width',''+t+'px')};e.children('div.panel').each(function(){resizeTabs($(this))});$(e).children('div.container').each(function(){resizeWorkbenchContainer($(this))})};function resizeWorkbench(){var i=$(window).width(),t=$(window).height(),a=40,e=$('#workbench > div.container');e.css('width',''+(i-6)+'px');e.css('height',''+(t-a-6)+'px');resizeWorkbenchContainer(e)};function resizeTabs(e){var t=$(e).find('div.header li.action').length,i=Math.floor((($(e).width()-18)/t)-39);if($(e).is('#panel-content'))i-=24;i=Math.min(90,Math.max(5,i));$(e).find('li.action div.tabname').width(i)};function help(e,i,t){var a=$(e).closest('div.panel').find('li.action.active').attr('data-action'),s=$(e).closest('div.panel').find('li.action.active').attr('data-method');window.open(i+a+'/'+s+t,'OpenRat_Help','location=no,menubar=no,scrollbars=yes,toolbar=no,resizable=yes')};function notify(e,i){var t=$('<div class="notice '+e+'"><div class="text">'+i+'</div></div>');$('#noticebar').prepend(t);notifyBrowser(i);$(t).fadeIn().click(function(){$(this).fadeOut('fast',function(){$(this).remove()})})}; \ No newline at end of file diff --git a/modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.js b/modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.js @@ -8,13 +8,35 @@ jQuery.fn.orTree = function( options ) 'onSelect': function(){}, 'type':'root', 'id':0, + 'extraId':Array(), 'selectable':Array() }, options); $(this).each(function(idxx,treeEl) { $(treeEl).closest('div.content').addClass('loader'); - $.getJSON('./api/?action=tree&subaction=loadBranch&id='+settings.id+'&type='+settings.type+'&output=json', function(json) { + + var loadBranchUrl = './api/?action=tree&subaction=loadBranch&id='+settings.id+'&type='+settings.type+'&output=json'; + + // Extra-Id ergänzen. + if ( typeof settings.extraId === 'string') + { + jQuery.each(jQuery.parseJSON(settings.extraId), function(name, value) { + loadBranchUrl = loadBranchUrl + '&' + name + '=' + value; + }); + } + else if ( typeof settings.extraId === 'object') + { + jQuery.each(settings.extraId, function(name, field) { + loadBranchUrl = loadBranchUrl + '&' + name + '=' + field; + }); + } + else + { + ; + } + + $.getJSON(loadBranchUrl, function(json) { $(treeEl).append('<ul class="tree"/>'); var ul = $(treeEl).children('ul').first(); var output = json['output']; @@ -23,13 +45,18 @@ jQuery.fn.orTree = function( options ) if ( !line.action || line.action=='folder' || settings.selectable.length==0 || settings.selectable[0]=='' || jQuery.inArray(line.action, settings.selectable)!=-1 ) { //var img = (line.url!==undefined?'tree_plus':'tree_none'); - $(ul).append( '<li class="object" data-id="'+line.internalId+'" data-type="'+line.type+'"><div class="tree">&nbsp;</div><div class="entry" data-id="'+line.internalId+'" data-type="'+line.type+'" title="'+ line.description + '"><img src="modules/cms-ui/themes/default/images/icon_'+line['icon']+'.png" />'+ line.text + '</div></li>' ); - var new_li = $(ul).children('li').last(); + var new_li = $('<li class="object" data-id="'+line.internalId+'" data-type="'+line.type+'"><div class="tree">&nbsp;</div><div class="entry" data-extra="'+JSON.stringify(line.extraId).replace(/"/g, "'")+'" data-id="'+line.internalId+'" data-type="'+line.type+'" title="'+ line.description + '"><img src="modules/cms-ui/themes/default/images/icon_'+line['icon']+'.png" />'+ line.text + '</div></li>'); + $(ul).append( new_li ); + //var new_li = $(ul).children('li').last(); //$(new_li).children('div').unbind('click'); + + // Wenn ein Type vorhanden ist, dann kann man den Zweig öffnen if ( line.type ) { $(new_li).children('div.tree').addClass('closed'); - $(new_li).children('div.tree').click( function() { $(this).parent().orTree( {type:line.type,id:line.internalId,onSelect:settings.onSelect,selectable:settings.selectable} );} ); // Zweig öffnen + + // Klick-Funktion zum Öffnen des Zweiges. + $(new_li).children('div.tree').click( function() { $(this).parent().orTree( {type:line.type,id:line.internalId,extraId:line.extraId,onSelect:settings.onSelect,selectable:settings.selectable} );} ); // Zweig öffnen } if ( line.action && ( settings.selectable.length==0 || settings.selectable[0]=='' || jQuery.inArray(line.action, settings.selectable)!=-1 )) @@ -48,7 +75,7 @@ jQuery.fn.orTree = function( options ) $(this).closest('div.content').find('div.entry').removeClass('selected'); $(this).addClass('selected'); - settings.onSelect( $(this).text(), line.action, line.id ); + settings.onSelect( $(this).text(), line.action, line.id, line.extraId ); }); // Drag and drop für die Baum-Inhalte. diff --git a/modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.min.js b/modules/cms-ui/themes/default/script/plugin/jquery-plugin-orTree.min.js @@ -1 +1,3 @@ -;jQuery.fn.orTree=function(t){var e=$.extend({'onSelect':function(){},'type':'root','id':0,'selectable':Array()},t);$(this).each(function(n,t){$(t).closest('div.content').addClass('loader');$.getJSON('./api/?action=tree&subaction=loadBranch&id='+e.id+'&type='+e.type+'&output=json',function(i){$(t).append('<ul class="tree"/>');var n=$(t).children('ul').first(),l=i['output'];$.each(l['branch'],function(i,t){if(!t.action||t.action=='folder'||e.selectable.length==0||e.selectable[0]==''||jQuery.inArray(t.action,e.selectable)!=-1){$(n).append('<li class="object" data-id="'+t.internalId+'" data-type="'+t.type+'"><div class="tree">&nbsp;</div><div class="entry" data-id="'+t.internalId+'" data-type="'+t.type+'" title="'+t.description+'"><img src="modules/cms-ui/themes/default/images/icon_'+t['icon']+'.png" />'+t.text+'</div></li>');var l=$(n).children('li').last();if(t.type){$(l).children('div.tree').addClass('closed');$(l).children('div.tree').click(function(){$(this).parent().orTree({type:t.type,id:t.internalId,onSelect:e.onSelect,selectable:e.selectable})})};if(t.action&&(e.selectable.length==0||e.selectable[0]==''||jQuery.inArray(t.action,e.selectable)!=-1)){$(l).children('div.entry').click(function(){$(this).closest('div.content').find('div.entry').removeClass('selected');$(this).addClass('selected');e.onSelect($(this).text(),t.action,t.id)})};if($(l).parents('ul.tree').length<=1){$(l).children('div.tree').click()}}});$(n).slideDown('fast')}).fail(function(){}).always(function(){$(t).closest('div.content').removeClass('loader')});$(t).children('div.tree').unbind('click');$(t).children('div.tree').removeClass('closed').addClass('open');$(t).children('div.tree').click(function(t){i($(t.target).parent(),e.type,e.id)})});function i(t,i,n){$(t).children('ul').slideUp('fast',function(){$(t).children('ul').remove();$(t).children('div.tree').unbind('click');$(t).children('div.tree').removeClass('open').addClass('closed');$(t).children('div.tree').click(function(){$(this).parent().orTree({type:i,id:n,onSelect:e.onSelect,selectable:e.selectable})})})}};- \ No newline at end of file +;jQuery.fn.orTree=function(t){var e=$.extend({'onSelect':function(){},'type':'root','id':0,'extraId':Array(),'selectable':Array()},t);$(this).each(function(n,t){$(t).closest('div.content').addClass('loader');var c='./api/?action=tree&subaction=loadBranch&id='+e.id+'&type='+e.type+'&output=json';if(typeof e.extraId==='string'){jQuery.each(jQuery.parseJSON(e.extraId),function(e,t){c=c+'&'+e+'='+t})} +else if(typeof e.extraId==='object'){jQuery.each(e.extraId,function(e,t){c=c+'&'+e+'='+t})} +else{};$.getJSON(c,function(i){$(t).append('<ul class="tree"/>');var n=$(t).children('ul').first(),c=i['output'];$.each(c['branch'],function(i,t){if(!t.action||t.action=='folder'||e.selectable.length==0||e.selectable[0]==''||jQuery.inArray(t.action,e.selectable)!=-1){var c=$('<li class="object" data-id="'+t.internalId+'" data-type="'+t.type+'"><div class="tree">&nbsp;</div><div class="entry" data-extra="'+JSON.stringify(t.extraId).replace(/"/g,'\'')+'" data-id="'+t.internalId+'" data-type="'+t.type+'" title="'+t.description+'"><img src="modules/cms-ui/themes/default/images/icon_'+t['icon']+'.png" />'+t.text+'</div></li>');$(n).append(c);if(t.type){$(c).children('div.tree').addClass('closed');$(c).children('div.tree').click(function(){$(this).parent().orTree({type:t.type,id:t.internalId,extraId:t.extraId,onSelect:e.onSelect,selectable:e.selectable})})};if(t.action&&(e.selectable.length==0||e.selectable[0]==''||jQuery.inArray(t.action,e.selectable)!=-1)){$(c).children('div.entry').click(function(){$(this).closest('div.content').find('div.entry').removeClass('selected');$(this).addClass('selected');e.onSelect($(this).text(),t.action,t.id,t.extraId)})};if($(c).parents('ul.tree').length<=1){$(c).children('div.tree').click()}}});$(n).slideDown('fast')}).fail(function(){}).always(function(){$(t).closest('div.content').removeClass('loader')});$(t).children('div.tree').unbind('click');$(t).children('div.tree').removeClass('closed').addClass('open');$(t).children('div.tree').click(function(t){i($(t.target).parent(),e.type,e.id)})});function i(t,i,n){$(t).children('ul').slideUp('fast',function(){$(t).children('ul').remove();$(t).children('div.tree').unbind('click');$(t).children('div.tree').removeClass('open').addClass('closed');$(t).children('div.tree').click(function(){$(this).parent().orTree({type:i,id:n,onSelect:e.onSelect,selectable:e.selectable})})})}};+ \ No newline at end of file diff --git a/modules/util/AdministrationTree.class.php b/modules/util/AdministrationTree.class.php @@ -43,8 +43,10 @@ class AdministrationTree extends AbstractTree */ var $elements; var $confCache = array(); - - function root() + + private $userIsProjectAdmin; + + function root() { if ( !$this->userIsAdmin ) throw new \SecurityException('Administration-Tree is only visible for admins.'); @@ -179,7 +181,8 @@ class AdministrationTree extends AbstractTree $folder = new Folder( $project->getRootObjectId() ); $folder->load(); - + $defaultLanguageId = $project->getDefaultLanguageId(); + // Ermitteln, ob der Benutzer Projektadministrator ist // Projektadministratoren haben das Recht, im Root-Ordner die Eigenschaften zu aendern. if ( $folder->hasRight( ACL_PROP ) ) @@ -192,7 +195,8 @@ class AdministrationTree extends AbstractTree // $treeElement->text = $folder->name; $treeElement->text = lang('FOLDER_ROOT'); $treeElement->description = lang('FOLDER_ROOT_DESC'); - $treeElement->icon = 'folder'; + $treeElement->extraId['languageid'] = $defaultLanguageId; + $treeElement->icon = 'folder'; $treeElement->action = 'folder'; // $treeElement->url = Html::url( 'folder','',$folder->objectid,array(REQ_PARAM_TARGET=>'content') ); $treeElement->target = 'content'; @@ -607,6 +611,8 @@ class AdministrationTree extends AbstractTree function page( $id ) { $page = new Page( $id ); + $page->languageid = $_REQUEST['languageid']; + $page->load(); $template = new Template( $page->templateid ); @@ -628,6 +634,8 @@ class AdministrationTree extends AbstractTree REQ_PARAM_TARGETSUBACTION=>'edit',REQ_PARAM_TARGET=>'content')); $treeElement->action = 'pageelement'; $treeElement->icon = 'el_'.$element->type; + $treeElement->extraId = array('languageid'=>$page->languageid); + $treeElement->description = lang('EL_'.$element->type); if ( $element->desc != '' ) @@ -642,6 +650,7 @@ class AdministrationTree extends AbstractTree $value = new Value(); $value->pageid = $page->pageid; $value->element = $element; + $value->languageid = $page->languageid; $value->load(); $treeElement->internalId = $value->valueid; } @@ -696,38 +705,36 @@ class AdministrationTree extends AbstractTree $link = new Link( $id ); $link->load(); - if ( $link->isLinkToObject ) - { - $o = new Object( $link->linkedObjectId ); - $o->load(); + $o = new Object( $link->linkedObjectId ); + $o->load(); - $treeElement = new TreeElement(); - $treeElement->id = $o->objectid; - $treeElement->internalId = $o->objectid; - $treeElement->target = 'content'; - $treeElement->text = $o->name; - $treeElement->description= lang( 'GLOBAL_'.$o->getType() ).' '.$id; + $treeElement = new TreeElement(); + $treeElement->id = $o->objectid; + $treeElement->internalId = $o->objectid; + $treeElement->target = 'content'; + $treeElement->text = $o->name; + $treeElement->description= lang( 'GLOBAL_'.$o->getType() ).' '.$id; - if ( $o->desc != '' ) - $treeElement->description .= ': '.$o->desc; - else - $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE'); + if ( $o->desc != '' ) + $treeElement->description .= ': '.$o->desc; + else + $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE'); - $treeElement->url = Html::url($o->getType(),'',$o->objectid,array(REQ_PARAM_TARGET=>'content') ); - $treeElement->action = $o->getType(); - $treeElement->icon = $o->getType(); + $treeElement->url = Html::url($o->getType(),'',$o->objectid,array(REQ_PARAM_TARGET=>'content') ); + $treeElement->action = $o->getType(); + $treeElement->icon = $o->getType(); + $treeElement->extraId = array('languageid'=>$_REQUEST['languageid']); - // Besonderheiten fuer bestimmte Objekttypen + // Besonderheiten fuer bestimmte Objekttypen - if ( $o->isPage ) - { - // Nur wenn die Seite beschreibbar ist, werden die - // Elemente im Baum angezeigt - if ( $o->hasRight( ACL_WRITE ) ) - $treeElement->type='pageelements'; - } - $this->addTreeElement( $treeElement ); + if ( $o->isPage ) + { + // Nur wenn die Seite beschreibbar ist, werden die + // Elemente im Baum angezeigt + if ( $o->hasRight( ACL_WRITE ) ) + $treeElement->type='pageelements'; } + $this->addTreeElement( $treeElement ); } @@ -743,6 +750,7 @@ class AdministrationTree extends AbstractTree $f = new Folder( $id ); $t = time(); + $f->languageid = $_REQUEST['languageid']; foreach( $f->getObjects() as $o ) { @@ -753,6 +761,7 @@ class AdministrationTree extends AbstractTree $treeElement = new TreeElement(); $treeElement->id = $o->objectid; $treeElement->internalId = $o->objectid; + $treeElement->extraId = array('languageid'=>$f->languageid); $treeElement->target = 'content'; $treeElement->text = $o->name; $treeElement->description= lang( 'GLOBAL_'.$o->getType() ).' '.$o->objectid;