Ejemplo n.º 1
0
 public function call()
 {
     $app = Slim::getInstance();
     $this->app->container->singleton(__NAMESPACE__, function () {
         return $this;
     });
     // make them available for other classes */
     $hook = function ($app) {
         $plugin = $app->container->get(__NAMESPACE__);
         return function () use($app, $plugin) {
             $app->page->sitename = $app->config('site')->sitename;
             $app->page->image = $plugin->search($app->page->parent, 'image');
             $app->page->share = $plugin->search($app->page->parent, 'share');
             $app->page->seo_title = $plugin->search($app->page->parent, 'seo_title');
             $app->page->url = Location::full_url();
             $page = $app->page->get_array();
             $page['image'] = Location::uri($page['image']);
             $meta = $plugin->facebook();
             echo $plugin->replace($page, $meta);
         };
     };
     $script = function ($app) {
         $plugin = $app->container->get(__NAMESPACE__);
         return function () use($app, $plugin) {
             echo $plugin->facebook_embed($this->settings->id);
         };
     };
     $body = function ($app) {
         $plugin = $app->container->get(__NAMESPACE__);
         return function () use($app, $plugin) {
             echo '<div id="fb-root"></div>';
         };
     };
     $app->hook('header', $hook($app));
     if (isset($this->settings) && isset($this->settings->id) && $this->settings->id != '') {
         $app->hook('script', $script($app));
         $app->hook('body', $body($app));
     }
     $app->applyHook('front.plugin.social', $this->settings);
     $this->next->call();
 }