%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/main/classes/general/ |
Current File : /home/bitrix/www/bitrix/modules/main/classes/general/wizard_site_steps.php |
<? class CPackageWelcome extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetTitle(GetMessage("MAIN_WIZARD_WELCOME_TITLE")); } function OnPostForm() { } function ShowStep() { $package = $this->package; if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_WELCOME_TEXT"); } } class CPackageLicense extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetTitle(GetMessage("MAIN_WIZARD_LICENSE_STEP_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_LICENSE_STEP_SUBTITLE")); $this->SetCancelStep(BX_WIZARD_CANCEL_ID); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $this->package; if ($wizard->IsPrevButtonClick()) return; $agree = $wizard->GetVar("__agree_license"); if ($agree != "Y") $this->SetError(GetMessage("MAIN_WIZARD_LICENSE_STEP_ERROR")); } function ShowStep() { $wizard = $this->GetWizard(); $package = $this->package; if (strlen($this->content) == 0) $this->content .= GetMessage("MAIN_WIZARD_LICENSE_STEP_CONTENT"); $licensePath = $package->__GetLicensePath(); $this->content .= '<div class="wizard-iframe-container"><iframe name="license_text" src="'.$licensePath.'" width="100%" height="160" border="0" frameBorder="1" vspace="5" scrolling="yes" class="wizard-license-iframe"></iframe></div>'; $this->content .= $this->ShowCheckboxField("__agree_license", "Y", Array("id" => "agree_license_id")); $this->content .= '<label for="agree_license_id">'.GetMessage("MAIN_WIZARD_LICENSE_STEP_AGREE").'</label>'; } } class CPackageSelectSite extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $this->SetTitle(GetMessage("MAIN_WIZARD_SELECT_SITE_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_SELECT_SITE_DESC")); $this->SetCancelStep(BX_WIZARD_CANCEL_ID); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $this->package; if ($wizard->IsNextButtonClick()) { $siteID = $package->siteID; if ($siteID != "" && array_key_exists($siteID, $package->arSites)) { if ($package->_InitSubStep("select", $package->arSites[$siteID], false)) { $wizard->SetCurrentStep($package->__obFirstStep->GetStepID()); $package->__obFirstStep->SetPrevStep(BX_WIZARD_SELECT_SITE_ID); } else { if ($package->groupExists && $package->templateExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_GROUP_ID); elseif ($package->templateExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_TEMPLATE_ID); elseif ($package->serviceExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_SERVICE_ID); elseif ($package->structureExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_STRUCTURE_ID); else $wizard->SetCurrentStep(BX_WIZARD_START_INSTALL_ID); } } else $this->SetError(GetMessage("MAIN_WIZARD_ERROR_WRONG_SITE"), "__siteID"); } } function ShowStep() { $wizard = $this->GetWizard(); $package = $this->package; $this->content .= '<table width="100%" cellpadding="0" cellspacing="0">'; foreach ($package->arSites as $siteID => $arSite) { if (isset($arSite["DEFAULT"])) $wizard->SetDefaultVar("__siteID", $siteID); $this->content .= '<tr>'; $this->content .= '<td valign="top">'.$this->ShowRadioField("__siteID", $siteID, Array("id" => $siteID)).'</td>'; $this->content .= '<td valign="top">'; if (isset($arSite["SCREENSHOT"]) && isset($arSite["PREVIEW"])) $this->content .= CFile::Show2Images($package->path."/".$arSite["PREVIEW"], $package->path."/".$arSite["SCREENSHOT"], 150, 150, ' border="0"')."<br /><br />"; elseif (isset($arSite["SCREENSHOT"])) $this->content .= CFile::ShowImage($package->path."/".$arSite["SCREENSHOT"], 150, 150, ' border="0"', "", true)."<br /><br />"; $this->content .='</td>'; $this->content .= '<td valign="top" width="100%" style="padding-left:4px;">'; $this->content .= '<label for="'.htmlspecialcharsbx($siteID).'">'; $this->content .= '<b>'.htmlspecialcharsEx($arSite["NAME"]).'</b></label>'; if (isset($arSite["DESCRIPTION"]) && strlen($arSite["DESCRIPTION"]) > 0) $this->content .= '<br /><div style="margin-left:20px;"><label for="'.htmlspecialcharsbx($siteID).'">'.$arSite["DESCRIPTION"].'</label></div>'; $this->content .='</td>'; $this->content .= '</tr>'; } $this->content .= '</table>'; } } //Select template group class CPackageSelectGroup extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $this->SetCancelStep(BX_WIZARD_CANCEL_ID); $this->SetTitle(GetMessage("MAIN_WIZARD_SELECT_GROUP_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_SELECT_GROUP_DESC")); $this->SetDisplayVars(Array("__groupID")); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $this->package; if ($wizard->IsNextButtonClick()) { $groupID = $package->groupID; if ($groupID == "") { $this->SetError(GetMessage("MAIN_WIZARD_ERROR_WRONG_GROUP"), "__groupID"); return; } $arGroups = $package->GetTemplateGroups(Array("SITE_ID" => $package->siteID)); if (!array_key_exists($groupID, $arGroups)) { $this->SetError(GetMessage("MAIN_WIZARD_ERROR_WRONG_GROUP"), "__groupID"); return; } } } function ShowStep() { $package = $this->package; $wizard = $this->GetWizard(); $arGroups = $package->GetTemplateGroups(Array("SITE_ID" => $package->siteID)); if (empty($arGroups)) return; $this->content .= '<table cellspacing="0" cellpadding="2" width="100%"><tr>'; $colsNumber = 3; $counter = 1; $cellSize = count($arGroups); foreach ($arGroups as $groupID => $arGroup) { if (isset($arGroup["DEFAULT"])) $wizard->SetDefaultVar("__groupID", $groupID); $this->content .= '<td valign="top" style="padding-bottom:15px;" width="33%">'; if (isset($arGroup["SCREENSHOT"]) && isset($arGroup["PREVIEW"])) $this->content .= CFile::Show2Images($package->path."/".$arGroup["PREVIEW"], $package->path."/".$arGroup["SCREENSHOT"], 150, 150, ' border="0"')."<br />"; elseif (isset($arGroup["SCREENSHOT"])) $this->content .= CFile::ShowImage($package->path."/".$arGroup["SCREENSHOT"], 150, 150, ' border="0"', "", true)."<br />"; $this->content .= '<table><tr><td valign="top">'; $this->content .= $this->ShowRadioField("__groupID", $groupID, Array("id" => $groupID)); $this->content .= '</td><td>'; $this->content .= '<label for="'.htmlspecialcharsbx($groupID).'">'.$arGroup["NAME"].'</label>'; $this->content .= '</td></tr></table>'; $this->content .= "</td>"; //Close table cells if (!($counter % $colsNumber) && $cellSize != $counter) $this->content .= "</tr><tr>"; if ($cellSize == $counter && ($cellSize % $colsNumber)>0) { for ($a=1;$a<=($colsNumber - ($cellSize % $colsNumber) );$a++) $this->content .= "<td> </td>"; } $counter++; } $this->content .= "</tr></table>"; } } class CPackageSelectTemplate extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $this->SetTitle(GetMessage("MAIN_WIZARD_SELECT_TEMPLATE_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_SELECT_TEMPLATE_DESC")); $this->SetCancelStep(BX_WIZARD_CANCEL_ID); $this->SetDisplayVars(Array("__templateID")); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $this->package; if ($wizard->IsNextButtonClick()) { $templateID = $package->templateID; if ($templateID != "" && array_key_exists($templateID, $package->arTemplates)) { if ($package->_InitSubStep("select", $package->arTemplates[$templateID], false)) { $wizard->SetCurrentStep($package->__obFirstStep->GetStepID()); $package->__obFirstStep->SetPrevStep(BX_WIZARD_SELECT_TEMPLATE_ID); } else { if ($package->serviceExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_SERVICE_ID); elseif ($package->structureExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_STRUCTURE_ID); else $wizard->SetCurrentStep(BX_WIZARD_START_INSTALL_ID); } } else $this->SetError(GetMessage("MAIN_WIZARD_ERROR_WRONG_TEMPLATE"), "__templateID"); } } function ShowStep() { $package = $this->package; $wizard = $this->GetWizard(); $arTemplates = $package->GetTemplates( Array( "SITE_ID" => $package->siteID, "GROUP_ID" => $package->groupID ) ); if (empty($arTemplates)) return; $this->content .= '<table cellspacing="0" cellpadding="2" width="100%"><tr>'; $colsNumber = 3; $counter = 1; $cellSize = count($arTemplates); foreach ($arTemplates as $arTemplate) { if (isset($arTemplate["DEFAULT"])) $wizard->SetDefaultVar("__templateID", $arTemplate["ID"]); $this->content .= '<td valign="top" style="padding-bottom:15px;" width="33%">'; if ($arTemplate["SCREENSHOT"] && $arTemplate["PREVIEW"]) $this->content .= CFile::Show2Images($arTemplate["PREVIEW"], $arTemplate["SCREENSHOT"], 150, 150, ' border="0"')."<br />"; else $this->content .= CFile::ShowImage($arTemplate["SCREENSHOT"], 150, 150, ' border="0"', "", true)."<br />"; $this->content .= '<table><tr><td valign="top">'; $this->content .= $this->ShowRadioField("__templateID", $arTemplate["ID"], Array("id" => $arTemplate["ID"])); $this->content .= '</td><td>'; $this->content .= '<label for="'.htmlspecialcharsbx($arTemplate["ID"]).'">'.$arTemplate["NAME"].'</label></td></tr>'; $this->content .= '</table>'; $this->content .= (strlen($arTemplate["DESCRIPTION"]) > 0 ? "<br />".$arTemplate["DESCRIPTION"] : "").''; $this->content .= "</td>"; //Close table cells if (!($counter % $colsNumber) && $cellSize != $counter) $this->content .= "</tr><tr>"; if ($cellSize == $counter && ($cellSize % $colsNumber)>0) { for ($a=1;$a<=($colsNumber - ($cellSize % $colsNumber) );$a++) $this->content .= "<td> </td>"; } $counter++; } $this->content .= "</tr></table>"; } } class CPackageSelectService extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $this->SetCancelStep(BX_WIZARD_CANCEL_ID); $this->SetTitle(GetMessage("MAIN_WIZARD_SELECT_SERVICE_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_SELECT_SERVICE_DESC")); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $this->package; if ($wizard->IsNextButtonClick()) { $arServices = $package->serviceID; if (!is_array($arServices)) { if ($package->serviceExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_STRUCTURE_ID); else $wizard->SetCurrentStep(BX_WIZARD_START_INSTALL_ID); return; } foreach ($arServices as $service) { if (!array_key_exists($service, $package->arServices)) continue; if ($package->_InitSubStep("select", $package->arServices[$service], false)) { $wizard->SetCurrentStep($package->__obFirstStep->GetStepID()); $package->__obFirstStep->SetPrevStep(BX_WIZARD_SELECT_SERVICE_ID); break; } else { if ($package->serviceExists) $wizard->SetCurrentStep(BX_WIZARD_SELECT_STRUCTURE_ID); else $wizard->SetCurrentStep(BX_WIZARD_START_INSTALL_ID); //$wizard->SetCurrentStep("__start_install"); } } } } function ShowStep() { $package = $this->package; $wizard = $this->GetWizard(); $arServices = $package->GetServices(Array("SITE_ID" => $package->siteID)); $i = 0; $this->ShowCheckboxField("__serviceID[]", null); $this->content .= $this->ShowHiddenField("__serviceID", ""); $this->content .= '<table width="100%" cellspacing="1" cellpadding="0">'; foreach ($arServices as $serviceID => $arService) { $type = "checkbox"; $group = ""; if (array_key_exists("FORM", $arService) && is_array($arService["FORM"])) { if (array_key_exists("TYPE", $arService["FORM"])) $type = strtolower($arService["FORM"]["TYPE"]); if (array_key_exists("GROUP", $arService["FORM"])) $group = strtolower(preg_replace("~[^a-zA-Z0-9_]~i", "", $arService["FORM"]["GROUP"])); if (array_key_exists("DEFAULT", $arService["FORM"]) && $type != "required") { if ($group == "") $wizard->SetDefaultVar("__serviceID[".$i++."]", $serviceID); else $wizard->SetDefaultVar("__serviceID[".$group."][".$i++."]", $serviceID); } } if ($type == "radio") { $this->content .= '<tr>'; $this->content .= '<td valign="top">'.$this->ShowRadioField("__serviceID[".$group."]", $serviceID, Array("id" => $serviceID)).'</td>'; $this->content .= '<td valign="top">'; if (isset($arService["ICON"]) && strlen($arService["ICON"]) > 0) $this->content .= '<label for="'.$serviceID.'"><img src="'.$package->GetPath().'/'.$arService["ICON"].'" /></label>'; $this->content .= '</td>'; $this->content .= '<td valign="top" width="100%">'; $this->content .= '<label for="'.$serviceID.'"> <b>'.$arService["NAME"].'</b></label><br />'; if (isset($arService["DESCRIPTION"]) && strlen($arService["DESCRIPTION"]) > 0) $this->content .= '<div style="margin-left:20px;"><label for="'.$serviceID.'">'.$arService["DESCRIPTION"].'</label></div>'; $this->content .= '</td>'; $this->content .= '</tr>'; } elseif ($type == "required") { $this->content .= '<tr>'; $this->content .= '<td valign="top"><input type="checkbox" disabled="disabled" checked="checked" name="required" value="" /></td>'; $this->content .= '<td valign="top">'; if (isset($arService["ICON"]) && strlen($arService["ICON"]) > 0) $this->content .= '<img src="'.$package->GetPath().'/'.$arService["ICON"].'" />'; $this->content .= '</td>'; $this->content .= '<td valign="top" width="100%">'; $this->content .= " <b>".$arService["NAME"].'</b><br />'; if (isset($arService["DESCRIPTION"]) && strlen($arService["DESCRIPTION"]) > 0) $this->content .= '<div style="margin-left:20px;">'.$arService["DESCRIPTION"].'</div>'; $this->content .= $this->ShowHiddenField("__serviceID[]", $serviceID); $this->content .= '</td>'; $this->content .= '</tr>'; } else { $this->content .= '<tr>'; $this->content .= '<td valign="top">'.$this->ShowCheckboxField("__serviceID[]", $serviceID, Array("id" => $serviceID)).'</td>'; $this->content .= '<td valign="top">'; if (isset($arService["ICON"]) && strlen($arService["ICON"]) > 0) $this->content .= '<label for="'.$serviceID.'"><img src="'.$package->GetPath().'/'.$arService["ICON"].'" /></label>'; $this->content .= '</td>'; $this->content .= '<td valign="top" width="100%">'; $this->content .= '<label for="'.$serviceID.'"> <b>'.$arService["NAME"].'</b></label><br />'; if (isset($arService["DESCRIPTION"]) && strlen($arService["DESCRIPTION"]) > 0) $this->content .= '<div style="margin-left:20px;"><label for="'.$serviceID.'">'.$arService["DESCRIPTION"].'</label></div>'; $this->content .= '</td>'; $this->content .= '</tr>'; } } $this->content .= '</table>'; } } class CPackageSelectStructure extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $this->SetTitle(GetMessage("MAIN_WIZARD_SELECT_STRUCTURE_TITLE")); $this->SetSubTitle(GetMessage("MAIN_WIZARD_SELECT_STRUCTURE_DESC")); $this->SetCancelStep(BX_WIZARD_CANCEL_ID); } function DisplayTree(&$arStructure, $systemTree = false) { $strTree = ""; if (!is_array($arStructure)) return $strTree; static $labelID = 0; foreach ($arStructure as $pageID => $arPage) { $pageID = (isset($arPage["ID"]) ? $arPage["ID"] : $pageID); $isService = (isset($arPage["TYPE"]) && $arPage["TYPE"] == "SERVICE"); $isRoot = (!$isService && isset($arPage["CHILD"]) && is_array($arPage["CHILD"]) && !empty($arPage["CHILD"])); $labelID++; $strTree .= '<li><input id="page'.$labelID.'" type="checkbox"'.($isService ? ' class="locked"'.($systemTree ? ' disabled="disabled"' : '') : '').' value="'.$pageID.'" onclick="WizOnCheckBoxClick(this)">'; if (isset($arPage["ICON"]) && strlen($arPage["ICON"]) > 3 ) $strTree .= '<img src="'.$this->package->GetPath().'/'.$arPage["ICON"].'" /> '; else { if ($isService) $strTree .= '<img src="/bitrix/images/main/wizard/service.gif" width="16" height="16" border="0" alt="" />'; else $strTree .= '<img src="/bitrix/images/main/wizard/page.gif" width="16" height="16" border="0" alt="" />'; } $strTree .= '<label for="page'.$labelID.'"> '.$arPage["NAME"].'</label>'; if ($isRoot) { $strTree .= "<ul>"; foreach ($arPage["CHILD"] as $subPageID => $arSubPage) { $labelID++; $subPageID = (isset($arSubPage["ID"]) ? $arSubPage["ID"] : $pageID."-".$subPageID); $strTree .= '<li><input id="page'.$labelID.'" type="checkbox" value="'.$subPageID.'" onclick="WizOnCheckBoxClick(this)" />'; if (isset($arSubPage["ICON"]) && strlen($arSubPage["ICON"]) > 3 ) $strTree .= '<img src="'.$this->package->GetPath().'/'.$arSubPage["ICON"].'" />'; else $strTree .= '<img src="/bitrix/images/main/wizard/page.gif" width="16" height="16" border="0" alt="" />'; $strTree .= '<label for="page'.$labelID.'"> '.$arSubPage["NAME"].'</label></li>'; } $strTree .= "</ul>"; } $strTree .='</li>'; } return $strTree; } function ShowStep() { $wizard = $this->GetWizard(); $package = $this->package; $structureID = $package->structureID; $arOriginalStructure = $package->GetStructure( Array( "SITE_ID" => $package->siteID, "SERVICE_ID" => $package->serviceID ) ); if ($structureID !== null) $arStructure = $package->__GetNewStructure($structureID, $arOriginalStructure); else $arStructure = $arOriginalStructure; $strTree = $this->DisplayTree($arStructure); $strTrash = $this->DisplayTree($arOriginalStructure, $systemTree = true); $formName = $wizard->GetFormName(); $nextButton = $wizard->GetNextButtonID(); $prevButton = $wizard->GetPrevButtonID(); $prefix = $wizard->GetVarPrefix(); $langStandartPages = GetMessage("MAIN_WIZARD_STANDART_PAGES"); $langSiteStructure = GetMessage("MAIN_WIZARD_SITE_STRUCTURE"); $langPagePosition = GetMessage("MAIN_WIZARD_PAGE_POSITION"); $this->content .= <<<TABLE <style type="text/css"> ul.site-tree { list-style:none; margin:0; padding:0; } ul.site-tree ul { list-style:none; margin-top:0; margin-bottom:0; } </style> <div style="overflow:auto;"> <table width="100%" class="wizard-data-table" cellpadding="0"> <tr height="20"> <th width="50%" align="left"><input type="checkbox" name="" onclick="WizSelectAll(document.getElementById('system-pages'), this.checked);WizDisableCopyButton();"> {$langStandartPages}</th> <th></th> <th width="50%" align="left"><input type="checkbox" name="" onclick="WizSelectAll(document.getElementById('site-tree'), this.checked);WizDisableButtons();"> {$langSiteStructure}</th> <th>{$langPagePosition}</th> </tr> <tr> <td valign="top"> <ul class="site-tree" id="system-pages">{$strTrash}</ul> </td> <td align="center"> <br /><input type="button" id="move-button-copy" value="→" onclick="WizCopyItems();WizDisableCopyButton();WizDisableButtons();" disabled="disabled" style="width:50px; font-size:14px;" /><br /><br /> <input type="button" id="move-button-delete" value="←" onclick="WizDeleteItems();WizDisableButtons();" disabled="disabled" style="width:50px; font-size:14px;" /><br /><br /> </td> <td valign="top"> <ul class="site-tree" id="site-tree" style="height:100%;">{$strTree}</ul> </td> <td valign="top" align="center"> <br /><input type="button" id="sort-button-up" value="↑" onclick="WizSortUp();WizDisableButtons();" disabled="disabled" style="width:40px; font-size:14px;" /><br /><br /> <input type="button" id="sort-button-down" value="↓" onclick="WizSortDown();WizDisableButtons();" disabled="disabled" style="width:40px; font-size:14px;" /><br /><br /> <input type="button" id="sort-button-left" value="←" onclick="WizSortLeft();WizDisableButtons();" disabled="disabled" style="width:40px; font-size:14px;" /><br /><br /> <input type="button" id="sort-button-right" value="→" onclick="WizSortRight();WizDisableButtons();" disabled="disabled" style="width:40px; font-size:14px;" /><br /><br /> </td> </tr> </table> </div> <script type="text/javascript"> function WizSaveSiteTree() { var source = document.getElementById("site-tree"); if (!source) return; var hiddenValue = ""; for (var i = 0; i < source.childNodes.length; i++) { var page = source.childNodes[i]; hiddenValue += page.childNodes[0].value + ";"; var subUL = page.getElementsByTagName("UL"); if (subUL.length == 1) { subPages = subUL[0].getElementsByTagName("LI"); for (var j = 0; j < subPages.length; j++) { var subPage = subPages[j]; hiddenValue += subPage.childNodes[0].value + ":" + page.childNodes[0].value + ";"; } } } hiddenField = document.createElement("INPUT"); hiddenField.type = "hidden"; hiddenField.name = "{$prefix}" + "__structureID"; hiddenField.value = hiddenValue; document.forms["{$formName}"].appendChild(hiddenField); } function WizOnCheckBoxClick(checkbox) { var li = checkbox.parentNode; WizSelectAll(li, checkbox.checked); var systemPages = document.getElementById("system-pages"); if (li.parentNode == systemPages || li.parentNode.parentNode.parentNode == systemPages) WizDisableCopyButton(); else WizDisableButtons(); } function WizSelectAll(source, checked) { var items = source.getElementsByTagName("INPUT"); for (var i = 0; i < items.length; i++) if (!items[i].disabled) items[i].checked = checked; } function WizDisableCopyButton() { var source = document.getElementById("system-pages"); if (!source) return; var items = source.getElementsByTagName("INPUT"); if (items.length <= 0) return; var disableCopyButton = true; for (var i = 0; i < items.length; i++) { if (items[i].checked && !items[i].disabled) { disableCopyButton = false; break; } } document.getElementById("move-button-copy").disabled = disableCopyButton; } function WizDisableButtons() { var source = document.getElementById("site-tree"); if (!source) return; var items = source.getElementsByTagName("INPUT"); if (items.length <= 0) return; var upButtonDisable = false; var downButtonDisable = false; var leftButtonDisable = false; var rightButtonDisable = false; var deleteButtonDisable = false; var isOneChecked = false; for (var i = 0; i < items.length; i++) { if (items[i].checked) { isOneChecked = true; if (items[i].className == "locked") { leftButtonDisable = true; rightButtonDisable = true; deleteButtonDisable = true; } li = items[i].parentNode; if (!li.previousSibling) upButtonDisable = true; if (!li.nextSibling) downButtonDisable = true; if (li.parentNode != source || !li.previousSibling || li.previousSibling.childNodes[0].className == "locked" || li.getElementsByTagName("UL").length > 0) rightButtonDisable = true; if (li.parentNode == source) leftButtonDisable = true; } } if (!isOneChecked) upButtonDisable = downButtonDisable = leftButtonDisable = rightButtonDisable = true; if (!isOneChecked) deleteButtonDisable = true; /*else if (items[0].checked) { upButtonDisable = true; rightButtonDisable = true; leftButtonDisable = true; }*/ document.getElementById("sort-button-up").disabled = upButtonDisable; document.getElementById("sort-button-down").disabled = downButtonDisable; document.getElementById("sort-button-left").disabled = leftButtonDisable; document.getElementById("sort-button-right").disabled = rightButtonDisable; document.getElementById("move-button-delete").disabled = deleteButtonDisable; } var wizLabelID = 1; function WizCopyItems() { var source = document.getElementById("system-pages"); var dest = document.getElementById("site-tree"); if (!source || !dest) return; var items = source.getElementsByTagName("INPUT"); for (var i = 0; i < items.length; i++) { if (items[i].checked) { if (items[i].className == "locked") continue; var li = items[i].parentNode; var newItem = li.cloneNode(true); //var ul = newItem.childNodes[newItem.childNodes.length-1]; /*if (ul.nodeName == "UL") { var subItems = ul.getElementsByTagName("INPUT"); var itemsToDelete = []; for (var j = 0; j < subItems.length; j++) { if (!subItems[j].checked) itemsToDelete[itemsToDelete.length] = subItems[j].parentNode; //ul.removeChild(subItems[j].parentNode); } if (itemsToDelete.length == subItems.length) { alert(111); newItem.removeChild(ul); } else { for (var j = 0; j < itemsToDelete.length; j++) ul.removeChild(itemsToDelete[j]); } }*/ var inputs = newItem.getElementsByTagName("INPUT"); for (j = 0; j < inputs.length; j++) { wizLabelID++; inputs[j].id = "n" + wizLabelID; inputs[j].nextSibling.nextSibling.setAttribute("for", "n" + wizLabelID); inputs[j].nextSibling.nextSibling.htmlFor = "n" + wizLabelID; } dest.appendChild(newItem); WizSelectAll(li, false); WizSelectAll(newItem, true); } } } function WizDeleteItems() { var source = document.getElementById("site-tree"); var items = source.getElementsByTagName("INPUT"); var itemsToMove = []; for (var i = 0; i < items.length; i++) { if (items[i].checked && items[i].className != "locked") { items[i].checked = false; itemsToMove[itemsToMove.length] = items[i].parentNode; } } for (var i = 0; i < itemsToMove.length; i++) { var ul = itemsToMove[i].parentNode; ul.removeChild(itemsToMove[i]); if (ul != source && ul.getElementsByTagName("li").length <= 0) ul.parentNode.removeChild(ul); } } function WizSortRight() { var source = document.getElementById("site-tree"); if (!source) return; var items = source.getElementsByTagName("INPUT"); for (var i = 0; i < items.length; i++) { var li = items[i].parentNode; if (!items[i].checked || li.getElementsByTagName("UL").length > 0 || items[i].className == "locked") continue; if (li.parentNode == source && li.previousSibling && li.previousSibling.childNodes[0].className != "locked") { var ulTags = li.previousSibling.getElementsByTagName("UL"); if (ulTags.length > 0) var newItem = ulTags[0].appendChild(li); else { var ul = document.createElement("UL"); li.previousSibling.appendChild(ul); var newItem = ul.appendChild(li); } newItem.childNodes[0].checked = true; } } } function WizSortLeft() { var source = document.getElementById("site-tree"); if (!source) return; var items = source.getElementsByTagName("INPUT"); var itemsToMove = []; for (var i = 0; i < items.length; i++) { var li = items[i].parentNode; if (!items[i].checked || li.parentNode == source) continue; itemsToMove[itemsToMove.length] = li; } for (var i = 0; i < itemsToMove.length; i++) { var li = itemsToMove[i]; var ul = li.parentNode; var parentLI = li.parentNode.parentNode; if (parentLI.nextSibling) var newItem = parentLI.parentNode.insertBefore(li, parentLI.nextSibling); else var newItem = source.appendChild(li); newItem.childNodes[0].checked = true; if (ul.getElementsByTagName("LI").length <= 0) ul.parentNode.removeChild(ul); } } function WizSortUp() { var source = document.getElementById("site-tree"); if (!source) return; var items = source.getElementsByTagName("INPUT"); for (var i = 0; i < items.length; i++) { if (items[i].checked) { var li = items[i].parentNode; if (li.previousSibling) { var newItem = li.parentNode.insertBefore(li, li.previousSibling); newItem.childNodes[0].checked = true; } } } } function WizSortDown() { var source = document.getElementById("site-tree"); if (!source) return; var items = source.getElementsByTagName("INPUT"); for (var i = items.length - 1; i >= 0; i--) { if (items[i].checked) { var li = items[i].parentNode; if (li.nextSibling) { if (li.nextSibling.nextSibling) var newItem = li.parentNode.insertBefore(li, li.nextSibling.nextSibling); else var newItem = li.parentNode.appendChild(li); newItem.childNodes[0].checked = true; } } } } function WizAttachEvent() { var form = document.forms["{$formName}"]; if (!form) return; var nextButton = form.elements["{$nextButton}"]; var prevButton = form.elements["{$prevButton}"]; if (nextButton) nextButton.onclick = WizSaveSiteTree; if (prevButton) prevButton.onclick = WizSaveSiteTree; } if (window.addEventListener) window.addEventListener("load", WizAttachEvent, false); else if (window.attachEvent) window.attachEvent("onload", WizAttachEvent); else setTimeout(WizAttachEvent, 500); </script> TABLE; } } class CPackageStartInstall extends CWizardStep { var $package; var $arSelected; public function __construct($package, $arSelected) { $this->package = $package; $this->arSelected = $arSelected; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetTitle(GetMessage("MAIN_WIZARD_START_INSTALL_TITLE")); $this->SetNextCaption(GetMessage("MAIN_WIZARD_INSTALL_CAPTION")); } function OnPostForm() { } function ShowStep() { $package = $this->package; if (strlen($this->content) == 0) $this->content .= GetMessage("MAIN_WIZARD_START_INSTALL_DESC"); $siteID = $this->arSelected["siteID"]; if (isset($siteID) && isset($package->arSites[$siteID]["NAME"])) $this->content .= " ".GetMessage("MAIN_WIZARD_SITE_TYPE").": <i>".$package->arSites[$siteID]["NAME"]."</i><br />"; $templateID = $this->arSelected["templateID"]; if (isset($templateID) && isset($package->arTemplates[$templateID]["NAME"])) $this->content .= " ".GetMessage("MAIN_WIZARD_SITE_TEMPLATE").": <i>".$package->arTemplates[$templateID]["NAME"]."</i><br />"; $arServices = $this->arSelected["arServices"]; $strService = ""; foreach ($arServices as $serviceID) { if (array_key_exists($serviceID, $package->arServices) && isset($package->arServices[$serviceID]["NAME"])) $strService .= (strlen($strService) > 0 ? ", " : "")."<i>".$package->arServices[$serviceID]["NAME"]."</i>"; } if (strlen($strService) > 0) $this->content .= " ".GetMessage("MAIN_WIZARD_SITE_SERVICES").": ".$strService; } } class CPackageInstallSite extends CWizardStep { var $package; var $siteID; public function __construct($package, $siteID) { $this->package = $package; $this->siteID = $siteID; parent::__construct(); $this->SetAutoSubmit(); $this->SetTitle(GetMessage("MAIN_WIZARD_RUN_INSTALLATION")); } function OnPostForm() { $package = $this->package; $package->__InstallSite($this->siteID); } function ShowStep() { if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_SITE_INSTALL"); } } class CPackageInstallTemplate extends CWizardStep { var $package; var $templateID; public function __construct($package, $templateID) { $this->package = $package; $this->templateID = $templateID; parent::__construct(); $this->SetAutoSubmit(); $this->SetTitle(GetMessage("MAIN_WIZARD_RUN_INSTALLATION")); } function OnPostForm() { $package = $this->package; $package->__InstallTemplate($this->templateID); } function ShowStep() { if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_TEMPLATE_INSTALL"); } } class CPackageInstallService extends CWizardStep { var $package; var $serviceID; public function __construct($package, $serviceID) { $this->package = $package; $this->serviceID = $serviceID; parent::__construct(); $this->SetAutoSubmit(); $this->SetTitle(GetMessage("MAIN_WIZARD_RUN_INSTALLATION")); } function OnPostForm() { $package = $this->package; $package->__InstallService($this->serviceID); } function ShowStep() { $package = $this->package; $serviceName = ""; if (array_key_exists($this->serviceID, $package->arServices) && array_key_exists("NAME", $package->arServices[$this->serviceID])) $serviceName = $package->arServices[$this->serviceID]["NAME"]; if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_SERVICE_INSTALL").' "'.htmlspecialcharsEx($serviceName).'" ...'; } } class CPackageInstallStructure extends CWizardStep { public function __construct() { parent::__construct(); } function InitStep() { $this->SetAutoSubmit(); $this->SetTitle(GetMessage("MAIN_WIZARD_RUN_INSTALLATION")); } function OnPostForm() { $wizard = $this->GetWizard(); $package = $wizard->GetPackage(); $package->__InstallStructure(); } function ShowStep() { if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_INSTALL_STRUCTURE"); } } class CPackageFinish extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetTitle(GetMessage("MAIN_WIZARD_FINISH_TITLE")); $this->SetCancelCaption(GetMessage("MAIN_WIZARD_FINISH_CAPTION")); } function OnPostForm() { } function ShowStep() { if (strlen($this->content) == 0) $this->content = GetMessage("MAIN_WIZARD_FINISH_DESC"); } } class CPackageCancel extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetTitle(GetMessage("MAIN_WIZARD_CANCEL_TITLE")); $this->SetCancelCaption(GetMessage("MAIN_WIZARD_FINISH_CAPTION")); } function OnPostForm() { } function ShowStep() { if (strlen($this->content) == 0) $this->content .= GetMessage("MAIN_WIZARD_CANCEL_DESC"); } } class CPackageError extends CWizardStep { var $package; public function __construct($package) { $this->package = $package; parent::__construct(); } function InitStep() { $package = $this->package; $this->SetCancelStep(BX_WIZARD_CANCEL_ID); $this->SetTitle(GetMessage("MAIN_WIZARD_ERROR_STEP_TITLE")); foreach ($package->arErrors as $arError) $this->SetError($arError[0], $arError[1]); } function OnPostForm() { } function ShowStep() { } } ?>