SetTemplate
Описание и параметры
void SetTemplate( object obStepTemplate, mixed stepID = null );
Метод устанавливает шаблон obStepTemplate для шага stepID. Если параметр stepID не указан, шаблон устанавливается для всех шагов.
Параметры функции
Параметр | Описание |
---|---|
obStepTemplate | Экземпляр класса CWizardTemplate. До версии 9.5.0 передавался по ссылке. |
stepID | ID шага, для которого устанавливается шаблон. Необязательный параметр, по умолчанию равен null (шаблон применяется для всех шагов). До версии 6.5.3 по умолчанию был равен равен false. |
Смотрите также
Примеры использования
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); class Step1 extends CWizardStep { function InitStep() { $this->SetTitle("Первый шаг"); $this->SetStepID("step1"); $this->SetNextStep("step2"); $this->SetCancelStep("cancel"); } function ShowStep() { $this->content .= "Шаг 1"; } } class Step2 extends CWizardStep { function InitStep() { $this->SetTitle("Второй шаг"); $this->SetStepID("step2"); $this->SetNextStep("step3"); $this->SetPrevStep("step1"); $this->SetCancelStep("cancel"); } } class Step3 extends CWizardStep { function InitStep() { $this->SetStepID("step3"); $this->SetPrevStep("step2"); $this->SetCancelStep("cancel"); $this->SetTitle("Третий шаг"); } } class CancelStep extends CWizardStep { function InitStep() { $this->SetStepID("cancel"); $this->SetCancelStep("cancel"); } function ShowStep() { $this->content .= "Отмена"; } } //Красный шаблон мастера class MyRedTemplate extends CWizardTemplate { function GetLayout() { //Получаем ссылку на объект мастера $wizard = &$this->GetWizard(); $formName = $wizard->GetFormName(); //имя формы $wizardName = $wizard->GetWizardName(); //имя мастера $charset = LANG_CHARSET; //текушая кодировка //Получаем значения атрибута name кнопок мастера $nextButtonID = $wizard->GetNextButtonID(); $prevButtonID = $wizard->GetPrevButtonID(); $cancelButtonID = $wizard->GetCancelButtonID(); $finishButtonID = $wizard->GetFinishButtonID(); //Получаем ссылку на объект текущего шага $obStep =& $wizard->GetCurrentStep(); $stepTitle = $obStep->GetTitle(); //Заголовок шага $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага //Получим ошибки шага $arErrors = $obStep->GetErrors(); $strError = ""; if (count($arErrors) > 0) { foreach ($arErrors as $arError) $strError .= $arError[0]."<br />"; $strError = '<div id="step_error">'.$strError.'</span>'; } /* Возвращаем HTML-код шаблона, в котором обязательно должны быть определны следующие макросы: {#FORM_START#} - начало формы {#CONTENT#} - содержимое текущего шага {#BUTTONS#} - кнопки навигации {#FORM_END#} - конец формы */ return <<<HTML <html> <head> <title>{$wizardName}</title> <meta http-equiv="Content-Type" content="text/html; charset={$charset}"> <style type="text/css"> body { margin:0; padding:0; background-color: #FFDEDE; font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%; } table {font-size:100%;} form {margin:0;} #border-box{margin:2px 2px 0 2px; border:1px dashed red;} #step_info { height:45px;padding:8px 30px;border-bottom:1px dashed red; box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4; } #step_title{font-weight:bold;} #step_description {font-size:95%; margin-left:10px;} #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;} #step_buttons { height:50px; text-align:right; padding-right:20px; padding-top:5px; overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box; } #step_content_container { height:290px; overflow:auto;background:#fff;} #step_error {color:red; margin:6px;} </style> <script type="text/javascript"> function OnLoad() { /*Установим в окошке мастера заголовок*/ var title = self.parent.window.document.getElementById("wizard_dialog_title"); if (title) title.innerHTML = "{$wizardName}"; /*Получаем объект формы*/ var form = document.forms["{$formName}"]; if (!form) return; /*Получаем объекты кнопок*/ var cancelButton = form.elements["{$cancelButtonID}"]; var nextButton = form.elements["{$nextButtonID}"]; var prevButton = form.elements["{$prevButtonID}"]; var finishButton = form.elements["{$finishButtonID}"]; /*Если в шаге только кнопка Отмена, то закроем окно мастера, иначе запросим подтверждение*/ if (cancelButton && !nextButton && !prevButton && !finishButton) cancelButton.onclick = CloseWindow; else if(cancelButton) cancelButton.onclick = ConfirmCancel; } /*Подтвержение по кнопке Отмена*/ function ConfirmCancel() { return (confirm("Вы действительно хотите прервать мастер?")); } /*Закроем окошко мастера*/ function CloseWindow() { if (self.parent.window.WizardWindow) self.parent.window.WizardWindow.Close(); } </script> </head> <body onload="OnLoad();"> {#FORM_START#} <div id="border-box"> <div id="step_info"> <div id="step_title">{$stepTitle}</div> <div id="step_description">{$stepSubTitle}</div> </div> <div id="step_content_container"> {$strError} <div id="step_content">{#CONTENT#}</div> </div> </div> <div id="step_buttons">{#BUTTONS#}</div> {#FORM_END#} </body> </html> HTML; } } //Аскетичный шаблон class AsceticTemplate extends CWizardTemplate { function GetLayout() { //Получаем ссылку на объект мастера $wizard = &$this->GetWizard(); $formName = $wizard->GetFormName(); //имя формы $wizardName = $wizard->GetWizardName(); //имя мастера $charset = LANG_CHARSET; //текушая кодировка $obStep =& $wizard->GetCurrentStep();//Получаем ссылку на объект текущего шага $stepTitle = $obStep->GetTitle(); //Заголовок шага $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага return <<<HTML <html> <head> <title>{$wizardName}</title> <meta http-equiv="Content-Type" content="text/html; charset={$charset}"> <style type="text/css">body, form, table {margin:0; padding:0;}</style> </head> <body> {#FORM_START#} <table width="100%" height="375" cellpadding="8"> <tr><td height="50">{$stepTitle}<br />{$stepSubTitle}<hr /></td></tr> <tr><td valign="top">{#CONTENT#}</td></tr> <tr><td height="50" align="right"><hr />{#BUTTONS#}</td></tr> </table> {#FORM_END#} </body> </html> HTML; } } //Создаем мастер $wizard = new CWizardBase("Мой мастер", $package); //Запретим применять системный шаблон по умолчанию //при запуске мастера из административного раздела $wizard->DisableAdminTemplate(); //Добавляем шаги $wizard->AddSteps(Array("Step1", "Step2", "Step3", "CancelStep")); //Определим для всех шагов красный шаблон $wizard->SetTemplate(new MyRedTemplate); //А для первого шага определим аскетичный шаблон $wizard->SetTemplate(new AsceticTemplate, "step1"); //Выводим на экран $wizard->Display(); ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024