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));
}