© Сделано на LiveStreet
Дизайн - ©2009 MODx RED Group
Не так давно поднимался вопрос о управлении большим количеством страниц не используя дерево, где дали ссылку на решение yama (но код там не приводился) Захотелось реализовать у себя такое же управление страницами, то есть запретить раскрываться в дереве определенным папкам. Чтобы не создавать отдельное поле, использую поле donthit.
function treeAction(id, name, treedisp_children) {
if(ca=="move") {
try {
parent.main.setMoveValue(id, name);
} catch(oException) {
alert('<?php echo $_lang['unable_set_parent']; ?>');
}
}
if(ca=="open" || ca=="") {
if(id==0) {
parent.main.location.href="index.php?a=2";
} else {
if(treedisp_children==0) {
parent.main.location.href="index.php?a=3&id=" + id + getFolderState();
} else {
parent.main.location.href="index.php?a=<?php echo (!empty($modx->config['tree_page_click']) ? $modx->config['tree_page_click'] : '27'); ?>&id=" + id; // edit as default action
}
}
}
if ($donthit) {
$icon = ($privateweb||$privatemgr) ? $_style["tree_folder_secure"] : $_style["tree_folder"];
$output .= '<div id="node'.$id.'" p="'.$parent.'" style="white-space: nowrap;">'.$spacer.$pad.'<img id="p'.$id.'" align="absmiddle" title="'.$_lang['click_to_context'].'" style="cursor: pointer" src="'.$icon.'" onclick="showPopup('.$id.',\''.addslashes($pagetitle).'\',event);return false;" oncontextmenu="this.onclick(event);return false;" onmouseover="setCNS(this, 1)" onmouseout="setCNS(this, 0)" onmousedown="itemToChange='.$id.'; selectedObjectName=\''.addslashes($pagetitle).'\'; selectedObjectDeleted='.$deleted.'; selectedObjectUrl=\''.$url.'\'" /> ';
$output .= '<span p="'.$parent.'" onclick="treeAction('.$id.', \''.addslashes($pagetitle).'\',0); setSelected(this);" onmouseover="setHoverClass(this, 1);" onmouseout="setHoverClass(this, 0);" class="treeNode" onmousedown="itemToChange='.$id.'; selectedObjectName=\''.addslashes($pagetitle).'\'; selectedObjectDeleted='.$deleted.'; selectedObjectUrl=\''.$url.'\';" oncontextmenu="document.getElementById(\'p'.$id.'\').onclick(event);return false;" title="'.addslashes($alt).'">'.$pagetitleDisplay.$weblinkDisplay.'</span> '.$pageIdDisplay.'</div>';
continue;
}
$parent = $id ? ($modx->db->getValue("SELECT parent FROM " . $tbl_site_content . " WHERE id=$id LIMIT 1")) : 0;
$donthit = $parent ? ($modx->db->getValue("SELECT donthit FROM " . $tbl_site_content . " WHERE id=$parent LIMIT 1")) : 0;
if ($donthit) {$id=$_REQUEST['id']=$parent;}

Комментарии (23)
RSS свернуть / развернутьК этому нужно еще основательно переделать страницу «Просмотр дочерних ресурсов» — чтобы была навигация по вложенным папкам, чтобы была отдельная кнопка «опубликовать» и т.д.
Также нужно продумать наследование свойства отображения в дереве, чтобы не надо было при создании нового ресурса каждый раз кликать «Скрыть дочерние ресурсы из дерева».
antonkuzmin
Temus
antonkuzmin
pitbull
Leadmonkey
Temus
Leadmonkey
Leadmonkey
Temus
разве что, я увеличил количество отображаемых ресурсов в списке с 20 до 50, если надо, напишу, как это сделать.
antonkuzmin
googa
Зачем?
Табличный вид удобен, когда сотни доков, нужно их отсортировать для поиска необходимого. А в остальном…
Spirit412
Carw
googa
Temus
googa
z211
поменять в строке 406
на
В файлах delete_content.processor.php и undelete_content.processor.php поменять
на
Temus
z211
И поставить по умолчанию фильтрацию по «Заголовку ресурса»?
zzakirow
2. Найти в моём document_data.static.php и createdon заменить на pagetitle
Temus
zzakirow
igor
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.