/** * Adds a table row to the html. * @param Entity $entity */ protected function addHtmlTableRow(Entity $entity) { $this->html .= '<tr>'; $modelTable = $entity->getModelTable(); foreach ($this->configurationHelper->getFieldList() as $fieldName) { if ($this->configurationHelper->showInOverView($fieldName) && !in_array($fieldName, $this->hiddenFields)) { $type = $this->configurationHelper->getFieldType($fieldName); $fieldClassName = 'PvikAdminTools\\Library\\Fields\\' . $type; if (!class_exists($fieldClassName)) { throw new \Exception('PvikAdminTools: The type ' . $type . ' does not exists. Used for the field ' . $fieldName); } $field = new $fieldClassName($fieldName, $entity, $this->request, new ValidationState()); /* @var $field PvikAdminToolsBaseField */ $this->html .= '<td>' . $field->htmlOverview() . '</td>'; } } if ($this->configurationHelper->hasForeignTables()) { foreach ($this->configurationHelper->getForeignTables() as $foreignTableName => $foreignTable) { if (isset($foreignTable['ShowCountInOverview']) && $foreignTable['ShowCountInOverview'] == true) { // much faster than accessing view $entity->$foreignTableName->count // this would load the entire entries $this->html .= '<td>' . count($entity->getKeys(lcfirst($foreignTableName))) . '</td>'; } } } // add options $this->html .= '<td class="options">['; $editButtonUrl = \Pvik\Core\Path::relativePath('~' . \Pvik\Core\Config::$config['PvikAdminTools']['Url'] . 'tables/' . strtolower($modelTable->getModelTableName()) . ':edit:' . $entity->getPrimaryKey() . '/'); if ($this->buttonRedirectBack != null) { $editButtonUrl .= '?redirect-back-url=' . urlencode($this->buttonRedirectBack); } $this->html .= '<a href="' . $editButtonUrl . '">edit</a>|'; $deleteButtonUrl = \Pvik\Core\Path::relativePath('~' . \Pvik\Core\Config::$config['PvikAdminTools']['Url'] . 'tables/' . strtolower($modelTable->getModelTableName()) . ':delete:' . $entity->getPrimaryKey() . '/'); if ($this->buttonRedirectBack != null) { $deleteButtonUrl .= '?redirect-back-url=' . urlencode($this->buttonRedirectBack); } $this->html .= '<a href="' . $deleteButtonUrl . '" onclick="return confirm(\'Do you really want to delete this entry?\')">delete</a>'; $this->html .= ']</td>'; $this->html .= '</tr>'; }