/** * * @param RP_Persona $persona * @param array $options * @return integer */ public static function score_persona($persona, $options) { $score = RP_Persona_Helper::EXCLUDE; if (isset($persona->pscore)) { $score = $persona->pscore; } else { if (isset($persona->privacy) && !empty($persona->privacy) && $persona->privacy != RP_Persona_Helper::DEF) { if ($persona->privacy == RP_Persona_Helper::PUB) { $score = RP_Persona_Helper::ANYONE; } else { if ($persona->privacy == RP_Persona_Helper::MBR) { $score = RP_Persona_Helper::MBRS_ONLY; } else { if ($persona->privacy == RP_Persona_Helper::PVT) { $score = RP_Persona_Helper::ADM_ONLY; } } } } else { $living_score = $options['privacy_living']; if ($living_score === false) { $living_score = RP_Persona_Helper::MBR; } if ($living_score !== RP_Persona_Helper::DEF) { if (!isset($persona->is_living)) { $persona->is_living = RP_Persona_Helper::is_living($persona); } if ($persona->is_living) { if ($living_score == RP_Persona_Helper::PUB) { $score = RP_Persona_Helper::ANYONE; } else { if ($living_score == RP_Persona_Helper::MBR) { $score = RP_Persona_Helper::MBRS_ONLY; } else { if ($living_score == RP_Persona_Helper::PVT) { $score = RP_Persona_Helper::ADM_ONLY; } } } } } if ($living_score === RP_Persona_Helper::DEF || $persona->is_living === false) { $def_score = $options['privacy_default']; if ($def_score === false || $def_score === RP_Persona_Helper::DEF) { $score = RP_Persona_Helper::ANYONE; } else { if ($def_score == RP_Persona_Helper::PUB) { $score = RP_Persona_Helper::ANYONE; } else { if ($def_score == RP_Persona_Helper::MBR) { $score = RP_Persona_Helper::MBRS_ONLY; } else { if ($def_score == RP_Persona_Helper::PVT) { $score = RP_Persona_Helper::ADM_ONLY; } } } } } } } $persona->pscore = $score; return $score; }