1
0
mirror of https://github.com/typemill/typemill.git synced 2025-08-07 14:46:29 +02:00

Version 1.3.1: Improved Meta-Tabs and Translations

This commit is contained in:
trendschau
2020-01-06 17:23:30 +01:00
parent e09487e668
commit 0d09fe60b1
18 changed files with 471 additions and 66 deletions

View File

@@ -64,6 +64,7 @@ class Field
'id',
'autocomplete',
'placeholder',
'maxlength',
'size',
'rows',
'cols',

View File

@@ -38,6 +38,15 @@ class User extends WriteYaml
'password' => $this->generatePassword($params['password']),
'userrole' => $params['userrole']
);
if(isset($params['firstname']))
{
$userdata['firstname'] = $params['firstname'];
}
if(isset($params['lastname']))
{
$userdata['lastname'] = $params['lastname'];
}
if($this->updateYaml('settings/users', $userdata['username'] . '.yaml', $userdata))
{
@@ -58,8 +67,20 @@ class User extends WriteYaml
$update = array_merge($userdata, $params);
$this->updateYaml('settings/users', $userdata['username'] . '.yaml', $update);
$_SESSION['user'] = $update['username'];
$_SESSION['role'] = $update['userrole'];
if(isset($update['firstname']))
{
$_SESSION['firstname'] = $update['firstname'];
}
if(isset($update['lastname']))
{
$_SESSION['lastname'] = $update['lastname'];
}
return $userdata['username'];
return $userdata['username'];
}
public function deleteUser($username)
@@ -88,6 +109,15 @@ class User extends WriteYaml
$_SESSION['user'] = $user['username'];
$_SESSION['role'] = $user['userrole'];
$_SESSION['login'] = $user['lastlogin'];
if(isset($user['firstname']))
{
$_SESSION['firstname'] = $user['firstname'];
}
if(isset($user['lastname']))
{
$_SESSION['lastname'] = $user['lastname'];
}
}
}

View File

@@ -124,6 +124,10 @@ class Validation
$v->rule('lengthBetween', 'password', 5, 20)->message("Length between 5 - 20");
$v->rule('lengthBetween', 'username', 3, 20)->message("Length between 3 - 20");
$v->rule('userAvailable', 'username')->message("User already exists");
$v->rule('noHTML', 'firstname')->message(" contains HTML");
$v->rule('lengthBetween', 'firstname', 2, 40);
$v->rule('noHTML', 'lastname')->message(" contains HTML");
$v->rule('lengthBetween', 'lastname', 2, 40);
$v->rule('email', 'email')->message("e-mail is invalid");
$v->rule('in', 'userrole', $userroles);
@@ -137,10 +141,14 @@ class Validation
$v->rule('alphaNum', 'username')->message("invalid");
$v->rule('lengthBetween', 'username', 3, 20)->message("Length between 3 - 20");
$v->rule('userExists', 'username')->message("user does not exist");
$v->rule('noHTML', 'firstname')->message(" contains HTML");
$v->rule('lengthBetween', 'firstname', 2, 40);
$v->rule('noHTML', 'lastname')->message(" contains HTML");
$v->rule('lengthBetween', 'lastname', 2, 40);
$v->rule('email', 'email')->message("e-mail is invalid");
$v->rule('in', 'userrole', $userroles);
return $this->validationResult($v);
return $this->validationResult($v);
}
public function username($username)
@@ -329,7 +337,23 @@ class Validation
{
$v->rule('required', $fieldName);
}
if(isset($fieldDefinitions['maxlength']))
{
$v->rule('lengthMax', $fieldName, $fieldDefinitions['maxlength']);
}
if(isset($fieldDefinitions['max']))
{
$v->rule('max', $fieldName, $fieldDefinitions['max']);
}
if(isset($fieldDefinitions['min']))
{
$v->rule('min', $fieldName, $fieldDefinitions['min']);
}
if(isset($fieldDefinitions['pattern']))
{
$v->rule('regex', $fieldName, '/^' . $fieldDefinitions['pattern'] . '$/');
}
switch($fieldDefinitions['type'])
{
case "select":
@@ -350,7 +374,7 @@ class Validation
{
$v->rule('in', $key, $options);
}
break;
break;
case "color":
$v->rule('regex', $fieldName, '/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/');
break;
@@ -361,33 +385,35 @@ class Validation
$v->rule('date', $fieldName);
break;
case "checkbox":
$v->rule('accepted', $fieldName);
if(isset($fieldDefinitions['required']))
{
$v->rule('accepted', $fieldName);
}
break;
case "url":
$v->rule('lengthMax', $fieldName, 200);
$v->rule('url', $fieldName);
$v->rule('lengthMax', $fieldName, 200);
break;
case "text":
$v->rule('lengthMax', $fieldName, 200);
$v->rule('noHTML', $fieldName);
$v->rule('lengthMax', $fieldName, 500);
$v->rule('regex', $fieldName, '/^[\pL0-9_ \-\.\?\!\/\:]*$/u');
break;
case "textarea":
$v->rule('lengthMax', $fieldName, 1000);
$v->rule('noHTML', $fieldName);
// $v->rule('regex', $fieldName, '/<[^<]+>/');
$v->rule('lengthMax', $fieldName, 1000);
break;
case "paragraph":
$v->rule('lengthMax', $fieldName, 1000);
$v->rule('noHTML', $fieldName);
$v->rule('lengthMax', $fieldName, 1000);
break;
case "password":
$v->rule('lengthMax', $fieldName, 100);
break;
default:
$v->rule('lengthMax', $fieldName, 1000);
$v->rule('regex', $fieldName, '/^[\pL0-9_ \-]*$/u');
$v->rule('regex', $fieldName, '/^[\pL0-9_ \-]*$/u');
}
return $this->validationResult($v, $objectName);
}

View File

@@ -86,12 +86,27 @@ class WriteYaml extends Write
$description = substr($description, 0, $lastSpace);
}
$author = $settings['author'];
if(isset($_SESSION))
{
if(isset($_SESSION['firstname']) && $_SESSION['firstname'] !='' && isset($_SESSION['lastname']) && $_SESSION['lastname'] != '')
{
$author = $_SESSION['firstname'] . ' ' . $_SESSION['lastname'];
}
elseif(isset($_SESSION['user']))
{
$author = $_SESSION['user'];
}
}
# create new meta-file
$meta = [
'meta' => [
'title' => $title,
'description' => $description,
'author' => $settings['author'], # change to session, extend userdata
'author' => $author,
'created' => date("Y-m-d"),
]
];