OwlCyberSecurity - MANAGER
Edit File: Page.php
<?php /** * @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net) */ class Quform_Element_Page extends Quform_Element_Group { /** * Render this group and return the HTML * * @param array $context * @return string */ public function render(array $context = array()) { $context = $this->prepareContext($context); $output = sprintf('<div class="%s">', Quform::escape(Quform::sanitizeClass($this->getContainerClasses()))); $output .= $this->getTitleDescriptionHtml(); $output .= '<div class="quform-child-elements">'; foreach ($this->elements as $key => $element) { $output .= $element->render($context); } $output .= '</div></div>'; return $output; } /** * Get the classes for the outermost page wrapper * * @return array */ protected function getContainerClasses() { $classes = array( 'quform-element', 'quform-element-page', sprintf('quform-page-%s', $this->getId()), sprintf('quform-page-%s', $this->getIdentifier()), 'quform-cf', sprintf('quform-group-style-%s', $this->config('groupStyle')) ); if ($this->isFirstPage()) { $classes[] = 'quform-first-page'; } if ($this->isLastPage()) { $classes[] = 'quform-last-page'; } if ($this->isCurrentPage()) { $classes[] = 'quform-current-page'; } $classes = apply_filters('quform_container_classes', $classes, $this); $classes = apply_filters('quform_container_classes_' . $this->getIdentifier(), $classes, $this); return $classes; } /** * Get the page label text * * @return string */ public function getLabel() { return apply_filters('quform_page_label_' . $this->getIdentifier(), $this->config('label'), $this, $this->getForm()); } /** * @return bool */ public function isFirstPage() { return $this->form->getFirstPage() == $this; } /** * @return bool */ public function isLastPage() { return $this->form->getLastPage() == $this; } /** * @return bool */ public function isCurrentPage() { return $this->form->getCurrentPage() == $this; } /** * Is this page valid * * @return bool */ public function isValid() { $valid = true; foreach ($this->getRecursiveIterator() as $element) { if ( ! $element instanceof Quform_Element_Field) { continue; } if ( ! $element->isValid()) { $valid = false; } } return $valid; } /** * Get the validation errors that exist on this page * * @return array */ public function getErrors() { $errors = array(); foreach ($this->getRecursiveIterator() as $element) { if ( ! $element instanceof Quform_Element_Field) { continue; } if ($element->hasError()) { foreach ($element->getErrorArray() as $identifier => $message) { $errors[$identifier] = $message; } } } return $errors; } /** * Get the list of CSS selectors * * @return array */ protected function getCssSelectors() { return array( 'page' => '%s .quform-page-%s', 'pageTitle' => '%s .quform-page-%s .quform-page-title', 'pageDescription' => '%s .quform-page-%s .quform-page-description', 'pageElements' => '%s .quform-page-%s > .quform-child-elements' ); } /** * Get the default element configuration * * @param string|null $key Get the config by key, if omitted the full config is returned * @return array */ public static function getDefaultConfig($key = null) { $config = apply_filters('quform_default_config_page', array( // Basic 'label' => '', 'title' => '', 'titleTag' => 'h3', 'description' => '', // Styles 'fieldSize' => 'inherit', 'fieldWidth' => 'inherit', 'fieldWidthCustom' => '', 'groupStyle' => 'plain', 'borderColor' => '', 'backgroundColor' => '', 'styles' => array(), // Labels 'tooltipType' => 'inherit', 'tooltipEvent' => 'inherit', 'labelPosition' => 'inherit', 'labelWidth' => '', 'showLabelInEmail' => false, 'showLabelInEntry' => false, // Logic 'logicEnabled' => false, 'logicAction' => true, 'logicMatch' => 'all', 'logicRules' => array(), // Elements 'elements' => array() )); $config['type'] = 'page'; if (Quform::isNonEmptyString($key)) { return Quform::get($config, $key); } return $config; } }