예제 #1
0
파일: Seo.php 프로젝트: nsenkevich/seo
 public function __invoke($id, $type)
 {
     $seo = $this->seoService->getSeoByTypeId($id, $type);
     if ($seo) {
         $view = $this->getView();
         $view->headTitle()->append(ucfirst($seo->getTitle()));
         $view->headMeta()->appendName('description', $this->cutText($seo->getDescription(), 155));
         $view->headMeta()->setName('keywords', $seo->getKeywords());
         return $view;
     }
 }
예제 #2
0
 public function renderSeo(EventInterface $e)
 {
     $sm = $e->getApplication()->getServiceManager();
     $config = $sm->get('config');
     $routes = $config['seo']['seo_routes'];
     $seoRoute = $e->getRouteMatch()->getMatchedRouteName();
     $params = $e->getRouteMatch()->getParams();
     $id = $params['id'];
     $type = $routes[$seoRoute];
     $seo = $this->seoService->getSeoByTypeId($id, $type);
     if ($seo) {
         // get view Model
         $renderer = $sm->get('Zend\\View\\Renderer\\PhpRenderer');
         $renderer->headTitle()->append(ucfirst($seo->getTitle()));
         $renderer->headMeta()->appendName('description', $seo->getDescription());
         $renderer->headMeta()->setName('keywords', $seo->getKeywords());
     }
     // return response
     return $e->getResponse();
 }