+ if (!$colconf['visible']) {
+ continue;
+ }
+
+ print "\t";
+ printf('<li><label for="%s">%s:</label>', $col, ucfirst($colconf['label']));
+ if (@$colconf['type'] == 'file' and isset($colconf['value'])) {
+ printf('<a href="/%s"><img src="/thumb/%s/%s?%s" /></a><br />',
+ $colconf['target'],
+ 200, $colconf['target'], filemtime($colconf['target'])
+ );
+ }
+
+ if ($hide = @$colconf['hide'] and empty($_POST[$col])) {
+ printf('<a onclick="%s">Wijzigen</a><span id="%s" hidden>',
+ "document.getElementById('$hide').removeAttribute('hidden'); this.remove()",
+ $hide
+ );
+ }
+
+ if (isset($colconf['input'])) {
+ print $colconf['input'];
+ }
+ elseif (isset($colconf['values'])) {
+ foreach ($colconf['values'] as $tag => $val) {
+ printf(
+ "\n\t\t" .
+ '<input type="hidden" name="%1$s" value="" />' .
+ '<input type="checkbox" name="%s" value="1" id="%s"%s%s />' .
+ '<label for="%2$s"> %s</label>',
+ "tags[$tag]", "tag-$tag",
+ $val['value'] ? ' checked' : '',
+ isset($val['target']) ? '' : ' readonly',
+ ucfirst($tag)
+ );
+ }
+ }
+ else {
+ if (isset($cols[$col]['filter'])) {
+ list ($targetstr, $inputstr) = $cols[$col]['filter'];
+ $colconf['value'] = str_replace($targetstr, $inputstr, @$colconf['value']);
+ }
+
+ $attrs = [
+ 'type' => @$colconf['type'] ?: 'text',
+ 'name' => $col,
+ 'id' => $col,
+ 'value' => htmlspecialchars(@$colconf['value']),
+ 'placeholder' => "Niet ingesteld",
+ 'readonly' => empty($colconf['target']),
+ 'pattern' => @$colconf['pattern'] ?: FALSE,
+ 'size' => @$colconf['size'] ?: FALSE,
+ ];
+ if (@$colconf['type'] == 'file') {
+ $attrs['accept'] = "image/jpeg";
+ }
+
+ print '<input';
+ foreach ($attrs as $attr => $attrval) {
+ if ($attrval === FALSE) {
+ continue;
+ }
+ print ' ' . $attr;
+ if ($attrval !== TRUE) {
+ printf('="%s"', $attrval);
+ }
+ }
+ print ' />';
+ }
+
+ if (!empty($colconf['explain'])) {
+ printf(' <span>(%s)</span>', $colconf['explain']);
+ }
+
+ if ($hide) {
+ print '</span>';
+ }