示例#1
0
 /**
  * Display the list of banners
  */
 function display()
 {
     global $mainframe;
     $db =& JFactory::getDBO();
     $context = 'com_banners.banner.list.';
     $filter_order = $mainframe->getUserStateFromRequest($context . 'filter_order', 'filter_order', 'cc.title', 'cmd');
     $filter_order_Dir = $mainframe->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', '', 'word');
     $filter_catid = $mainframe->getUserStateFromRequest($context . 'filter_catid', 'filter_catid', '', 'int');
     $filter_state = $mainframe->getUserStateFromRequest($context . 'filter_state', 'filter_state', '', 'word');
     $search = $mainframe->getUserStateFromRequest($context . 'search', 'search', '', 'string');
     $limit = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
     $limitstart = $mainframe->getUserStateFromRequest($context . 'limitstart', 'limitstart', 0, 'int');
     $where = array();
     if ($filter_state) {
         if ($filter_state == 'P') {
             $where[] = 'b.showBanner = 1';
         } else {
             if ($filter_state == 'U') {
                 $where[] = 'b.showBanner = 0';
             }
         }
     }
     if ($filter_catid) {
         $where[] = 'cc.id = ' . (int) $filter_catid;
     }
     if ($search) {
         $where[] = 'LOWER(b.name) LIKE ' . $db->Quote('%' . $db->getEscaped($search, true) . '%', false);
     }
     $where = count($where) ? ' WHERE ' . implode(' AND ', $where) : '';
     $orderby = ' ORDER BY ' . $filter_order . ' ' . $filter_order_Dir . ', b.ordering';
     // get the total number of records
     $query = 'SELECT COUNT(*)' . ' FROM #__banner AS b' . ' LEFT JOIN #__categories AS cc ON cc.id = b.catid' . $where;
     $db->setQuery($query);
     $total = $db->loadResult();
     jimport('joomla.html.pagination');
     $pageNav = new JPagination($total, $limitstart, $limit);
     $query = 'SELECT b.*, c.name AS client_name, cc.title AS category_name, u.name AS editor' . ' FROM #__banner AS b' . ' INNER JOIN #__bannerclient AS c ON c.cid = b.cid' . ' LEFT JOIN #__categories AS cc ON cc.id = b.catid' . ' LEFT JOIN #__users AS u ON u.id = b.checked_out' . $where . $orderby;
     $db->setQuery($query, $pageNav->limitstart, $pageNav->limit);
     $rows = $db->loadObjectList();
     // build list of categories
     $javascript = 'onchange="document.adminForm.submit();"';
     $lists['catid'] = JHTML::_('list.category', 'filter_catid', 'com_banner', (int) $filter_catid, $javascript);
     // state filter
     $lists['state'] = JHTML::_('grid.state', $filter_state);
     // table ordering
     $lists['order_Dir'] = $filter_order_Dir;
     $lists['order'] = $filter_order;
     // search filter
     $lists['search'] = $search;
     require_once JPATH_COMPONENT . DS . 'views' . DS . 'banner.php';
     BannersViewBanner::banners($rows, $pageNav, $lists);
 }