- if (!S::logged()) {
- $this->setVisibilityLevel(self::VISIBILITY_PUBLIC);
- } else {
- $this->setVisibilityLevel(self::VISIBILITY_PRIVATE);
- }
- }
-
- static private $contexts = array();
-
- /** Returns the best visibility context toward $visibility
- * @param $visibility A wished visibility level
- * @return An array of compatible visibilities
- *
- * if $visibility is null, the best visibility is returned
- */
- static public function getVisibilityContext($visibility = null)
- {
- if (array_key_exists($visibility, self::$contexts)) {
- return self::$contexts[$visibility];
- }
-
- $asked_vis = $visibility;
-
- if (S::logged()) {
- $minvis = self::VISIBILITY_PRIVATE;
- } else {
- $minvis = self::VISIBILITY_PUBLIC;
- }
- if ($visibility == null) {
- $visibility = $minvis;
- }
-
- if ($minvis == self::VISIBILITY_PUBLIC) {
- $visibility = self::VISIBILITY_PUBLIC;
- }
-
- $visibility = self::$v_values[$visibility];
- self::$contexts[$asked_vis] = $visibility;
-
- return $visibility;