本文整理汇总了PHP中Dashboard::getDefaultDashboardsByUser方法的典型用法代码示例。如果您正苦于以下问题:PHP Dashboard::getDefaultDashboardsByUser方法的具体用法?PHP Dashboard::getDefaultDashboardsByUser怎么用?PHP Dashboard::getDefaultDashboardsByUser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dashboard
的用法示例。
在下文中一共展示了Dashboard::getDefaultDashboardsByUser方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testPushDashboardToUsers
public function testPushDashboardToUsers()
{
$super = Yii::app()->user->userModel;
//Make and Get Five Users
$users = UserTestHelper::generateBasicUsers(5);
$this->assertEquals(5, count($users));
//Remove any one portlet from super's default dashboard
$defaultDashboards = Dashboard::getDefaultDashboardsByUser($super);
if (count($defaultDashboards) == 0) {
$defaultDashboard = Dashboard::setDefaultDashboardForUser($super);
} else {
$defaultDashboard = $defaultDashboards[0];
}
$defaultDashboardLayoutId = PushDashboardUtil::HOME_DASHBOARD . $defaultDashboard->layoutId;
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
if (empty($defaultPortlets)) {
$metadata = HomeDashboardView::getDefaultMetadata();
$portletCollection = Portlet::makePortletsUsingMetadataSortedByColumnIdAndPosition($defaultDashboardLayoutId, $metadata, $super, null);
$this->assertNotEmpty($portletCollection);
Portlet::savePortlets($portletCollection);
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
}
$this->assertTrue(count($defaultPortlets) > 0);
foreach ($defaultPortlets as $portlet) {
$portlet->delete();
break;
}
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $super->id);
$deafultPortletViews = array();
foreach ($defaultPortlets as $portlet) {
$deafultPortletViews[] = $portlet->viewType;
}
//Push super's default dashboard to five users
$userIds = array();
foreach ($users as $user) {
$userIds[] = $user->id;
}
$groupsAndUsers = array();
$groupsAndUsers['groups'] = array();
$groupsAndUsers['users'] = $userIds;
PushDashboardUtil::pushDashboardToUsers($defaultDashboard, $groupsAndUsers);
//Validate and compare portlets of five user's dashboard with super's default dashboard
foreach ($users as $user) {
$userPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultDashboardLayoutId, $user->id);
$this->assertEquals(count($defaultPortlets), count($userPortlets));
foreach ($userPortlets as $portlet) {
$this->assertTrue(in_array($portlet->viewType, $deafultPortletViews));
}
}
}
示例2: resolveDefaultDashboardByUser
/**
* Returns default dashboard for user.
* Creates and return default dashboard, if no dashboard exists for user
* @param Dashboard $dashboard
* @param User $user
* @return Dashboard
* @throws FailedToSaveModelException
*/
public static function resolveDefaultDashboardByUser(Dashboard $dashboard, User $user)
{
$userDefaultDashboards = Dashboard::getDefaultDashboardsByUser($user);
if (count($userDefaultDashboards) == 0) {
$userDashboard = Dashboard::setDefaultDashboardForUser($user);
} else {
$userDashboard = $userDefaultDashboards[0];
}
$userDashboard->setTreatCurrentUserAsOwnerForPermissions(true);
$userDashboard->name = $dashboard->name;
$userDashboard->layoutType = $dashboard->layoutType;
$saved = $userDashboard->save();
if (!$saved) {
throw new FailedToSaveModelException();
}
return $userDashboard;
}