"sectionIndex" only returns headlines in the first content element - typo3

if i set "sectionIndex = true", in the menu only the headlines of the first backend element are shown. But i need all headlines of this page.
This is the code of the dropdownmenu:
2 = TMENU
2 {
wrap = <ul class="dropdown-menu" role="menu">|</ul>
noBlur = 1
expAll = 0
sectionIndex = true
NO = 1
NO.allWrap >
NO.wrapItemAndSub = <li>|</li>
CUR = 1
CUR < .NO
CUR.wrapItemAndSub = <li class="active current">|</li>
ACT = 1
ACT < .NO
ACT.wrapItemAndSub = <li class="active">|</li>
IFUSB < .1.IFSUB
CURIFSUB < .1.CURIFSUB
ACTIFSUB < .1.ACTIFSUB
SPC = 1
SPC.doNotLinkIt = 1
SPC.doNotShowLink = 1
SPC.allWrap = <li class="divider"></li>
}
can anybody help me?
Thanks!

If any have the same problem:
i have found the answer. You have to add this column:
sectionIndex.useColPos = -1

Related

Sorting records based on multiple columns

I have a dealers tables with following columns
dealer_name is_iso is_gst is_approved
& need to display dealers records in following order
dealers with all columns set should appear first,
then dealers with iso & gst,
then with iso & verified,
then with gst & verified,
then with iso,
then with gst
data in dealers table is like
dealer_name is_iso is_gst Is_approved
A 1 1 1
B 1 0 1
C 1 0 0
D 0 1 0
E 1 1 0
F 0 1 1
G 1 0 0
G 1 1 1
Currently, I am using CASE WHEN ( answer below ) to achieve this & need to know if there is better way?
SELECT
*,
CASE
WHEN (typeA = 1 and typeB = 1 and isISO = 1) THEN 6
WHEN (typeA = 1 and typeB = 1 and isISO = 0) THEN 5
WHEN (typeA = 1 and typeB = 0 and isISO = 1) THEN 4
WHEN (typeA = 0 and typeB = 1 and isISO = 1) THEN 3
WHEN (typeA = 1 and typeB = 0 and isISO = 0) THEN 2
WHEN (typeA = 0 and typeB = 1 and isISO = 0) THEN 1
ELSE 0
END as dealer_order
FROM
dealers
ORDER BY
dealer_order desc

Extended Kalman Filter prediction update time

enter code hereI have implemented a Kalman filter for tracking moving objects using radar data. I have designed and generated data using the Matlab ADAS toolbox. After generating I have fed the data to the code which I have written in Matlab ( Filter - EKF, Gating - Euclidean Distance, Data Association- Probabilistic data association, initialization of tracks based on distance). So, now after executing, I have noticed that the prediction is not updating with respect to the detections. Its a bit slow compared to the detection inputs. Here an image below. So, the yellow one is the Kalman prediction and the red are the detections. So, because of late predictions and detections getting fast, the gating is coming out to be with zero detections to input to the PDA block. Due to this, the prediction is throwing NAN( Not a Number). And in order to solve this, the filter should fastly predict so we get enough detections for future predictions.
So, my question is how to do the predictions faulty associated with the detections.
This is the code
This is the predict function
function [TrackList, Evaluate] = predict( Evaluate,scans,TrackList,Par,associated_data,Track_no)
persistent prev
if (~isempty(TrackList{Track_no}))
if(scans>1)
TrackList{Track_no}.X = (TrackList{Track_no}.State_trans_mtx_F)*(TrackList{Track_no}.X);
else
prev = 0;
end
Evaluate.X(scans,:) = TrackList{Track_no}.X;
TrackList{Track_no}.range_A = sqrt((TrackList{Track_no}.X(1)^2)+(TrackList{Track_no}.X(4)^2));
TrackList{Track_no}.bearing_A = atan2(TrackList{Track_no}.X(4),TrackList{Track_no}.X(1));
TrackList{Track_no}.yhat = [TrackList{Track_no}.range_A TrackList{Track_no}.X(2) TrackList{Track_no}.X(3) TrackList{Track_no}.bearing_A TrackList{Track_no}.X(5) TrackList{Track_no}.X(6)];
Evaluate.Yhat(scans,:) = TrackList{Track_no}.yhat;
TrackList{Track_no}.meas_trans_mtx_H = [cos(TrackList{Track_no}.bearing_A) 0 0 sin(TrackList{Track_no}.bearing_A) 0 0 ;
0 1 0 0 0 0;
0 0 1 0 0 0;
-sin(TrackList{Track_no}.bearing_A)/TrackList{Track_no}.range_A 0 0 cos(TrackList{Track_no}.bearing_A)/TrackList{Track_no}.range_A 0 0;
0 0 0 0 1 0;
0 0 0 0 0 1];
Evaluate.meas_trans_mtx_H(scans).m = TrackList{Track_no}.meas_trans_mtx_H;
TrackList{Track_no}.Corr_mtx_error_P = (TrackList{Track_no}.State_trans_mtx_F)*(TrackList{Track_no}.Corr_mtx_error_P)*((TrackList{Track_no}.State_trans_mtx_F)') + Par.process_cov_Q;
Evaluate.Corr_mtx_error_P(scans).m = TrackList{Track_no}.Corr_mtx_error_P ;
TrackList{Track_no}.innovation_cov_S = (TrackList{Track_no}.meas_trans_mtx_H)*(TrackList{Track_no}.Corr_mtx_error_P)*(TrackList{Track_no}.meas_trans_mtx_H') + (TrackList{Track_no}.meas_cov_R);
Evaluate.innovation_cov_S(scans).m = TrackList{Track_no}.innovation_cov_S;
associated_meas.index = 1;
associated_meas.meas = [];
for k = 1:size(associated_data,1)
[associated_meas,dis] = gating(associated_meas,associated_data(k,:),TrackList{Track_no}.yhat,Par.gateLevel,TrackList{Track_no}.innovation_cov_S);
Evaluate.dis(k + prev) = dis;
end
prev = k + prev;
Evaluate.associated_data(scans).meas = associated_meas;
TrackList{Track_no}.associated_meas.index = associated_meas.index;
TrackList{Track_no}.associated_meas.meas = associated_meas.meas;
figure(1);
polarplot(TrackList{Track_no}.yhat(4),TrackList{Track_no}.yhat(1),'o');
end
end
This is the update function
function [TrackList,Evaluate] = update(Evaluate,TrackList,Par,Track_no,scans)
% for i = 1:size(TrackList,2)
if (~isempty(TrackList{Track_no})) %#ok<*ALIGN>
TrackList{Track_no}.Kalman_gain = (TrackList{Track_no}.Corr_mtx_error_P)*(TrackList{Track_no}.meas_trans_mtx_H')/(TrackList{Track_no}.innovation_cov_S);
Evaluate.Kalman_gain(scans).m = TrackList{Track_no}.Kalman_gain ;
% PDA
[innov,TrackList] = PDA(TrackList,Track_no);
Evaluate.innov(scans).m = innov;
% Update the state and covariance estimates
TrackList{Track_no}.Kalman_gain(3,3) = 0;
TrackList{Track_no}.Kalman_gain(6,6) = 0;
TrackList{Track_no}.X = TrackList{Track_no}.X + (TrackList{Track_no}.Kalman_gain)*innov';
Evaluate.updated_X(scans,:) = TrackList{Track_no}.X;
%%
TrackList{Track_no}.Vx_save(TrackList{Track_no}.count,1) = TrackList{Track_no}.X(2);
TrackList{Track_no}.Vy_save(TrackList{Track_no}.count,1) = TrackList{Track_no}.X(5);
% calculating acceleration from velocities
if(TrackList{Track_no}.count>2)
TrackList{Track_no}.X(3) = (TrackList{Track_no}.Vx_save(TrackList{Track_no}.count,1) - TrackList{Track_no}.Vx_save(TrackList{Track_no}.count-1,1))/Par.dt;
% Ax_save(count,1) = TrackList{i}.X(3);
TrackList{Track_no}.X(6) = (TrackList{Track_no}.Vy_save(TrackList{Track_no}.count,1) - TrackList{Track_no}.Vy_save(TrackList{Track_no}.count-1,1))/Par.dt;
% Ay_save(count,1)= TrackList{i}.X(6);
end
Evaluate.updated_X_acc(scans,:) = TrackList{Track_no}.X;
TrackList{Track_no}.Kalman_out = TrackList{Track_no}.X;
TrackList{Track_no}.count = TrackList{Track_no}.count + 1;
end
end
This is the track initialization
function [TrackList] = initialize(TrackList,clustered_data,Par,cluster_id,iterate,c11,c22)
if(iterate == 1)
for id = 1:cluster_id
TrackList = add_track(TrackList,clustered_data,Par,id,c11,c22);
end
else
for track_no = 1:size(TrackList,2)
n = 0;
for id = 1:cluster_id
[t,r] = cart2pol(TrackList{track_no}.X(1),TrackList{track_no}.X(4));
dis = pdist2([r t],[clustered_data(id).meas{1,1} clustered_data(id).meas{1,4}]);
if(dis < Par.gateLevel)
TrackList{track_no}.associated_data = clustered_data(id).meas;
end
if(dis > Par.gateLevel+10)
n = n+1;
if(n == size(TrackList,2))
TrackList = add_track(TrackList,clustered_data,Par,id,c11,c22);
TrackList{track_no}.associated_data = clustered_data(id).meas;
end
end
end
end
end
end
function TrackList = add_track(TrackList,clustered_data,Par,id,c11,c22)
Track_id = size(TrackList,2) + 1;
TrackList{Track_id}.meas.range = clustered_data(id).meas{1,1};
TrackList{Track_id}.meas.bearing = clustered_data(id).meas{1,4};
TrackList{Track_id}.meas.vx = clustered_data(id).meas{1,2};
TrackList{Track_id}.meas.vy = clustered_data(id).meas{1,5};
angle = clustered_data(id).meas{1,4};
range = clustered_data(id).meas{1,1};
% TrackList{Track_id}.meas_cov_R = [(Par.meas_std_range)^2*angle 0*(Par.meas_std_dis)*(Par.meas_std_vel) 0*(Par.meas_std_dis)*(Par.meas_std_acc) 0 0 0;
% 0*(Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 (Par.meas_std_vel)*(Par.meas_std_acc)*0 0 0 0;
% 0*(Par.meas_std_dis)*(Par.meas_std_acc) 0*(Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2 0 0 0;
% 0 0 0 (Par.meas_std_bearing)^2*angle 0*(Par.meas_std_dis)*(Par.meas_std_vel) 0*(Par.meas_std_dis)*(Par.meas_std_acc);
% 0 0 0 0*(Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 0*(Par.meas_std_vel)*(Par.meas_std_acc)
% 0 0 0 0*(Par.meas_std_dis)*(Par.meas_std_acc) 0*(Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2];
Par.meas_std_dis_x = Par.meas_std_range*(cos(angle)^2) + (range^2)*(sin(angle)^2)*Par.meas_std_bearing;
Par.meas_std_dis_y = Par.meas_std_range*(sin(angle)^2) + (range^2)*(cos(angle)^2)*Par.meas_std_bearing;
TrackList{Track_id}.meas_cov_R = [Par.meas_std_dis_x 0*(Par.meas_std_dis)*(Par.meas_std_vel) 0*(Par.meas_std_dis)*(Par.meas_std_acc) 0 0 0;
0*(Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 (Par.meas_std_vel)*(Par.meas_std_acc)*0 0 0 0;
0*(Par.meas_std_dis)*(Par.meas_std_acc) 0*(Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2 0 0 0;
0 0 0 Par.meas_std_dis_y 0*(Par.meas_std_dis)*(Par.meas_std_vel) 0*(Par.meas_std_dis)*(Par.meas_std_acc);
0 0 0 0*(Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 0*(Par.meas_std_vel)*(Par.meas_std_acc)
0 0 0 0*(Par.meas_std_dis)*(Par.meas_std_acc) 0*(Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2];
% TrackList{Track_id}.meas_cov_R = [(Par.meas_std_range)^2*angle (Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_dis)*(Par.meas_std_acc) 0 0 0;
% (Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 (Par.meas_std_vel)*(Par.meas_std_acc)*0 0 0 0;
% (Par.meas_std_dis)*(Par.meas_std_acc) (Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2 0 0 0;
% 0 0 0 (Par.meas_std_bearing)^2*angle (Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_dis)*(Par.meas_std_acc);
% 0 0 0 (Par.meas_std_dis)*(Par.meas_std_vel) (Par.meas_std_vel)^2 (Par.meas_std_vel)*(Par.meas_std_acc)
% 0 0 0 (Par.meas_std_dis)*(Par.meas_std_acc) (Par.meas_std_vel)*(Par.meas_std_acc) (Par.meas_std_acc)^2];
%
%TrackList{Track_id}.meas_cov_R = TrackList{Track_id}.meas_cov_R + 0.1*diag([1 0 1 1 0 1]);
TrackList{Track_id}.X = [clustered_data(id).meas{1,1}*cos(clustered_data(id).meas{1,4});clustered_data(id).meas{1,2};0;clustered_data(id).meas{1,1}*sin((clustered_data(id).meas{1,4}));clustered_data(id).meas{1,5};0];
% TrackList{Track_id}.X = [c11(id)+0.5;clustered_data(id).meas{1,2};0;c22(id)+0.5;clustered_data(id).meas{1,5};0];
TrackList{Track_id}.Corr_mtx_error_P = zeros(6,6);
TrackList{Track_id}.State_trans_mtx_F = [1 Par.dt 0.5*(Par.dt^2) 0 0 0;
0 1 Par.dt 0 0 0;
0 0 1 0 0 0;
0 0 0 1 Par.dt 0.5*(Par.dt^2);
0 0 0 0 1 Par.dt;
0 0 0 0 0 1];
TrackList{Track_id}.Vx_save = zeros(1,1);
TrackList{Track_id}.Vy_save = zeros(1,1);
TrackList{Track_id}.associated_data = clustered_data(id).meas;
TrackList{Track_id}.count = 1;
TrackList{Track_id}.death = 0;
TrackList{Track_id}.range_A = 0;
TrackList{Track_id}.bearing_A = 0;
TrackList{Track_id}.yhat = [0 0 0 0 0 0];
TrackList{Track_id}.meas_trans_mtx_H = zeros(6,6);
TrackList{Track_id}.Corr_mtx_error_P = zeros(6,6);
TrackList{Track_id}.innovation_cov_S = zeros(6,6);
TrackList{Track_id}.Kalman_gain = zeros(6,6);
TrackList{Track_id}.Vx_save = [];
TrackList{Track_id}.Vy_save = [];
TrackList{Track_id}.count = 1;
Par.process_cov_Q = [((Par.sig_ax^2)*(Par.dt^4))/4 ((Par.sig_ax^2)*(Par.dt^3))/2 ((Par.dt^2)/2)*(Par.sig_ax^2) 0 0 0;
((Par.sig_ax^2)*(Par.dt^3))/2 ((Par.sig_ax^2)*(Par.dt^2)) ((Par.sig_ax)^2)*Par.dt 0 0 0;
((Par.dt^2)/2)*(Par.sig_ax^2) ((Par.sig_ax)^2)*Par.dt (Par.sig_ax)^2 0 0 0;
0 0 0 ((Par.sig_ay^2)*(Par.dt^4))/4 ((Par.sig_ay^2)*(Par.dt^3))/2 ((Par.dt^2)/2)*(Par.sig_ay^2);
0 0 0 ((Par.sig_ay^2)*(Par.dt^3))/2 ((Par.sig_ay^2)*(Par.dt^2)) ((Par.sig_ay)^2)*Par.dt;
0 0 0 ((Par.dt^2)/2)*(Par.sig_ay^2) ((Par.sig_ay)^2)*Par.dt (Par.sig_ay)^2 ];
end
Thank You

TYPO3 Menu: Repeat parent link in first child

I want to repeat the parent of a navigation as the first child of its child.
Example:
PARENT 1
-- Parent 1
-- Child 1
-- Child 2
---- Subchild 1
---- Subchild 2
-- Child 3
PARENT 2
-- Parent 2
-- Child 1
-- Child 2
-- Child 3
As this should only be the case in one menu, hence manually adding page links is not an option.
My current TypoScript is as follows.
lib.mainmenu = HMENU
lib.mainmenu {
1 = TMENU
1.expAll = 1
1.NO.stdWrap.htmlSpecialChars = 1
1.NO.wrapItemAndSub = <li class="menuopener">|</li>
1.ACT < .NO
1.ACT = 1
1.ACT.wrapItemAndSub = <li class="menuopener active">|</li>
2 < .1
2.wrap = <ul>|</ul>
2.NO.wrapItemAndSub = <li>|</li>
2.ACT.wrapItemAndSub = <li class="active">|</li>
3 < .1
3.wrap = <ul>|</ul>
3.NO.wrapItemAndSub = <li>|</li>
3.ACT.wrapItemAndSub = <li class="active">|</li>
}
Thanks!
So I found a solution, adapted from here:
lib.mainmenu = HMENU
lib.mainmenu.entryLevel = 0
lib.mainmenu {
1 = TMENU
1 {
expAll = 1
NO {
ATagTitle.field = title
wrapItemAndSub = <li class="menuopener">|</li>
stdWrap.htmlSpecialChars = 1
accessKey = 1
}
IFSUB < .NO
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="menuopener">|</li>
linkWrap= |
ATagParams =
ATagBeforeWrap = 1
stdWrap.htmlSpecialChars = 1
}
ACTIFSUB < .IFSUB
ACTIFSUB {
wrapItemAndSub = <li class="menuopener active">|</li>
}
ACT < .NO
ACT = 1
ACT {
wrapItemAndSub = <li class="active">|</li>
}
CURIFSUB < .IFSUB
CURIFSUB = 1
CURIFSUB {
wrapItemAndSub = <li class="active">|</li>
}
}
# second level
2 = TMENU
2.stdWrap.wrap.stdWrap.cObject = COA
2.stdWrap.wrap.stdWrap.cObject {
10 = TEXT
10.typolink.parameter = {field:pid}
10.typolink.parameter.insertData = 1
10.wrap = <ul><li>|</li>
20 = TEXT
20.value = |</ul>
}
2{
expAll = 1
NO{
ATagTitle.field = title
wrapItemAndSub = <li>|</li>
}
IFSUB = 1
IFSUB{
ATagTitle.field = title
wrapItemAndSub = <li>|</li>
}
}
3 < .1
3.wrap = <ul>|</ul>
3.NO.wrapItemAndSub = <li>|</li>
3.ACT.wrapItemAndSub = <li class="active">|</li>
}

Is there a solution for integrating the tt_news AMENU into my existing HMENU?

My menu structure should be in this format
PressRelease (in the page tree)
Archive (in the page tree)
- Press releases 2012 (from the tt_news archive)
- Press releases 2011 (from the tt_news archive)
This is my HMENU
lib.sidebarmenu = COA
lib.sidebarmenu {
10 = HMENU
10 {
entryLevel = 1
1 = TMENU
1 {
expAll = 1
noBlur = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = HMENU
10 {
special = rootline
special.range = 1|1
wrap = <h2>|</h2>
1 = TMENU
1.NO.doNotLinkIt = 0
}
20 = HMENU
20 {
entryLevel = 1
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO {
ATagTitle.field = subtitle//title
ATagParams = class="sidebarNav"
stdWrap.htmlSpecialChars = 1
wrapItemAndSub = <li>|</li>
}
ACT = 1
ACT {
wrapItemAndSub = <li class="active"> | </li>
}
}
2 < .1
2.wrap = <ul id="submenu">|</ul>
3 < .2
4 < .2
}
}
wrap = <ul class="tabs"> | </ul>
NO {
}
}
}
}
This is my AMENU
[PIDinRootline = 55]
lib.newsArchiveMenu < plugin.tt_news
lib.newsArchiveMenu {
code >
code = AMENU
pid_list >
pid_list = 42,61,63
singlePid = 44
archiveTypoLink.parameter =55
catImageMode = 0
catTextMode = 0
archiveMode = year
archiveTitleCObject {
10 = TEXT
10.field = start
10.strftime =%Y
}
}
Yes, just put your tt_news menu as next element of COA object (probably just before the end of [PIDinRootline = 55] condition:
lib.sidebarmenu.30 < lib.newsArchiveMenu

Typoscript change menu parameter

I want to generate a menu which changes by a parameter "menu". All menu items have the same pid, therefore the parameter overrideId is set.
So the problem is, the active state doesn't change because I don't change the page. You can see the current script in action via innovisions.artec-berlin.de. It's the menu on the left side.
For some reason the typoscript worked fine in 4.5.2 LTS but not in 4.6.3. Any suggestions or ideas?
lib.menu_main {
# Level 1
1 = TMENU
1.noBlur = 1
1.overrideId = 95
1.expAll = 1
1.wrap = <ul id="outer">|</ul>
1.NO = 1
1.NO.additionalParams.stdWrap.override.insertData = 1
1.NO.additionalParams.stdWrap.override = &menu={field:uid}
1.NO.ATagBeforeWrap = 1
1.NO.insertData = 1
1.NO.linkWrap = <img src="fileadmin/templates/images/arrow_menu.gif" alt="Arrow" title="Arrow" />
1.NO.wrapItemAndSub.insertData = 1
1.NO.wrapItemAndSub = <li id="x1 menu_{field:uid}" class="first>|</li> |*| <li id="xx1 menu_{field:uid}">|</li> |*| <li id="xxx1 menu_{field:uid}" class="last">|</li>
1.NO.ATagTitle.field = subtitle // title
1.ACT = 1
1.ACT.additionalParams.stdWrap.override.insertData = 1
1.ACT.additionalParams.stdWrap.override = &menu={field:uid}
1.ACT.ATagBeforeWrap = 1
1.ACT.linkWrap = <img src="fileadmin/templates/images/arrow_menu.gif" alt="Arrow" title="Arrow" />
1.ACT.wrapItemAndSub.insertData = 1
1.ACT.wrapItemAndSub = <li id="x2 menu_{field:uid}" class="first_active">|</li> |*| <li id="xx2 menu_{field:uid}" class="active">|</li> |*| <li id="xxx2 menu_{field:uid}" class="last">|</li>
1.ACT.ATagTitle.field = subtitle // title
1.CUR = 1
1.CUR.additionalParams.stdWrap.override.insertData = 1
1.CUR.additionalParams.stdWrap.override = &menu={field:uid}
1.CUR.ATagBeforeWrap = 1
1.CUR.linkWrap = <img src="fileadmin/templates/images/arrow_menu.gif" alt="Arrow" title="Arrow" />
1.CUR.wrapItemAndSub.insertData = 1
1.CUR.wrapItemAndSub = <li id="x3 menu_{field:uid}" class="first_active">|</li> |*| <li id="xx3 menu_{field:uid}" class="active">|</li> |*| <li id="xxx3 menu_{field:uid}" class="last_active">|</li>
1.CUR.ATagTitle.field = subtitle // title
# Level 2
2 = TMENU
2.noBlur = 1
2.overrideId = 95
2.expAll = 1
2.wrap = <ul id="inner">|</ul>
2.NO = 1
2.NO.additionalParams.stdWrap.override.insertData = 1
2.NO.additionalParams.stdWrap.override = &menu={field:uid}
2.NO.wrapItemAndSub.insertData = 1
2.NO.wrapItemAndSub = <li id="1 menu_{field:uid}" class="first">|</li> |*| <li id="11 menu_{field:uid}">|</li> |*| <li id="111 menu_{field:uid}" class="last">|</li>
2.NO.ATagTitle.field = subtitle // title
2.ACT = 1
2.ACT.additionalParams.stdWrap.override.insertData = 1
2.ACT.additionalParams.stdWrap.override = &menu={field:uid}
2.ACT.wrapItemAndSub.insertData = 1
2.ACT.wrapItemAndSub = <li id="2 menu_{register:count_HMENU_MENUOBJ}" class="first">|</li> |*| <li id="22 menu_{field:uid}" class="active">|</li> |*| <li id="222 menu_{field:uid}" class="last">|</li>
2.ACT.ATagTitle.field = subtitle // title
2.CUR = 1
2.CUR.additionalParams.stdWrap.override.insertData = 1
2.CUR.additionalParams.stdWrap.override = &menu={field:uid}
2.CUR.wrapItemAndSub.insertData = 1
2.CUR.wrapItemAndSub = <li id="3 menu_{field:uid}" class="first">|</li> |*| <li id="33 menu_{field:uid}" class="active">|</li> |*| <li id="333 menu_{field:uid}" class="last">|</li>
2.CUR.ATagTitle.field = subtitle // title
}