コード例 #1
0
 /**
  * Builds the navigation array items.
  *
  * @return array
  */
 private function buildNavigationItems()
 {
     $manager = new MPFormsFormManager($this->form);
     $steps = range(0, $manager->getNumberOfSteps() - 1);
     $items = [];
     $firstFailingStep = $manager->validateSteps();
     foreach ($steps as $step) {
         // Check if step can be accessed
         $cantBeAccessed = true !== $firstFailingStep && $step > $firstFailingStep;
         // Only active if current step or step cannot be accessed because of
         // previous steps
         $isActive = $step === $manager->getCurrentStep() || $cantBeAccessed;
         $items[] = ['isActive' => $isActive, 'class' => 'step_' . $step . ($cantBeAccessed ? ' forbidden' : ''), 'href' => $manager->getUrlForStep($step), 'title' => $manager->getLabelForStep($step), 'link' => $manager->getLabelForStep($step), 'nofollow' => true];
     }
     \Haste\Generator\RowClass::withKey('class')->addFirstLast()->addEvenOdd()->applyTo($items);
     return $items;
 }
コード例 #2
0
 /**
  * Replace InsertTags.
  *
  * @param string $tag
  *
  * @return int|false
  */
 public function replaceTags($tag)
 {
     if (strpos($tag, 'mp_forms::') === false) {
         return false;
     }
     $chunks = explode('::', $tag);
     $formId = $chunks[1];
     $value = $chunks[2];
     $form = \FormModel::findByPk($formId);
     $manager = new MPFormsFormManager($form->id);
     switch ($value) {
         case 'current':
             return (int) $manager->getCurrentStep() + 1;
         case 'total':
             return $manager->getNumberOfSteps();
         case 'percentage':
             return ($manager->getCurrentStep() + 1) / $manager->getNumberOfSteps() * 100;
         case 'numbers':
             return $manager->getCurrentStep() + 1 . ' / ' . $manager->getNumberOfSteps();
     }
 }