public function testMatchingGetPermissionsForView() { $permissionsNames = ModulePermissionsEditViewUtil::getPermissionNamesForView(); $permissions = ModulePermissionsEditViewUtil::getPermissionsForView(); $this->assertEquals(count($permissionsNames), count($permissions)); $this->assertEquals(3, count($permissionsNames)); }
/** * Override to produce a form layout that does not follow the * standard form layout for EditView. */ protected function renderFormLayout($form = null) { $content = ''; $metadata = $this->getFormLayoutMetadata(); $permissions = ModulePermissionsEditViewUtil::getPermissionsForView(); assert('count($permissions) > 0'); foreach ($metadata['global']['panels'] as $panel) { if (!empty($panel['title'])) { $content .= '<div class="panelTitle">' . $panel['title'] . '</div>'; } $content .= '<table>'; $content .= '<colgroup>'; $content .= '<col style="width:20%" />'; $width = 80 / count($permissions); foreach ($permissions as $permission) { $content .= '<col style="width:' . $width . '%" />'; } $content .= '</colgroup>'; $content .= '<tbody>'; $content .= '<tr>'; $content .= '<th> </th>'; $permissionNames = ModulePermissionsEditViewUtil::getPermissionNamesForView(); $permissionLabels = ModulePermissionsEditViewUtil::getPermissionLabelsForView(); foreach ($permissionNames as $permission) { $content .= '<th>' . $permissionLabels[$permission] . '</th>'; } $content .= '</tr>'; foreach ($panel['rows'] as $row) { assert('!empty($row["title"])'); $title = Zurmo::t('ZurmoModule', $row['title']); $rowTitlesAndContent[$title] = '<th>' . $title . '</th>'; foreach ($row['cells'] as $cell) { if (is_array($cell['elements']) && $this->shouldDisplayCell(ArrayUtil::getArrayValue($cell, 'detailViewOnly'))) { foreach ($cell['elements'] as $elementInformation) { $editableTemplate = '<td colspan="{colspan}">{content}{error}</td>'; $this->resolveElementInformationDuringFormLayoutRender($elementInformation); $elementclassname = $elementInformation['type'] . 'Element'; $element = new $elementclassname($this->model, $elementInformation['attributeName'], $form, array_slice($elementInformation, 2)); $element->editableTemplate = $editableTemplate; $rowTitlesAndContent[$title] .= $element->render(); } } } } ksort($rowTitlesAndContent); foreach ($rowTitlesAndContent as $rowcontent) { if (!empty($rowcontent)) { $content .= '<tr>'; $content .= $rowcontent; $content .= '</tr>'; } } $content .= '</tbody>'; $content .= '</table>'; } return $content; }