2016-07-07 18:47:48 +02:00
|
|
|
<?php
|
|
|
|
|
namespace Grav\Plugin\Admin;
|
|
|
|
|
|
|
|
|
|
use Grav\Common\Grav;
|
|
|
|
|
use Grav\Common\User\User;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Admin utils class
|
|
|
|
|
*
|
|
|
|
|
* @license MIT
|
|
|
|
|
*/
|
|
|
|
|
class Utils
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Matches an email to a user
|
|
|
|
|
*
|
2016-11-07 09:54:10 -07:00
|
|
|
* @param $email
|
|
|
|
|
*
|
2016-07-07 18:47:48 +02:00
|
|
|
* @return User
|
|
|
|
|
*/
|
2016-07-07 18:53:37 +02:00
|
|
|
public static function findUserByEmail($email)
|
2016-07-07 18:47:48 +02:00
|
|
|
{
|
|
|
|
|
$account_dir = Grav::instance()['locator']->findResource('account://');
|
2018-05-09 12:24:01 +03:00
|
|
|
$files = array_diff(scandir($account_dir, SCANDIR_SORT_ASCENDING), ['.', '..']);
|
2016-07-07 18:47:48 +02:00
|
|
|
|
|
|
|
|
foreach ($files as $file) {
|
|
|
|
|
if (strpos($file, '.yaml') !== false) {
|
|
|
|
|
$user = User::load(trim(substr($file, 0, -5)));
|
2018-05-09 12:24:01 +03:00
|
|
|
if ($user['email'] === $email) {
|
2016-07-07 18:47:48 +02:00
|
|
|
return $user;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// If a User with the provided email cannot be found, then load user with that email as the username
|
|
|
|
|
return User::load($email);
|
|
|
|
|
}
|
2017-05-16 17:31:57 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Generates a slug of the given string
|
|
|
|
|
*
|
|
|
|
|
* @param string $str
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public static function slug($str)
|
|
|
|
|
{
|
|
|
|
|
if (function_exists('transliterator_transliterate')) {
|
|
|
|
|
$str = transliterator_transliterate('Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove;', $str);
|
|
|
|
|
} else {
|
|
|
|
|
$str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$str = strtolower($str);
|
|
|
|
|
$str = preg_replace('/[-\s]+/', '-', $str);
|
|
|
|
|
$str = preg_replace('/[^a-z0-9-]/i', '', $str);
|
|
|
|
|
$str = trim($str, '-');
|
|
|
|
|
|
|
|
|
|
return $str;
|
|
|
|
|
}
|
2016-07-07 18:47:48 +02:00
|
|
|
}
|