Skip to content

Version 1.6.0 - Stable

Compare
Choose a tag to compare
@phproberto phproberto released this 12 Oct 22:57

How to install / upgrade

Download joomla-entity-v1.6.0.zip an install through Joomla! Extension Manager.

Bug fixes

User::loadFromData() now supports multiple columns

See #24

Now you can use User entity to load users based on specific column values as with any other entity:

use Phproberto\Joomla\Entity\Users\User;

// Try to load user with specific email
$user = User::loadFromData(['email' => 'roberto@phproberto.com']);

if (false === $user)
{
    // User was not found
}

// Show user name
echo $user->get('name');

New Features

Saving an user through User entity triggers onUserAfterSave event.

Before this release a used saved through User entity was not triggering onUserAfterSave event limiting Joomla flexibility. Now it triggers exactly the same events than a user created through Joomla\CMS\User\User.

New filters for CategorySearch

use Phproberto\Joomla\Entity\Categories\Search\CategorySearch;

// This won't return non-viewable categories
$categories = CategorySearch::instance(['filter.active_user_access' => true])->search();

// Only show categories with specified language
$categories = CategorySearch::instance(['filter.language' => 'es-ES'])->search();

New article search class

You can now easily search articles using ArticleSearch class.

use Phproberto\Joomla\Entity\Content\Search\ArticleSearch;

// Search articles containing Joomla in their title or alias
$articles = ArticleSearch::instance(['filter.search' => 'Joomla'])->search();

// Search articles created by specific user
$articles = ArticleSearch::instance(['filter.author_id' => 84])->search();

// All the filters support array values. Search articles created by 2 users
$articles = ArticleSearch::instance(['filter.author_id' => [84, 86]])->search();

// Search articles edited by user
$articles = ArticleSearch::instance(['filter.editor_id' => 84])->search();

// Search articles with specified ids
$articles = ArticleSearch::instance(['filter.id' => [14, 15]])->search();

// Search articles with ids not in a specified array
$articles = ArticleSearch::instance(['filter.not_id' => [14, 15]])->search();

// Only show articles viewable by the active user
$articles = ArticleSearch::instance(['filter.active_user_access' => true])->search();

// Only show articles in specified view levels
$articles = ArticleSearch::instance(['filter.access' => [1, 5]])->search();

// Only show articles in specified categories
$articles = ArticleSearch::instance(['filter.category_id' => [12, 13]])->search();

// Only show articles from categories different to the specified
$articles = ArticleSearch::instance(['filter.not_category_id' => [12, 13]])->search();

// Only show featured articles
$articles = ArticleSearch::instance(['filter.featured' => 1])->search();

// Only show not featured articles
$articles = ArticleSearch::instance(['filter.featured' => 0])->search();

// Only show articles from specified language
$articles = ArticleSearch::instance(['filter.language' => 'en-GB'])->search();

// Only show articles in specified state(s)
$articles = ArticleSearch::instance(['filter.state' => [0,1]])->search();

// Only show articles not in specified state(s)
$articles = ArticleSearch::instance(['filter.not_state' => [1]])->search();

// Only show articles with specified tags
$articles = ArticleSearch::instance(['filter.tag' => [1]])->search();

// Of course you can combine all the filters.
$articles = ArticleSearch::instance(
    [
        'filter.active_user_access' => true,
        'filter.state' => 1,
        'filter.category_id' => 5
    ]
)->search();

New Content CategorySearch

Class Phproberto\Joomla\Entity\Content\Search\CategorySearch supports all the filters from Phproberto\Joomla\Entity\Categories\Search\CategorySearch but only returns categories used by com_content.

It also supports tag filtering.

use Phproberto\Joomla\Entity\Content\Search\CategorySearch;

// Only return categories with tags with ids 1 or 2 assigned
$categories = CategorySearch::instance(['filter.tag' => [1,2]])->search();

New user search

You can now easily search articles using UserSearch class.

use Phproberto\Joomla\Entity\Users\Search\UserSearch;

// Only return blocked users
$users = UserSearch::instance(['filter.blocked' => 1])->search();

// Only return not blocked users
$users = UserSearch::instance(['filter.blocked' => 0])->search();

// Only return users assigned to specified groups
$users = UserSearch::instance(['filter.group' => [1,8]])->search();

// Only return users not assigned to specified groups
$users = UserSearch::instance(['filter.group' => 2])->search();

// Only return users with 'roberto' in name, username or email
$users = UserSearch::instance(['filter.search' => 'roberto'])->search();