Admin_ImageController::articleAttachAction PHP Метод

articleAttachAction() публичный Метод

public articleAttachAction ( )
    public function articleAttachAction()
    {
        $this->_helper->layout->setLayout('iframe');
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('paginator-hash.phtml');
        $page = (int) $this->_getParam('page', 1);
        if (1 > $page) {
            $page = 1;
        }
        $search_paging = array('length' => self::LIMIT, 'offset' => ($page - 1) * self::LIMIT);
        $term = $this->_getParam('term');
        $em = \Zend_Registry::get('container')->getService('em');
        if (!empty($term)) {
            $qb = $em->getRepository('Newscoop\\Image\\LocalImage')->createQueryBuilder('i');
            $users = $qb->select('i.id', 'u.id', 'u.username')->leftJoin('i.user', 'u')->where($qb->expr()->like('u.username', $qb->expr()->literal('%' . $term . '%')))->groupBy('u.id')->setMaxResults(25)->getQuery()->getArrayResult();
            echo json_encode(array('items' => $users));
            die;
        }
        $source_criteria = array('source' => array('local', 'feedback'));
        $uploaderId = $this->_getParam('uploader', '');
        $newsfeed = $this->_getParam('newsfeed', 0);
        if ($newsfeed) {
            $source_criteria = array();
        }
        $count = $this->_helper->service('image')->getCountBy(array());
        $this->view->q = $this->_getParam('search', '');
        if (is_array($this->view->q)) {
            $this->view->q = $this->view->q[0];
        }
        $paginator = Zend_Paginator::factory($count);
        $paginator->setItemCountPerPage(self::LIMIT);
        $paginator->setCurrentPageNumber($page);
        $paginator->setView($this->view);
        $paginator->setDefaultScrollingStyle('Sliding');
        $this->view->paginator = $paginator;
        if (!empty($this->view->q)) {
            $search_count = 0;
            $this->view->images = $this->_helper->service('image.search')->find($this->view->q, $source_criteria, array('id' => 'desc'), $search_paging, $search_count);
            $count = $search_count;
        } else {
            if (!empty($uploaderId)) {
                $this->view->images = $this->_helper->service('image.search')->find($uploaderId, $source_criteria, array('id' => 'desc'), $search_paging);
            } else {
                $count = $this->_helper->service('image')->getCountBy($source_criteria);
                $this->view->images = $this->_helper->service('image')->findBy($source_criteria, array('id' => 'desc'), self::LIMIT, ($paginator->getCurrentPageNumber() - 1) * self::LIMIT);
            }
        }
        $this->view->newsfeed = false;
        if ($newsfeed) {
            $this->view->newsfeed = true;
        }
        $this->view->article = (int) $this->_getParam('article_number', 0);
        $this->view->languageId = (int) $this->_getParam('language_id', 0);
        $this->view->articleImages = $this->_helper->service('image')->findByArticle((int) $this->_getParam('article_number', 0));
    }