N°3203 - Datamodel: Add semantic for image & state attributes Part. I

This commit is contained in:
Molkobain
2020-11-02 14:51:25 +01:00
parent 7864461d85
commit 50421f4753
10 changed files with 154 additions and 28 deletions

View File

@@ -23,13 +23,31 @@ class TitleFactory
public static function MakeForObjectDetails(DBObject $oObject, ?string $sId = null)
{
// TODO 3.0.0: Refactor all of this
$sObjIconUrl = $oObject->GetIcon(false);
$sObjClass = get_class($oObject);
$sObjClassName = MetaModel::GetName($sObjClass);
$sObjName = $oObject->GetName();
// Object icon
// - Default icon is the class icon
$sObjIconUrl = $oObject->GetIcon(false);
// Note: Class icons are a square image with no margin around, so they need to be zoomed out in the medallion
$sIconCoverMethod = Title::ENUM_ICON_COVER_METHOD_ZOOMOUT;
// - Use object image from seantic attribute only if it's not the default image
if(!$oObject->IsNew()){
$sImageAttCode = MetaModel::GetImageAttributeCode($sObjClass);
if(!empty($sImageAttCode)){
/** @var \ormDocument $oImage */
$oImage = $oObject->Get($sImageAttCode);
if(!$oImage->IsEmpty()){
$sObjIconUrl = $oImage->GetDisplayURL($sObjClass, $oObject->GetKey(), $sImageAttCode);
$sIconCoverMethod = Title::ENUM_ICON_COVER_METHOD_COVER;
}
}
}
$oTitle = new TitleForObjectDetails($sObjClassName, $sObjName, $sId);
$oTitle->SetIcon($sObjIconUrl);
$oTitle->SetIcon($sObjIconUrl, $sIconCoverMethod);
$sStatusAttCode = MetaModel::GetStateAttributeCode($sObjClass);
if (!empty($sStatusAttCode)) {