';
// "services" should list every service that a plugin connects to via a HTTP or other API interface,
// and describe what each service does, and which data it gets.
// Only services that are executed on visitor input must be listed; services that the blog server (instead
// of a client) connects to are nice to have, but are only required to be shown if it includes visitor (meta)data
if (is_array($legal['services']) && count($legal['services']) > 0) {
$out .= '
Web services / Third Party
';
$out .= '
';
foreach($legal['services'] AS $servicename => $servicedata) {
$out .= '
';
}
// "frontend" lists descriptions what the plugin does on the frontendside and where it uses visitor data or metadata
if (is_array($legal['frontend']) && count($legal['frontend']) > 0) {
$out .= '
Frontend
';
$out .= '
';
foreach($legal['frontend'] AS $servicename => $servicedata) {
$out .= '
' . $servicedata . '
';
}
$out .= '
';
}
// "backend" lists descriptions what the plugin does on the backend and where it uses visitor data or metadata
if (is_array($legal['backend']) && count($legal['backend']) > 0) {
$out .= '
Backend
';
$out .= '
';
foreach($legal['backend'] AS $servicename => $servicedata) {
$out .= '
' . $servicedata . '
';
}
$out .= '
';
}
// "cookies" lists an array of which cookies might be set a a plugin and why. If a plugin makes use of
// session features, also mention that it relies on that session id.
if (is_array($legal['cookies']) && count($legal['cookies']) > 0) {
$out .= '
Cookies
';
$out .= '
';
foreach($legal['cookies'] AS $servicename => $servicedata) {
$out .= '
' . $servicedata . '
';
}
$out .= '
';
}
// "sessiondata" lists an array of which PHP session data values are (temporarily) saved
if (is_array($legal['sessiondata']) && count($legal['sessiondata']) > 0) {
$out .= '
Session data
';
$out .= '
';
foreach($legal['sessiondata'] AS $servicename => $servicedata) {
$out .= '
' . $servicedata . '
';
}
$out .= '
';
}
// This is a list of TRUE/FALSE boolean toggles
$out .= '
Attributes
';
$out .= '
';
if ($legal['stores_user_input']) {
$out .= '
Stores user data (like names, text, preferences) to a database, file or other storage (mail)
';
} else {
$out .= '
Does not store user data (or not specified)
';
}
if ($legal['stores_ip']) {
$out .= '
Stores IP data (written to storage)
';
} else {
$out .= '
Does not store IP data (or not specified)
';
}
if ($legal['uses_ip']) {
$out .= '
Operates on IP data (read-access, also when passing through metadata)
';
} else {
$out .= '
Does not operate on IP data (or not specified)
';
}
if ($legal['transmits_user_input']) {
$out .= '
Transmits user input to services / third parties (not necessarily stored)
';
} else {
$out .= '
Does not transmit user input to services / third parties (or not specified)
';
}
$out .= '
';
}
}
}
// Themes
$stack = array();
serendipity_plugin_api::hook_event('backend_templates_fetchlist', $stack);
$themes = serendipity_fetchTemplates();
foreach($themes AS $theme) {
$stack[$theme] = serendipity_fetchTemplateInfo($theme);
}
ksort($stack);
$theme_active = '';
$theme_other = '';
$static_info = array(
'2k11' => array(
'This theme can optionally use webfonts. If enabled, webfonts are loaded from Google/CDN servers, who will receive the IP address of the visitor and his metadata (browser, referrer, user agent, possible cookies)'
),
'next' => array(
'This theme can optionally use webfonts. If enabled, webfonts are loaded from Google/CDN servers, who will receive the IP address of the visitor and his metadata (browser, referrer, user agent, possible cookies)'
),
'clean-blog' => array(
'This theme can optionally use webfonts. If enabled, webfonts are loaded from Google/CDN servers, who will receive the IP address of the visitor and his metadata (browser, referrer, user agent, possible cookies)'
),
'skeleton' => array(
'This theme can optionally use webfonts. If enabled, webfonts are loaded from Google/CDN servers, who will receive the IP address of the visitor and his metadata (browser, referrer, user agent, possible cookies)'
),
'timeline' => array(
'This theme can optionally use webfonts. If enabled, webfonts are loaded from Google/CDN servers, who will receive the IP address of the visitor and his metadata (browser, referrer, user agent, possible cookies)'
),
);
foreach ($stack as $theme => $info) {
if ( strtolower($info['engine']) == 'yes') {
continue;
}
if (file_exists($serendipity["serendipityPath"] . $serendipity["templatePath"] . $theme . "/legal.txt") || isset($static_info[$theme])) {
if ($theme == $serendipity['template']) {
$pointer = 'theme_active';
$$pointer .= '