/** * Renders using the object's menu and commands. * Uses the {@link Handler_menu} and {@link Handler_commands} from the given * object. Draws nothing if {@link $show_menus} is <code>False</code>. * @param RENDERABLE $obj * @param string $size Sizing constant; see {@link Menu_size_standard}. */ protected function _draw_menu_for($obj, $size = Menu_size_standard) { if ($this->show_menus) { /** @var MENU_RENDERER $renderer */ $renderer = $obj->handler_for(Handler_menu); $renderer->set_size($size); /** @var COMMANDS $commands */ $commands = $obj->handler_for(Handler_commands); $renderer->display($commands); } }
/** * Return the appropriate renderer for the given object and options. * @param RENDERABLE $obj * @param NEWSFEED_RENDERER_OPTIONS $options * @access private */ protected function _content_for($obj, $options = null) { if (isset($options)) { $handler_type = $options->handler_type; $use_envelope = $options->use_envelope; } else { $handler_type = Handler_text_renderer; $use_envelope = false; } $renderer = $obj->handler_for($handler_type); $obj_options = $renderer->options(); $obj_options->show_interactive = false; $obj_options->preferred_text_length = $options->preferred_text_length; $Result = $renderer->display_to_string($obj); if ($use_envelope && $handler_type == Handler_html_renderer) { $browser = $this->env->browser(); if ($browser->supports(Browser_extended_HTML_newsfeeds)) { $Result = $options->page_renderer->start_display_as_text() . $Result . $options->page_renderer->finish_display_as_text(); } } return $Result; }
/** * Return default handler objects for supported tasks. * @param string $handler_type Specific functionality required. * @param object $options * @return object * @access private */ protected function _default_handler_for($handler_type, $options = null) { switch ($handler_type) { case Handler_mail: return new SUBSCRIPTION_SETTINGS_MAIL_RENDERER($this->app); default: return parent::_default_handler_for($handler_type, $options); } }
/** * Render any parent objects to the title and location. * @param PAGE $page * @param RENDERABLE $obj * @access private */ protected function _add_context($page, $obj) { $f = $obj->parent_folder(); $page->location->add_folder_link($f); $page->title->add_object($f); }