Version 1.6.0 - Stable
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' => '[email protected]']);
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();