public function forms()
    {
        if (null === $this->forms) {
            $header = $this->header();

            // Call event to allow filling the page header form dynamically (e.g. use case: Comments plugin)
            $grav = Grav::instance();
            $grav->fireEvent('onFormPageHeaderProcessed', new Event(['page' => $this, 'header' => $header]));

            $rules = $header->rules ?? null;
            if (!\is_array($rules)) {
                $rules = [];
            }

            $forms = [];

            // First grab page.header.form
            $form = $this->normalizeForm($header->form ?? null, null, $rules);
            if ($form) {
                $forms[$form['name']] = $form;
            }

            // Append page.header.forms (override singular form if it clashes)
            $headerForms = $header->forms ?? null;
            if (\is_array($headerForms)) {
                foreach ($headerForms as $name => $form) {
                    $form = $this->normalizeForm($form, $name, $rules);
                    if ($form) {
                        $forms[$form['name']] = $form;
                    }
                }
            }

            $this->forms = $forms;
        }

        return $this->forms;
    }
public function forms()
    {
        if (null === $this->forms) {
            $header = $this->header();

            // Call event to allow filling the page header form dynamically (e.g. use case: Comments plugin)
            $grav = Grav::instance();
            $grav->fireEvent('onFormPageHeaderProcessed', new Event(['page' => $this, 'header' => $header]));

            $rules = $header->rules ?? null;
            if (!\is_array($rules)) {
                $rules = [];
            }

            $forms = [];

            // First grab page.header.form
            $form = $this->normalizeForm($header->form ?? null, null, $rules);
            if ($form) {
                $forms[$form['name']] = $form;
            }

            // Append page.header.forms (override singular form if it clashes)
            $headerForms = $header->forms ?? null;
            if (\is_array($headerForms)) {
                foreach ($headerForms as $name => $form) {
                    $form = $this->normalizeForm($form, $name, $rules);
                    if ($form) {
                        $forms[$form['name']] = $form;
                    }
                }
            }

            $this->forms = $forms;
        }

        return $this->forms;
    }
public function forms ( ) { if ( null === $ this -> forms ) { $ header = $ this -> header ( ) ; // Call event to allow filling the page header form dynamically (e.g. use case: Comments plugin) $ grav = Grav :: instance ( ) ; $ grav -> fireEvent ( 'onFormPageHeaderProcessed' , new Event ( [ 'page' => $ this , 'header' => $ header ] ) ) ; $ rules = $ header -> rules ?? null ; if ( ! \ is_array ( $ rules ) ) { $ rules = [ ] ; } $ forms = [ ] ; // First grab page.header.form $ form = $ this -> normalizeForm ( $ header -> form ?? null , null , $ rules ) ; if ( $ form ) { $ forms [ $ form [ 'name' ] ] = $ form ; } // Append page.header.forms (override singular form if it clashes) $ headerForms = $ header -> forms ?? null ; if ( \ is_array ( $ headerForms ) ) { foreach ( $ headerForms as $ name => $ form ) { $ form = $ this -> normalizeForm ( $ form , $ name , $ rules ) ; if ( $ form ) { $ forms [ $ form [ 'name' ] ] = $ form ; } } } $ this -> forms = $ forms ; } return $ this -> forms ; }
Returns normalized list of name => form pairs.

@return array
Returns normalized list of name = > form pairs .