X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/6a6c1c31adb0932904685275f0d3d75185c0b69b..v3.9-8-g882347cba8:/login/edit.php diff --git a/login/edit.php b/login/edit.php index 8f39f09..d6ee4c9 100644 --- a/login/edit.php +++ b/login/edit.php @@ -4,21 +4,18 @@ if (empty($user = &$User)) { return; } -if (!empty($User['admin']) -and !empty($Place['user']) and $Place['user'] !== $User['name']) { +if ($User->admin +and !empty($Place['user']) and $Place['user'] !== $User->login) { $username = strtolower($Place['user']); unset($user); - $user = [ - 'dir' => "profile/$username", - 'name' => $username, - ]; + $user = new User("profile/$username"); } require_once('edit.inc.php'); foreach ($cols as $col => &$colconf) { if (isset($colconf['visible'])) { - if ($colconf['visible'] == 'admin' and empty($User['admin'])) { + if ($colconf['visible'] == 'admin' and !$User->admin) { $colconf['visible'] = FALSE; continue; } @@ -39,26 +36,27 @@ foreach ($cols as $col => &$colconf) { $tags = []; foreach (glob($colconf['filename'] . '/*') as $tag) { $tagname = pathinfo($tag, PATHINFO_BASENAME); - $target = "$tag/{$user['name']}"; + $target = "$tag/{$user->login}"; $val = file_exists($target); - $tags[$tagname] = ['value' => $val]; + $tagopt = &$colconf['values'][$tagname] ?: []; + $tagopt['value'] = $val; if (!is_writable($tag)) { continue; # locked tag directory } if ($val and !is_writable($target)) { continue; # existing file locked } - $tags[$tagname]['target'] = $target; + $tagopt['target'] = $target; } } $filetype = @$colconf['type'] == 'file' ? 'jpg' : 'txt'; - $colpath = $user['dir'] . '/' . $colconf['filename']; + $colpath = $user->dir . '/' . $colconf['filename']; if (file_exists($colpath)) { $colconf['value'] = $filetype != 'txt' ? '' : - file_get_contents($colpath); + rtrim(file_get_contents($colpath)); } - if (file_exists($user['dir']) and !is_writable($user['dir'])) { + if (file_exists($user->dir) and !is_writable($user->dir)) { continue; # locked parent directory } if (isset($colconf['value']) and !is_writable($colpath)) { @@ -69,8 +67,8 @@ foreach ($cols as $col => &$colconf) { $colwarn = []; if ($_POST) { - if (!file_exists($user['dir']) and !@mkdir($user['dir'])) { - print "

Fout bij het aanmaken van gebruikersprofiel voor {$user['name']}.

\n\n"; + if (!file_exists($user->dir) and !@mkdir($user->dir)) { + print "

Fout bij het aanmaken van gebruikersprofiel voor {$user->login}.

\n\n"; return; } @@ -93,7 +91,7 @@ if ($_POST) { } else { # link option target to current user dir - $optok = @symlink("../../{$user['name']}", $option['target']); + $optok = @symlink("../../{$user->login}", $option['target']); } $option['value'] = $optval; # update form value if (!$optok) { @@ -121,6 +119,9 @@ if ($_POST) { } continue; } + if (@$cols[$col]['type'] != 'file') { + $val .= "\n"; # eol in text files + } if (file_put_contents($cols[$col]['target'], $val) === FALSE) { $colwarn[$col] = "Fout bij opslaan."; } @@ -172,9 +173,10 @@ foreach ($cols as $col => &$colconf) { print "\t"; printf('
  • ', $col, ucfirst($colconf['label'])); if (@$colconf['type'] == 'file' and isset($colconf['value'])) { + $target = $user['dir'] . '/' . $colconf['filename']; printf('
    ', - $colconf['target'], - 200, $colconf['target'], filemtime($colconf['target']) + $target, + 200, $target, filemtime($target) ); } @@ -196,16 +198,16 @@ foreach ($cols as $col => &$colconf) { '' . '', "tags[$tag]", "tag-$tag", - $val['value'] ? ' checked' : '', + !empty($val['value']) ? ' checked' : '', isset($val['target']) ? '' : ' readonly', - ucfirst($tag) + @$val['label'] ?: ucfirst($tag) ); } } - else { + elseif (@$colconf['type'] !== 'file' or isset($colconf['target'])) { if (isset($cols[$col]['filter'])) { list ($targetstr, $inputstr) = $cols[$col]['filter']; - $colconf['value'] = str_replace($targetstr, $inputstr, $colconf['value']); + $colconf['value'] = str_replace($targetstr, $inputstr, @$colconf['value']); } $attrs = [ @@ -215,12 +217,7 @@ foreach ($cols as $col => &$colconf) { '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"; - } + ] + (@$colconf['attr'] ?: []); print ' $attrval) {