Документация для разработчиков
Темная тема

SetCurrentStep

Описание и параметры

void
SetCurrentStep(
 string stepID
);

Метод устанавливает шаг stepID текущим.

Параметры функции

Параметр Описание
stepID ID шага, который необходимо сделать текущим.

Смотрите также

Примеры использования

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх