function init()
 {
     add_action('template_redirect', array($this, 'template_redirect'), -9999);
     $this->shoutem_options = new ShoutemApiOptions($this);
     $options = $this->shoutem_options->get_options();
     $this->shoutem_options->add_listener(array($this, 'options_changed'));
     $this->authentication = new ShoutemApiAuthentication($options['encryption_key']);
     $this->dao_factory = ShoutemStandardDaoFactory::instance();
     $this->request = new ShoutemApiRequest($this->dao_factory);
     $this->response = new ShoutemApiResponse($this->base_dir);
     $this->caching = new ShoutemApiCaching($this->shoutem_options);
 }
 /**
  * Attaches the external plugin integration daos to the post generating process,
  * For example:
  * @see ShoutemViperDao, @see ShoutemNGGDao
  */
 private function attach_external_plugin_integration()
 {
     $daos = ShoutemStandardDaoFactory::instance()->get_external_plugin_integration_daos();
     foreach ($daos as $dao) {
         $dao->attach_to_hooks();
     }
 }