621 $structureID =
$package->structureID;
623 $arOriginalStructure =
$package->GetStructure(
630 if ($structureID !==
null)
631 $arStructure =
$package->__GetNewStructure($structureID, $arOriginalStructure);
633 $arStructure = $arOriginalStructure;
636 $strTrash = $this->
DisplayTree($arOriginalStructure, $systemTree =
true);
638 $formName =
$wizard->GetFormName();
639 $nextButton =
$wizard->GetNextButtonID();
640 $prevButton =
$wizard->GetPrevButtonID();
641 $prefix =
$wizard->GetVarPrefix();
643 $langStandartPages =
GetMessage(
"MAIN_WIZARD_STANDART_PAGES");
644 $langSiteStructure =
GetMessage(
"MAIN_WIZARD_SITE_STRUCTURE");
645 $langPagePosition =
GetMessage(
"MAIN_WIZARD_PAGE_POSITION");
647 $this->content .= <<<TABLE
649 <
style type=
"text/css">
666 <div
style=
"overflow:auto;">
667 <table
width=
"100%" class=
"wizard-data-table" cellpadding=
"0">
669 <th
width=
"50%" align=
"left"><input type=
"checkbox" name=
"" onclick=
"WizSelectAll(document.getElementById('system-pages'), this.checked);WizDisableCopyButton();">&
nbsp;{$langStandartPages}</th>
671 <th
width=
"50%" align=
"left"><input type=
"checkbox" name=
"" onclick=
"WizSelectAll(document.getElementById('site-tree'), this.checked);WizDisableButtons();">&
nbsp;{$langSiteStructure}</th>
672 <th>{$langPagePosition}</th>
676 <ul
class=
"site-tree" id=
"system-pages">{$strTrash}</ul>
679 <br /><input type=
"button" id=
"move-button-copy" value=
"→" onclick=
"WizCopyItems();WizDisableCopyButton();WizDisableButtons();" disabled=
"disabled" style=
"width:50px; font-size:14px;" /><br /><br />
680 <input type=
"button" id=
"move-button-delete" value=
"←" onclick=
"WizDeleteItems();WizDisableButtons();" disabled=
"disabled" style=
"width:50px; font-size:14px;" /><br /><br />
683 <ul
class=
"site-tree" id=
"site-tree" style=
"height:100%;">{$strTree}</ul>
685 <td valign=
"top" align=
"center">
686 <br /><input type=
"button" id=
"sort-button-up" value=
"↑" onclick=
"WizSortUp();WizDisableButtons();" disabled=
"disabled" style=
"width:40px; font-size:14px;" /><br /><br />
687 <input type=
"button" id=
"sort-button-down" value=
"↓" onclick=
"WizSortDown();WizDisableButtons();" disabled=
"disabled" style=
"width:40px; font-size:14px;" /><br /><br />
688 <input type=
"button" id=
"sort-button-left" value=
"←" onclick=
"WizSortLeft();WizDisableButtons();" disabled=
"disabled" style=
"width:40px; font-size:14px;" /><br /><br />
689 <input type=
"button" id=
"sort-button-right" value=
"→" onclick=
"WizSortRight();WizDisableButtons();" disabled=
"disabled" style=
"width:40px; font-size:14px;" /><br /><br />
697 function WizSaveSiteTree()
699 var source = document.getElementById(
"site-tree");
703 var hiddenValue =
"";
705 for (var i = 0; i < source.childNodes.length; i++)
707 var page = source.childNodes[i];
708 hiddenValue += page.childNodes[0].value +
";";
710 var subUL = page.getElementsByTagName(
"UL");
711 if (subUL.length == 1)
713 subPages = subUL[0].getElementsByTagName(
"LI");
714 for (var j = 0; j < subPages.length; j++)
716 var subPage = subPages[j];
717 hiddenValue += subPage.childNodes[0].value +
":" + page.childNodes[0].value +
";";
722 hiddenField = document.createElement(
"INPUT");
723 hiddenField.type =
"hidden";
724 hiddenField.name =
"{$prefix}" +
"__structureID";
725 hiddenField.value = hiddenValue;
726 document.forms[
"{$formName}"].appendChild(hiddenField);
730 function WizOnCheckBoxClick(checkbox)
732 var li = checkbox.parentNode;
733 WizSelectAll(li, checkbox.checked);
735 var systemPages = document.getElementById(
"system-pages");
736 if (li.parentNode == systemPages || li.parentNode.parentNode.parentNode == systemPages)
737 WizDisableCopyButton();
742 function WizSelectAll(source, checked)
744 var items = source.getElementsByTagName(
"INPUT");
746 for (var i = 0; i < items.length; i++)
748 items[i].checked = checked;
751 function WizDisableCopyButton()
753 var source = document.getElementById(
"system-pages");
757 var items = source.getElementsByTagName(
"INPUT");
759 if (items.length <= 0)
762 var disableCopyButton =
true;
763 for (var i = 0; i < items.length; i++)
765 if (items[i].checked && !items[i].
disabled)
767 disableCopyButton =
false;
772 document.getElementById(
"move-button-copy").disabled = disableCopyButton;
776 function WizDisableButtons()
778 var source = document.getElementById(
"site-tree");
782 var items = source.getElementsByTagName(
"INPUT");
784 if (items.length <= 0)
787 var upButtonDisable =
false;
788 var downButtonDisable =
false;
789 var leftButtonDisable =
false;
790 var rightButtonDisable =
false;
792 var deleteButtonDisable =
false;
794 var isOneChecked =
false;
795 for (var i = 0; i < items.length; i++)
797 if (items[i].checked)
801 if (items[i].className ==
"locked")
803 leftButtonDisable =
true;
804 rightButtonDisable =
true;
805 deleteButtonDisable =
true;
808 li = items[i].parentNode;
810 if (!li.previousSibling)
811 upButtonDisable =
true;
814 downButtonDisable =
true;
816 if (li.parentNode != source || !li.previousSibling || li.previousSibling.childNodes[0].className ==
"locked" || li.getElementsByTagName(
"UL").length > 0)
817 rightButtonDisable =
true;
819 if (li.parentNode == source)
820 leftButtonDisable =
true;
825 upButtonDisable = downButtonDisable = leftButtonDisable = rightButtonDisable =
true;
828 deleteButtonDisable =
true;
836 document.getElementById(
"sort-button-up").disabled = upButtonDisable;
837 document.getElementById(
"sort-button-down").disabled = downButtonDisable;
838 document.getElementById(
"sort-button-left").disabled = leftButtonDisable;
839 document.getElementById(
"sort-button-right").disabled = rightButtonDisable;
840 document.getElementById(
"move-button-delete").disabled = deleteButtonDisable;
845 function WizCopyItems()
847 var source = document.getElementById(
"system-pages");
848 var dest = document.getElementById(
"site-tree");
849 if (!source || !dest)
852 var items = source.getElementsByTagName(
"INPUT");
854 for (var i = 0; i < items.length; i++)
856 if (items[i].checked)
858 if (items[i].className ==
"locked")
861 var li = items[i].parentNode;
862 var newItem = li.cloneNode(
true);
889 var inputs = newItem.getElementsByTagName(
"INPUT");
890 for (j = 0; j < inputs.length; j++)
893 inputs[j].id =
"n" + wizLabelID;
894 inputs[j].nextSibling.nextSibling.setAttribute(
"for",
"n" + wizLabelID);
895 inputs[j].nextSibling.nextSibling.htmlFor =
"n" + wizLabelID;
898 dest.appendChild(newItem);
899 WizSelectAll(li,
false);
900 WizSelectAll(newItem,
true);
905 function WizDeleteItems()
907 var source = document.getElementById(
"site-tree");
909 var items = source.getElementsByTagName(
"INPUT");
910 var itemsToMove = [];
912 for (var i = 0; i < items.length; i++)
914 if (items[i].checked && items[i].className !=
"locked")
916 items[i].checked =
false;
917 itemsToMove[itemsToMove.length] = items[i].parentNode;
921 for (var i = 0; i < itemsToMove.length; i++)
923 var ul = itemsToMove[i].parentNode;
924 ul.removeChild(itemsToMove[i]);
926 if (ul != source && ul.getElementsByTagName(
"li").length <= 0)
927 ul.parentNode.removeChild(ul);
931 function WizSortRight()
933 var source = document.getElementById(
"site-tree");
937 var items = source.getElementsByTagName(
"INPUT");
939 for (var i = 0; i < items.length; i++)
941 var li = items[i].parentNode;
943 if (!items[i].checked || li.getElementsByTagName(
"UL").length > 0 || items[i].className ==
"locked")
946 if (li.parentNode == source && li.previousSibling && li.previousSibling.childNodes[0].className !=
"locked")
948 var ulTags = li.previousSibling.getElementsByTagName(
"UL");
949 if (ulTags.length > 0)
950 var newItem = ulTags[0].appendChild(li);
953 var ul = document.createElement(
"UL");
954 li.previousSibling.appendChild(ul);
955 var newItem = ul.appendChild(li);
958 newItem.childNodes[0].checked =
true;
963 function WizSortLeft()
965 var source = document.getElementById(
"site-tree");
969 var items = source.getElementsByTagName(
"INPUT");
970 var itemsToMove = [];
972 for (var i = 0; i < items.length; i++)
974 var li = items[i].parentNode;
975 if (!items[i].checked || li.parentNode == source)
978 itemsToMove[itemsToMove.length] = li;
981 for (var i = 0; i < itemsToMove.length; i++)
983 var li = itemsToMove[i];
984 var ul = li.parentNode;
986 var parentLI = li.parentNode.parentNode;
988 if (parentLI.nextSibling)
989 var newItem = parentLI.parentNode.insertBefore(li, parentLI.nextSibling);
991 var newItem = source.appendChild(li);
993 newItem.childNodes[0].checked =
true;
995 if (ul.getElementsByTagName(
"LI").length <= 0)
996 ul.parentNode.removeChild(ul);
1000 function WizSortUp()
1002 var source = document.getElementById(
"site-tree");
1006 var items = source.getElementsByTagName(
"INPUT");
1008 for (var i = 0; i < items.length; i++)
1010 if (items[i].checked)
1012 var li = items[i].parentNode;
1013 if (li.previousSibling)
1015 var newItem = li.parentNode.insertBefore(li, li.previousSibling);
1016 newItem.childNodes[0].checked =
true;
1023 function WizSortDown()
1025 var source = document.getElementById(
"site-tree");
1029 var items = source.getElementsByTagName(
"INPUT");
1031 for (var i = items.length - 1; i >= 0; i--)
1033 if (items[i].checked)
1035 var li = items[i].parentNode;
1039 if (li.nextSibling.nextSibling)
1040 var newItem = li.parentNode.insertBefore(li, li.nextSibling.nextSibling);
1042 var newItem = li.parentNode.appendChild(li);
1044 newItem.childNodes[0].checked =
true;