$term) { if (trim($term['terms']) == '') { continue; } $out .= ''; } return $out; } private static function getUnvalidated(Application $app, $home = false) { $terms = []; foreach ($app['phraseanet.appbox']->get_databoxes() as $databox) { try { $cgus = $databox->get_cgus(); if ( ! isset($cgus[$app['locale']])) throw new Exception('No CGus for this locale'); $name = $databox->get_label($app['locale']); $update = $cgus[$app['locale']]['updated_on']; $value = $cgus[$app['locale']]['value']; $userValidation = true; if (! $home) { if ( ! $app['acl']->get($app['authentication']->getUser())->has_access_to_sbas($databox->get_sbas_id())) { continue; } $userValidation = ($app['settings']->getUserSetting($app['authentication']->getUser(), 'terms_of_use_' . $databox->get_sbas_id()) !== $update && trim($value) !== ''); } if ($userValidation) $terms[$name] = ['sbas_id' => $databox->get_sbas_id(), 'terms' => $value, 'date' => $update]; } catch (\Exception $e) { } } return $terms; } public static function getHome($app) { $terms = self::getUnvalidated($app, true); $out = ''; foreach ($terms as $name => $term) { if (trim($term['terms']) == '') continue; if ($out != '') $out .= '
'; $out .= '

' . str_replace('"', '"', $app->trans('cgus:: CGUs de la base %databox_name%', ['%databox_name%' => $name])) . '

'; $out .= '
' . $term['terms'] . '
'; $out .= '
'; } return $out; } }