public function getContentIds( $categories = '' ) { $db = Komento::getDBO(); $query = ''; if( empty( $categories ) ) { $gids = implode( ',', Komento::getUserGids() ); $user = JFactory::getUser(); $result = array(); // Get all the categories first $query = 'SELECT ' . $db->nameQuote( 'id' ) . ' FROM ' . $db->nameQuote( '#__easyblog_category' ) . ' WHERE ' . $db->nameQuote( 'private' ) . ' = ' . $db->quote( '0' ); if( !$user->guest ) { $query .= ' OR ' . $db->nameQuote( 'private' ) . ' = ' . $db->quote( '1' ); } $db->setQuery( $query ); $result = array_merge( $result, $db->loadResultArray() ); $query = 'SELECT DISTINCT (' . $db->nameQuote( 'a' ) . '.' . $db->nameQuote( 'id' ) . ') FROM ' . $db->nameQuote( '#__easyblog_category' ) . ' AS ' . $db->nameQuote( 'a' ); $query .= ' LEFT JOIN ' . $db->nameQuote( '#__easyblog_category_acl' ) . ' AS ' . $db->nameQuote( 'b' ); $query .= ' ON ' . $db->nameQuote( 'b' ) . '.' . $db->nameQuote( 'category_id' ) . ' = ' . $db->nameQuote( 'a' ) . '.' . $db->nameQuote( 'id' ); $query .= ' WHERE ' . $db->nameQuote( 'a' ) . '.' . $db->nameQuote( 'private' ) . ' = ' . $db->quote( '2' ); $query .= ' AND ' . $db->nameQuote( 'b' ) . '.' . $db->nameQuote( 'acl_id' ) . ' = ' . $db->quote( '1' ); $query .= ' AND ' . $db->nameQuote( 'b' ) . '.' . $db->nameQuote( 'content_id' ) . ' IN (' . $gids . ')'; $db->setQuery( $query ); $result = array_merge( $result, $db->loadResultArray() ); $categories = implode( ',', $result ); $query = 'SELECT ' . $db->nameQuote( 'id' ) . ' FROM ' . $db->nameQuote( '#__easyblog_post' ); $query .= ' WHERE ' . $db->nameQuote( 'category_id' ) . ' IN (' . $categories . ')'; $query .= ' ORDER BY ' . $db->nameQuote( 'id' ); } else { if( is_array( $categories ) ) { $categories = implode( ',', $categories ); } $query = 'SELECT `id` FROM ' . $db->nameQuote( '#__easyblog_post' ) . ' WHERE `category_id` IN (' . $categories . ') ORDER BY `id`'; } $db->setQuery( $query ); return $db->loadResultArray(); }