Пример #1
0
	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();
	}