Чем сделать маленькую кнопку рядом с "Обновить дерево" в админке, которая будет переключать на "Только неопубликованные документы" и обратно на "Все документы".<td><a href="#" class="treeButton" id="Button4" onclick="top.mainMenu.reloadtree();" title="<?php echo $_lang['refresh_tree']; ?>"><?php echo $_style['refresh_tree']; ?></a></td>

<script type="text/javascript" src="assets/templates/bluegrey/dtree.js"></script>3. Код сниппета UnPubDoc:
<link rel="stylesheet" href="assets/templates/bluegrey/dtree.css" type="text/css"/>
<a class="txno" href="javascript: d.openAll();">Раскрыть</a> | <a class="txno" href="javascript: d.closeAll();">Свернуть</a>
<div class="dtree">
<script type="text/javascript">
<!--
d = new dTree(’d’);
d.add(0,-1,’ <b>Не опубликовано:</b>’);
[[UnPubDoc]]
document.write(d);
//-->
</script>
</div>
<?php
$db_q="SELECT id,pagetitle,parent,published,isfolder,createdby,createdon,deleted FROM mx_site_content order by pagetitle asc";
$result=mysql_query($db_q);
$count=mysql_num_rows($result);
$docs[0]='-';
$doc_c=0;
for ($i=0;$i<$count;$i++)
{
$id=mysql_result($result,$i,'id');
$pagetitle=mysql_result($result,$i,'pagetitle');
$parent =mysql_result($result,$i,'parent');
$published=mysql_result($result,$i,'published');
$isfolder=mysql_result($result,$i,'isfolder');
$createdby=mysql_result($result,$i,'createdby');
$createdon=mysql_result($result,$i,'createdon');
$deleted=mysql_result($result,$i,'deleted');
if (!in_array($id,$docs))
{
$ids[$doc_c]=$id;
$pagetitles[$doc_c]=$pagetitle;
$parents[$doc_c]=$parent;
$publisheds[$doc_c]=$published;
$isfolders[$doc_c]=$isfolder;
$createdbys[$doc_c]=$createdby;
$createdons[$doc_c]=$createdon;
$deleteds[$doc_c]=$deleted;
$doc_c++;
}
}
for ($i=0;$i<$doc_c;$i++) {
if ($isfolders[$i] == 1) {$q="SELECT id FROM mx_site_content WHERE parent='$ids[$i]' and published=0"; $res=mysql_query($q); $fcd=mysql_num_rows($res);}
if ($publisheds[$i] == 0 or $isfolders[$i] == 1) {
if ($publisheds[$i] == 0) {print("d.add(".$ids[$i].",".$parents[$i].",'<font color=#grey>".$pagetitles[$i]);}
else {print("d.add(".$ids[$i].",".$parents[$i].",'".$pagetitles[$i]);}
if ($fcd > 0) {print(' [<font color=#880000>'.$fcd.'</font>]');}
if ($isfolders[$i] == 0) {print("</font>','manager/?a=3&id=".$ids[$i]."#'); ");}
if ($isfolders[$i] == 1) {print("</font>','manager/?a=3&id=".$ids[$i]."#','','','assets/templates/bluegrey/images/dtree/folder.gif'); ");}
}
}
?><?php
### UnPubDoc Tree v0.21 by D.SID ###
/* Пояснение фильтра:
* $isfolders[$i] == 1 and $parents[$i] == 0
* = Папка находящаяся в корне сайта
* $isfolders[$i] == 1 and $fcd > 0
* = Любая папка с неопуб. документами непосредственно в ней
* $isfolders[$i] == 0 and $publisheds[$i] == 0
* = Неопубликованный документ (не папка)
*
* Корректно работает с вложенностью документов второго уровня, например:
* Оглавление / Папка в корне / Папка / Документ
* С вложенностью глубже работать не будет! НЕ рабочий пример:
* Оглавление / Папка в корне / Папка / Папка / Документ
* Для работы с любой вложенностью
* if ($isfolders[$i] == 1 and $parents[$i] == 0 or $isfolders[$i] == 1 and $fcd > 0 or $isfolders[$i] == 0 and $publisheds[$i] == 0)
* замените на:
* if ($publisheds[$i] == 0 or $isfolders[$i] == 1)
* Минус: выводит ВСЕ папки, а не только папки с неопуб. документами.
* Дорабатывать сие времени пока нет.
* Да и мотивации: на моем сайте юзеры могут добавлять неопуб. документы только с вложенностью 2го уровня.
*
*
* Для исключения папок и документов - пишем их ID через запятую примерно так:
* [!UnPubDoc?exclude=`39,6,133,124,128,60`!]
*
* P.S. $createdby, $createdon, $deleted написаны "на вырост" = можно стереть.
*/
if ($exclude !=’’) {
$filid_fol = str_replace (","," and parent !=", ’,’.$exclude);
$filid_doc = str_replace (","," and id !=", ’,’.$exclude);
$filid_all = $filid_fol.$filid_doc;}
$db_q="SELECT id,pagetitle,parent,published,isfolder,createdby,createdon,deleted FROM mx_site_content WHERE id !=0 $filid_all order by pagetitle asc";
$result=mysql_query($db_q);
$count=mysql_num_rows($result);
$docs[0]=’-’;
$doc_c=0;
for ($i=0;$i<$count;$i++)
{
$id=mysql_result($result,$i,’id’);
$pagetitle=mysql_result($result,$i,’pagetitle’);
$parent=mysql_result($result,$i,’parent’);
$published=mysql_result($result,$i,’published’);
$isfolder=mysql_result($result,$i,’isfolder’);
$createdby=mysql_result($result,$i,’createdby’);
$createdon=mysql_result($result,$i,’createdon’);
$deleted=mysql_result($result,$i,’deleted’);
if (!in_array($id,$docs))
{
$ids[$doc_c]=$id;
$pagetitles[$doc_c]=$pagetitle;
$parents[$doc_c]=$parent;
$publisheds[$doc_c]=$published;
$isfolders[$doc_c]=$isfolder;
$createdbys[$doc_c]=$createdby;
$createdons[$doc_c]=$createdon;
$deleteds[$doc_c]=$deleted;
$doc_c++;
}
}
for ($i=0;$i<$doc_c;$i++) {
if ($isfolders[$i] == 1) {$q="SELECT id FROM mx_site_content WHERE parent=’$ids[$i]’ and published=0"; $res=mysql_query($q); $fcd=mysql_num_rows($res);}
### ФИЛЬТР:
if ($isfolders[$i] == 1 and $parents[$i] == 0 or $isfolders[$i] == 1 and $fcd > 0 or $isfolders[$i] == 0 and $publisheds[$i] == 0) {
if ($publisheds[$i] == 0) {print("d.add(".$ids[$i].",".$parents[$i].",’<font color=#grey>".$pagetitles[$i]);}
else {print("d.add(".$ids[$i].",".$parents[$i].",’".$pagetitles[$i]);}
if ($fcd > 0) {print(’ [<font color=#880000>’.$fcd.’</font>]’);}
if ($isfolders[$i] == 0) {print("</font>’,’manager/?a=3&id=".$ids[$i]."#’); ");}
if ($isfolders[$i] == 1) {print("</font>’,’manager/?a=3&id=".$ids[$i]."#’,’’,’’,’assets/templates/bluegrey/images/dtree/folder.gif’); ");}
}
}
?>