本文整理汇总了PHP中ContactsUtil::setStartingStateByOrder方法的典型用法代码示例。如果您正苦于以下问题:PHP ContactsUtil::setStartingStateByOrder方法的具体用法?PHP ContactsUtil::setStartingStateByOrder怎么用?PHP ContactsUtil::setStartingStateByOrder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ContactsUtil
的用法示例。
在下文中一共展示了ContactsUtil::setStartingStateByOrder方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setAttributeMetadataFromForm
public function setAttributeMetadataFromForm(AttributeForm $attributeForm)
{
$modelClassName = get_class($this->model);
$attributeName = $attributeForm->attributeName;
$attributeLabels = $attributeForm->attributeLabels;
$elementType = $attributeForm->getAttributeTypeName();
$isRequired = (bool) $attributeForm->isRequired;
$isAudited = (bool) $attributeForm->isAudited;
$contactStatesData = $attributeForm->contactStatesData;
$contactStatesLabels = $attributeForm->contactStatesLabels;
$startingStateOrder = (int) $attributeForm->startingStateOrder;
$contactStatesDataExistingValues = $attributeForm->contactStatesDataExistingValues;
if ($contactStatesDataExistingValues == null) {
$contactStatesDataExistingValues = array();
}
if ($attributeForm instanceof ContactStateAttributeForm) {
//update order on existing states.
//delete removed states
$states = ContactState::getAll('order');
$stateNames = array();
foreach ($states as $state) {
if (in_array($state->name, $contactStatesData)) {
$stateNames[] = $state->name;
$state->order = array_search($state->name, $contactStatesData);
$state->serializedLabels = $this->makeSerializedLabelsByLabelsAndOrder($contactStatesLabels, (int) $state->order);
$saved = $state->save();
assert('$saved');
} elseif (in_array($state->name, $contactStatesDataExistingValues)) {
$order = array_search($state->name, $contactStatesDataExistingValues);
$state->name = $contactStatesData[$order];
$state->order = $order;
$state->serializedLabels = $this->makeSerializedLabelsByLabelsAndOrder($contactStatesLabels, (int) $state->order);
$saved = $state->save();
assert('$saved');
$stateNames[] = $state->name;
} else {
$stateNames[] = $state->name;
$state->delete();
}
}
//add new states with correct order.
foreach ($contactStatesData as $order => $name) {
if (!in_array($name, $stateNames)) {
$state = new ContactState();
$state->name = $name;
$state->order = $order;
$state->serializedLabels = $this->makeSerializedLabelsByLabelsAndOrder($contactStatesLabels, (int) $order);
$saved = $state->save();
assert('$saved');
}
}
//Set starting state by order.
ContactsUtil::setStartingStateByOrder($startingStateOrder);
ModelMetadataUtil::addOrUpdateRelation($modelClassName, $attributeName, $attributeLabels, $elementType, $isRequired, $isAudited, 'ContactState');
} else {
throw new NotSupportedException();
}
}
示例2: testContactsUtilSetStartingStateByOrder
public function testContactsUtilSetStartingStateByOrder()
{
$startingStateId = ContactsUtil::getStartingStateId();
$startingState = ContactState::getById($startingStateId);
$startingState->delete();
$this->assertEquals(6, count(ContactState::GetAll()));
ContactsUtil::setStartingStateByOrder(2);
$startingStateId = ContactsUtil::getStartingStateId();
$states = ContactState::getAll('order');
$this->assertEquals($states[1]->id, $startingStateId);
$startingState = ContactState::getByName('Recycled');
$this->assertEquals(1, count($startingState));
$this->assertEquals($startingState[0]->id, $startingStateId);
}