"Moin"!
danke erstmal für deine schnelle Hilfe!
Hab mir nun die ID der einzelnen RRPs mit in das Array aufgenommen und nun deine Klasse versucht ein wenig abzuändern.
Habe in die getHTML-Methode HTMLTableColumns-Klasse den Paramter $id angefügt, als Eigenschaft bereitgestellt und übergebe diesen auch.
Nur ich fürchte ich habe irgendetwas nicht in deiner Klasse bedacht.
Hier die HTMLTableColumns:
PHP-Code:
class HTMLTableColumn {
private $value = null;
private $rowspan = null;
private $id = null;
public function __construct($value, $rowspan = 0, $id) {
$this->value = $value;
$this->rowspan = $rowspan;
$this->id = $id;
}
public function getHTML() {
$output.= '<td';
if ($this->rowspan > 0) {
$output.= ' rowspan="' . $this->rowspan . '"';
}
$output.= ' align="center">';
if($this->value == "true"){
$ret = "<img id='".$this->id."' src='images/icons/accept.png'>";
}elseif($this->value == "false"){
$ret = "<img id='".$this->id."' src='images/icons/delete.png'>";
}else{
$ret = $this->value;
}
return $output . $ret . '</td>';
}
}
Die Aufbereitung des Arrays:
PHP-Code:
$permissions = Model::getDataset($role_id, "GetPermissions", true, "FK_Role_ID", true);
$arr = array();
foreach($permissions as $permission){
$arr[$permission['Description']][$permission['Ressource']] = array('ID' => $permission['rrpID'], $permission['Property'] => $permission['allow']);
}
Und die Verarbeitung des Arrays:
PHP-Code:
$table = new HTMLTable();
foreach ($arr as $key => $value) {
$row = new HTMLTableRow();
$rowspan = sizeof($value);
$col1 = new HTMLTableColumn($key, $rowspan);
$row->addColumn($col1);
$cntCols = sizeof($value);
$colKey = array_keys($value);
for ($i = 0; $i < 1; $i++) {
$col = new HTMLTableColumn($colKey[$i]);
$row->addColumn($col);
foreach ($value[$colKey[$i]] as $colValue) {
$col = new HTMLTableColumn($colValue,0, $value[$colKey[$i]]['ID']);
$row->addColumn($col);
}
}
$table->addRow($key, $row);
$headerData = array();
$headerData['role'] = 'Rolle';
$headerData['resource'] = 'Ressource';
for ($i = 1; $i < $cntCols; $i++) {
$row1 = new HTMLTableRow();
$col = new HTMLTableColumn($colKey[$i]);
$row1->addColumn($col);
foreach ($value[$colKey[$i]] as $permKey => $colValue) {
$headerData[$permKey] = $permKey;
$col = new HTMLTableColumn($colValue);
$row1->addColumn($col);
}
$table->addRow($key . $i, $row1);
}
}
$header = new HTMLHeader($headerData);
$table->addHeader($header);
$view->assign('Array',$arr);
$view->assign('Table', $table);
Eventuell siehst du dort noch einen Fehler, der dort ganz gewiss irgendwo schlummert.
Achja btw. meine Ausgabe sieht wie folgt aus (falls es dir etwas helfen sollte):