本文整理汇总了PHP中Portlet::getByLayoutIdAndUserSortedById方法的典型用法代码示例。如果您正苦于以下问题:PHP Portlet::getByLayoutIdAndUserSortedById方法的具体用法?PHP Portlet::getByLayoutIdAndUserSortedById怎么用?PHP Portlet::getByLayoutIdAndUserSortedById使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Portlet
的用法示例。
在下文中一共展示了Portlet::getByLayoutIdAndUserSortedById方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPlacedViewTypes
protected function getPlacedViewTypes()
{
$portlets = Portlet::getByLayoutIdAndUserSortedById($this->uniqueLayoutId, Yii::app()->user->userModel->id);
$placedViewTypes = array();
foreach ($portlets as $portlet) {
$placedViewTypes[] = $portlet->viewType;
}
return $placedViewTypes;
}
示例2: actionSaveLayout
/**
* Save layout changes including:
* collapse/show
* position change
* removed portlets
*
*/
public function actionSaveLayout()
{
$portlets = Portlet::getByLayoutIdAndUserSortedById($_POST['portletLayoutConfiguration']['uniqueLayoutId'], Yii::app()->user->userModel->id);
$portletsStillOnLayout = array();
if (!empty($_POST['portletLayoutConfiguration']['portlets'])) {
foreach ($_POST['portletLayoutConfiguration']['portlets'] as $key => $portletPostData) {
$idParts = explode("_", $portletPostData['id']);
$portlets[$idParts[1]]->column = $portletPostData['column'] + 1;
$portlets[$idParts[1]]->position = $portletPostData['position'] + 1;
$portlets[$idParts[1]]->collapsed = BooleanUtil::boolVal($portletPostData['collapsed']);
$portlets[$idParts[1]]->save();
$portletsStillOnLayout[$idParts[1]] = $idParts[1];
}
}
foreach ($portlets as $portletId => $portlet) {
if (!isset($portletsStillOnLayout[$portletId])) {
$portlet->delete();
}
}
}
示例3: pushDetailsAndRelationsViewPortlets
public static function pushDetailsAndRelationsViewPortlets(User $user, $model)
{
$layoutIdPrefix = get_class($model);
$layoutId = $layoutIdPrefix . self::DETAILS_AND_RELATIONS_VIEW;
$userLayoutPortlets = Portlet::getByLayoutIdAndUserSortedById($layoutId, $user->id);
$pushedLayoutPortlets = Portlet::getByLayoutIdAndUserSortedById($layoutId, Yii::app()->user->userModel->id);
foreach ($userLayoutPortlets as $portlet) {
$portlet->delete();
unset($portlet);
}
foreach ($pushedLayoutPortlets as $pushedLayoutPortlet) {
$portlet = new Portlet();
$portlet->column = $pushedLayoutPortlet->column;
$portlet->position = $pushedLayoutPortlet->position;
$portlet->layoutId = $layoutId;
$portlet->collapsed = $pushedLayoutPortlet->collapsed;
$portlet->viewType = $pushedLayoutPortlet->viewType;
$portlet->serializedViewData = $pushedLayoutPortlet->serializedViewData;
$portlet->user = $user;
$portlet->save();
}
}
示例4: testShiftPositionsBasedOnColumnReduction
public function testShiftPositionsBasedOnColumnReduction()
{
$user = User::getByUserName('billy');
for ($i = 1; $i <= 3; $i++) {
$portlet = new Portlet();
$portlet->column = 1;
$portlet->position = $i;
$portlet->layoutId = 'shiftTest';
$portlet->collapsed = true;
$portlet->viewType = 'RssReader';
$portlet->user = $user;
$this->assertTrue($portlet->save());
}
for ($i = 1; $i <= 5; $i++) {
$portlet = new Portlet();
$portlet->column = 2;
$portlet->position = $i;
$portlet->layoutId = 'shiftTest';
$portlet->collapsed = true;
$portlet->viewType = 'RssReader';
$portlet->user = $user;
$this->assertTrue($portlet->save());
}
for ($i = 1; $i <= 4; $i++) {
$portlet = new Portlet();
$portlet->column = 3;
$portlet->position = $i;
$portlet->layoutId = 'shiftTest';
$portlet->collapsed = true;
$portlet->viewType = 'RssReader';
$portlet->user = $user;
$this->assertTrue($portlet->save());
}
$this->assertEquals(count(Portlet::getByLayoutIdAndUserSortedById('shiftTest', $user->id)), 12);
$portletCollection = Portlet::getByLayoutIdAndUserSortedByColumnIdAndPosition('shiftTest', $user->id, array());
Portlet::shiftPositionsBasedOnColumnReduction($portletCollection, 2);
$portletCollection = Portlet::getByLayoutIdAndUserSortedByColumnIdAndPosition('shiftTest', $user->id, array());
$this->assertEquals(count($portletCollection), 2);
$this->assertEquals(count($portletCollection[1]), 7);
Portlet::shiftPositionsBasedOnColumnReduction($portletCollection, 1);
$portletCollection = Portlet::getByLayoutIdAndUserSortedByColumnIdAndPosition('shiftTest', $user->id, array());
$this->assertEquals(count($portletCollection), 1);
$this->assertEquals(count($portletCollection[1]), 12);
}
示例5: testDeleteDashboardAndRelatedPortlets
/**
* testGetRowsByUserId
*/
public function testDeleteDashboardAndRelatedPortlets()
{
Yii::app()->user->userModel = User::getByUsername('billy');
$dashboardCount = Dashboard::getCount();
$this->assertTrue($dashboardCount > 0);
$user = User::getByUserName('billy');
Yii::app()->user->userModel = $user;
$dashboard = new Dashboard();
$dashboard->name = "Dashboard TESTING";
$dashboard->layoutId = 3;
$dashboard->owner = $user;
$dashboard->layoutType = '100';
$dashboard->isDefault = false;
$this->assertTrue($dashboard->save());
$this->assertEquals(Portlet::getCount(), 0);
$this->assertEquals(Dashboard::getCount(), $dashboardCount + 1);
for ($i = 1; $i <= 3; $i++) {
$portlet = new Portlet();
$portlet->column = 1;
$portlet->position = 1 + $i;
$portlet->layoutId = 'TEST' . $dashboard->layoutId;
$portlet->collapsed = false;
$portlet->viewType = 'TasksMyList';
$portlet->user = $user;
$this->assertTrue($portlet->save());
}
$this->assertEquals(Portlet::getCount(), 3);
$portlets = Portlet::getByLayoutIdAndUserSortedById('TEST' . $dashboard->layoutId, $user->id);
foreach ($portlets as $portlet) {
$portlet->delete();
}
$dashboard->delete();
$this->assertEquals(Portlet::getCount(), 0);
$this->assertEquals(Dashboard::getCount(), $dashboardCount);
}
示例6: actionDeleteDashboard
/**
* Removes dashboard and related portlets
*
*/
public function actionDeleteDashboard()
{
$id = intval($_GET['dashboardId']);
$dashboard = Dashboard::getById($id);
ControllerSecurityUtil::resolveAccessCanCurrentUserDeleteModel($dashboard);
if ($dashboard->isDefault) {
//todo: make a specific exception or view for this situation.
throw new NotSupportedException();
}
$portlets = Portlet::getByLayoutIdAndUserSortedById('HomeDashboard' . $id, Yii::app()->user->userModel->id);
foreach ($portlets as $portlet) {
$portlet->delete();
unset($portlet);
}
$dashboard->delete();
unset($dashboard);
$this->redirect(array('default/index'));
}
示例7: testPushLayoutToUsers
public function testPushLayoutToUsers()
{
$super = Yii::app()->user->userModel;
//Make and Get Five Users
$users = UserTestHelper::generateBasicUsers(5);
$this->assertEquals(5, count($users));
//Remove first portlet from Super's ContactDetailsAndRelationsView
$defaultLayoutId = 'Contact' . PushDashboardUtil::DETAILS_AND_RELATIONS_VIEW;
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
if (empty($defaultPortlets)) {
$metadata = ContactDetailsAndRelationsView::getDefaultMetadata();
$portletCollection = Portlet::makePortletsUsingMetadataSortedByColumnIdAndPosition($defaultLayoutId, $metadata, $super, null);
$this->assertNotEmpty($portletCollection);
Portlet::savePortlets($portletCollection);
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
}
$this->assertTrue(count($defaultPortlets) > 0);
foreach ($defaultPortlets as $portlet) {
$portlet->delete();
break;
}
$defaultPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $super->id);
$deafultPortletViews = array();
foreach ($defaultPortlets as $portlet) {
$deafultPortletViews[] = $portlet->viewType;
}
//Push super's default ContactDetailsAndRelationsView to five users
$userIds = array();
foreach ($users as $user) {
$userIds[] = $user->id;
}
$groupsAndUsers = array();
$groupsAndUsers['groups'] = array();
$groupsAndUsers['users'] = $userIds;
PushDashboardUtil::pushLayoutToUsers(new Contact(false), $groupsAndUsers);
//Validate portlets of five user's ContactDetailsAndRelationsView with super's ContactDetailsAndRelationsView
foreach ($users as $user) {
$userPortlets = Portlet::getByLayoutIdAndUserSortedById($defaultLayoutId, $user->id);
$this->assertEquals(count($defaultPortlets), count($userPortlets));
foreach ($userPortlets as $portlet) {
$this->assertTrue(in_array($portlet->viewType, $deafultPortletViews));
}
}
}