Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
AttributesLayoutAdapterUtil.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
41  {
48  public static function makeAttributesLayoutAdapter(
49  $attributeCollection,
50  DesignerRules $designerRules,
51  $editableMetadata
52  )
53  {
54  assert('is_array($attributeCollection)');
55  assert('is_array($editableMetadata)');
56  return new AttributesLayoutAdapter(
57  $attributeCollection,
58  $designerRules->formatEditableMetadataForLayoutParsing($editableMetadata),
59  AttributesLayoutAdapterUtil::getPlaceableDerivedAttributeTypes(
60  $designerRules, $editableMetadata),
61  AttributesLayoutAdapterUtil::getNonPlaceableLayoutAttributeNames(
62  $designerRules, $editableMetadata),
63  AttributesLayoutAdapterUtil::getNonPlaceableLayoutAttributeTypes(
64  $designerRules, $editableMetadata)
65  );
66  }
67 
74  public static function makeByViewAndModelAndDesignerRules(
75  $viewClassName, $modelClassName, DesignerRules $designerRules)
76  {
77  assert('is_string($viewClassName)');
78  assert('is_string($modelClassName)');
79  $editableMetadata = $viewClassName::getMetadata();
80  $modelAttributesAdapter = DesignerModelToViewUtil::getModelAttributesAdapter($viewClassName, $modelClassName);
81  $attributeCollection = $modelAttributesAdapter->getAttributes();
83  $attributeCollection,
84  $designerRules,
85  $editableMetadata
86  );
87  return $attributesLayoutAdapter;
88  }
89 
90  protected static function getNonPlaceableLayoutAttributeNames($designerRules, $editableMetadata)
91  {
92  $attributeNames = $designerRules->getNonPlaceableLayoutAttributeNames();
93  if (isset($editableMetadata['global']['nonPlaceableAttributeNames']))
94  {
95  assert('is_array($editableMetadata["global"]["nonPlaceableAttributeNames"])');
96  $attributeNames = array_merge($attributeNames, $editableMetadata['global']['nonPlaceableAttributeNames']);
97  }
98 
99  return $attributeNames;
100  }
101 
102  protected static function getNonPlaceableLayoutAttributeTypes($designerRules, $editableMetadata)
103  {
104  $attributeTypes = $designerRules->getNonPlaceableLayoutAttributeTypes();
105  if (isset($editableMetadata['global']['nonPlaceableAttributeTypes']))
106  {
107  assert('is_array($editableMetadata["global"]["nonPlaceableAttributeTypes"])');
108  $attributeTypes = array_merge($attributeTypes, $editableMetadata['global']['nonPlaceableAttributeTypes']);
109  }
110 
111  return $attributeTypes;
112  }
113 
114  protected static function getPlaceableDerivedAttributeTypes($designerRules, $editableMetadata)
115  {
116  $attributeTypes = $designerRules->getDerivedAttributeTypes();
117  if (isset($editableMetadata['global']['derivedAttributeTypes']))
118  {
119  assert('is_array($editableMetadata["global"]["derivedAttributeTypes"])');
120  $attributeTypes = array_merge($attributeTypes, $editableMetadata['global']['derivedAttributeTypes']);
121  }
122 
123  return $attributeTypes;
124  }
125  }
126 ?>
static makeAttributesLayoutAdapter($attributeCollection, DesignerRules $designerRules, $editableMetadata)
formatEditableMetadataForLayoutParsing($metadata)
static makeByViewAndModelAndDesignerRules($viewClassName, $modelClassName, DesignerRules $designerRules)
static getModelAttributesAdapter($viewClassName, $modelClassName)
Generated on Fri Nov 27 2020 07:10:24
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.