/** * @see \str\typeToPath() typeToPath */ public static function typeToPath($string_) { return \str\typeToPath($string_); }
/** * Displays this panel or sub-panel. * * @param string $panel_ Name of sub-panel to display * * @throws Ui_Panel_Exception */ public function display($panel_ = null) { if (null !== $panel_) { if (isset($this->m_children[$panel_])) { return $this->m_children[$panel_]->display(); } return; } if (null === $this->m_form) { if (Environment::isEmbedded() && null !== $this->callback) { throw new Ui_Panel_Exception('ui/panel', 'Panels with callbacks require a form in embedded mode.'); } } else { if ($this->m_form->id() === $this->id()) { $this->m_attributes['ui-panel-form'] = null; $this->m_classes['ui_panel_form'] = 'ui_panel_form'; if ($this->ajaxEnabled) { if (Environment::isEmbedded()) { $path = [$this->name => \str\typeToPath(get_class($this))]; $panel = $this; while ($panel = $panel->parent) { $path[$panel->name] = \str\typeToPath(get_class($panel)); } $this->m_attributes['ui-panel-path'] = json_encode(array_reverse($path)); } } else { $this->tag = 'form'; } if (isset($this->m_attributes['action'])) { $this->m_attributes['action'] = $this->m_formProperties['action']; } $this->m_attributes['accept-charset'] = $this->m_formProperties['accept-charset']; $this->m_attributes['enctype'] = $this->m_formProperties['enctype']; $this->m_attributes['method'] = $this->m_formProperties['method']; } } if (null !== $this->tag) { printf('<%s id="%s" %s>', $this->tag, $this->id(), $this->attributes()); if ('form' === $this->tag) { printf('<input type="hidden" name="ui-panel-submitted" value="%s">', $this->id()); } } echo $this->render(); if (null !== $this->tag) { printf('</%s>', $this->tag); } }