Current File : /pages/54/47/d0016649/home/htdocs/matrixprinzip/wp-content/plugins/digimember/inc/filters.php |
<?php
add_filter( "pre_get_posts", 'digimember_supress_filter', 100 );
function digimember_supress_filter( $query ) {
$must_supress = !ncore_isAdminArea() && !ncore_canAdmin();
if ($must_supress) {
$query->set('suppress_filters', false);
}
return $query;
}
add_filter('manage_users_columns', 'digimember_manage_users_columns');
function digimember_manage_users_columns( $columns ) {
$columns['dm_login_counter'] = _digi( 'Number of logins' );
$columns['dm_login_last_date'] = _digi( 'Last login' );
$columns['user_registered'] = _digi( 'Registered' );
$columns['dm_can_autologin'] = _digi( 'Can autologin' );
return $columns;
}
add_action('manage_users_custom_column', 'digimember_manage_users_custom_column', 10, 3);
function digimember_manage_users_custom_column($value, $column_name, $user_id) {
static $model, $user_model, $last_user_id, $count, $last_login;
if (empty($model))
{
$api = dm_api();
$model = $api->load->model( 'data/counter' );
$user_model = $api->load->model( 'data/user' );
$api->load->helper( 'date' );
}
$must_reload = empty($last_user_id) || $last_user_id != $user_id;
if ($must_reload)
{
list( $count, $last_login ) = $model->getLoginCounter( $user_id );
$last_user_id = $user_id;
}
switch ($column_name)
{
case 'dm_can_autologin':
$can_auto_login = $user_model->canAutoLogin( $user_id );
$tooltip = $can_auto_login
? _digi( 'Autologin is enabled, because the user still has is auto generated password.' )
: _digi( 'Autologin is disabled, because the user changed his password.' );
return $icon = ncore_icon( $can_auto_login ? 'yes' : 'no', $tooltip );
case 'dm_login_counter':
return $count;
case 'dm_login_last_date':
if (!$last_login)
{
return '-';
}
$now_unix = time();
$date_unix = strtotime( $last_login );
$seconds = max( 0, $now_unix - $date_unix );
$age = ncore_formatTimeSpan( $seconds, $message='ago', 'days+' );
$date = ncore_formatDateTime( $date_unix );
return "<abbr title=\"$date\">$age</abbr>";
case 'user_registered':
if ($value)
{
return $value;
}
$user = ncore_getUserById( $user_id );
$registered_at = ncore_retrieve( $user, 'user_registered' );
$now_unix = time();
$date_unix = strtotime( $registered_at );
$seconds = max( 0, $now_unix - $date_unix );
$age = ncore_formatTimeSpan( $seconds, $message='ago', 'days+' );
$date = ncore_formatDateTime( $date_unix );
return "<abbr title=\"$date\">$age</abbr>";
}
return $value;
}
add_filter( 'manage_users_sortable_columns', 'digimember_manage_users_sortable_columns' );
function digimember_manage_users_sortable_columns( $columns ) {
$columns['dm_login_counter'] = 'dm_login_counter';
$columns['dm_login_last_date'] = 'dm_login_last_date';
$columns['user_registered'] = 'dm_user_registered';
return $columns;
}
// add_action('pre_user_query', 'digimember_pre_user_query');
add_action( 'pre_user_query', 'digimember_pre_user_query' );
function digimember_pre_user_query( $query ) {
$order_by = $query->get( 'orderby' );
switch ($order_by)
{
case 'dm_login_counter':
case 'dm_login_last_date':
global $wpdb;
$wp_user = $wpdb->users;
$model = dm_api()->load->model( 'data/counter' );
$dm_counter = $model->sqlTableName();
$column_map = array(
'dm_login_counter' => "$dm_counter.count",
'dm_login_last_date' => "$dm_counter.modified",
);
$query->query_from .= " LEFT JOIN $dm_counter ON ($wp_user.ID = $dm_counter.user_id AND $dm_counter.name='login')";
$column = $column_map[ $order_by ];
$query->set( 'orderby', $column );
$dir = $query->get('order') === 'DESC'
? 'ASC'
: 'DESC';
$query->query_orderby = "ORDER BY $column $dir";
break;
case 'dm_user_registered':
$dir = $query->get('order') === 'DESC'
? 'ASC'
: 'DESC';
$query->set( 'orderby', 'user_registered' );
$query->query_orderby = "ORDER BY user_registered $dir";
break;
}
}
add_filter('ds24_affiliate_for_link_generator', 'digimember_ds24_affiliate_for_link_generator');
function digimember_ds24_affiliate_for_link_generator( $preset_affiliate )
{
return digimember_getDs24AffiliateName();
}
add_filter( 'plugin_locale', 'digimember_locale', 10, 2 );
function digimember_locale( $locale, $domain )
{
if ($locale == 'de_DE') {
return $locale;
}
$is_de = $locale[0] == 'd' && $locale[1] == 'e';
if (!$is_de) {
return $locale;
}
$my_domains = array( 'ncore', 'digimember', 'digimember-3rd-party', 'digimember_you', 'digimember_you_du_lower', 'digimember_you_du_upper' );
if (!in_array( $domain, $my_domains))
{
return $locale;
}
return 'de_DE';
}
add_action( 'delete_user', 'digimember_delete_user' );
function digimember_delete_user( $user_id )
{
$user_obj = get_userdata( $user_id );
$email = $user_obj->user_email;
$api = dm_api();
$api->load->model( 'data/user' );
$api->user_data->delete( $user_id );
$lib = $api->load->library( 'autoresponder_handler' );
$lib->maybeUnsubscribeDeletedUser( $email );
}
function digimember_enqueue_script() {
wp_enqueue_script("jquery");
}
add_action( 'wp_enqueue_scripts', 'digimember_enqueue_script' );