Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 /**
  * 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);
 }