parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Мне захотелось попробовать что-то новое

Mizter Egoist 02.02.2016 09:42 / 02.02.2016 10:03

Если anc = dsc, это не узел, это корневой предок, остальные являются связанными между собой родителями/детьми.
У меня получилось сделать вывод деревьев, только осталась маленькая проблема, не отображаются корневые потомки.
@createHashTree[tPages]
$result[^tPages.hash[anc][$.distinct[tables]]]

@printTreeItem[hPage;sBody]
$result[<li>$hPage.name^if(def $sBody){<ul class="list">$sBody</ul>}</li>]

@printPages[hTree;iParentID][tLevel]
^if($hTree.[$iParentID]){
	^hTree.[$iParentID].menu{
		^rem{строка ниже вызывает ошибку 'printPages' call canceled - endless recursion detected}
		^printTreeItem[$hTree.[$iParentID].fields;^if($hTree.[$hTree.[$iParentID].pID]){^printPages[$hTree;$hTree.[$iParentID].pID]}]
	}
}

@addPage[params]
$sections[^get.getPages[$.tID[1]]]
^connect[$connect_string]{
	$parent[^table::sql{
		SELECT * FROM pages p
		JOIN path t ON (p.pID = t.dsc)
		WHERE t.anc IN (^sections.menu{$sections.pID}[,])
		^rem{если убрать строку ниже, то будет ошибка 'printPages' call canceled - endless recursion detected}
		AND t.anc != t.dsc
		ORDER BY anc, lvl
	}]
	$hTree[^createHashTree[$parent]]
}
<ul class="list">^printPages[$hTree;$parent.anc]</ul>
Не знаю что прописать в ^printPages[], а именно iParentID чтобы выводились еще корневые родители, а не так как сейчас, только со 2-го уровня.