Rytterprofil

[insert_php]

// facebook m.m. virker ikke å støtte formatet på denne siden i preview

$fallback_user_id=116; //Forutsatt i koden nedenfor at denne ikke er 0 (viser dermed alltid en profil etter søk, rent visuelt bra) – pt settes denne til sykkelgruppens leder – Runner = 116
//$default_avatar_url=»http://www.sagenesykkel.com/wp-content/uploads/2015/06/AvatarStjerna.jpg»;
$default_avatar_url=»/wp-content/uploads/2016/05/AvatarStjernaDark.png»;
$current_user_id=wp_get_current_user()->ID;
$current_user_login=wp_get_current_user()->user_login;
$current_user_nicename=wp_get_current_user()->user_nicename;

$url_id = $_GET[‘id’];

$user_id=get_user_by( ‘login’, $url_id )->ID; // Ser ut til å konvertere æ, ø og å i $url_id til hhv ae, o og a, som fungerer bra i forhold til bruker login’ene.
if (0 == $user_id) {
if ( $current_user_id ) {
$user_id=$current_user_id;
} else {
$user_id=$fallback_user_id;
}
if ( $url_id ) {
$user_id = -1;
}
}
$user_level=get_user_by( ‘id’, $user_id )->user_level;
$user_login=get_user_by( ‘id’, $user_id )->user_login;
$user_nicename=get_user_by( ‘id’, $user_id )->user_nicename;
$user_email=get_user_by( ‘id’, $user_id )->user_email;
$user_nickname=get_user_by( ‘id’, $user_id )->nickname;
$user_display_name=get_user_by( ‘id’, $user_id )->display_name;
$user_url=get_user_by( ‘id’, $user_id )->user_url;
$user_firstname=get_user_by( ‘id’, $user_id )->first_name; // For gamle samt nyopprettede profiler
$user_lastname=get_user_by( ‘id’, $user_id )->last_name; // For gamle samt nyopprettede profiler
$user_description=get_user_by( ‘id’, $user_id )->description;

$user_data = new WP_User( $user_id );
foreach ($user_data->roles as $user_role); // For skille mellom gamle (no role) og nyopprettede (subscriber) profiler

// ———————————————–

$filename = ‘d4Gs9GJk4dmw7jvqh2gJoaF4As3owZ/medlemmer.csv’;

if (file_exists($filename)) {
$time_stamp_pre = new DateTime(date(«Y-m-d H:i:s», filectime($filename))); // alternative dato funksjoner – fileatime, filectime, filemtime
$time_stamp_pre->setTimezone(new DateTimeZone(‘Europe/Oslo’));
$time_stamp = $time_stamp_pre->format(‘d/m H:i’);
}

$temp_person_id_pos = 0;
$temp_first_name_pos = 1;
$temp_surname_pos = 2;
$temp_birth_year_pos = 3;
$temp_member_sex_pos = 4;
$temp_member_since_pos = 5;
$temp_activities_pos = 6;
$temp_details_pos = 7;
$temp_details_field_array = array(‘Medlemsnr’, ‘Medlem siden’, ‘[rrid]’, ‘[bruker]’);
$temp_details_no_pos = 1;
$temp_details_man_member_since_pos = 2;
$temp_details_rrid_pos = 3;
$temp_details_user_name_pos = 4;

if (file_exists($filename)) {

$source_line = 0;
if (($handle = fopen($filename, «r»)) !== FALSE) {
while (($data = fgetcsv($handle, 0, «;»)) !== FALSE) {
$source_line++;
// if ($source_line === 1) { $time_stamp = substr($data[$temp_person_id_pos], -19);}
if ($source_line > 2) { // ‘full’ fil har datostempel, linjeverdi 2 for å ikke lese inn dette og headings i array

$temp_details = $data[$temp_details_pos];

foreach( $temp_details_field_array as $temp_details_field_name) {
$temp_details_field_name = $temp_details_field_name . ‘: ‘;
$temp_details_field_number++;
$temp_details_field_pos = strpos($temp_details, $temp_details_field_name);
if ($temp_details_field_pos !== FALSE) {
$temp_details_short = substr($temp_details, $temp_details_field_pos);
$temp_details_field_pos_end = strpos($temp_details_short, ‘|’);
if($temp_details_field_pos_end == FALSE) {
$temp_field[$temp_details_field_number] = substr($temp_details_short, strlen($temp_details_field_name));
} else {
$temp_field[$temp_details_field_number] = substr($temp_details_short, strlen($temp_details_field_name), $temp_details_field_pos_end – strlen($temp_details_field_name));
}
}

}

if (strtolower($temp_field[$temp_details_user_name_pos]) === strtolower($user_login)) {
// echo $temp_field[$temp_details_user_name_pos];

if ( $temp_field[$temp_details_man_member_since_pos] === » ) { $temp_field[$temp_details_man_member_since_pos] = $data[$temp_member_since_pos]; }
$member_since = $temp_field[$temp_details_man_member_since_pos];
$member_rrid = $temp_field[$temp_details_rrid_pos];

$member_year = substr($member_since , – 4);
$member_birth_year = substr($data[$temp_birth_year_pos] , – 4);
$member_sex = $data[$temp_member_sex_pos];
$member_sex_short = substr($data[$temp_member_sex_pos], 0, 1);
$member_class = substr(floor((date(«Y»)-$member_birth_year)/5)*5, -2);
$user_firstname = $data[$temp_first_name_pos]; //overskriver med MI-data
$user_lastname = $data[$temp_surname_pos]; //overskriver med MI-data

if (strpos($data[$temp_activities_pos], ‘Landevei’) == TRUE) {$member_activities_count++;}
if (strpos($data[$temp_activities_pos], ‘Terreng’) == TRUE) {$member_activities_count++; if ($member_activities_count === 2) {$member_activity_connector_1 = » og «;}}
if (strpos($data[$temp_activities_pos], ‘Triatlon’) == TRUE) {$member_activities_count++; if ($member_activities_count === 2) {$member_activity_connector_2 = » og «;} else {if ($member_activities_count === 3) {$member_activity_connector_1 = «, «; $member_activity_connector_2 = » og «;}}}
$member_activities = ((strpos($data[$temp_activities_pos], ‘Landevei’) == TRUE)?’landevei’:») . $member_activity_connector_1 . ((strpos($data[$temp_activities_pos], ‘Terreng’) == TRUE)?’terreng’:») . $member_activity_connector_2 . ((strpos($data[$temp_activities_pos], ‘Triatlon’) == TRUE)?’triatlon’:»);

}
$temp_field[$temp_details_no_pos]=»»; // alle skal ha nummer pt, men planlegger å fjerne og løse på annen måte. Denne linjen blir dog likevel unødvendig siden hele feltet da fjernes
$temp_field[$temp_details_man_member_since_pos]=»»; // for å unngå feil hvis medlemsdato skulle mangle
$temp_field[$temp_details_rrid_pos]=»»; // alle har ikke RRID
$temp_field[$temp_details_user_name_pos]=»»; // for at eventuelt blanke linjer på slutten av filen ikke skal nulle ut brukerdata når gjeldende bruker er fra siste reelle linje
$temp_details_field_number = 0;

}
}
fclose($handle);
}

} else {
echo ‘Når ikke kilde.

‘;
}

// ———————————————–

echo ‘

‘; //satt til width=»337″ (burde vært noe høyere pga cellpadding, etc) da bilder hentet i koden nedenfor begrenser både bredde og høyde til 600 – på denne måten vil både kvadratiske, liggende rektangulære, og stående opp til 9:16 fylle bredden i tabell cellen – og kun stående smalere enn 9:16 vil bli midtstilt i cellen med tomrom på venstre/høyre side – gjort det slik da smalere enn 9:16 anses som svært sjelden, og height=»1″ for at søkeboks skal ta minst mulig andel av total radhøyde, settes uansett automatisk stor nok til å få plass til hele.
echo ‘

‘;

echo ‘

‘;
echo ‘

‘;

// if (has_wp_user_avatar($user_id)) {
// echo ‘‘ . get_wp_user_avatar($user_id, ‘600’) . ‘‘;
// } else {

if ($user_id == -1) {
echo ‘‘;
$user_display_name = $url_id;
$user_firstname = «FANT»;
$user_lastname = «INGEN PROFIL»;
$user_description = «Ukjent brukernavn.»;
$user_level=-1;
$user_nicename = strtolower($url_id);
} else {
$av_src_url = get_wp_user_avatar_src($user_id, ‘600’);
if (strpos($av_src_url, «sagenesykkel») !== false) {
$av_src = »; //Lokalt
} else {
if (strpos($av_src_url, «facebook») !== false) {
$av_src = ‘Facebook’;
} else {
if (strpos($av_src_url, «gravatar») !== false) {
if (validate_gravatar(get_user_by( ‘id’, $user_id )->user_email)) { // funksjon er fra plugin – krever email matching
$av_src = ‘Gravatar’;
} else {
$av_src = ‘Mangler’;
}
} else {
$av_src = ‘Ukjent’; //Ukjent scenario, legger inn tekst som om mangler
}
}
}

if ( $av_src === » ) {
echo ‘‘ . get_wp_user_avatar($user_id, ‘600’) . ‘‘;
} else {
if ($av_src != ‘Mangler’) {
echo get_wp_user_avatar($user_id, ‘600’);
} else {
if ($user_id == $current_user_id) {
echo ‘‘;
} else {
echo ‘‘;
}
}
}
}
// }

echo ‘

‘ . ‘

‘ . ‘

‘;

$user_full_name = $user_firstname . ‘ ‘ . $user_lastname;
$user_full_name_link_start = strpos($user_full_name, $user_display_name);
if ($user_full_name_link_start !== false) {
echo ‘‘ . substr($user_full_name, 0, $user_full_name_link_start) . ‘‘ . substr($user_full_name, $user_full_name_link_start, strlen($user_display_name)) . ‘‘ . substr($user_full_name, $user_full_name_link_start + strlen($user_display_name)) . ‘‘;
} else {
echo ‘‘ . $user_full_name . ‘ (‘ . $user_display_name . ‘)‘;
}
// echo ‘«‘ . $user_display_name . ‘»
‘ . $user_firstname . ‘ ‘ . $user_lastname . ‘

‘;

echo ‘

‘;

echo ‘Bio: ‘ . (($user_level==0)?((strtolower($user_role)==’subscriber’)?’Nyregistrert profil.’:’Tidligere rytter.’):(($user_description)?$user_description:’Rytter har ‘ . (($user_id == $current_user_id)?’ikke skrevet‘:’ikke skrevet’) . ‘ noe om seg selv.’)) . ‘

‘;

//————————————————————————
echo ((($user_level==0) or ($user_level==-1))?»:’Info: Klasse ‘ . (($member_class == false)?'[ ]’:’‘ . $member_sex_short . $member_class . ‘‘) . ‘, født ‘ . (($member_birth_year == false)?'[ ]’:$member_birth_year) . ‘. Ble medlem i ‘ . (($member_year == false)?'[ ]’:$member_year) . ‘, og sykler ‘ . (($member_activities == false)?'[ ]’:$member_activities) . ‘.’ . (($member_class == false)?’ Rittranking status ikke tilgjengelig.’:(($member_rrid != false)?’ På Rittranking‘ . ((is_numeric($member_rrid))?’ (foreløpig uten nødvendig ID for siste resultater visning)’:») . ‘.’:’ Rittranking ID er ikke registrert.’)) . (($member_class == false)?’ Manglende data vil om kort tid bli hentet direkte fra MinIdrett.’:») . ‘

‘);

//————————————————————————
//if ( $current_user_id ) { // Unødvendig så lenge $fallback_user_id <> 0
if (( $user_id == $current_user_id ) and ($user_level != 0)) {
if ($av_src == ‘Ukjent’) {$av_src = ‘Mangler’;} //behandle likt som Mangler nedenfor
echo ‘Ditt brukernavn er ‘ . $current_user_login . ‘. Punktene nedenfor kan redigeres her;’ .
//

  • Visningsnavn: Fornavn, med initial hvis ikke unikt. Legg om nødvendig inn som kallenavn, for så å velge det i listen over visningsnavn.‘ .
    // (($user_display_name == $user_login)?»:’   –   AVVIK’) . ‘   –   eventuelt rettet med æ, ø og å, eller andre bokstavvariasjoner (type é, ö, etc)’ .

  • Profilbilde: Av deg selv, gjenkjennelig og gjerne i Sagene drakt. Opplastet under Avatar prioriteres. Deretter bilde fra Facebook, foran Gravatar, kuriositeter må dog påregnes. ‘ .
    (($av_src == ‘Mangler’)?’ Ved varig mangel kan hende administrasjonen laster opp, skulle anledningen by seg.’:(($av_src === »)?»:’ Til info er nåværende hentet fra ‘ . $av_src . ‘.’)) .

  • Bio: Nevn for eksempel hvor ditt bilde stammer fra, hva du har og kommer til å delta i, med mål og årstall.’ .
    // (($user_description)?’.’:’   –   MANGLER.’) .

    // ‘

  • Kallenavn: ‘ . $user_login . ‘‘ . (($user_nickname == $user_login)?»:’   –   AVVIK’) . ‘   –   eventuelt rettet med æ, ø og å, eller andre bokstavvariasjoner (type é, ö, etc).’ .

  • Nettsted: ‘ . (($user_url == ‘http://www.sagenesykkel.com/rytterprofil/?id=’ . $user_login )?’Må ikke endres!’:’Må snarest rettes til ‘ . ‘‘ . ‘http://www.sagenesykkel.com/rytterprofil/?id=’ . $user_login . ‘. Avgjørende for at koblinger, lenker, etc, skal fungere.’) .

‘;

echo ‘

‘ .
‘Navn, fødselsdato og grener retter du i MinIdrett. Kildefil opprettet ‘ . $time_stamp. ‘.’;

echo ‘

‘ .
‘Registrering/retting av Rittranking ID sendes medlemsansvarlig.’;

}
//}

//————————————————————————
echo ‘


‘;
echo ‘Klikk profilbildene til venstre, eller tilsvarende under kvinner/menn, for de respektives profil.

‘;
if ( $current_user_id ) {
if (!( $user_id == $current_user_id )) {
echo ‘Min profil.

‘; // viser fortsatt brukernavn, og ikke valgt visningsnavn
}
} else {
echo ‘Logg inn for redigering av egen profil.

‘;
}

//————————————————————————
if ( (419 == $current_user_id) and !(419 == $user_id) and !(-1 == $user_id) ) { // ID 419 er Atle Kvien – seksjon kun synlig for vedkommende (når innlogget), og profil finnes.
echo ‘


‘;
echo ‘Webmaster:’ . ‘

‘;
// echo ‘Login: ‘ . get_user_by( ‘id’, $user_id )->user_login . ‘
‘;
echo ‘Login: ‘ . get_user_by( ‘id’, $user_id )->user_login . ‘ (#’ . $user_id . ‘)
‘;

echo (((get_user_by( ‘id’, $user_id )->user_level == 2) or (get_user_by( ‘id’, $user_id )->user_level == 0))?»:’Level: ‘ . get_user_by( ‘id’, $user_id )->user_level . ‘
‘);

// echo ‘Level: ‘ . get_user_by( ‘id’, $user_id )->user_level . ‘
‘;
// if ( has_wp_user_avatar($user_id) ) {
// echo ‘Bilde: Lokalt
‘;
// } else {
// funksjon brukt nedenfor er fra plugin
// if(validate_gravatar($user_email)) { // Denne funksjonen krever email matching, kan ikke bruke userid.
// echo ‘Bilde: Gravatar
‘;
// } else {
// echo ‘Bilde: Mangler
‘;
// }
// }

$av_src_url = get_wp_user_avatar_src($user_id, ‘600’);
if (strpos($av_src_url, «sagenesykkel») !== false) {
$av_src = «Lokalt»;
} else {
if (strpos($av_src_url, «facebook») !== false) {
$av_src = «Facebook»;
} else {
if (strpos($av_src_url, «gravatar») !== false) {
if (validate_gravatar(get_user_by( ‘id’, $user_id )->user_email)) {
$av_src = ‘Gravatar’;
} else {
$av_src = ‘Mangler’;
}
} else {
$av_src = «Ukjent scenario»;
}
}
}
echo ‘Bilde: ‘ . $av_src . ((strpos(«Gravatar Mangler», $av_src) !== false)?»:’ (har ‘ . ((validate_gravatar(get_user_by( ‘id’, $user_id )->user_email) !== false)?»:’ikke ‘) . ‘Gravatar)’) . ‘
‘;

// echo ‘ID: ‘ . $user_id . ‘
‘;
// echo ‘Registered: ‘ . get_user_by( ‘id’, $user_id )->user_registered . ‘
‘;

// echo ((get_user_by( ‘id’, $user_id )->nickname == get_user_by( ‘id’, $user_id )->user_login)?»:’Nickname: ‘ . get_user_by( ‘id’, $user_id )->nickname . ‘
‘);
// echo ‘Nickname: ‘ . get_user_by( ‘id’, $user_id )->nickname . ‘
‘;
// echo ((get_user_by( ‘id’, $user_id )->display_name == get_user_by( ‘id’, $user_id )->user_login)?»:’Display name: ‘ . get_user_by( ‘id’, $user_id )->display_name . ‘
‘);
// echo ‘Display name: ‘ . get_user_by( ‘id’, $user_id )->display_name . ‘
‘;
// echo ‘Nicename (slug): ‘ . get_user_by( ‘id’, $user_id )->user_nicename . ‘
‘;

echo ((get_user_by( ‘id’, $user_id )->user_url == ‘http://www.sagenesykkel.com/rytterprofil/?id=’ . get_user_by( ‘id’, $user_id )->user_login)?»:’URL: ‘ . get_user_by( ‘id’, $user_id )->user_url . ‘
‘);

// echo ‘URL: ‘ . ‘‘;
}

// TODO
// Legge inn tekst og bruk av user_login og user_display_name som reflekterer bruken – og når avvik etterhvert tillates få laget et søk som også leter etter user_display_name.

[/insert_php]