HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RClaassen/stay-on-track.nl/wwwroot/vacatures/application/libraries/listview.php
<?php 
if ( ! defined('BASEPATH')) {
	exit('No direct script access allowed'); 
}

class Listview  {
	protected $actions = array();
	protected $list;
	protected $key;
	protected $baseUrl;
	protected $omitColumns;

	public function __construct() {
		$this->omitColumns = array();
		$this->actions = array('show', 'edit', 'delete');
	}

	public function renderlist() {
		if(is_array($this->list) && sizeof($this->list) > 0) {
			$firstRow = get_object_vars($this->list[0]);
			$listKeys = array_keys($firstRow);
			$returnList  = '<table>' . PHP_EOL;
			$returnList .= '<tr>';
			foreach($listKeys as $columnName) {
				if($columnName !== $this->key && !in_array($columnName, $this->omitColumns)) {
					$returnList .= '<th>' . $columnName . '</th>';
				}
			}
			$returnList .= '</tr>' . PHP_EOL;
			foreach($this->list as $row) {
				$returnList .= '<tr>';
				foreach($listKeys as $columnName) {
					if($columnName !== $this->key && !in_array($columnName, $this->omitColumns)) {
						$returnList .= '<td>';
						if(strlen($row->$columnName) > 0) {
							$returnList .=  $row->$columnName;
						} else {
							$returnList .= '&nbsp;';
						}
						$returnList .= '</td>';
					}
				}
				$returnList .= '<td>';
				foreach($this->actions as $action) {
					$key = $this->key;
					$returnList .= '<a href="' . $this->baseUrl . '/' . $action . '/' . $row->$key . '" class="icon ' . $action . '"></span>';
				}
				$returnList .= '</tr>' . PHP_EOL;
			}
			$returnList .= '</table>' . PHP_EOL;
		} else {
			$returnList = 'Geen resultaten gevonden';
		}
		return $returnList;
	}

	public function setList($list) {
		$this->list = $list;
	}
	public function setKey($key) {
		$this->key = $key;
	}
	public function setBaseUrl($baseUrl) {
		$this->baseUrl = $baseUrl;
	}
	public function setOmitColumns($omitColumns) {
		$this->omitColumns = $omitColumns;
	}
}