From 3afc9915e35ba8a8f34dd3cc2dfb5b6e79844122 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 05:24:11 -0700 Subject: [PATCH 01/44] rev updates --- boot.php | 2 +- util/messages.po | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/boot.php b/boot.php index 576cad6b6..45ac155b9 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1304' ); +define ( 'FRIENDICA_VERSION', '2.3.1305' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1137 ); diff --git a/util/messages.po b/util/messages.po index 0cb9d094d..f68d1541b 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2.3.1304\n" +"Project-Id-Version: 2.3.1305\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-06 10:00-0700\n" +"POT-Creation-Date: 2012-04-07 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 741a5dba578444e5fea547a87c48824a69c39840 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 05:52:00 -0700 Subject: [PATCH 02/44] provide theme_init() functions --- boot.php | 1 + index.php | 5 +++++ view/theme/darkzero-NS/theme.php | 2 ++ view/theme/darkzero/theme.php | 2 ++ view/theme/duepuntozero/theme.php | 2 ++ view/theme/greenzero/theme.php | 2 ++ view/theme/purplezero/theme.php | 2 ++ view/theme/slack-NS/theme.php | 2 ++ view/theme/slackr/theme.php | 2 ++ 9 files changed, 20 insertions(+) diff --git a/boot.php b/boot.php index 45ac155b9..b1c378d34 100644 --- a/boot.php +++ b/boot.php @@ -922,6 +922,7 @@ function profile_load(&$a, $nickname, $profile = 0) { /** * load/reload current theme info */ + $theme_info_file = "view/theme/".current_theme()."/theme.php"; if (file_exists($theme_info_file)){ require_once($theme_info_file); diff --git a/index.php b/index.php index e7227962f..69c224c1a 100644 --- a/index.php +++ b/index.php @@ -258,6 +258,11 @@ if($a->module_loaded) { $func($a); } + if(function_exists(str_replace('-','_',current_theme()) . '_init')) { + $func = str_replace('-','_',current_theme()) . '_init'; + $func($a); + } + if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error) && (function_exists($a->module . '_post')) && (! x($_POST,'auth-params'))) { diff --git a/view/theme/darkzero-NS/theme.php b/view/theme/darkzero-NS/theme.php index 2d3e4fd56..6c1aa7f12 100644 --- a/view/theme/darkzero-NS/theme.php +++ b/view/theme/darkzero-NS/theme.php @@ -11,6 +11,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function darkzero_NS_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file diff --git a/view/theme/darkzero/theme.php b/view/theme/darkzero/theme.php index 8c4d3e9ac..bbba3ef74 100644 --- a/view/theme/darkzero/theme.php +++ b/view/theme/darkzero/theme.php @@ -12,6 +12,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function darkzero_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file diff --git a/view/theme/duepuntozero/theme.php b/view/theme/duepuntozero/theme.php index 701fb1349..7b42088e1 100644 --- a/view/theme/duepuntozero/theme.php +++ b/view/theme/duepuntozero/theme.php @@ -1,6 +1,7 @@ theme_info = array(); +function duepuntozero_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} diff --git a/view/theme/greenzero/theme.php b/view/theme/greenzero/theme.php index ceec4dd97..c80202475 100644 --- a/view/theme/greenzero/theme.php +++ b/view/theme/greenzero/theme.php @@ -3,6 +3,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function greenzero_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file diff --git a/view/theme/purplezero/theme.php b/view/theme/purplezero/theme.php index ceec4dd97..b9613027c 100644 --- a/view/theme/purplezero/theme.php +++ b/view/theme/purplezero/theme.php @@ -3,6 +3,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function purplezero_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file diff --git a/view/theme/slack-NS/theme.php b/view/theme/slack-NS/theme.php index ceec4dd97..a8934d03b 100644 --- a/view/theme/slack-NS/theme.php +++ b/view/theme/slack-NS/theme.php @@ -3,6 +3,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function slack_NS_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file diff --git a/view/theme/slackr/theme.php b/view/theme/slackr/theme.php index ceec4dd97..78f5d40f0 100644 --- a/view/theme/slackr/theme.php +++ b/view/theme/slackr/theme.php @@ -3,6 +3,7 @@ $a->theme_info = array( 'extends' => 'duepuntozero', ); +function slackr_init(&$a) { $a->page['htmlhead'] .= <<< EOT EOT; +} \ No newline at end of file From 5c0446975516f2b52b6cf51618e0b75af56de71b Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 06:20:57 -0700 Subject: [PATCH 03/44] prepare for using a master theme_init() --- index.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/index.php b/index.php index 69c224c1a..1cb16778a 100644 --- a/index.php +++ b/index.php @@ -262,6 +262,13 @@ if($a->module_loaded) { $func = str_replace('-','_',current_theme()) . '_init'; $func($a); } +// elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/theme.php")) { +// require_once("view/theme/".$a->theme_info["extends"]."/theme.php"); +// if(function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_init')) { +// $func = str_replace('-','_',$a->theme_info["extends"]) . '_init'; +// $func($a); +// } +// } if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error) && (function_exists($a->module . '_post')) From f1db6907860efcd4f48380bb8c0f88272adb91a8 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Sun, 8 Apr 2012 13:49:52 -0400 Subject: [PATCH 04/44] Merge branch 'master', remote-tracking branch 'remotes/upstream/master' * remotes/upstream/master: prepare for using a master theme_init() provide theme_init() functions rev updates API: API is now enhanced. mentions, repeat and destroy now works. "vier": Some design stuff "vier": Bookmarks now look better. API: template for test function added The "vier"-theme is now working again. But there is still work needed New script that checks if a script is running poller: An optional lockfile is used to check if the poller is already running Several improvements * master: From 7d018f651d5f5b21a650d81ab5ea16a224585da6 Mon Sep 17 00:00:00 2001 From: tommy tomson Date: Mon, 9 Apr 2012 00:02:48 +0200 Subject: [PATCH 05/44] fixed z-index of youtube-vids fixed bug to hide right_side --- view/theme/diabook-aerith/oembed_video.tpl | 4 ++ view/theme/diabook-aerith/style-network.css | 2 +- view/theme/diabook-aerith/style-profile.css | 2 +- view/theme/diabook-aerith/style.css | 4 +- view/theme/diabook-aerith/theme.php | 45 ++++++++++++++++--- view/theme/diabook-blue/oembed_video.tpl | 4 ++ view/theme/diabook-blue/style-network.css | 2 +- view/theme/diabook-blue/style-profile.css | 2 +- view/theme/diabook-blue/style.css | 4 +- view/theme/diabook-blue/theme.php | 48 +++++++++++++++++--- view/theme/diabook-red/oembed_video.tpl | 4 ++ view/theme/diabook-red/style-network.css | 2 +- view/theme/diabook-red/style-profile.css | 2 +- view/theme/diabook-red/style.css | 4 +- view/theme/diabook-red/theme.php | 50 ++++++++++++++++++--- view/theme/diabook/oembed_video.tpl | 2 +- view/theme/diabook/style-network.css | 3 +- view/theme/diabook/style-profile.css | 3 +- view/theme/diabook/style-settings.css | 2 +- view/theme/diabook/style.css | 5 +-- view/theme/diabook/theme.php | 30 ++++++++++--- 21 files changed, 179 insertions(+), 45 deletions(-) create mode 100644 view/theme/diabook-aerith/oembed_video.tpl create mode 100644 view/theme/diabook-blue/oembed_video.tpl create mode 100644 view/theme/diabook-red/oembed_video.tpl diff --git a/view/theme/diabook-aerith/oembed_video.tpl b/view/theme/diabook-aerith/oembed_video.tpl new file mode 100644 index 000000000..d6d29f724 --- /dev/null +++ b/view/theme/diabook-aerith/oembed_video.tpl @@ -0,0 +1,4 @@ + + +
+
diff --git a/view/theme/diabook-aerith/style-network.css b/view/theme/diabook-aerith/style-network.css index 3b461e6db..07bda6a24 100644 --- a/view/theme/diabook-aerith/style-network.css +++ b/view/theme/diabook-aerith/style-network.css @@ -2173,7 +2173,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-aerith/style-profile.css b/view/theme/diabook-aerith/style-profile.css index 73f46e9ee..8909f0870 100644 --- a/view/theme/diabook-aerith/style-profile.css +++ b/view/theme/diabook-aerith/style-profile.css @@ -2162,7 +2162,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-aerith/style.css b/view/theme/diabook-aerith/style.css index f82652154..23ae05940 100644 --- a/view/theme/diabook-aerith/style.css +++ b/view/theme/diabook-aerith/style.css @@ -1276,7 +1276,7 @@ body .pageheader{ font-size: 20px; margin-bottom: 20px; margin-top: 0px; - max-width: 575px; + max-width: 775px; } .qcomment{ max-width: 122px; @@ -2324,7 +2324,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-aerith/theme.php b/view/theme/diabook-aerith/theme.php index a1ea51e82..40093e545 100755 --- a/view/theme/diabook-aerith/theme.php +++ b/view/theme/diabook-aerith/theme.php @@ -3,13 +3,13 @@ /* * Name: Diabook-aerith * Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu - * Version: (Version: 1.014) + * Version: (Version: 1.015) * Author: */ //print diabook-version for debugging -$diabook_version = "Diabook-aerith (Version: 1.014)"; +$diabook_version = "Diabook-aerith (Version: 1.015)"; $a->page['htmlhead'] .= sprintf('', $diabook_version); @@ -366,6 +366,35 @@ $a->page['htmlhead'] .= ' '; +$a->page['htmlhead'] .= ' + '; if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ $a->page['htmlhead'] .= ' @@ -374,7 +403,12 @@ $a->page['htmlhead'] .= ' $(function() { $(".oembed.photo img").aeImageResize({height: 400, width: 400}); }); +'; + + if($ccCookie != "8") { +$a->page['htmlhead'] .= ' +';} +$a->page['htmlhead'] .= ' +';} \ No newline at end of file diff --git a/view/theme/diabook-blue/oembed_video.tpl b/view/theme/diabook-blue/oembed_video.tpl new file mode 100644 index 000000000..d6d29f724 --- /dev/null +++ b/view/theme/diabook-blue/oembed_video.tpl @@ -0,0 +1,4 @@ + + +
+
diff --git a/view/theme/diabook-blue/style-network.css b/view/theme/diabook-blue/style-network.css index bd1cb249c..9baa83e8a 100644 --- a/view/theme/diabook-blue/style-network.css +++ b/view/theme/diabook-blue/style-network.css @@ -2134,7 +2134,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-blue/style-profile.css b/view/theme/diabook-blue/style-profile.css index da826d74c..1a0674771 100644 --- a/view/theme/diabook-blue/style-profile.css +++ b/view/theme/diabook-blue/style-profile.css @@ -2129,7 +2129,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-blue/style.css b/view/theme/diabook-blue/style.css index ebf684708..a0202856c 100644 --- a/view/theme/diabook-blue/style.css +++ b/view/theme/diabook-blue/style.css @@ -1236,7 +1236,7 @@ body .pageheader{ font-size: 20px; margin-bottom: 20px; margin-top: 0px; - max-width: 575px; + max-width: 775px; } .qcomment{ max-width: 122px; @@ -2281,7 +2281,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-blue/theme.php b/view/theme/diabook-blue/theme.php index a8b4fcd6c..190533d17 100755 --- a/view/theme/diabook-blue/theme.php +++ b/view/theme/diabook-blue/theme.php @@ -3,13 +3,13 @@ /* * Name: Diabook-blue * Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu - * Version: (Version: 1.014) + * Version: (Version: 1.015) * Author: */ //print diabook-version for debugging -$diabook_version = "Diabook-blue (Version: 1.014)"; +$diabook_version = "Diabook-blue (Version: 1.015)"; $a->page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -366,15 +366,50 @@ $a->page['htmlhead'] .= ' '; +$a->page['htmlhead'] .= ' + '; + if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ $a->page['htmlhead'] .= ' '; + + if($ccCookie != "8") { +$a->page['htmlhead'] .= ' +';} +$a->page['htmlhead'] .= ' +';} diff --git a/view/theme/diabook-red/oembed_video.tpl b/view/theme/diabook-red/oembed_video.tpl new file mode 100644 index 000000000..d6d29f724 --- /dev/null +++ b/view/theme/diabook-red/oembed_video.tpl @@ -0,0 +1,4 @@ + + +
+
diff --git a/view/theme/diabook-red/style-network.css b/view/theme/diabook-red/style-network.css index efbec090a..8d5e3fec9 100644 --- a/view/theme/diabook-red/style-network.css +++ b/view/theme/diabook-red/style-network.css @@ -2171,7 +2171,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-red/style-profile.css b/view/theme/diabook-red/style-profile.css index ef6fd8601..570057b47 100644 --- a/view/theme/diabook-red/style-profile.css +++ b/view/theme/diabook-red/style-profile.css @@ -2143,7 +2143,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-red/style.css b/view/theme/diabook-red/style.css index ef06ef5ca..883f11374 100644 --- a/view/theme/diabook-red/style.css +++ b/view/theme/diabook-red/style.css @@ -1266,7 +1266,7 @@ body .pageheader{ font-size: 20px; margin-bottom: 20px; margin-top: 0px; - max-width: 575px; + max-width: 775px; } .qcomment{ max-width: 122px; @@ -2310,7 +2310,7 @@ blockquote { color: #777; } .oembed { - font-size: large; + font-weight: bold; } .aprofile dt{ diff --git a/view/theme/diabook-red/theme.php b/view/theme/diabook-red/theme.php index fae26ae70..85206baec 100755 --- a/view/theme/diabook-red/theme.php +++ b/view/theme/diabook-red/theme.php @@ -3,13 +3,13 @@ /* * Name: Diabook-red * Description: Diabook-red: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu - * Version: (Version: 1.014) + * Version: (Version: 1.015) * Author: */ //print diabook-version for debugging -$diabook_version = "Diabook-red (Version: 1.014)"; +$diabook_version = "Diabook-red (Version: 1.015)"; $a->page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -367,15 +367,50 @@ $a->page['htmlhead'] .= ' '; +$a->page['htmlhead'] .= ' + '; + if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ $a->page['htmlhead'] .= ' '; + + if($ccCookie != "8") { +$a->page['htmlhead'] .= ' +';} +$a->page['htmlhead'] .= ' +';} + } +';} \ No newline at end of file diff --git a/view/theme/diabook/oembed_video.tpl b/view/theme/diabook/oembed_video.tpl index 026007271..d6d29f724 100644 --- a/view/theme/diabook/oembed_video.tpl +++ b/view/theme/diabook/oembed_video.tpl @@ -1,4 +1,4 @@ - +
diff --git a/view/theme/diabook/style-network.css b/view/theme/diabook/style-network.css index af6e4027a..9e57c17d2 100644 --- a/view/theme/diabook/style-network.css +++ b/view/theme/diabook/style-network.css @@ -2103,7 +2103,6 @@ blockquote { color: #777; } .oembed { - font-size: large; font-weight: bold; } .aprofile dt{ @@ -2549,4 +2548,4 @@ list-style-type: disc; #photos-upload-newalbum-div { float: left; width: 175px; -} +} \ No newline at end of file diff --git a/view/theme/diabook/style-profile.css b/view/theme/diabook/style-profile.css index 6b05903d3..95e9061ba 100644 --- a/view/theme/diabook/style-profile.css +++ b/view/theme/diabook/style-profile.css @@ -2100,7 +2100,6 @@ blockquote { color: #777; } .oembed { - font-size: large; font-weight: bold; } .aprofile dt{ @@ -2546,4 +2545,4 @@ list-style-type: disc; #photos-upload-newalbum-div { float: left; width: 175px; -} +} \ No newline at end of file diff --git a/view/theme/diabook/style-settings.css b/view/theme/diabook/style-settings.css index 60e2f336b..fdb4f24c7 100644 --- a/view/theme/diabook/style-settings.css +++ b/view/theme/diabook/style-settings.css @@ -2526,4 +2526,4 @@ list-style-type: disc; #photos-upload-newalbum-div { float: left; width: 175px; -} +} \ No newline at end of file diff --git a/view/theme/diabook/style.css b/view/theme/diabook/style.css index e99aa5644..d11e3191a 100644 --- a/view/theme/diabook/style.css +++ b/view/theme/diabook/style.css @@ -1219,7 +1219,7 @@ body .pageheader{ font-size: 20px; margin-bottom: 20px; margin-top: 0px; - max-width: 575px; + max-width: 775px; } .qcomment{ max-width: 122px; @@ -2246,7 +2246,6 @@ blockquote { color: #777; } .oembed { - font-size: large; font-weight: bold; } .aprofile dt{ @@ -2687,4 +2686,4 @@ list-style-type: disc; #photos-upload-newalbum-div { float: left; width: 175px; -} +} \ No newline at end of file diff --git a/view/theme/diabook/theme.php b/view/theme/diabook/theme.php index fbe42a304..924639625 100755 --- a/view/theme/diabook/theme.php +++ b/view/theme/diabook/theme.php @@ -3,13 +3,13 @@ /* * Name: Diabook * Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu - * Version: (Version: 1.014) + * Version: (Version: 1.015) * Author: */ //print diabook-version for debugging -$diabook_version = "Diabook (Version: 1.014)"; +$diabook_version = "Diabook (Version: 1.015)"; $a->page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -376,11 +376,12 @@ $a->page['htmlhead'] .= ' '; + $a->page['htmlhead'] .= ' '; @@ -403,7 +415,12 @@ $a->page['htmlhead'] .= ' $(function() { $(".oembed.photo img").aeImageResize({height: 400, width: 400}); }); +'; + + if($ccCookie != "8") { +$a->page['htmlhead'] .= ' +';} +$a->page['htmlhead'] .= ' +';} \ No newline at end of file From 0d60dbef31ea645b8495d8e28fca6c248d20048b Mon Sep 17 00:00:00 2001 From: Alexander Kampmann Date: Mon, 9 Apr 2012 00:45:10 +0200 Subject: [PATCH 06/44] added exceptions to dba class added exception handling to index.php, please mind that there is no recovery at the moment added transactions to db update. Please mind that they might not be supported by db table engines. added admin email on failed updates added german translation for admin email --- boot.php | 23 ++ include/dba.php | 446 ++++++++++++++++++++---------------- index.php | 7 + view/de/strings.php | 1 + view/de/update_fail_eml.tpl | 12 + view/update_fail_eml.tpl | 11 + 6 files changed, 307 insertions(+), 193 deletions(-) create mode 100644 view/de/update_fail_eml.tpl create mode 100644 view/update_fail_eml.tpl diff --git a/boot.php b/boot.php index b1c378d34..c21cefa18 100644 --- a/boot.php +++ b/boot.php @@ -653,8 +653,31 @@ function check_config(&$a) { // call the specific update + global $db; + try { + $db->beginTransaction(); $func = 'update_' . $x; $func($a); + $db->commit(); + } catch(Exception $ex) { + $db->rollback(); + //send the administrator an e-mail + $email_tpl = get_intltext_template("update_fail_eml.tpl"); + $email_tpl = replace_macros($email_tpl, array( + '$sitename' => $a->config['sitename'], + '$siteurl' => $a->get_baseurl(), + '$update' => $x, + '$error' => $ex->getMessage()); + $subject=sprintf(t('Update Error at %s'), $a->get_baseurl()); + + mail($email, $subject, $text, + 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" + . 'Content-type: text/plain; charset=UTF-8' . "\n" + . 'Content-transfer-encoding: 8bit' ); + //try the logger + logger('update failed: '.$ex->getMessage().EOL); + } + } } set_config('system','build', DB_UPDATE_VERSION); diff --git a/include/dba.php b/include/dba.php index 76cc0bc7b..cbf5922a7 100644 --- a/include/dba.php +++ b/include/dba.php @@ -8,189 +8,245 @@ require_once('include/datetime.php'); * * For debugging, insert 'dbg(1);' anywhere in the program flow. * dbg(0); will turn it off. Logging is performed at LOGGER_DATA level. - * When logging, all binary info is converted to text and html entities are escaped so that - * the debugging stream is safe to view within both terminals and web pages. + * When logging, all binary info is converted to + * text and html entities are escaped so that + * the debugging stream is safe to view + * within both terminals and web pages. * */ - -if(! class_exists('dba')) { -class dba { - private $debug = 0; - private $db; - public $mysqli = true; - public $connected = false; - public $error = false; +if(! class_exists('dba')) { - function __construct($server,$user,$pass,$db,$install = false) { + class dba { - $server = trim($server); - $user = trim($user); - $pass = trim($pass); - $db = trim($db); + private $debug = 0; + private $db; + public $mysqli = true; + public $connected = false; + public $error = false; - if (!(strlen($server) && strlen($user))){ - $this->connected = false; - $this->db = null; - return; - } - - if($install) { - if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { - $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); - $this->connected = false; - $this->db = null; - return; + function __construct($server,$user,$pass,$db,$install = false) { + + $server = trim($server); + $user = trim($user); + $pass = trim($pass); + $db = trim($db); + + //we need both, server and username, so fail if one is missing + if (!(strlen($server) && strlen($user))){ + $this->connected = false; + $this->db = null; + throw new InvalidArgumentException(t("Server name of user name are missing. ")); + } + + //when we are installing + if($install) { + if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { + if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { + $this->connected = false; + $this->db = null; + throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server); + } + } + } + + if(class_exists('mysqli')) { + $this->db = new mysqli($server,$user,$pass,$db); + if(NULL === $this->db->connect_error()) { + $this->connected = true; + } else { + throw new RuntimeException($this->db->connect_error()); + } + } else { + $this->mysqli = false; + $this->db = mysql_connect($server,$user,$pass); + if($this->db && mysql_select_db($db,$this->db)) { + $this->connected = true; + } else { + throw new RuntimeException(mysql_error()); } } } - if(class_exists('mysqli')) { - $this->db = @new mysqli($server,$user,$pass,$db); - if(! mysqli_connect_errno()) { - $this->connected = true; + public function getdb() { + return $this->db; + } + + public function q($sql) { + + if((! $this->db) || (! $this->connected)) { + throw new RuntimeException(t("There is no db connection. ")); } - } - else { - $this->mysqli = false; - $this->db = mysql_connect($server,$user,$pass); - if($this->db && mysql_select_db($db,$this->db)) { - $this->connected = true; - } - } - if(! $this->connected) { - $this->db = null; - if(! $install) - system_unavailable(); - } - } - - public function getdb() { - return $this->db; - } - - public function q($sql) { - - if((! $this->db) || (! $this->connected)) - return false; - - if($this->mysqli) - $result = @$this->db->query($sql); - else - $result = @mysql_query($sql,$this->db); - - if($this->debug) { - - $mesg = ''; if($this->mysqli) { - if($this->db->errno) - logger('dba: ' . $this->db->error); + $result = $this->db->query($sql); + } else { + $result = mysql_query($sql,$this->db); } - elseif(mysql_errno($this->db)) - logger('dba: ' . mysql_error($this->db)); - if($result === false) - $mesg = 'false'; - elseif($result === true) - $mesg = 'true'; - else { - if($this->mysqli) - $mesg = $result->num_rows . ' results' . EOL; - else - $mesg = mysql_num_rows($result) . ' results' . EOL; + //on debug mode or fail, the query is written to the log. + //this won't work if logger can not read it's logging level + //from the db. + if($this->debug || FALSE === $result) { + + $mesg = ''; + + if($result === false) { + $mesg = 'false '.$this->error(); + } elseif($result === true) { + $mesg = 'true'; + } else { + if($this->mysqli) { + $mesg = $result->num_rows . t(' results') . EOL; + } else { + $mesg = mysql_num_rows($result) . t(' results') . EOL; + } + } + + $str = 'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL; + + + // If dbfail.out exists, we will write any failed calls directly to it, + // regardless of any logging that may or may nor be in effect. + // These usually indicate SQL syntax errors that need to be resolved. + if(file_exists('dbfail.out')) { + file_put_contents('dbfail.out', datetime_convert() . "\n" . $str . "\n", FILE_APPEND); + } + logger('dba: ' . $str ); + if(FALSE===$result) { + throw new RuntimeException('dba: ' . $str); + } } - - $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL; + - logger('dba: ' . $str ); + if($result === true) { + return $result; + } + + $r = array(); + if($this->mysqli) { + if($result->num_rows) { + while($x = $result->fetch_array(MYSQLI_ASSOC)) { + $r[] = $x; + } + $result->free_result(); + } + } else { + if(mysql_num_rows($result)) { + while($x = mysql_fetch_array($result, MYSQL_ASSOC)) { + $r[] = $x; + } + mysql_free_result($result); + } + } + + + if($this->debug) { + logger('dba: ' . printable(print_r($r, true))); + } + return($r); } - /** - * If dbfail.out exists, we will write any failed calls directly to it, - * regardless of any logging that may or may nor be in effect. - * These usually indicate SQL syntax errors that need to be resolved. - */ - - if($result === false) { - logger('dba: ' . printable($sql) . ' returned false.'); - if(file_exists('dbfail.out')) - file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND); - } - - if(($result === true) || ($result === false)) - return $result; - - $r = array(); - if($this->mysqli) { - if($result->num_rows) { - while($x = $result->fetch_array(MYSQLI_ASSOC)) - $r[] = $x; - $result->free_result(); + private function error() { + if($this->mysqli) { + return $this->db->error; + } else { + return mysql_error($this->db); } } - else { - if(mysql_num_rows($result)) { - while($x = mysql_fetch_array($result, MYSQL_ASSOC)) - $r[] = $x; - mysql_free_result($result); + + public function beginTransaction() { + if($this->mysqli) { + return $this->db->autocommit(false); + } else { + //no transaction support in mysql module... + mysql_query('SET AUTOCOMMIT = 0;', $db); + } + } + + public function rollback() { + if($this->mysqli) { + return $this->db->rollback(); + } else { + //no transaction support in mysql module... + mysql_query('ROLLBACK;', $db); + } + $this->stopTransaction(); + } + + public function commit() { + if($this->mysqli) { + return $this->db->commit(); + } else { + //no transaction support in mysql module... + mysql_query('COMMIT;', $db); + } + $this->stopTransaction(); + } + + private function stopTransaction() { + if($this->mysqli) { + return $this->db->autocommit(true); + } else { + //no transaction support in mysql module... + mysql_query('SET AUTOCOMMIT = 1;', $db); + } + } + + public function dbg($dbg) { + $this->debug = $dbg; + } + + public function escape($str) { + if($this->db && $this->connected) { + if($this->mysqli) { + return $this->db->real_escape_string($str); + } else { + return mysql_real_escape_string($str,$this->db); + } } } - - if($this->debug) - logger('dba: ' . printable(print_r($r, true))); - return($r); - } - - public function dbg($dbg) { - $this->debug = $dbg; - } - - public function escape($str) { - if($this->db && $this->connected) { - if($this->mysqli) - return @$this->db->real_escape_string($str); - else - return @mysql_real_escape_string($str,$this->db); - } - } - - function __destruct() { - if ($this->db) - if($this->mysqli) - $this->db->close(); - else + function __destruct() { + if ($this->db) { + if($this->mysqli) { + $this->db->close(); + } + } else { mysql_close($this->db); + } + } } -}} +} if(! function_exists('printable')) { -function printable($s) { - $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); - $s = str_replace("\x00",'.',$s); - if(x($_SERVER,'SERVER_NAME')) - $s = escape_tags($s); - return $s; -}} + function printable($s) { + $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); + $s = str_replace("\x00",'.',$s); + if(x($_SERVER,'SERVER_NAME')) + $s = escape_tags($s); + return $s; + } +} // Procedural functions -if(! function_exists('dbg')) { -function dbg($state) { - global $db; - if($db) - $db->dbg($state); -}} +if(! function_exists('dbg')) { + function dbg($state) { + global $db; + if($db) + $db->dbg($state); + } +} -if(! function_exists('dbesc')) { -function dbesc($str) { - global $db; - if($db && $db->connected) - return($db->escape($str)); - else - return(str_replace("'","\\'",$str)); -}} +if(! function_exists('dbesc')) { + function dbesc($str) { + global $db; + if($db && $db->connected) + return($db->escape($str)); + else + return(str_replace("'","\\'",$str)); + } +} @@ -199,30 +255,31 @@ function dbesc($str) { // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", // 'user', 1); -if(! function_exists('q')) { -function q($sql) { +if(! function_exists('q')) { + function q($sql) { - global $db; - $args = func_get_args(); - unset($args[0]); + global $db; + $args = func_get_args(); + unset($args[0]); + + if($db && $db->connected) { + $stmt = vsprintf($sql,$args); + if($stmt === false) + logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true)); + return $db->q($stmt); + } + + /** + * + * This will happen occasionally trying to store the + * session data after abnormal program termination + * + */ + logger('dba: no database: ' . print_r($args,true)); + return false; - if($db && $db->connected) { - $stmt = vsprintf($sql,$args); - if($stmt === false) - logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true)); - return $db->q($stmt); } - - /** - * - * This will happen occasionally trying to store the - * session data after abnormal program termination - * - */ - logger('dba: no database: ' . print_r($args,true)); - return false; - -}} +} /** * @@ -230,36 +287,39 @@ function q($sql) { * */ -if(! function_exists('dbq')) { -function dbq($sql) { +if(! function_exists('dbq')) { + function dbq($sql) { - global $db; - if($db && $db->connected) - $ret = $db->q($sql); - else - $ret = false; - return $ret; -}} + global $db; + if($db && $db->connected) + $ret = $db->q($sql); + else + $ret = false; + return $ret; + } +} -// Caller is responsible for ensuring that any integer arguments to +// Caller is responsible for ensuring that any integer arguments to // dbesc_array are actually integers and not malformed strings containing -// SQL injection vectors. All integer array elements should be specifically -// cast to int to avoid trouble. +// SQL injection vectors. All integer array elements should be specifically +// cast to int to avoid trouble. if(! function_exists('dbesc_array_cb')) { -function dbesc_array_cb(&$item, $key) { - if(is_string($item)) - $item = dbesc($item); -}} + function dbesc_array_cb(&$item, $key) { + if(is_string($item)) + $item = dbesc($item); + } +} if(! function_exists('dbesc_array')) { -function dbesc_array(&$arr) { - if(is_array($arr) && count($arr)) { - array_walk($arr,'dbesc_array_cb'); + function dbesc_array(&$arr) { + if(is_array($arr) && count($arr)) { + array_walk($arr,'dbesc_array_cb'); + } } -}} +} diff --git a/index.php b/index.php index 1cb16778a..0cf74365c 100644 --- a/index.php +++ b/index.php @@ -11,6 +11,7 @@ * bootstrap the application * */ +try { require_once('boot.php'); @@ -370,3 +371,9 @@ else session_write_close(); exit; +} catch(Exception $ex) { +// it may fail because logger uses the db, +// but give it a try: +logger('exception caught at index.php: '.$ex->getMessage()); +system_unavailable(); +} \ No newline at end of file diff --git a/view/de/strings.php b/view/de/strings.php index 28567396b..5339d8a12 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -1511,3 +1511,4 @@ $a->strings["[today]"] = "[heute]"; $a->strings["Event Reminders"] = "Veranstaltungserinnerungen"; $a->strings["Events this week:"] = "Veranstaltungen diese Woche"; $a->strings["[No description]"] = "[keine Beschreibung]"; +$a->strings['Update Error at %s'] = 'Fehler beim Updaten von %s'; diff --git a/view/de/update_fail_eml.tpl b/view/de/update_fail_eml.tpl new file mode 100644 index 000000000..26be1786f --- /dev/null +++ b/view/de/update_fail_eml.tpl @@ -0,0 +1,12 @@ +Hey, +Ich bin's, $sitename. +Die Friendica-Entwickler haben gerade Update $update freigegeben, +aber als ich es installieren wollte, ist irgendetwas schief gegangen. +Das sollte schnell repariert werden und alleine schaffe ich es nicht. +Wende dich bitte an einen Friendica-Entwickler, wenn du mir nicht selbst helfen kannst. +Meine Datenbank könnte ziemlich durcheinander sein. + +Die Fehlermeldung ist '$error'. + +Tut mir leid, +dein Friendica Server unter $siteurl \ No newline at end of file diff --git a/view/update_fail_eml.tpl b/view/update_fail_eml.tpl new file mode 100644 index 000000000..f68a3dece --- /dev/null +++ b/view/update_fail_eml.tpl @@ -0,0 +1,11 @@ +Hey, +I'm $sitename. +The friendica developers released update $update recently, +but when I tried to install it, something went terribly wrong. +This needs to be fixed soon and I can't do it alone. Please contact a +friendica developer if you can not help me on your own. My database might be invalid. + +The error message is '$error'. + +I'm sorry, +your friendica server at $siteurl \ No newline at end of file From 977625a53b77c4944fc294fa670aae15c068b94b Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 16:19:45 -0700 Subject: [PATCH 07/44] fix to wall_upload photos default permissions to use cid rather than uid. --- boot.php | 2 +- mod/item.php | 2 +- mod/wall_attach.php | 5 +- mod/wall_upload.php | 8 +- util/messages.po | 628 +++++++++++++++++++++++--------------------- 5 files changed, 338 insertions(+), 307 deletions(-) diff --git a/boot.php b/boot.php index b1c378d34..1815d37e2 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1305' ); +define ( 'FRIENDICA_VERSION', '2.3.1306' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1137 ); diff --git a/mod/item.php b/mod/item.php index 72e63865b..82fb0bf72 100644 --- a/mod/item.php +++ b/mod/item.php @@ -351,7 +351,7 @@ function item_post(&$a) { $image_uri = substr($image_uri,0, strpos($image_uri,'-')); if(! strlen($image_uri)) continue; - $srch = '<' . intval($profile_uid) . '>'; + $srch = '<' . intval($contact_record['id']) . '>'; $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' AND `resource-id` = '%s' AND `uid` = %d LIMIT 1", dbesc($srch), diff --git a/mod/wall_attach.php b/mod/wall_attach.php index ecf475291..bee7c29dc 100644 --- a/mod/wall_attach.php +++ b/mod/wall_attach.php @@ -7,7 +7,7 @@ function wall_attach_post(&$a) { if($a->argc > 1) { $nick = $a->argv[1]; - $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", dbesc($nick) ); if(! count($r)) @@ -21,6 +21,7 @@ function wall_attach_post(&$a) { $visitor = 0; $page_owner_uid = $r[0]['uid']; + $page_owner_cid = $r[0]['id']; $page_owner_nick = $r[0]['nickname']; $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -73,7 +74,7 @@ function wall_attach_post(&$a) { dbesc($filedata), dbesc($created), dbesc($created), - dbesc('<' . $page_owner_uid . '>'), + dbesc('<' . $page_owner_cid . '>'), dbesc(''), dbesc(''), dbesc('') diff --git a/mod/wall_upload.php b/mod/wall_upload.php index 64f174a78..f341cc9cd 100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -6,7 +6,7 @@ function wall_upload_post(&$a) { if($a->argc > 1) { $nick = $a->argv[1]; - $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", + $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", dbesc($nick) ); if(! count($r)) @@ -16,10 +16,13 @@ function wall_upload_post(&$a) { else return; + + $can_post = false; $visitor = 0; $page_owner_uid = $r[0]['uid']; + $default_cid = $r[0]['id']; $page_owner_nick = $r[0]['nickname']; $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); @@ -34,6 +37,7 @@ function wall_upload_post(&$a) { if(count($r)) { $can_post = true; $visitor = remote_user(); + $default_cid = $visitor; } } } @@ -76,7 +80,7 @@ function wall_upload_post(&$a) { $smallest = 0; - $defperm = '<' . $page_owner_uid . '>'; + $defperm = '<' . $default_cid . '>'; $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm); diff --git a/util/messages.po b/util/messages.po index f68d1541b..2749281a9 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2.3.1305\n" +"Project-Id-Version: 2.3.1306\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-07 10:00-0700\n" +"POT-Creation-Date: 2012-04-08 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -54,8 +54,8 @@ msgstr "" #: ../../mod/display.php:138 ../../mod/profiles.php:7 #: ../../mod/profiles.php:232 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 -#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:456 -#: ../../include/items.php:3118 ../../index.php:294 +#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:460 +#: ../../include/items.php:3118 ../../index.php:306 msgid "Permission denied." msgstr "" @@ -132,12 +132,12 @@ msgstr "" #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:357 #: ../../mod/admin.php:525 ../../mod/admin.php:654 ../../mod/admin.php:826 #: ../../mod/admin.php:906 ../../mod/profiles.php:390 ../../mod/invite.php:119 -#: ../../addon/facebook/facebook.php:547 ../../addon/yourls/yourls.php:76 +#: ../../addon/facebook/facebook.php:551 ../../addon/yourls/yourls.php:76 #: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57 #: ../../addon/uhremotestorage/uhremotestorage.php:89 #: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:93 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187 -#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:69 +#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80 #: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61 #: ../../addon/openstreetmap/openstreetmap.php:70 #: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94 @@ -147,11 +147,11 @@ msgstr "" #: ../../addon/statusnet/statusnet.php:318 #: ../../addon/statusnet/statusnet.php:325 #: ../../addon/statusnet/statusnet.php:353 -#: ../../addon/statusnet/statusnet.php:547 ../../addon/tumblr/tumblr.php:90 +#: ../../addon/statusnet/statusnet.php:553 ../../addon/tumblr/tumblr.php:90 #: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88 #: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48 #: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180 -#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:369 +#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375 #: ../../addon/posterous/posterous.php:90 #: ../../view/theme/quattro/config.php:21 ../../include/conversation.php:555 msgid "Submit" @@ -211,11 +211,11 @@ msgstr "" msgid "link to source" msgstr "" -#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:240 -#: ../../view/theme/diabook-blue/theme.php:240 -#: ../../view/theme/diabook/theme.php:248 -#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52 -#: ../../boot.php:1421 +#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:244 +#: ../../view/theme/diabook-blue/theme.php:244 +#: ../../view/theme/diabook/theme.php:251 +#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52 +#: ../../boot.php:1422 msgid "Events" msgstr "" @@ -265,7 +265,7 @@ msgid "Description:" msgstr "" #: ../../mod/events.php:395 ../../include/event.php:37 -#: ../../include/bb2diaspora.php:260 ../../boot.php:1042 +#: ../../include/bb2diaspora.php:260 ../../boot.php:1043 msgid "Location:" msgstr "" @@ -347,10 +347,10 @@ msgstr "" #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:880 #: ../../mod/photos.php:951 ../../mod/photos.php:966 ../../mod/photos.php:1383 #: ../../mod/photos.php:1395 ../../addon/communityhome/communityhome.php:110 -#: ../../view/theme/diabook-red/theme.php:110 -#: ../../view/theme/diabook-blue/theme.php:110 -#: ../../view/theme/diabook/theme.php:114 -#: ../../view/theme/diabook-aerith/theme.php:110 +#: ../../view/theme/diabook-red/theme.php:114 +#: ../../view/theme/diabook-blue/theme.php:114 +#: ../../view/theme/diabook/theme.php:117 +#: ../../view/theme/diabook-aerith/theme.php:115 msgid "Contact Photos" msgstr "" @@ -373,10 +373,10 @@ msgstr "" #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook-red/theme.php:111 -#: ../../view/theme/diabook-blue/theme.php:111 -#: ../../view/theme/diabook/theme.php:115 -#: ../../view/theme/diabook-aerith/theme.php:111 +#: ../../view/theme/diabook-red/theme.php:115 +#: ../../view/theme/diabook-blue/theme.php:115 +#: ../../view/theme/diabook/theme.php:118 +#: ../../view/theme/diabook-aerith/theme.php:116 msgid "Profile Photos" msgstr "" @@ -398,10 +398,10 @@ msgstr "" #: ../../mod/photos.php:529 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook-red/theme.php:82 -#: ../../view/theme/diabook-blue/theme.php:82 -#: ../../view/theme/diabook/theme.php:86 -#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297 +#: ../../view/theme/diabook-red/theme.php:86 +#: ../../view/theme/diabook-blue/theme.php:86 +#: ../../view/theme/diabook/theme.php:89 +#: ../../view/theme/diabook-aerith/theme.php:87 ../../include/text.php:1297 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -576,11 +576,10 @@ msgstr "" msgid "Not available." msgstr "" -#: ../../mod/community.php:30 ../../addon/pages/pages.php:75 -#: ../../view/theme/diabook-red/theme.php:242 -#: ../../view/theme/diabook-blue/theme.php:242 -#: ../../view/theme/diabook/theme.php:250 -#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:101 +#: ../../mod/community.php:30 ../../view/theme/diabook-red/theme.php:246 +#: ../../view/theme/diabook-blue/theme.php:246 +#: ../../view/theme/diabook/theme.php:253 +#: ../../view/theme/diabook-aerith/theme.php:247 ../../include/nav.php:101 msgid "Community" msgstr "" @@ -1165,7 +1164,7 @@ msgid "is interested in:" msgstr "" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:986 +#: ../../include/contact_widgets.php:9 ../../boot.php:987 msgid "Connect" msgstr "" @@ -1213,10 +1212,10 @@ msgstr "" msgid "Personal" msgstr "" -#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:236 -#: ../../view/theme/diabook-blue/theme.php:236 -#: ../../view/theme/diabook/theme.php:244 -#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:77 +#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:240 +#: ../../view/theme/diabook-blue/theme.php:240 +#: ../../view/theme/diabook/theme.php:247 +#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:77 #: ../../include/nav.php:115 msgid "Home" msgstr "" @@ -1594,10 +1593,10 @@ msgstr "" msgid "Edit contact" msgstr "" -#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:238 -#: ../../view/theme/diabook-blue/theme.php:238 -#: ../../view/theme/diabook/theme.php:246 -#: ../../view/theme/diabook-aerith/theme.php:238 ../../include/nav.php:139 +#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:242 +#: ../../view/theme/diabook-blue/theme.php:242 +#: ../../view/theme/diabook/theme.php:249 +#: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:139 msgid "Contacts" msgstr "" @@ -1630,8 +1629,8 @@ msgstr "" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 #: ../../mod/register.php:392 ../../mod/register.php:446 #: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732 -#: ../../addon/facebook/facebook.php:617 -#: ../../addon/facebook/facebook.php:1069 ../../include/items.php:2658 +#: ../../addon/facebook/facebook.php:621 +#: ../../addon/facebook/facebook.php:1073 ../../include/items.php:2658 msgid "Administrator" msgstr "" @@ -1733,52 +1732,52 @@ msgstr "" msgid " Cannot change to that email." msgstr "" -#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:445 -#: ../../addon/impressum/impressum.php:64 +#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:449 +#: ../../addon/impressum/impressum.php:75 #: ../../addon/openstreetmap/openstreetmap.php:80 -#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:364 +#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:370 msgid "Settings updated." msgstr "" -#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:284 -#: ../../view/theme/diabook-blue/theme.php:283 -#: ../../view/theme/diabook/theme.php:293 -#: ../../view/theme/diabook-aerith/theme.php:283 ../../include/nav.php:137 +#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:288 +#: ../../view/theme/diabook-blue/theme.php:287 +#: ../../view/theme/diabook/theme.php:298 +#: ../../view/theme/diabook-aerith/theme.php:288 ../../include/nav.php:137 msgid "Account settings" msgstr "" -#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:289 -#: ../../view/theme/diabook-blue/theme.php:288 -#: ../../view/theme/diabook/theme.php:298 -#: ../../view/theme/diabook-aerith/theme.php:288 +#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:293 +#: ../../view/theme/diabook-blue/theme.php:292 +#: ../../view/theme/diabook/theme.php:303 +#: ../../view/theme/diabook-aerith/theme.php:293 msgid "Display settings" msgstr "" -#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:298 -#: ../../view/theme/diabook-blue/theme.php:297 -#: ../../view/theme/diabook/theme.php:307 -#: ../../view/theme/diabook-aerith/theme.php:297 +#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:302 +#: ../../view/theme/diabook-blue/theme.php:301 +#: ../../view/theme/diabook/theme.php:312 +#: ../../view/theme/diabook-aerith/theme.php:302 msgid "Connector settings" msgstr "" -#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:303 -#: ../../view/theme/diabook-blue/theme.php:302 -#: ../../view/theme/diabook/theme.php:312 -#: ../../view/theme/diabook-aerith/theme.php:302 +#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:307 +#: ../../view/theme/diabook-blue/theme.php:306 +#: ../../view/theme/diabook/theme.php:317 +#: ../../view/theme/diabook-aerith/theme.php:307 msgid "Plugin settings" msgstr "" -#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:308 -#: ../../view/theme/diabook-blue/theme.php:307 -#: ../../view/theme/diabook/theme.php:317 -#: ../../view/theme/diabook-aerith/theme.php:307 +#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:312 +#: ../../view/theme/diabook-blue/theme.php:311 +#: ../../view/theme/diabook/theme.php:322 +#: ../../view/theme/diabook-aerith/theme.php:312 msgid "Connections" msgstr "" -#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:313 -#: ../../view/theme/diabook-blue/theme.php:312 -#: ../../view/theme/diabook/theme.php:322 -#: ../../view/theme/diabook-aerith/theme.php:312 +#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:317 +#: ../../view/theme/diabook-blue/theme.php:316 +#: ../../view/theme/diabook/theme.php:327 +#: ../../view/theme/diabook-aerith/theme.php:317 msgid "Export personal data" msgstr "" @@ -1788,12 +1787,12 @@ msgid "Add application" msgstr "" #: ../../mod/settings.php:532 ../../mod/settings.php:559 -#: ../../addon/statusnet/statusnet.php:541 +#: ../../addon/statusnet/statusnet.php:547 msgid "Consumer Key" msgstr "" #: ../../mod/settings.php:533 ../../mod/settings.php:560 -#: ../../addon/statusnet/statusnet.php:540 +#: ../../addon/statusnet/statusnet.php:546 msgid "Consumer Secret" msgstr "" @@ -2258,12 +2257,12 @@ msgstr "" msgid "Invalid contact." msgstr "" -#: ../../mod/notes.php:44 ../../boot.php:1426 +#: ../../mod/notes.php:44 ../../boot.php:1427 msgid "Personal Notes" msgstr "" #: ../../mod/notes.php:63 ../../mod/filer.php:30 -#: ../../addon/facebook/facebook.php:673 ../../include/text.php:652 +#: ../../addon/facebook/facebook.php:677 ../../include/text.php:652 msgid "Save" msgstr "" @@ -2465,7 +2464,7 @@ msgstr "" msgid "Group name changed." msgstr "" -#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:293 +#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305 msgid "Permission denied" msgstr "" @@ -2505,12 +2504,12 @@ msgstr "" msgid "Profile Visibility Editor" msgstr "" -#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:237 -#: ../../view/theme/diabook-blue/theme.php:237 -#: ../../view/theme/diabook/theme.php:245 -#: ../../view/theme/diabook-aerith/theme.php:237 +#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:241 +#: ../../view/theme/diabook-blue/theme.php:241 +#: ../../view/theme/diabook/theme.php:248 +#: ../../view/theme/diabook-aerith/theme.php:242 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:76 -#: ../../include/nav.php:50 ../../boot.php:1408 +#: ../../include/nav.php:50 ../../boot.php:1409 msgid "Profile" msgstr "" @@ -2691,28 +2690,28 @@ msgid "People Search" msgstr "" #: ../../mod/like.php:127 ../../mod/tagger.php:70 -#: ../../addon/facebook/facebook.php:1440 +#: ../../addon/facebook/facebook.php:1546 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 -#: ../../view/theme/diabook-red/theme.php:77 -#: ../../view/theme/diabook-red/theme.php:86 -#: ../../view/theme/diabook-blue/theme.php:77 -#: ../../view/theme/diabook-blue/theme.php:86 -#: ../../view/theme/diabook/theme.php:81 ../../view/theme/diabook/theme.php:90 -#: ../../view/theme/diabook-aerith/theme.php:77 -#: ../../view/theme/diabook-aerith/theme.php:86 +#: ../../view/theme/diabook-red/theme.php:81 +#: ../../view/theme/diabook-red/theme.php:90 +#: ../../view/theme/diabook-blue/theme.php:81 +#: ../../view/theme/diabook-blue/theme.php:90 +#: ../../view/theme/diabook/theme.php:84 ../../view/theme/diabook/theme.php:93 +#: ../../view/theme/diabook-aerith/theme.php:82 +#: ../../view/theme/diabook-aerith/theme.php:91 #: ../../include/diaspora.php:1654 ../../include/conversation.php:48 #: ../../include/conversation.php:57 ../../include/conversation.php:121 #: ../../include/conversation.php:130 msgid "status" msgstr "" -#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1444 +#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1550 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook-red/theme.php:91 -#: ../../view/theme/diabook-blue/theme.php:91 -#: ../../view/theme/diabook/theme.php:95 -#: ../../view/theme/diabook-aerith/theme.php:91 +#: ../../view/theme/diabook-red/theme.php:95 +#: ../../view/theme/diabook-blue/theme.php:95 +#: ../../view/theme/diabook/theme.php:98 +#: ../../view/theme/diabook-aerith/theme.php:96 #: ../../include/diaspora.php:1670 ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" @@ -3032,7 +3031,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:538 +#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:544 msgid "Site name" msgstr "" @@ -3758,30 +3757,30 @@ msgstr "" msgid "Age: " msgstr "" -#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:294 -#: ../../view/theme/diabook-blue/theme.php:293 -#: ../../view/theme/diabook/theme.php:303 -#: ../../view/theme/diabook-aerith/theme.php:293 +#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:298 +#: ../../view/theme/diabook-blue/theme.php:297 +#: ../../view/theme/diabook/theme.php:308 +#: ../../view/theme/diabook-aerith/theme.php:298 msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:477 ../../boot.php:1008 +#: ../../mod/profiles.php:477 ../../boot.php:1009 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:478 ../../boot.php:1009 +#: ../../mod/profiles.php:478 ../../boot.php:1010 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:489 ../../boot.php:1019 +#: ../../mod/profiles.php:489 ../../boot.php:1020 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:491 ../../boot.php:1022 +#: ../../mod/profiles.php:491 ../../boot.php:1023 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:492 ../../boot.php:1023 +#: ../../mod/profiles.php:492 ../../boot.php:1024 msgid "Edit visibility" msgstr "" @@ -3833,10 +3832,10 @@ msgstr "" msgid "No entries." msgstr "" -#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:146 -#: ../../view/theme/diabook-blue/theme.php:146 -#: ../../view/theme/diabook/theme.php:150 -#: ../../view/theme/diabook-aerith/theme.php:146 +#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:150 +#: ../../view/theme/diabook-blue/theme.php:150 +#: ../../view/theme/diabook/theme.php:153 +#: ../../view/theme/diabook-aerith/theme.php:151 #: ../../include/contact_widgets.php:33 msgid "Friend Suggestions" msgstr "" @@ -3851,10 +3850,10 @@ msgstr "" msgid "Ignore/Hide" msgstr "" -#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:144 -#: ../../view/theme/diabook-blue/theme.php:144 -#: ../../view/theme/diabook/theme.php:148 -#: ../../view/theme/diabook-aerith/theme.php:144 +#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:148 +#: ../../view/theme/diabook-blue/theme.php:148 +#: ../../view/theme/diabook/theme.php:151 +#: ../../view/theme/diabook-aerith/theme.php:149 msgid "Global Directory" msgstr "" @@ -4040,71 +4039,71 @@ msgstr "" msgid "Connection accepted at %s" msgstr "" -#: ../../addon/facebook/facebook.php:462 +#: ../../addon/facebook/facebook.php:466 msgid "Facebook disabled" msgstr "" -#: ../../addon/facebook/facebook.php:467 +#: ../../addon/facebook/facebook.php:471 msgid "Updating contacts" msgstr "" -#: ../../addon/facebook/facebook.php:488 +#: ../../addon/facebook/facebook.php:492 msgid "Facebook API key is missing." msgstr "" -#: ../../addon/facebook/facebook.php:495 +#: ../../addon/facebook/facebook.php:499 msgid "Facebook Connect" msgstr "" -#: ../../addon/facebook/facebook.php:501 +#: ../../addon/facebook/facebook.php:505 msgid "Install Facebook connector for this account." msgstr "" -#: ../../addon/facebook/facebook.php:508 +#: ../../addon/facebook/facebook.php:512 msgid "Remove Facebook connector" msgstr "" -#: ../../addon/facebook/facebook.php:513 +#: ../../addon/facebook/facebook.php:517 msgid "" "Re-authenticate [This is necessary whenever your Facebook password is " "changed.]" msgstr "" -#: ../../addon/facebook/facebook.php:520 +#: ../../addon/facebook/facebook.php:524 msgid "Post to Facebook by default" msgstr "" -#: ../../addon/facebook/facebook.php:524 +#: ../../addon/facebook/facebook.php:528 msgid "Link all your Facebook friends and conversations on this website" msgstr "" -#: ../../addon/facebook/facebook.php:526 +#: ../../addon/facebook/facebook.php:530 msgid "" "Facebook conversations consist of your profile wall and your friend " "stream." msgstr "" -#: ../../addon/facebook/facebook.php:527 +#: ../../addon/facebook/facebook.php:531 msgid "On this website, your Facebook friend stream is only visible to you." msgstr "" -#: ../../addon/facebook/facebook.php:528 +#: ../../addon/facebook/facebook.php:532 msgid "" "The following settings determine the privacy of your Facebook profile wall " "on this website." msgstr "" -#: ../../addon/facebook/facebook.php:532 +#: ../../addon/facebook/facebook.php:536 msgid "" "On this website your Facebook profile wall conversations will only be " "visible to you" msgstr "" -#: ../../addon/facebook/facebook.php:537 +#: ../../addon/facebook/facebook.php:541 msgid "Do not import your Facebook profile wall conversations" msgstr "" -#: ../../addon/facebook/facebook.php:539 +#: ../../addon/facebook/facebook.php:543 msgid "" "If you choose to link conversations and leave both of these boxes unchecked, " "your Facebook profile wall will be merged with your profile wall on this " @@ -4112,114 +4111,114 @@ msgid "" "who may see the conversations." msgstr "" -#: ../../addon/facebook/facebook.php:544 +#: ../../addon/facebook/facebook.php:548 msgid "Comma separated applications to ignore" msgstr "" -#: ../../addon/facebook/facebook.php:615 +#: ../../addon/facebook/facebook.php:619 msgid "Problems with Facebook Real-Time Updates" msgstr "" -#: ../../addon/facebook/facebook.php:639 +#: ../../addon/facebook/facebook.php:643 #: ../../include/contact_selectors.php:81 msgid "Facebook" msgstr "" -#: ../../addon/facebook/facebook.php:640 +#: ../../addon/facebook/facebook.php:644 msgid "Facebook Connector Settings" msgstr "" -#: ../../addon/facebook/facebook.php:649 +#: ../../addon/facebook/facebook.php:653 msgid "Facebook API Key" msgstr "" -#: ../../addon/facebook/facebook.php:658 +#: ../../addon/facebook/facebook.php:662 msgid "" "Error: it appears that you have specified the App-ID and -Secret in your ." "htconfig.php file. As long as they are specified there, they cannot be set " "using this form.

" msgstr "" -#: ../../addon/facebook/facebook.php:663 +#: ../../addon/facebook/facebook.php:667 msgid "" "Error: the given API Key seems to be incorrect (the application access token " "could not be retrieved)." msgstr "" -#: ../../addon/facebook/facebook.php:665 +#: ../../addon/facebook/facebook.php:669 msgid "The given API Key seems to work correctly." msgstr "" -#: ../../addon/facebook/facebook.php:667 +#: ../../addon/facebook/facebook.php:671 msgid "" "The correctness of the API Key could not be detected. Somthing strange's " "going on." msgstr "" -#: ../../addon/facebook/facebook.php:670 +#: ../../addon/facebook/facebook.php:674 msgid "App-ID / API-Key" msgstr "" -#: ../../addon/facebook/facebook.php:671 +#: ../../addon/facebook/facebook.php:675 msgid "Application secret" msgstr "" -#: ../../addon/facebook/facebook.php:672 +#: ../../addon/facebook/facebook.php:676 #, php-format msgid "Polling Interval (min. %1$s minutes)" msgstr "" -#: ../../addon/facebook/facebook.php:676 +#: ../../addon/facebook/facebook.php:680 msgid "Real-Time Updates" msgstr "" -#: ../../addon/facebook/facebook.php:680 +#: ../../addon/facebook/facebook.php:684 msgid "Real-Time Updates are activated." msgstr "" -#: ../../addon/facebook/facebook.php:681 +#: ../../addon/facebook/facebook.php:685 msgid "Deactivate Real-Time Updates" msgstr "" -#: ../../addon/facebook/facebook.php:683 +#: ../../addon/facebook/facebook.php:687 msgid "Real-Time Updates not activated." msgstr "" -#: ../../addon/facebook/facebook.php:683 +#: ../../addon/facebook/facebook.php:687 msgid "Activate Real-Time Updates" msgstr "" -#: ../../addon/facebook/facebook.php:697 +#: ../../addon/facebook/facebook.php:701 msgid "The new values have been saved." msgstr "" -#: ../../addon/facebook/facebook.php:716 +#: ../../addon/facebook/facebook.php:720 msgid "Post to Facebook" msgstr "" -#: ../../addon/facebook/facebook.php:808 +#: ../../addon/facebook/facebook.php:812 msgid "" "Post to Facebook cancelled because of multi-network access permission " "conflict." msgstr "" -#: ../../addon/facebook/facebook.php:1026 +#: ../../addon/facebook/facebook.php:1030 msgid "View on Friendica" msgstr "" -#: ../../addon/facebook/facebook.php:1051 +#: ../../addon/facebook/facebook.php:1055 msgid "Facebook post failed. Queued for retry." msgstr "" -#: ../../addon/facebook/facebook.php:1087 +#: ../../addon/facebook/facebook.php:1091 msgid "Your Facebook connection became invalid. Please Re-authenticate." msgstr "" -#: ../../addon/facebook/facebook.php:1088 +#: ../../addon/facebook/facebook.php:1092 msgid "Facebook connection became invalid" msgstr "" -#: ../../addon/facebook/facebook.php:1089 +#: ../../addon/facebook/facebook.php:1093 #, php-format msgid "" "Hi %1$s,\n" @@ -4229,11 +4228,6 @@ msgid "" "connection again, you have to %3$sre-authenticate the Facebook-connector%4$s." msgstr "" -#: ../../addon/facebook/facebook.php:1214 -#: ../../addon/facebook/facebook.php:1223 ../../include/bb2diaspora.php:102 -msgid "link" -msgstr "" - #: ../../addon/widgets/widget_like.php:58 #, php-format msgid "%d person likes this" @@ -4383,10 +4377,10 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook-red/theme.php:74 -#: ../../view/theme/diabook-blue/theme.php:74 -#: ../../view/theme/diabook/theme.php:78 -#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295 +#: ../../view/theme/diabook-red/theme.php:78 +#: ../../view/theme/diabook-blue/theme.php:78 +#: ../../view/theme/diabook/theme.php:81 +#: ../../view/theme/diabook-aerith/theme.php:79 ../../include/text.php:1295 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "" @@ -4594,41 +4588,69 @@ msgstr "" msgid "URL to embed:" msgstr "" -#: ../../addon/impressum/impressum.php:25 +#: ../../addon/impressum/impressum.php:34 msgid "Impressum" msgstr "" -#: ../../addon/impressum/impressum.php:38 -#: ../../addon/impressum/impressum.php:40 -#: ../../addon/impressum/impressum.php:70 +#: ../../addon/impressum/impressum.php:47 +#: ../../addon/impressum/impressum.php:49 +#: ../../addon/impressum/impressum.php:81 msgid "Site Owner" msgstr "" -#: ../../addon/impressum/impressum.php:38 -#: ../../addon/impressum/impressum.php:74 +#: ../../addon/impressum/impressum.php:47 +#: ../../addon/impressum/impressum.php:85 msgid "Email Address" msgstr "" -#: ../../addon/impressum/impressum.php:43 -#: ../../addon/impressum/impressum.php:72 +#: ../../addon/impressum/impressum.php:52 +#: ../../addon/impressum/impressum.php:83 msgid "Postal Address" msgstr "" -#: ../../addon/impressum/impressum.php:49 +#: ../../addon/impressum/impressum.php:58 msgid "" "The impressum addon needs to be configured!
Please add at least the " "owner variable to your config file. For other variables please " "refer to the README file of the addon." msgstr "" -#: ../../addon/impressum/impressum.php:71 +#: ../../addon/impressum/impressum.php:81 +msgid "The page operators name." +msgstr "" + +#: ../../addon/impressum/impressum.php:82 msgid "Site Owners Profile" msgstr "" -#: ../../addon/impressum/impressum.php:73 +#: ../../addon/impressum/impressum.php:82 +msgid "Profile address of the operator." +msgstr "" + +#: ../../addon/impressum/impressum.php:83 +msgid "How to contact the operator via snail mail." +msgstr "" + +#: ../../addon/impressum/impressum.php:84 msgid "Notes" msgstr "" +#: ../../addon/impressum/impressum.php:84 +msgid "Additional notes that are displayed beneath the contact information." +msgstr "" + +#: ../../addon/impressum/impressum.php:85 +msgid "How to contact the operator via email. (will be displayed obfuscated)" +msgstr "" + +#: ../../addon/impressum/impressum.php:86 +msgid "Footer note" +msgstr "" + +#: ../../addon/impressum/impressum.php:86 +msgid "Text for the footer." +msgstr "" + #: ../../addon/buglink/buglink.php:15 msgid "Report Bug" msgstr "" @@ -4879,7 +4901,7 @@ msgstr "" msgid "Clear OAuth configuration" msgstr "" -#: ../../addon/statusnet/statusnet.php:539 +#: ../../addon/statusnet/statusnet.php:545 msgid "API URL" msgstr "" @@ -4982,11 +5004,11 @@ msgstr "" msgid "Cutting posts after how much characters" msgstr "" -#: ../../addon/showmore/showmore.php:64 +#: ../../addon/showmore/showmore.php:65 msgid "Show More Settings saved." msgstr "" -#: ../../addon/showmore/showmore.php:86 ../../include/conversation.php:466 +#: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466 #: ../../boot.php:495 msgid "show more" msgstr "" @@ -5089,11 +5111,11 @@ msgstr "" msgid "Send #tag links to Twitter" msgstr "" -#: ../../addon/twitter/twitter.php:371 +#: ../../addon/twitter/twitter.php:377 msgid "Consumer key" msgstr "" -#: ../../addon/twitter/twitter.php:372 +#: ../../addon/twitter/twitter.php:378 msgid "Consumer secret" msgstr "" @@ -5129,159 +5151,159 @@ msgstr "" msgid "Post to Posterous by default" msgstr "" -#: ../../view/theme/diabook-red/theme.php:23 -#: ../../view/theme/diabook-blue/theme.php:23 -#: ../../view/theme/diabook/theme.php:27 -#: ../../view/theme/dispy-dark/theme.php:116 -#: ../../view/theme/diabook-aerith/theme.php:23 +#: ../../view/theme/diabook-red/theme.php:27 +#: ../../view/theme/diabook-blue/theme.php:27 +#: ../../view/theme/diabook/theme.php:30 +#: ../../view/theme/dispy-dark/theme.php:120 +#: ../../view/theme/diabook-aerith/theme.php:28 msgid "Last users" msgstr "" -#: ../../view/theme/diabook-red/theme.php:52 -#: ../../view/theme/diabook-blue/theme.php:52 -#: ../../view/theme/diabook/theme.php:56 -#: ../../view/theme/diabook-aerith/theme.php:52 +#: ../../view/theme/diabook-red/theme.php:56 +#: ../../view/theme/diabook-blue/theme.php:56 +#: ../../view/theme/diabook/theme.php:59 +#: ../../view/theme/diabook-aerith/theme.php:57 msgid "Last likes" msgstr "" -#: ../../view/theme/diabook-red/theme.php:97 -#: ../../view/theme/diabook-blue/theme.php:97 -#: ../../view/theme/diabook/theme.php:101 -#: ../../view/theme/diabook-aerith/theme.php:97 +#: ../../view/theme/diabook-red/theme.php:101 +#: ../../view/theme/diabook-blue/theme.php:101 +#: ../../view/theme/diabook/theme.php:104 +#: ../../view/theme/diabook-aerith/theme.php:102 msgid "Last photos" msgstr "" -#: ../../view/theme/diabook-red/theme.php:142 -#: ../../view/theme/diabook-blue/theme.php:142 -#: ../../view/theme/diabook/theme.php:146 -#: ../../view/theme/diabook-aerith/theme.php:142 -msgid "Find Friends" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:143 -#: ../../view/theme/diabook-blue/theme.php:143 -#: ../../view/theme/diabook/theme.php:147 -#: ../../view/theme/diabook-aerith/theme.php:143 -msgid "Local Directory" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:145 -#: ../../view/theme/diabook-blue/theme.php:145 +#: ../../view/theme/diabook-red/theme.php:146 +#: ../../view/theme/diabook-blue/theme.php:146 #: ../../view/theme/diabook/theme.php:149 -#: ../../view/theme/diabook-aerith/theme.php:145 -#: ../../include/contact_widgets.php:34 -msgid "Similar Interests" +#: ../../view/theme/diabook-aerith/theme.php:147 +msgid "Find Friends" msgstr "" #: ../../view/theme/diabook-red/theme.php:147 #: ../../view/theme/diabook-blue/theme.php:147 -#: ../../view/theme/diabook/theme.php:151 -#: ../../view/theme/diabook-aerith/theme.php:147 +#: ../../view/theme/diabook/theme.php:150 +#: ../../view/theme/diabook-aerith/theme.php:148 +msgid "Local Directory" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:149 +#: ../../view/theme/diabook-blue/theme.php:149 +#: ../../view/theme/diabook/theme.php:152 +#: ../../view/theme/diabook-aerith/theme.php:150 +#: ../../include/contact_widgets.php:34 +msgid "Similar Interests" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:151 +#: ../../view/theme/diabook-blue/theme.php:151 +#: ../../view/theme/diabook/theme.php:154 +#: ../../view/theme/diabook-aerith/theme.php:152 #: ../../include/contact_widgets.php:35 msgid "Invite Friends" msgstr "" -#: ../../view/theme/diabook-red/theme.php:162 -#: ../../view/theme/diabook-red/theme.php:243 -#: ../../view/theme/diabook-blue/theme.php:162 -#: ../../view/theme/diabook-blue/theme.php:243 -#: ../../view/theme/diabook/theme.php:167 -#: ../../view/theme/diabook/theme.php:251 -#: ../../view/theme/diabook-aerith/theme.php:162 -#: ../../view/theme/diabook-aerith/theme.php:243 +#: ../../view/theme/diabook-red/theme.php:166 +#: ../../view/theme/diabook-red/theme.php:247 +#: ../../view/theme/diabook-blue/theme.php:166 +#: ../../view/theme/diabook-blue/theme.php:247 +#: ../../view/theme/diabook/theme.php:170 +#: ../../view/theme/diabook/theme.php:254 +#: ../../view/theme/diabook-aerith/theme.php:167 +#: ../../view/theme/diabook-aerith/theme.php:248 msgid "Community Pages" msgstr "" -#: ../../view/theme/diabook-red/theme.php:195 -#: ../../view/theme/diabook-blue/theme.php:195 -#: ../../view/theme/diabook/theme.php:200 -#: ../../view/theme/diabook-aerith/theme.php:195 +#: ../../view/theme/diabook-red/theme.php:199 +#: ../../view/theme/diabook-blue/theme.php:199 +#: ../../view/theme/diabook/theme.php:203 +#: ../../view/theme/diabook-aerith/theme.php:200 msgid "Help or @NewHere ?" msgstr "" -#: ../../view/theme/diabook-red/theme.php:201 -#: ../../view/theme/diabook-blue/theme.php:201 -#: ../../view/theme/diabook/theme.php:206 -#: ../../view/theme/diabook-aerith/theme.php:201 +#: ../../view/theme/diabook-red/theme.php:205 +#: ../../view/theme/diabook-blue/theme.php:205 +#: ../../view/theme/diabook/theme.php:209 +#: ../../view/theme/diabook-aerith/theme.php:206 msgid "Connect Services" msgstr "" -#: ../../view/theme/diabook-red/theme.php:207 -#: ../../view/theme/diabook-blue/theme.php:207 -#: ../../view/theme/diabook/theme.php:212 -#: ../../view/theme/diabook-aerith/theme.php:207 +#: ../../view/theme/diabook-red/theme.php:211 +#: ../../view/theme/diabook-blue/theme.php:211 +#: ../../view/theme/diabook/theme.php:215 +#: ../../view/theme/diabook-aerith/theme.php:212 msgid "PostIt to Friendica" msgstr "" -#: ../../view/theme/diabook-red/theme.php:207 -#: ../../view/theme/diabook-blue/theme.php:207 -#: ../../view/theme/diabook/theme.php:212 -#: ../../view/theme/diabook-aerith/theme.php:207 +#: ../../view/theme/diabook-red/theme.php:211 +#: ../../view/theme/diabook-blue/theme.php:211 +#: ../../view/theme/diabook/theme.php:215 +#: ../../view/theme/diabook-aerith/theme.php:212 msgid "Post to Friendica" msgstr "" -#: ../../view/theme/diabook-red/theme.php:208 -#: ../../view/theme/diabook-blue/theme.php:208 -#: ../../view/theme/diabook/theme.php:213 -#: ../../view/theme/diabook-aerith/theme.php:208 +#: ../../view/theme/diabook-red/theme.php:212 +#: ../../view/theme/diabook-blue/theme.php:212 +#: ../../view/theme/diabook/theme.php:216 +#: ../../view/theme/diabook-aerith/theme.php:213 msgid " from anywhere by bookmarking this Link." msgstr "" -#: ../../view/theme/diabook-red/theme.php:236 -#: ../../view/theme/diabook-blue/theme.php:236 -#: ../../view/theme/diabook/theme.php:244 -#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:49 -#: ../../include/nav.php:115 -msgid "Your posts and conversations" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:237 -#: ../../view/theme/diabook-blue/theme.php:237 -#: ../../view/theme/diabook/theme.php:245 -#: ../../view/theme/diabook-aerith/theme.php:237 ../../include/nav.php:50 -msgid "Your profile page" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:238 -#: ../../view/theme/diabook-blue/theme.php:238 -#: ../../view/theme/diabook/theme.php:246 -#: ../../view/theme/diabook-aerith/theme.php:238 -msgid "Your contacts" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:239 -#: ../../view/theme/diabook-blue/theme.php:239 -#: ../../view/theme/diabook/theme.php:247 -#: ../../view/theme/diabook-aerith/theme.php:239 ../../include/nav.php:51 -#: ../../boot.php:1413 -msgid "Photos" -msgstr "" - -#: ../../view/theme/diabook-red/theme.php:239 -#: ../../view/theme/diabook-blue/theme.php:239 -#: ../../view/theme/diabook/theme.php:247 -#: ../../view/theme/diabook-aerith/theme.php:239 ../../include/nav.php:51 -msgid "Your photos" -msgstr "" - #: ../../view/theme/diabook-red/theme.php:240 #: ../../view/theme/diabook-blue/theme.php:240 +#: ../../view/theme/diabook/theme.php:247 +#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:49 +#: ../../include/nav.php:115 +msgid "Your posts and conversations" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:241 +#: ../../view/theme/diabook-blue/theme.php:241 #: ../../view/theme/diabook/theme.php:248 -#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52 +#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:50 +msgid "Your profile page" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:242 +#: ../../view/theme/diabook-blue/theme.php:242 +#: ../../view/theme/diabook/theme.php:249 +#: ../../view/theme/diabook-aerith/theme.php:243 +msgid "Your contacts" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:243 +#: ../../view/theme/diabook-blue/theme.php:243 +#: ../../view/theme/diabook/theme.php:250 +#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51 +#: ../../boot.php:1414 +msgid "Photos" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:243 +#: ../../view/theme/diabook-blue/theme.php:243 +#: ../../view/theme/diabook/theme.php:250 +#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51 +msgid "Your photos" +msgstr "" + +#: ../../view/theme/diabook-red/theme.php:244 +#: ../../view/theme/diabook-blue/theme.php:244 +#: ../../view/theme/diabook/theme.php:251 +#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52 msgid "Your events" msgstr "" -#: ../../view/theme/diabook-red/theme.php:241 -#: ../../view/theme/diabook-blue/theme.php:241 -#: ../../view/theme/diabook/theme.php:249 -#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53 +#: ../../view/theme/diabook-red/theme.php:245 +#: ../../view/theme/diabook-blue/theme.php:245 +#: ../../view/theme/diabook/theme.php:252 +#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53 msgid "Personal notes" msgstr "" -#: ../../view/theme/diabook-red/theme.php:241 -#: ../../view/theme/diabook-blue/theme.php:241 -#: ../../view/theme/diabook/theme.php:249 -#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53 +#: ../../view/theme/diabook-red/theme.php:245 +#: ../../view/theme/diabook-blue/theme.php:245 +#: ../../view/theme/diabook/theme.php:252 +#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53 msgid "Your personal photos" msgstr "" @@ -5305,7 +5327,7 @@ msgstr "" msgid "Color scheme" msgstr "" -#: ../../include/profile_advanced.php:17 ../../boot.php:1044 +#: ../../include/profile_advanced.php:17 ../../boot.php:1045 msgid "Gender:" msgstr "" @@ -5326,11 +5348,11 @@ msgstr "" msgid "Age:" msgstr "" -#: ../../include/profile_advanced.php:37 ../../boot.php:1047 +#: ../../include/profile_advanced.php:37 ../../boot.php:1048 msgid "Status:" msgstr "" -#: ../../include/profile_advanced.php:45 ../../boot.php:1049 +#: ../../include/profile_advanced.php:45 ../../boot.php:1050 msgid "Homepage:" msgstr "" @@ -5898,7 +5920,7 @@ msgstr "" msgid "End this session" msgstr "" -#: ../../include/nav.php:49 ../../boot.php:1403 +#: ../../include/nav.php:49 ../../boot.php:1404 msgid "Status" msgstr "" @@ -5978,11 +6000,11 @@ msgstr "" msgid "Manage other pages" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1002 +#: ../../include/nav.php:138 ../../boot.php:1003 msgid "Profiles" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1002 +#: ../../include/nav.php:138 ../../boot.php:1003 msgid "Manage/edit profiles" msgstr "" @@ -6144,7 +6166,7 @@ msgstr "" msgid "%1$d %2$s ago" msgstr "" -#: ../../include/poller.php:533 +#: ../../include/poller.php:543 msgid "From: " msgstr "" @@ -6152,7 +6174,7 @@ msgstr "" msgid "$1 wrote:" msgstr "" -#: ../../include/bbcode.php:237 ../../include/bbcode.php:303 +#: ../../include/bbcode.php:238 ../../include/bbcode.php:304 msgid "Image/photo" msgstr "" @@ -6378,6 +6400,10 @@ msgstr "" msgid "image/photo" msgstr "" +#: ../../include/bb2diaspora.php:102 +msgid "link" +msgstr "" + #: ../../include/security.php:21 msgid "Welcome " msgstr "" @@ -6636,42 +6662,42 @@ msgstr "" msgid "Forgot your password?" msgstr "" -#: ../../boot.php:935 +#: ../../boot.php:936 msgid "Edit profile" msgstr "" -#: ../../boot.php:994 +#: ../../boot.php:995 msgid "Message" msgstr "" -#: ../../boot.php:1109 ../../boot.php:1180 +#: ../../boot.php:1110 ../../boot.php:1181 msgid "g A l F d" msgstr "" -#: ../../boot.php:1110 ../../boot.php:1181 +#: ../../boot.php:1111 ../../boot.php:1182 msgid "F d" msgstr "" -#: ../../boot.php:1135 +#: ../../boot.php:1136 msgid "Birthday Reminders" msgstr "" -#: ../../boot.php:1136 +#: ../../boot.php:1137 msgid "Birthdays this week:" msgstr "" -#: ../../boot.php:1159 ../../boot.php:1223 +#: ../../boot.php:1160 ../../boot.php:1224 msgid "[today]" msgstr "" -#: ../../boot.php:1204 +#: ../../boot.php:1205 msgid "Event Reminders" msgstr "" -#: ../../boot.php:1205 +#: ../../boot.php:1206 msgid "Events this week:" msgstr "" -#: ../../boot.php:1217 +#: ../../boot.php:1218 msgid "[No description]" msgstr "" From de3b9e95847640a0cc8119ac0bcc0141cc0403d4 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 17:28:36 -0700 Subject: [PATCH 08/44] send zrl after dfrn_request homecoming for manual entries --- mod/dfrn_request.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 5881b7b51..80d27ac30 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -180,7 +180,7 @@ function dfrn_request_post(&$a) { // (ignore reply, nothing we can do it failed) - goaway($dfrn_url); + goaway(zrl($dfrn_url)); return; // NOTREACHED } From 5183d4f77d59b80964d6d1fab1696815eb7235a3 Mon Sep 17 00:00:00 2001 From: zottel Date: Mon, 9 Apr 2012 02:30:18 +0200 Subject: [PATCH 09/44] Some new German translations --- view/de/messages.po | 118 ++++++++++++++++++++++---------------------- view/de/strings.php | 10 ++-- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/view/de/messages.po b/view/de/messages.po index 1036e7b75..c67aebb76 100644 --- a/view/de/messages.po +++ b/view/de/messages.po @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" -"POT-Creation-Date: 2012-04-05 10:00-0700\n" -"PO-Revision-Date: 2012-04-06 10:40+0000\n" -"Last-Translator: bavatar \n" +"POT-Creation-Date: 2012-04-06 10:00-0700\n" +"PO-Revision-Date: 2012-04-08 23:57+0000\n" +"Last-Translator: zottel \n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -216,7 +216,7 @@ msgstr "l, F j" msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: ../../mod/events.php:272 ../../include/text.php:1050 +#: ../../mod/events.php:272 ../../include/text.php:1053 msgid "link to source" msgstr "Link zum Originalbeitrag" @@ -410,7 +410,7 @@ msgstr "wurde getaggt in einem" #: ../../view/theme/diabook-red/theme.php:82 #: ../../view/theme/diabook-blue/theme.php:82 #: ../../view/theme/diabook/theme.php:86 -#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1294 +#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -2234,7 +2234,7 @@ msgstr "Markierte" msgid "Shared Links" msgstr "Geteilte Links" -#: ../../mod/network.php:270 +#: ../../mod/network.php:274 #, php-format msgid "Warning: This group contains %s member from an insecure network." msgid_plural "" @@ -2242,31 +2242,31 @@ msgid_plural "" msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk." msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken." -#: ../../mod/network.php:273 +#: ../../mod/network.php:277 msgid "Private messages to this group are at risk of public disclosure." msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten." -#: ../../mod/network.php:318 +#: ../../mod/network.php:322 msgid "No such group" msgstr "Es gibt keine solche Gruppe" -#: ../../mod/network.php:329 +#: ../../mod/network.php:333 msgid "Group is empty" msgstr "Gruppe ist leer" -#: ../../mod/network.php:333 +#: ../../mod/network.php:337 msgid "Group: " msgstr "Gruppe: " -#: ../../mod/network.php:343 +#: ../../mod/network.php:347 msgid "Contact: " msgstr "Kontakt: " -#: ../../mod/network.php:345 +#: ../../mod/network.php:349 msgid "Private messages to this person are at risk of public disclosure." msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." -#: ../../mod/network.php:350 +#: ../../mod/network.php:354 msgid "Invalid contact." msgstr "Ungültiger Kontakt." @@ -2275,7 +2275,7 @@ msgid "Personal Notes" msgstr "Persönliche Notizen" #: ../../mod/notes.php:63 ../../mod/filer.php:30 -#: ../../addon/facebook/facebook.php:673 ../../include/text.php:649 +#: ../../addon/facebook/facebook.php:673 ../../include/text.php:652 msgid "Save" msgstr "Speichern" @@ -2538,7 +2538,7 @@ msgstr "Alle Kontakte (mit gesichertem Profilzugriff)" msgid "No contacts." msgstr "Keine Kontakte." -#: ../../mod/viewcontacts.php:76 ../../include/text.php:586 +#: ../../mod/viewcontacts.php:76 ../../include/text.php:589 msgid "View Contacts" msgstr "Kontakte anzeigen" @@ -4397,7 +4397,7 @@ msgstr "Neueste Favoriten" #: ../../view/theme/diabook-red/theme.php:74 #: ../../view/theme/diabook-blue/theme.php:74 #: ../../view/theme/diabook/theme.php:78 -#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1292 +#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "Veranstaltung" @@ -5223,21 +5223,21 @@ msgstr "Verbinde Dienste" #: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook-aerith/theme.php:207 msgid "PostIt to Friendica" -msgstr "PostIt nach Friendica" +msgstr "Bei Friendica posten" #: ../../view/theme/diabook-red/theme.php:207 #: ../../view/theme/diabook-blue/theme.php:207 #: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook-aerith/theme.php:207 msgid "Post to Friendica" -msgstr "Bei Friendica veröffentlichen" +msgstr "Wenn du diesen Link" #: ../../view/theme/diabook-red/theme.php:208 #: ../../view/theme/diabook-blue/theme.php:208 #: ../../view/theme/diabook/theme.php:213 #: ../../view/theme/diabook-aerith/theme.php:208 msgid " from anywhere by bookmarking this Link." -msgstr " von überall her indem du diesen Link zu deinen Lesezeichen hinzufügst." +msgstr "zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen." #: ../../view/theme/diabook-red/theme.php:236 #: ../../view/theme/diabook-blue/theme.php:236 @@ -5695,158 +5695,158 @@ msgstr "(kein Betreff)" msgid "noreply" msgstr "noreply" -#: ../../include/text.php:240 +#: ../../include/text.php:243 msgid "prev" msgstr "vorige" -#: ../../include/text.php:242 +#: ../../include/text.php:245 msgid "first" msgstr "erste" -#: ../../include/text.php:271 +#: ../../include/text.php:274 msgid "last" msgstr "letzte" -#: ../../include/text.php:274 +#: ../../include/text.php:277 msgid "next" msgstr "nächste" -#: ../../include/text.php:565 +#: ../../include/text.php:568 msgid "No contacts" msgstr "Keine Kontakte" -#: ../../include/text.php:574 +#: ../../include/text.php:577 #, php-format msgid "%d Contact" msgid_plural "%d Contacts" msgstr[0] "%d Kontakt" msgstr[1] "%d Kontakte" -#: ../../include/text.php:647 ../../include/nav.php:91 +#: ../../include/text.php:650 ../../include/nav.php:91 msgid "Search" msgstr "Suche" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Monday" msgstr "Montag" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Tuesday" msgstr "Dienstag" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Wednesday" msgstr "Mittwoch" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Thursday" msgstr "Donnerstag" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Friday" msgstr "Freitag" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Saturday" msgstr "Samstag" -#: ../../include/text.php:828 +#: ../../include/text.php:831 msgid "Sunday" msgstr "Sonntag" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "January" msgstr "Januar" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "February" msgstr "Februar" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "March" msgstr "März" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "April" msgstr "April" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "May" msgstr "Mai" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "June" msgstr "Juni" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "July" msgstr "Juli" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "August" msgstr "August" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "September" msgstr "September" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "October" msgstr "Oktober" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "November" msgstr "November" -#: ../../include/text.php:832 +#: ../../include/text.php:835 msgid "December" msgstr "Dezember" -#: ../../include/text.php:916 +#: ../../include/text.php:919 msgid "bytes" msgstr "Byte" -#: ../../include/text.php:933 +#: ../../include/text.php:936 msgid "Categories:" msgstr "Kategorien:" -#: ../../include/text.php:945 +#: ../../include/text.php:948 msgid "remove" msgstr "löschen" -#: ../../include/text.php:945 +#: ../../include/text.php:948 msgid "[remove]" msgstr "[löschen]" -#: ../../include/text.php:948 +#: ../../include/text.php:951 msgid "Filed under:" msgstr "Abgelegt unter:" -#: ../../include/text.php:964 ../../include/text.php:976 +#: ../../include/text.php:967 ../../include/text.php:979 msgid "Click to open/close" msgstr "Zum öffnen/schließen klicken" -#: ../../include/text.php:1068 +#: ../../include/text.php:1071 msgid "Select an alternate language" msgstr "Alternative Sprache auswählen" -#: ../../include/text.php:1080 +#: ../../include/text.php:1083 msgid "default" msgstr "standard" -#: ../../include/text.php:1296 +#: ../../include/text.php:1299 msgid "activity" msgstr "Aktivität" -#: ../../include/text.php:1298 +#: ../../include/text.php:1301 msgid "comment" msgstr "Kommentar" -#: ../../include/text.php:1299 +#: ../../include/text.php:1302 msgid "post" msgstr "Beitrag" -#: ../../include/text.php:1454 +#: ../../include/text.php:1457 msgid "Item filed" msgstr "Beitrag abgelegt" @@ -6220,7 +6220,7 @@ msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben." #: ../../include/enotify.php:42 #, php-format msgid "%s sent you %s." -msgstr "%s hat Dir geschickt %s" +msgstr "%s hat Dir %s geschickt" #: ../../include/enotify.php:42 msgid "a private message" @@ -6316,7 +6316,7 @@ msgstr "%s markierte %s" #: ../../include/enotify.php:121 msgid "your post" -msgstr "Dein Beitrag" +msgstr "Deinen Beitrag" #: ../../include/enotify.php:130 msgid "[Friendica:Notify] Introduction received" diff --git a/view/de/strings.php b/view/de/strings.php index 28567396b..3b9601aca 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -1159,9 +1159,9 @@ $a->strings["Invite Friends"] = "Freunde einladen"; $a->strings["Community Pages"] = "Foren"; $a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere"; $a->strings["Connect Services"] = "Verbinde Dienste"; -$a->strings["PostIt to Friendica"] = "PostIt nach Friendica"; -$a->strings["Post to Friendica"] = "Bei Friendica veröffentlichen"; -$a->strings[" from anywhere by bookmarking this Link."] = " von überall her indem du diesen Link zu deinen Lesezeichen hinzufügst."; +$a->strings["PostIt to Friendica"] = "Bei Friendica posten"; +$a->strings["Post to Friendica"] = "Wenn du diesen Link"; +$a->strings[" from anywhere by bookmarking this Link."] = "zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen."; $a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; $a->strings["Your profile page"] = "Deine Profilseite"; $a->strings["Your contacts"] = "Deine Kontakte"; @@ -1401,7 +1401,7 @@ $a->strings["%s Administrator"] = "der Administrator von %s"; $a->strings["%s "] = "%s "; $a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s"; $a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben."; -$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s"; +$a->strings["%s sent you %s."] = "%s hat Dir %s geschickt"; $a->strings["a private message"] = "eine private Nachricht"; $a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten."; $a->strings["%s's"] = "%s's"; @@ -1421,7 +1421,7 @@ $a->strings["tagged you"] = "erwähnte Dich"; $a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag"; $a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt"; $a->strings["%s tagged %s"] = "%s markierte %s"; -$a->strings["your post"] = "Dein Beitrag"; +$a->strings["your post"] = "Deinen Beitrag"; $a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten"; $a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten"; $a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten."; From 129130b0f7b7a10d8c2178842792193251be8c4e Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 18:01:49 -0700 Subject: [PATCH 10/44] fix empty string timezone --- include/datetime.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/datetime.php b/include/datetime.php index 6d395fe3f..1c43813d3 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -80,6 +80,13 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang if(! function_exists('datetime_convert')) { function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") { + // Defaults to UTC if nothing is set, but not if set to empty string. + + if($from == '') + $from = 'UTC'; + if($to == '') + $to = 'UTC'; + // Slight hackish adjustment so that 'zero' datetime actually returns what is intended // otherwise we end up with -0001-11-30 ... // add 32 days so that we at least get year 00, and then hack around the fact that From c1e25968071f01a9b4f4b69541818a0fc3d7eebf Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 8 Apr 2012 18:09:21 -0700 Subject: [PATCH 11/44] more sane defaults datetime_convert --- include/datetime.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/datetime.php b/include/datetime.php index 1c43813d3..f4dcfce62 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -80,12 +80,15 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang if(! function_exists('datetime_convert')) { function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") { - // Defaults to UTC if nothing is set, but not if set to empty string. + // Defaults to UTC if nothing is set, but throws an exception if set to empty string. + // Provide some sane defaults regardless. - if($from == '') + if($from === '') $from = 'UTC'; - if($to == '') + if($to === '') $to = 'UTC'; + if($s === '') + $s = 'now'; // Slight hackish adjustment so that 'zero' datetime actually returns what is intended // otherwise we end up with -0001-11-30 ... From 92c20895e0e0c94e17793f91f84faedfc8de938c Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 9 Apr 2012 04:55:52 -0700 Subject: [PATCH 12/44] use local_user for tag completion if available. See bug #368 --- mod/item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/item.php b/mod/item.php index 82fb0bf72..c30b17457 100644 --- a/mod/item.php +++ b/mod/item.php @@ -447,7 +447,7 @@ function item_post(&$a) { if(count($tags)) { foreach($tags as $tag) { - handle_tag($a, $body, $inform, $str_tags, $profile_uid, $tag); + handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); } } From 7ac4b83c39d841c80c39ca034971aaaa4bdf0e59 Mon Sep 17 00:00:00 2001 From: Alexander Kampmann Date: Mon, 9 Apr 2012 14:04:49 +0200 Subject: [PATCH 13/44] made exceptions from the db optional set address for updae mails correctly --- boot.php | 1775 ++++++++++++++++++++++++----------------------- include/dba.php | 32 +- index.php | 7 - 3 files changed, 930 insertions(+), 884 deletions(-) diff --git a/boot.php b/boot.php index c21cefa18..56476be0b 100644 --- a/boot.php +++ b/boot.php @@ -20,14 +20,14 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); /** * * Image storage quality. Lower numbers save space at cost of image detail. - * For ease of upgrade, please do not change here. Change jpeg quality with - * $a->config['system']['jpeg_quality'] = n; - * in .htconfig.php, where n is netween 1 and 100, and with very poor results - * below about 50 + * For ease of upgrade, please do not change here. Change jpeg quality with + * $a->config['system']['jpeg_quality'] = n; + * in .htconfig.php, where n is netween 1 and 100, and with very poor results + * below about 50 * */ -define ( 'JPEG_QUALITY', 100 ); +define ( 'JPEG_QUALITY', 100 ); /** * SSL redirection policies @@ -68,7 +68,7 @@ define ( 'CONTACT_IS_FRIEND', 3); /** * Hook array order */ - + define ( 'HOOK_HOOK', 0); define ( 'HOOK_FILE', 1); define ( 'HOOK_FUNCTION', 2); @@ -79,9 +79,9 @@ define ( 'HOOK_FUNCTION', 2); * * PAGE_NORMAL is a typical personal profile account * PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly) - * PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with + * PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with * write access to wall and comments (no email and not included in page owner's ACL lists) - * PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND). + * PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND). * */ @@ -93,7 +93,7 @@ define ( 'PAGE_BLOG', 4 ); define ( 'PAGE_PRVGROUP', 5 ); /** - * Network and protocol family types + * Network and protocol family types */ define ( 'NETWORK_DFRN', 'dfrn'); // Friendica, Mistpark, other DFRN implementations @@ -103,31 +103,31 @@ define ( 'NETWORK_FEED', 'feed'); // RSS/Atom feeds with no known define ( 'NETWORK_DIASPORA', 'dspr'); // Diaspora define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP define ( 'NETWORK_MAIL2', 'mai2'); // extended IMAP/POP -define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API +define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API define ( 'NETWORK_LINKEDIN', 'lnkd'); // LinkedIn -define ( 'NETWORK_XMPP', 'xmpp'); // XMPP +define ( 'NETWORK_XMPP', 'xmpp'); // XMPP define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace define ( 'NETWORK_GPLUS', 'goog'); // Google+ /* * These numbers are used in stored permissions - * and existing allocations MUST NEVER BE CHANGED - * OR RE-ASSIGNED! You may only add to them. - */ +* and existing allocations MUST NEVER BE CHANGED +* OR RE-ASSIGNED! You may only add to them. +*/ $netgroup_ids = array( - NETWORK_DFRN => (-1), - NETWORK_ZOT => (-2), - NETWORK_OSTATUS => (-3), - NETWORK_FEED => (-4), - NETWORK_DIASPORA => (-5), - NETWORK_MAIL => (-6), - NETWORK_MAIL2 => (-7), - NETWORK_FACEBOOK => (-8), - NETWORK_LINKEDIN => (-9), - NETWORK_XMPP => (-10), - NETWORK_MYSPACE => (-11), - NETWORK_GPLUS => (-12), + NETWORK_DFRN => (-1), + NETWORK_ZOT => (-2), + NETWORK_OSTATUS => (-3), + NETWORK_FEED => (-4), + NETWORK_DIASPORA => (-5), + NETWORK_MAIL => (-6), + NETWORK_MAIL2 => (-7), + NETWORK_FACEBOOK => (-8), + NETWORK_LINKEDIN => (-9), + NETWORK_XMPP => (-10), + NETWORK_MYSPACE => (-11), + NETWORK_GPLUS => (-12), ); @@ -166,7 +166,7 @@ define ( 'NOTIFY_SYSTEM', 0x8000 ); */ define ( 'NAMESPACE_ZOT', 'http://purl.org/macgirvin/zot' ); -define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' ); +define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' ); define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' ); define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' ); define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' ); @@ -232,19 +232,19 @@ function startup() { if (get_magic_quotes_gpc()) { - $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); - while (list($key, $val) = each($process)) { - foreach ($val as $k => $v) { - unset($process[$key][$k]); - if (is_array($v)) { - $process[$key][stripslashes($k)] = $v; - $process[] = &$process[$key][stripslashes($k)]; - } else { - $process[$key][stripslashes($k)] = stripslashes($v); - } - } - } - unset($process); + $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); + while (list($key, $val) = each($process)) { + foreach ($val as $k => $v) { + unset($process[$key][$k]); + if (is_array($v)) { + $process[$key][stripslashes($k)] = $v; + $process[] = &$process[$key][stripslashes($k)]; + } else { + $process[$key][stripslashes($k)] = stripslashes($v); + } + } + } + unset($process); } } @@ -255,186 +255,186 @@ function startup() { * * Our main application structure for the life of this page * Primarily deals with the URL that got us here - * and tries to make some sense of it, and + * and tries to make some sense of it, and * stores our page contents and config storage - * and anything else that might need to be passed around - * before we spit the page out. + * and anything else that might need to be passed around + * before we spit the page out. * */ if(! class_exists('App')) { -class App { + class App { - public $module_loaded = false; - public $query_string; - public $config; - public $page; - public $profile; - public $user; - public $cid; - public $contact; - public $contacts; - public $page_contact; - public $content; - public $data = array(); - public $error = false; - public $cmd; - public $argv; - public $argc; - public $module; - public $pager; - public $strings; - public $path; - public $hooks; - public $timezone; - public $interactive = true; - public $plugins; - public $apps = array(); - public $identities; - - public $nav_sel; + public $module_loaded = false; + public $query_string; + public $config; + public $page; + public $profile; + public $user; + public $cid; + public $contact; + public $contacts; + public $page_contact; + public $content; + public $data = array(); + public $error = false; + public $cmd; + public $argv; + public $argc; + public $module; + public $pager; + public $strings; + public $path; + public $hooks; + public $timezone; + public $interactive = true; + public $plugins; + public $apps = array(); + public $identities; - public $category; + public $nav_sel; - private $scheme; - private $hostname; - private $baseurl; - private $db; + public $category; - private $curl_code; - private $curl_headers; + private $scheme; + private $hostname; + private $baseurl; + private $db; - function __construct() { + private $curl_code; + private $curl_headers; - $this->config = array(); - $this->page = array(); - $this->pager= array(); + function __construct() { - $this->query_string = ''; + $this->config = array(); + $this->page = array(); + $this->pager= array(); - startup(); + $this->query_string = ''; - $this->scheme = 'http'; - if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) - $this->scheme = 'https'; - elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) + startup(); + + $this->scheme = 'http'; + if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) + $this->scheme = 'https'; + elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) $this->scheme = 'https'; - if(x($_SERVER,'SERVER_NAME')) { - $this->hostname = $_SERVER['SERVER_NAME']; - if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) - $this->hostname .= ':' . $_SERVER['SERVER_PORT']; - /** - * Figure out if we are running at the top of a domain - * or in a sub-directory and adjust accordingly + if(x($_SERVER,'SERVER_NAME')) { + $this->hostname = $_SERVER['SERVER_NAME']; + if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) + $this->hostname .= ':' . $_SERVER['SERVER_PORT']; + /** + * Figure out if we are running at the top of a domain + * or in a sub-directory and adjust accordingly + */ + + $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\'); + if(isset($path) && strlen($path) && ($path != $this->path)) + $this->path = $path; + } + + set_include_path( + "include/$this->hostname" . PATH_SEPARATOR + . 'include' . PATH_SEPARATOR + . 'library' . PATH_SEPARATOR + . 'library/phpsec' . PATH_SEPARATOR + . '.' ); + + if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { + $this->query_string = substr($_SERVER['QUERY_STRING'],2); + // removing trailing / - maybe a nginx problem + if (substr($this->query_string, 0, 1) == "/") + $this->query_string = substr($this->query_string, 1); + } + if(x($_GET,'q')) + $this->cmd = trim($_GET['q'],'/\\'); + + // unix style "homedir" + + if(substr($this->cmd,0,1) === '~') + $this->cmd = 'profile/' . substr($this->cmd,1); + + // Diaspora style profile url + + if(substr($this->cmd,0,2) === 'u/') + $this->cmd = 'profile/' . substr($this->cmd,2); + + /** + * + * Break the URL path into C style argc/argv style arguments for our + * modules. Given "http://example.com/module/arg1/arg2", $this->argc + * will be 3 (integer) and $this->argv will contain: + * [0] => 'module' + * [1] => 'arg1' + * [2] => 'arg2' + * + * + * There will always be one argument. If provided a naked domain + * URL, $this->argv[0] is set to "home". + * */ - $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\'); - if(isset($path) && strlen($path) && ($path != $this->path)) - $this->path = $path; - } - - set_include_path( - "include/$this->hostname" . PATH_SEPARATOR - . 'include' . PATH_SEPARATOR - . 'library' . PATH_SEPARATOR - . 'library/phpsec' . PATH_SEPARATOR - . '.' ); - - if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { - $this->query_string = substr($_SERVER['QUERY_STRING'],2); - // removing trailing / - maybe a nginx problem - if (substr($this->query_string, 0, 1) == "/") - $this->query_string = substr($this->query_string, 1); - } - if(x($_GET,'q')) - $this->cmd = trim($_GET['q'],'/\\'); - - // unix style "homedir" - - if(substr($this->cmd,0,1) === '~') - $this->cmd = 'profile/' . substr($this->cmd,1); - - // Diaspora style profile url - - if(substr($this->cmd,0,2) === 'u/') - $this->cmd = 'profile/' . substr($this->cmd,2); - - /** - * - * Break the URL path into C style argc/argv style arguments for our - * modules. Given "http://example.com/module/arg1/arg2", $this->argc - * will be 3 (integer) and $this->argv will contain: - * [0] => 'module' - * [1] => 'arg1' - * [2] => 'arg2' - * - * - * There will always be one argument. If provided a naked domain - * URL, $this->argv[0] is set to "home". - * - */ - - $this->argv = explode('/',$this->cmd); - $this->argc = count($this->argv); - if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { - $this->module = str_replace(".", "_", $this->argv[0]); - if(array_key_exists('2',$this->argv)) { - $this->category = $this->argv[2]; + $this->argv = explode('/',$this->cmd); + $this->argc = count($this->argv); + if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { + $this->module = str_replace(".", "_", $this->argv[0]); + if(array_key_exists('2',$this->argv)) { + $this->category = $this->argv[2]; + } } - } - else { - $this->argc = 1; - $this->argv = array('home'); - $this->module = 'home'; + else { + $this->argc = 1; + $this->argv = array('home'); + $this->module = 'home'; + } + + /** + * Special handling for the webfinger/lrdd host XRD file + */ + + if($this->cmd === '.well-known/host-meta') { + $this->argc = 1; + $this->argv = array('hostxrd'); + $this->module = 'hostxrd'; + } + + /** + * See if there is any page number information, and initialise + * pagination + */ + + $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1); + $this->pager['itemspage'] = 50; + $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage']; + $this->pager['total'] = 0; } - /** - * Special handling for the webfinger/lrdd host XRD file - */ + function get_baseurl($ssl = false) { - if($this->cmd === '.well-known/host-meta') { - $this->argc = 1; - $this->argv = array('hostxrd'); - $this->module = 'hostxrd'; - } + $scheme = $this->scheme; - /** - * See if there is any page number information, and initialise - * pagination - */ + if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) { + if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) + $scheme = 'https'; - $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1); - $this->pager['itemspage'] = 50; - $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage']; - $this->pager['total'] = 0; - } + // We need to populate the $ssl flag across the entire program before turning this on. + // Basically, we'll have $ssl = true on any links which can only be seen by a logged in user + // (and also the login link). Anything seen by an outsider will have it turned off. + // At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their + // contact links to this site with "http:" if they are currently using "https:" - function get_baseurl($ssl = false) { + // if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { + // if($ssl) + // $scheme = 'https'; + // else + // $scheme = 'http'; + // } + } - $scheme = $this->scheme; - - if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) { - if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) - $scheme = 'https'; - -// We need to populate the $ssl flag across the entire program before turning this on. -// Basically, we'll have $ssl = true on any links which can only be seen by a logged in user -// (and also the login link). Anything seen by an outsider will have it turned off. -// At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their -// contact links to this site with "http:" if they are currently using "https:" - -// if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { -// if($ssl) -// $scheme = 'https'; -// else -// $scheme = 'http'; -// } - } - - $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); - return $this->baseurl; + $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); + return $this->baseurl; } function set_baseurl($url) { @@ -442,7 +442,7 @@ class App { $this->baseurl = $url; - if($parsed) { + if($parsed) { $this->scheme = $parsed['scheme']; $this->hostname = $parsed['host']; @@ -464,7 +464,7 @@ class App { function set_path($p) { $this->path = trim(trim($p),'/'); - } + } function get_path() { return $this->path; @@ -478,7 +478,7 @@ class App { $this->pager['itemspage'] = intval($n); $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage']; - } + } function init_pagehead() { $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000); @@ -488,13 +488,13 @@ class App { $this->page['title'] = $this->config['sitename']; $tpl = file_get_contents('view/head.tpl'); $this->page['htmlhead'] = replace_macros($tpl,array( - '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!! - '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION, - '$delitem' => t('Delete this item?'), - '$comment' => t('Comment'), - '$showmore' => t('show more'), - '$showfewer' => t('show fewer'), - '$update_interval' => $interval + '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!! + '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION, + '$delitem' => t('Delete this item?'), + '$comment' => t('Comment'), + '$showmore' => t('show more'), + '$showfewer' => t('show fewer'), + '$update_interval' => $interval )); } @@ -515,16 +515,18 @@ class App { } -}} +} +} // retrieve the App structure // useful in functions which require it but don't get it passed to them if(! function_exists('get_app')) { -function get_app() { - global $a; - return $a; -}}; + function get_app() { + global $a; + return $a; + } +}; // Multi-purpose function to check variable state. @@ -534,42 +536,44 @@ function get_app() { // e.g. x('') or x(0) returns 0; if(! function_exists('x')) { -function x($s,$k = NULL) { - if($k != NULL) { - if((is_array($s)) && (array_key_exists($k,$s))) { - if($s[$k]) - return (int) 1; - return (int) 0; - } - return false; - } - else { - if(isset($s)) { - if($s) { - return (int) 1; + function x($s,$k = NULL) { + if($k != NULL) { + if((is_array($s)) && (array_key_exists($k,$s))) { + if($s[$k]) + return (int) 1; + return (int) 0; } - return (int) 0; + return false; + } + else { + if(isset($s)) { + if($s) { + return (int) 1; + } + return (int) 0; + } + return false; } - return false; } -}} +} // called from db initialisation if db is dead. if(! function_exists('system_unavailable')) { -function system_unavailable() { - include('system_unavailable.php'); - system_down(); - killme(); -}} + function system_unavailable() { + include('system_unavailable.php'); + system_down(); + killme(); + } +} function clean_urls() { global $a; -// if($a->config['system']['clean_urls']) - return true; -// return false; + // if($a->config['system']['clean_urls']) + return true; + // return false; } function z_path() { @@ -596,148 +600,150 @@ function is_ajax() { } -// Primarily involved with database upgrade, but also sets the +// Primarily involved with database upgrade, but also sets the // base url for use in cmdline programs which don't have // $_SERVER variables, and synchronising the state of installed plugins. if(! function_exists('check_config')) { -function check_config(&$a) { + function check_config(&$a) { - $build = get_config('system','build'); - if(! x($build)) - $build = set_config('system','build',DB_UPDATE_VERSION); + $build = get_config('system','build'); + if(! x($build)) + $build = set_config('system','build',DB_UPDATE_VERSION); - $url = get_config('system','url'); + $url = get_config('system','url'); - // if the url isn't set or the stored url is radically different - // than the currently visited url, store the current value accordingly. - // "Radically different" ignores common variations such as http vs https - // and www.example.com vs example.com. + // if the url isn't set or the stored url is radically different + // than the currently visited url, store the current value accordingly. + // "Radically different" ignores common variations such as http vs https + // and www.example.com vs example.com. - if((! x($url)) || (! link_compare($url,$a->get_baseurl()))) - $url = set_config('system','url',$a->get_baseurl()); + if((! x($url)) || (! link_compare($url,$a->get_baseurl()))) + $url = set_config('system','url',$a->get_baseurl()); - if($build != DB_UPDATE_VERSION) { - $stored = intval($build); - $current = intval(DB_UPDATE_VERSION); - if(($stored < $current) && file_exists('update.php')) { + if($build != DB_UPDATE_VERSION) { + $stored = intval($build); + $current = intval(DB_UPDATE_VERSION); + if(($stored < $current) && file_exists('update.php')) { - load_config('database'); + load_config('database'); - // We're reporting a different version than what is currently installed. - // Run any existing update scripts to bring the database up to current. + // We're reporting a different version than what is currently installed. + // Run any existing update scripts to bring the database up to current. - require_once('update.php'); + require_once('update.php'); - // make sure that boot.php and update.php are the same release, we might be - // updating right this very second and the correct version of the update.php - // file may not be here yet. This can happen on a very busy site. + // make sure that boot.php and update.php are the same release, we might be + // updating right this very second and the correct version of the update.php + // file may not be here yet. This can happen on a very busy site. - if(DB_UPDATE_VERSION == UPDATE_VERSION) { + if(DB_UPDATE_VERSION == UPDATE_VERSION) { - for($x = $stored; $x < $current; $x ++) { - if(function_exists('update_' . $x)) { + for($x = $stored; $x < $current; $x ++) { + if(function_exists('update_' . $x)) { - // There could be a lot of processes running or about to run. - // We want exactly one process to run the update command. - // So store the fact that we're taking responsibility - // after first checking to see if somebody else already has. + // There could be a lot of processes running or about to run. + // We want exactly one process to run the update command. + // So store the fact that we're taking responsibility + // after first checking to see if somebody else already has. - // If the update fails or times-out completely you may need to - // delete the config entry to try again. + // If the update fails or times-out completely you may need to + // delete the config entry to try again. - if(get_config('database','update_' . $x)) - break; - set_config('database','update_' . $x, '1'); + if(get_config('database','update_' . $x)) + break; + set_config('database','update_' . $x, '1'); - // call the specific update + // call the specific update - global $db; - try { - $db->beginTransaction(); - $func = 'update_' . $x; - $func($a); - $db->commit(); - } catch(Exception $ex) { - $db->rollback(); - //send the administrator an e-mail - $email_tpl = get_intltext_template("update_fail_eml.tpl"); - $email_tpl = replace_macros($email_tpl, array( - '$sitename' => $a->config['sitename'], - '$siteurl' => $a->get_baseurl(), - '$update' => $x, - '$error' => $ex->getMessage()); - $subject=sprintf(t('Update Error at %s'), $a->get_baseurl()); - - mail($email, $subject, $text, - 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" - . 'Content-type: text/plain; charset=UTF-8' . "\n" - . 'Content-transfer-encoding: 8bit' ); - //try the logger - logger('update failed: '.$ex->getMessage().EOL); + global $db; + $db->excep(TRUE); + try { + $db->beginTransaction(); + $func = 'update_' . $x; + $func($a); + $db->commit(); + } catch(Exception $ex) { + $db->rollback(); + //send the administrator an e-mail + $email_tpl = get_intltext_template("update_fail_eml.tpl"); + $email_tpl = replace_macros($email_tpl, array( + '$sitename' => $a->config['sitename'], + '$siteurl' => $a->get_baseurl(), + '$update' => $x, + '$error' => $ex->getMessage()); + $subject=sprintf(t('Update Error at %s'), $a->get_baseurl()); + + mail($a->config['admin_email'], $subject, $text, + 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" + . 'Content-type: text/plain; charset=UTF-8' . "\n" + . 'Content-transfer-encoding: 8bit' ); + //try the logger + logger('update failed: '.$ex->getMessage().EOL); + } + $db->excep(FALSE); } - } + set_config('system','build', DB_UPDATE_VERSION); } - set_config('system','build', DB_UPDATE_VERSION); } } - } - /** - * - * Synchronise plugins: - * - * $a->config['system']['addon'] contains a comma-separated list of names - * of plugins/addons which are used on this system. - * Go through the database list of already installed addons, and if we have - * an entry, but it isn't in the config list, call the uninstall procedure - * and mark it uninstalled in the database (for now we'll remove it). - * Then go through the config list and if we have a plugin that isn't installed, - * call the install procedure and add it to the database. - * - */ + /** + * + * Synchronise plugins: + * + * $a->config['system']['addon'] contains a comma-separated list of names + * of plugins/addons which are used on this system. + * Go through the database list of already installed addons, and if we have + * an entry, but it isn't in the config list, call the uninstall procedure + * and mark it uninstalled in the database (for now we'll remove it). + * Then go through the config list and if we have a plugin that isn't installed, + * call the install procedure and add it to the database. + * + */ - $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); - if(count($r)) - $installed = $r; - else - $installed = array(); + $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); + if(count($r)) + $installed = $r; + else + $installed = array(); - $plugins = get_config('system','addon'); - $plugins_arr = array(); + $plugins = get_config('system','addon'); + $plugins_arr = array(); - if($plugins) - $plugins_arr = explode(',',str_replace(' ', '',$plugins)); + if($plugins) + $plugins_arr = explode(',',str_replace(' ', '',$plugins)); - $a->plugins = $plugins_arr; + $a->plugins = $plugins_arr; - $installed_arr = array(); + $installed_arr = array(); - if(count($installed)) { - foreach($installed as $i) { - if(! in_array($i['name'],$plugins_arr)) { - uninstall_plugin($i['name']); - } - else - $installed_arr[] = $i['name']; - } - } - - if(count($plugins_arr)) { - foreach($plugins_arr as $p) { - if(! in_array($p,$installed_arr)) { - install_plugin($p); + if(count($installed)) { + foreach($installed as $i) { + if(! in_array($i['name'],$plugins_arr)) { + uninstall_plugin($i['name']); + } + else + $installed_arr[] = $i['name']; } } + + if(count($plugins_arr)) { + foreach($plugins_arr as $p) { + if(! in_array($p,$installed_arr)) { + install_plugin($p); + } + } + } + + + load_hooks(); + + return; } - - - load_hooks(); - - return; -}} +} function get_guid($size=16) { @@ -758,116 +764,124 @@ function get_guid($size=16) { // returns the complete html for inserting into the page if(! function_exists('login')) { -function login($register = false, $hiddens=false) { - $a = get_app(); - $o = ""; - $reg = false; - if ($register) { - $reg = array( - 'title' => t('Create a New Account'), - 'desc' => t('Register') - ); + function login($register = false, $hiddens=false) { + $a = get_app(); + $o = ""; + $reg = false; + if ($register) { + $reg = array( + 'title' => t('Create a New Account'), + 'desc' => t('Register') + ); + } + + $noid = get_config('system','no_openid'); + + $dest_url = $a->get_baseurl(true) . '/' . $a->query_string; + + if(local_user()) { + $tpl = get_markup_template("logout.tpl"); + } + else { + $tpl = get_markup_template("login.tpl"); + $_SESSION['return_url'] = $a->query_string; + } + + + $o .= replace_macros($tpl,array( + + '$dest_url' => $dest_url, + '$logout' => t('Logout'), + '$login' => t('Login'), + + '$lname' => array('username', t('Nickname or Email address: ') , '', ''), + '$lpassword' => array('password', t('Password: '), '', ''), + + '$openid' => !$noid, + '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), + + '$hiddens' => $hiddens, + + '$register' => $reg, + + '$lostpass' => t('Forgot your password?'), + '$lostlink' => t('Password Reset'), + )); + + call_hooks('login_hook',$o); + + return $o; } +} - $noid = get_config('system','no_openid'); - - $dest_url = $a->get_baseurl(true) . '/' . $a->query_string; - - if(local_user()) { - $tpl = get_markup_template("logout.tpl"); - } - else { - $tpl = get_markup_template("login.tpl"); - $_SESSION['return_url'] = $a->query_string; - } - - - $o .= replace_macros($tpl,array( - - '$dest_url' => $dest_url, - '$logout' => t('Logout'), - '$login' => t('Login'), - - '$lname' => array('username', t('Nickname or Email address: ') , '', ''), - '$lpassword' => array('password', t('Password: '), '', ''), - - '$openid' => !$noid, - '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), - - '$hiddens' => $hiddens, - - '$register' => $reg, - - '$lostpass' => t('Forgot your password?'), - '$lostlink' => t('Password Reset'), - )); - - call_hooks('login_hook',$o); - - return $o; -}} - -// Used to end the current process, after saving session state. +// Used to end the current process, after saving session state. if(! function_exists('killme')) { -function killme() { - session_write_close(); - exit; -}} + function killme() { + session_write_close(); + exit; + } +} // redirect to another URL and terminate this process. if(! function_exists('goaway')) { -function goaway($s) { - header("Location: $s"); - killme(); -}} + function goaway($s) { + header("Location: $s"); + killme(); + } +} // Returns the uid of locally logged in user or false. if(! function_exists('local_user')) { -function local_user() { - if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid'))) - return intval($_SESSION['uid']); - return false; -}} + function local_user() { + if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid'))) + return intval($_SESSION['uid']); + return false; + } +} // Returns contact id of authenticated site visitor or false if(! function_exists('remote_user')) { -function remote_user() { - if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) - return intval($_SESSION['visitor_id']); - return false; -}} + function remote_user() { + if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) + return intval($_SESSION['visitor_id']); + return false; + } +} // contents of $s are displayed prominently on the page the next time // a page is loaded. Usually used for errors or alerts. if(! function_exists('notice')) { -function notice($s) { - $a = get_app(); - if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array(); - if($a->interactive) - $_SESSION['sysmsg'][] = $s; -}} + function notice($s) { + $a = get_app(); + if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array(); + if($a->interactive) + $_SESSION['sysmsg'][] = $s; + } +} if(! function_exists('info')) { -function info($s) { - $a = get_app(); - if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); - if($a->interactive) - $_SESSION['sysmsg_info'][] = $s; -}} + function info($s) { + $a = get_app(); + if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); + if($a->interactive) + $_SESSION['sysmsg_info'][] = $s; + } +} // wrapper around config to limit the text length of an incoming message if(! function_exists('get_max_import_size')) { -function get_max_import_size() { - global $a; - return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 ); -}} + function get_max_import_size() { + global $a; + return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 ); + } +} @@ -878,7 +892,7 @@ function get_max_import_size() { * @parameter string $nickname * @parameter int $profile * - * Summary: Loads a profile into the page sidebar. + * Summary: Loads a profile into the page sidebar. * The function requires a writeable copy of the main App structure, and the nickname * of a registered local account. * @@ -888,88 +902,89 @@ function get_max_import_size() { * by the owner. * * Profile information is placed in the App structure for later retrieval. - * Honours the owner's chosen theme for display. + * Honours the owner's chosen theme for display. * */ if(! function_exists('profile_load')) { -function profile_load(&$a, $nickname, $profile = 0) { - if(remote_user()) { - $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1", - intval($_SESSION['visitor_id'])); - if(count($r)) - $profile = $r[0]['profile-id']; - } + function profile_load(&$a, $nickname, $profile = 0) { + if(remote_user()) { + $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1", + intval($_SESSION['visitor_id'])); + if(count($r)) + $profile = $r[0]['profile-id']; + } - $r = null; - - if($profile) { - $profile_int = intval($profile); - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` - left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1", - dbesc($nickname), - intval($profile_int) - ); - } - if((! $r) && (! count($r))) { - $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` - left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` - WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1", - dbesc($nickname) - ); - } + $r = null; + + if($profile) { + $profile_int = intval($profile); + $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` + left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1", + dbesc($nickname), + intval($profile_int) + ); + } + if((! $r) && (! count($r))) { + $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` + left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` + WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1", + dbesc($nickname) + ); + } + + if(($r === false) || (! count($r))) { + notice( t('Requested profile is not available.') . EOL ); + $a->error = 404; + return; + } + + // fetch user tags if this isn't the default profile + + if(! $r[0]['is-default']) { + $x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1", + intval($profile_uid) + ); + if($x && count($x)) + $r[0]['pub_keywords'] = $x[0]['pub_keywords']; + } + + $a->profile = $r[0]; + + + $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename']; + $_SESSION['theme'] = $a->profile['theme']; + + /** + * load/reload current theme info + */ + + $theme_info_file = "view/theme/".current_theme()."/theme.php"; + if (file_exists($theme_info_file)){ + require_once($theme_info_file); + } + + if(! (x($a->page,'aside'))) + $a->page['aside'] = ''; + + if(local_user() && local_user() == $a->profile['uid']) { + $a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array( + '$editprofile' => t('Edit profile'), + '$profid' => $a->profile['id'] + )); + } + + $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); + + $a->page['aside'] .= profile_sidebar($a->profile, $block); + + /*if(! $block) + $a->page['aside'] .= contact_block();*/ - if(($r === false) || (! count($r))) { - notice( t('Requested profile is not available.') . EOL ); - $a->error = 404; return; } - - // fetch user tags if this isn't the default profile - - if(! $r[0]['is-default']) { - $x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1", - intval($profile_uid) - ); - if($x && count($x)) - $r[0]['pub_keywords'] = $x[0]['pub_keywords']; - } - - $a->profile = $r[0]; - - - $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename']; - $_SESSION['theme'] = $a->profile['theme']; - - /** - * load/reload current theme info - */ - - $theme_info_file = "view/theme/".current_theme()."/theme.php"; - if (file_exists($theme_info_file)){ - require_once($theme_info_file); - } - - if(! (x($a->page,'aside'))) - $a->page['aside'] = ''; - - if(local_user() && local_user() == $a->profile['uid']) { - $a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array( - '$editprofile' => t('Edit profile'), - '$profid' => $a->profile['id'] - )); - } - - $block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); - - $a->page['aside'] .= profile_sidebar($a->profile, $block); - - /*if(! $block) - $a->page['aside'] .= contact_block();*/ - - return; -}} +} /** @@ -989,478 +1004,488 @@ function profile_load(&$a, $nickname, $profile = 0) { if(! function_exists('profile_sidebar')) { -function profile_sidebar($profile, $block = 0) { + function profile_sidebar($profile, $block = 0) { - $a = get_app(); + $a = get_app(); - $o = ''; - $location = false; - $address = false; - $pdesc = true; + $o = ''; + $location = false; + $address = false; + $pdesc = true; - if((! is_array($profile)) && (! count($profile))) - return $o; + if((! is_array($profile)) && (! count($profile))) + return $o; - $profile['picdate'] = urlencode($profile['picdate']); + $profile['picdate'] = urlencode($profile['picdate']); - call_hooks('profile_sidebar_enter', $profile); + call_hooks('profile_sidebar_enter', $profile); - - // don't show connect link to yourself - $connect = (($profile['uid'] != local_user()) ? t('Connect') : False); - // don't show connect link to authenticated visitors either + // don't show connect link to yourself + $connect = (($profile['uid'] != local_user()) ? t('Connect') : False); - if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid'])) - $connect = False; + // don't show connect link to authenticated visitors either - if(get_my_url() && $profile['unkmail']) - $wallmessage = t('Message'); - else - $wallmessage = false; + if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid'])) + $connect = False; + + if(get_my_url() && $profile['unkmail']) + $wallmessage = t('Message'); + else + $wallmessage = false; - // show edit profile to yourself - if ($profile['uid'] == local_user()) { - $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); - - $r = q("SELECT * FROM `profile` WHERE `uid` = %d", - local_user()); - - $profile['menu'] = array( - 'chg_photo' => t('Change profile photo'), - 'cr_new' => t('Create New Profile'), - 'entries' => array(), - ); - - if(count($r)) { + // show edit profile to yourself + if ($profile['uid'] == local_user()) { + $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); + + $r = q("SELECT * FROM `profile` WHERE `uid` = %d", + local_user()); + + $profile['menu'] = array( + 'chg_photo' => t('Change profile photo'), + 'cr_new' => t('Create New Profile'), + 'entries' => array(), + ); + + if(count($r)) { + + foreach($r as $rr) { + $profile['menu']['entries'][] = array( + 'photo' => $rr['thumb'], + 'id' => $rr['id'], + 'alt' => t('Profile Image'), + 'profile_name' => $rr['profile-name'], + 'isdefault' => $rr['is-default'], + 'visibile_to_everybody' => t('visible to everybody'), + 'edit_visibility' => t('Edit visibility'), + + ); + } + - foreach($r as $rr) { - $profile['menu']['entries'][] = array( - 'photo' => $rr['thumb'], - 'id' => $rr['id'], - 'alt' => t('Profile Image'), - 'profile_name' => $rr['profile-name'], - 'isdefault' => $rr['is-default'], - 'visibile_to_everybody' => t('visible to everybody'), - 'edit_visibility' => t('Edit visibility'), - - ); } } - - + + + + + if((x($profile,'address') == 1) + || (x($profile,'locality') == 1) + || (x($profile,'region') == 1) + || (x($profile,'postal-code') == 1) + || (x($profile,'country-name') == 1)) + $location = t('Location:'); + + $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False); + + + $marital = ((x($profile,'marital') == 1) ? t('Status:') : False); + + $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False); + + if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { + $location = $pdesc = $gender = $marital = $homepage = False; + } + + $firstname = ((strpos($profile['name'],' ')) + ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']); + $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname)))); + + $diaspora = array( + 'podloc' => $a->get_baseurl(), + 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), + 'nickname' => $profile['nickname'], + 'fullname' => $profile['name'], + 'firstname' => $firstname, + 'lastname' => $lastname, + 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', + 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', + 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', + ); + + if (!$block){ + $contact_block = contact_block(); + } + + + $tpl = get_markup_template('profile_vcard.tpl'); + + $o .= replace_macros($tpl, array( + '$profile' => $profile, + '$connect' => $connect, + '$wallmessage' => $wallmessage, + '$location' => template_escape($location), + '$gender' => $gender, + '$pdesc' => $pdesc, + '$marital' => $marital, + '$homepage' => $homepage, + '$diaspora' => $diaspora, + '$contact_block' => $contact_block, + )); + + + $arr = array('profile' => &$profile, 'entry' => &$o); + + call_hooks('profile_sidebar', $arr); + + return $o; } - - - - - if((x($profile,'address') == 1) - || (x($profile,'locality') == 1) - || (x($profile,'region') == 1) - || (x($profile,'postal-code') == 1) - || (x($profile,'country-name') == 1)) - $location = t('Location:'); - - $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False); - - - $marital = ((x($profile,'marital') == 1) ? t('Status:') : False); - - $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False); - - if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { - $location = $pdesc = $gender = $marital = $homepage = False; - } - - $firstname = ((strpos($profile['name'],' ')) - ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']); - $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname)))); - - $diaspora = array( - 'podloc' => $a->get_baseurl(), - 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), - 'nickname' => $profile['nickname'], - 'fullname' => $profile['name'], - 'firstname' => $firstname, - 'lastname' => $lastname, - 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', - 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', - 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', - ); - - if (!$block){ - $contact_block = contact_block(); - } - - - $tpl = get_markup_template('profile_vcard.tpl'); - - $o .= replace_macros($tpl, array( - '$profile' => $profile, - '$connect' => $connect, - '$wallmessage' => $wallmessage, - '$location' => template_escape($location), - '$gender' => $gender, - '$pdesc' => $pdesc, - '$marital' => $marital, - '$homepage' => $homepage, - '$diaspora' => $diaspora, - '$contact_block' => $contact_block, - )); - - - $arr = array('profile' => &$profile, 'entry' => &$o); - - call_hooks('profile_sidebar', $arr); - - return $o; -}} +} if(! function_exists('get_birthdays')) { -function get_birthdays() { + function get_birthdays() { - $a = get_app(); - $o = ''; + $a = get_app(); + $o = ''; - if(! local_user()) - return $o; + if(! local_user()) + return $o; - $bd_format = t('g A l F d') ; // 8 AM Friday January 18 - $bd_short = t('F d'); + $bd_format = t('g A l F d') ; // 8 AM Friday January 18 + $bd_short = t('F d'); - $r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event` - LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid` - WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s' - ORDER BY `start` ASC ", - intval(local_user()), - dbesc(datetime_convert('UTC','UTC','now + 6 days')), - dbesc(datetime_convert('UTC','UTC','now')) - ); + $r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event` + LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid` + WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s' + ORDER BY `start` ASC ", + intval(local_user()), + dbesc(datetime_convert('UTC','UTC','now + 6 days')), + dbesc(datetime_convert('UTC','UTC','now')) + ); - if($r && count($r)) { - $total = 0; - $now = strtotime('now'); - $cids = array(); + if($r && count($r)) { + $total = 0; + $now = strtotime('now'); + $cids = array(); - $istoday = false; - foreach($r as $rr) { - if(strlen($rr['name'])) - $total ++; + $istoday = false; + foreach($r as $rr) { + if(strlen($rr['name'])) + $total ++; if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) $istoday = true; + } + $classtoday = $istoday ? ' birthday-today ' : ''; + if($total) { + $o .= '
' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '
'; + $o .= ''; + } } - $classtoday = $istoday ? ' birthday-today ' : ''; - if($total) { - $o .= '
' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '
'; - $o .= ''; } - - return $o; -}} +} /** - * + * * Wrap calls to proc_close(proc_open()) and call hook * so plugins can take part in process :) - * + * * args: * $cmd program to run * next args are passed as $cmd command line - * + * * e.g.: proc_run("ls","-la","/tmp"); - * + * * $cmd and string args are surrounded with "" */ if(! function_exists('proc_run')) { -function proc_run($cmd){ + function proc_run($cmd){ - $a = get_app(); + $a = get_app(); - $args = func_get_args(); - $arr = array('args' => $args, 'run_cmd' => true); + $args = func_get_args(); + $arr = array('args' => $args, 'run_cmd' => true); - call_hooks("proc_run", $arr); - if(! $arr['run_cmd']) - return; + call_hooks("proc_run", $arr); + if(! $arr['run_cmd']) + return; - if(count($args) && $args[0] === 'php') - $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); - foreach ($args as $arg){ - $arg = escapeshellarg($arg); + if(count($args) && $args[0] === 'php') + $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); + foreach ($args as $arg){ + $arg = escapeshellarg($arg); + } + $cmdline = implode($args," "); + proc_close(proc_open($cmdline." &",array(),$foo)); } - $cmdline = implode($args," "); - proc_close(proc_open($cmdline." &",array(),$foo)); -}} +} if(! function_exists('current_theme')) { -function current_theme(){ - $app_base_themes = array('duepuntozero', 'loozah'); - - $a = get_app(); - - $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : ''); - $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme); - - if($theme_name && - (file_exists('view/theme/' . $theme_name . '/style.css') || - file_exists('view/theme/' . $theme_name . '/style.php'))) - return($theme_name); - - foreach($app_base_themes as $t) { - if(file_exists('view/theme/' . $t . '/style.css')|| - file_exists('view/theme/' . $t . '/style.php')) - return($t); - } - - $fallback = glob('view/theme/*/style.[css|php]'); - if(count($fallback)) - return (str_replace('view/theme/','', substr($fallback[0],0,-10))); + function current_theme(){ + $app_base_themes = array('duepuntozero', 'loozah'); -}} + $a = get_app(); + + $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : ''); + $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme); + + if($theme_name && + (file_exists('view/theme/' . $theme_name . '/style.css') || + file_exists('view/theme/' . $theme_name . '/style.php'))) + return($theme_name); + + foreach($app_base_themes as $t) { + if(file_exists('view/theme/' . $t . '/style.css')|| + file_exists('view/theme/' . $t . '/style.php')) + return($t); + } + + $fallback = glob('view/theme/*/style.[css|php]'); + if(count($fallback)) + return (str_replace('view/theme/','', substr($fallback[0],0,-10))); + + } +} /* -* Return full URL to theme which is currently in effect. + * Return full URL to theme which is currently in effect. * Provide a sane default if nothing is chosen or the specified theme does not exist. */ if(! function_exists('current_theme_url')) { -function current_theme_url() { - global $a; - $t = current_theme(); - if (file_exists('view/theme/' . $t . '/style.php')) - return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss'); - return($a->get_baseurl() . '/view/theme/' . $t . '/style.css'); -}} + function current_theme_url() { + global $a; + $t = current_theme(); + if (file_exists('view/theme/' . $t . '/style.php')) + return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss'); + return($a->get_baseurl() . '/view/theme/' . $t . '/style.css'); + } +} if(! function_exists('feed_birthday')) { -function feed_birthday($uid,$tz) { + function feed_birthday($uid,$tz) { - /** - * - * Determine the next birthday, but only if the birthday is published - * in the default profile. We _could_ also look for a private profile that the - * recipient can see, but somebody could get mad at us if they start getting - * public birthday greetings when they haven't made this info public. - * - * Assuming we are able to publish this info, we are then going to convert - * the start time from the owner's timezone to UTC. - * - * This will potentially solve the problem found with some social networks - * where birthdays are converted to the viewer's timezone and salutations from - * elsewhere in the world show up on the wrong day. We will convert it to the - * viewer's timezone also, but first we are going to convert it from the birthday - * person's timezone to GMT - so the viewer may find the birthday starting at - * 6:00PM the day before, but that will correspond to midnight to the birthday person. - * - */ + /** + * + * Determine the next birthday, but only if the birthday is published + * in the default profile. We _could_ also look for a private profile that the + * recipient can see, but somebody could get mad at us if they start getting + * public birthday greetings when they haven't made this info public. + * + * Assuming we are able to publish this info, we are then going to convert + * the start time from the owner's timezone to UTC. + * + * This will potentially solve the problem found with some social networks + * where birthdays are converted to the viewer's timezone and salutations from + * elsewhere in the world show up on the wrong day. We will convert it to the + * viewer's timezone also, but first we are going to convert it from the birthday + * person's timezone to GMT - so the viewer may find the birthday starting at + * 6:00PM the day before, but that will correspond to midnight to the birthday person. + * + */ - - $birthday = ''; - if(! strlen($tz)) - $tz = 'UTC'; + $birthday = ''; - $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", - intval($uid) - ); + if(! strlen($tz)) + $tz = 'UTC'; - if($p && count($p)) { - $tmp_dob = substr($p[0]['dob'],5); - if(intval($tmp_dob)) { - $y = datetime_convert($tz,$tz,'now','Y'); - $bd = $y . '-' . $tmp_dob . ' 00:00'; - $t_dob = strtotime($bd); - $now = strtotime(datetime_convert($tz,$tz,'now')); - if($t_dob < $now) - $bd = $y + 1 . '-' . $tmp_dob . ' 00:00'; - $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); + $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", + intval($uid) + ); + + if($p && count($p)) { + $tmp_dob = substr($p[0]['dob'],5); + if(intval($tmp_dob)) { + $y = datetime_convert($tz,$tz,'now','Y'); + $bd = $y . '-' . $tmp_dob . ' 00:00'; + $t_dob = strtotime($bd); + $now = strtotime(datetime_convert($tz,$tz,'now')); + if($t_dob < $now) + $bd = $y + 1 . '-' . $tmp_dob . ' 00:00'; + $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); + } } - } - return $birthday; -}} + return $birthday; + } +} if(! function_exists('is_site_admin')) { -function is_site_admin() { - $a = get_app(); - if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email'])) - return true; - return false; -}} + function is_site_admin() { + $a = get_app(); + if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email'])) + return true; + return false; + } +} if(! function_exists('load_contact_links')) { -function load_contact_links($uid) { + function load_contact_links($uid) { - $a = get_app(); + $a = get_app(); - $ret = array(); + $ret = array(); - if(! $uid || x($a->contacts,'empty')) - return; + if(! $uid || x($a->contacts,'empty')) + return; - $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ", - intval($uid) - ); - if(count($r)) { - foreach($r as $rr){ - $url = normalise_link($rr['url']); - $ret[$url] = $rr; + $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ", + intval($uid) + ); + if(count($r)) { + foreach($r as $rr){ + $url = normalise_link($rr['url']); + $ret[$url] = $rr; + } } + else + $ret['empty'] = true; + $a->contacts = $ret; + return; } - else - $ret['empty'] = true; - $a->contacts = $ret; - return; -}} +} if(! function_exists('profile_tabs')){ -function profile_tabs($a, $is_owner=False, $nickname=Null){ - //echo "
"; var_dump($a->user); killme();
-	
-	if (is_null($nickname))
-		$nickname  = $a->user['nickname'];
-		
-	if(x($_GET,'tab'))
-		$tab = notags(trim($_GET['tab']));
-	
-	$url = $a->get_baseurl() . '/profile/' . $nickname;
+	function profile_tabs($a, $is_owner=False, $nickname=Null){
+		//echo "
"; var_dump($a->user); killme();
 
-	$tabs = array(
-		array(
-			'label'=>t('Status'),
-			'url' => $url,
-			'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
-		),
-		array(
-			'label' => t('Profile'),
-			'url' 	=> $url.'/?tab=profile',
-			'sel'	=> ((isset($tab) && $tab=='profile')?'active':''),
-		),
-		array(
-			'label' => t('Photos'),
-			'url'	=> $a->get_baseurl() . '/photos/' . $nickname,
-			'sel'	=> ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
-		),
-	);
-	
-	if ($is_owner){
+		if (is_null($nickname))
+			$nickname  = $a->user['nickname'];
+
+		if(x($_GET,'tab'))
+			$tab = notags(trim($_GET['tab']));
+
+		$url = $a->get_baseurl() . '/profile/' . $nickname;
+
+		$tabs = array(
+				array(
+						'label'=>t('Status'),
+						'url' => $url,
+						'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
+				),
+				array(
+						'label' => t('Profile'),
+						'url' 	=> $url.'/?tab=profile',
+						'sel'	=> ((isset($tab) && $tab=='profile')?'active':''),
+				),
+				array(
+						'label' => t('Photos'),
+						'url'	=> $a->get_baseurl() . '/photos/' . $nickname,
+						'sel'	=> ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
+				),
+		);
+
+		if ($is_owner){
 		 $tabs[] = array(
-			'label' => t('Events'),
-			'url'	=> $a->get_baseurl() . '/events',
-			'sel' 	=>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
-		);
-		$tabs[] = array(
-			'label' => t('Personal Notes'),
-			'url'	=> $a->get_baseurl() . '/notes',
-			'sel' 	=>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
-		);
+		 		'label' => t('Events'),
+		 		'url'	=> $a->get_baseurl() . '/events',
+		 		'sel' 	=>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
+		 );
+		 $tabs[] = array(
+		 		'label' => t('Personal Notes'),
+		 		'url'	=> $a->get_baseurl() . '/notes',
+		 		'sel' 	=>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
+		 );
+		}
+
+
+		$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
+		call_hooks('profile_tabs', $arr);
+
+		$tpl = get_markup_template('common_tabs.tpl');
+
+		return replace_macros($tpl,array('$tabs' => $arr['tabs']));
 	}
-
-
-	$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
-	call_hooks('profile_tabs', $arr);
-	
-	$tpl = get_markup_template('common_tabs.tpl');
-
-	return replace_macros($tpl,array('$tabs' => $arr['tabs']));
-}}	
+}
 
 function get_my_url() {
 	if(x($_SESSION,'my_url'))
@@ -1472,7 +1497,7 @@ function zrl($s) {
 	if(! strlen($s))
 		return $s;
 	if(! strpos($s,'/profile/'))
-		return $s;	
+		return $s;
 	$achar = strpos($s,'?') ? '&' : '?';
 	$mine = get_my_url();
 	if($mine and ! link_compare($mine,$s))
diff --git a/include/dba.php b/include/dba.php
index cbf5922a7..8a9d599c4 100644
--- a/include/dba.php
+++ b/include/dba.php
@@ -21,6 +21,8 @@ if(! class_exists('dba')) {
 
 		private $debug = 0;
 		private $db;
+		private $exceptions; 
+		
 		public  $mysqli = true;
 		public  $connected = false;
 		public  $error = false;
@@ -68,6 +70,10 @@ if(! class_exists('dba')) {
 			}
 		}
 
+		public function excep($excep) {
+			$this->exceptions=$excep; 
+		}
+		
 		public function getdb() {
 			return $this->db;
 		}
@@ -75,7 +81,8 @@ if(! class_exists('dba')) {
 		public function q($sql) {
 
 			if((! $this->db) || (! $this->connected)) {
-				throw new RuntimeException(t("There is no db connection. "));
+				throwOrLog(new RuntimeException(t("There is no db connection. ")));
+				return;
 			}
 
 			if($this->mysqli) {
@@ -114,7 +121,8 @@ if(! class_exists('dba')) {
 				}
 				logger('dba: ' . $str );
 				if(FALSE===$result) {
-					throw new RuntimeException('dba: ' . $str);
+					throwOrLog(new RuntimeException('dba: ' . $str));
+					return; 
 				}
 			}
 				
@@ -155,6 +163,19 @@ if(! class_exists('dba')) {
 			}
 		}
 		
+		private function throwOrLog(Exception $ex) {
+			if($this->exceptions) {
+				throw $ex; 
+			} else {
+				logger('dba: '.$ex->getMessage()); 
+			}
+		}
+		
+		/**
+		 * starts a transaction. Transactions need to be finished with 
+		 * commit() or rollback(). Please mind that the db table engine may
+		 * not support this. 
+		 */
 		public function beginTransaction() {
 			if($this->mysqli) {
 				return $this->db->autocommit(false);
@@ -164,6 +185,10 @@ if(! class_exists('dba')) {
 			}
 		}
 		
+		/**
+		 * rollback a transaction. So, rollback anything that was done since the last call 
+		 * to beginTransaction(). 
+		 */
 		public function rollback() {
 			if($this->mysqli) {
 				return $this->db->rollback();
@@ -174,6 +199,9 @@ if(! class_exists('dba')) {
 			$this->stopTransaction(); 
 		}
 
+		/**
+		 * commit a transaction. So, write any query to the database. 
+		 */
 		public function commit() {
 			if($this->mysqli) {
 				return $this->db->commit();
diff --git a/index.php b/index.php
index 0cf74365c..1cb16778a 100644
--- a/index.php
+++ b/index.php
@@ -11,7 +11,6 @@
  * bootstrap the application
  *
  */
-try {
 
 require_once('boot.php');
 
@@ -371,9 +370,3 @@ else
 
 session_write_close();
 exit;
-} catch(Exception $ex) {
-// it may fail because logger uses the db, 
-// but give it a try: 
-logger('exception caught at index.php: '.$ex->getMessage()); 
-system_unavailable(); 
-}
\ No newline at end of file

From 7187516718639fe93a9fb8fa78960bce85c7eaca Mon Sep 17 00:00:00 2001
From: Alexander Kampmann 
Date: Mon, 9 Apr 2012 14:27:52 +0200
Subject: [PATCH 14/44] fixed some typos

---
 boot.php            | 2 +-
 include/dba.php     | 8 ++++----
 view/de/strings.php | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/boot.php b/boot.php
index 56476be0b..eb2805f5f 100644
--- a/boot.php
+++ b/boot.php
@@ -672,7 +672,7 @@ if(! function_exists('check_config')) {
 										'$sitename' => $a->config['sitename'],
 										'$siteurl' =>  $a->get_baseurl(),
 										'$update' => $x,
-										'$error' => $ex->getMessage());
+										'$error' => $ex->getMessage()));
 								$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
 									
 								mail($a->config['admin_email'], $subject, $text,
diff --git a/include/dba.php b/include/dba.php
index 8a9d599c4..1421a703d 100644
--- a/include/dba.php
+++ b/include/dba.php
@@ -54,10 +54,10 @@ if(! class_exists('dba')) {
 
 			if(class_exists('mysqli')) {
 				$this->db = new mysqli($server,$user,$pass,$db);
-				if(NULL === $this->db->connect_error()) {
+				if(NULL === $this->db->connect_error) {
 					$this->connected = true;
 				} else {
-					throw new RuntimeException($this->db->connect_error());
+					throw new RuntimeException($this->db->connect_error);
 				}
 			} else {
 				$this->mysqli = false;
@@ -81,7 +81,7 @@ if(! class_exists('dba')) {
 		public function q($sql) {
 
 			if((! $this->db) || (! $this->connected)) {
-				throwOrLog(new RuntimeException(t("There is no db connection. ")));
+				$this->throwOrLog(new RuntimeException(t("There is no db connection. ")));
 				return;
 			}
 
@@ -121,7 +121,7 @@ if(! class_exists('dba')) {
 				}
 				logger('dba: ' . $str );
 				if(FALSE===$result) {
-					throwOrLog(new RuntimeException('dba: ' . $str));
+					$this->throwOrLog(new RuntimeException('dba: ' . $str));
 					return; 
 				}
 			}
diff --git a/view/de/strings.php b/view/de/strings.php
index 5339d8a12..59c939ca0 100644
--- a/view/de/strings.php
+++ b/view/de/strings.php
@@ -777,7 +777,7 @@ $a->strings["{0} tagged %s's post with #%s"] = "{0} hat %ss Beitrag mit dem Schl
 $a->strings["{0} mentioned you in a post"] = "{0} hat dich in einem Beitrag erwähnt";
 $a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurĂźckgegeben.";
 $a->strings["Account not found and OpenID registration is not permitted on this site."] = "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet.";
-$a->strings["Login failed."] = "Annmeldung fehlgeschlagen.";
+$a->strings["Login failed."] = "Anmeldung fehlgeschlagen.";
 $a->strings["Connect URL missing."] = "Connect-URL fehlt";
 $a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann.";
 $a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden.";

From c27c340de186631858763e630166d6fa24543e2f Mon Sep 17 00:00:00 2001
From: tommy tomson 
Date: Mon, 9 Apr 2012 16:41:23 +0200
Subject: [PATCH 15/44] diabook-nav-icons with gradient

---
 view/theme/diabook/icons/contacts.png       | Bin 559 -> 735 bytes
 view/theme/diabook/icons/contacts3.png      | Bin 0 -> 559 bytes
 view/theme/diabook/icons/messages.png       | Bin 488 -> 773 bytes
 view/theme/diabook/icons/messages3.png      | Bin 0 -> 488 bytes
 view/theme/diabook/icons/notifications.png  | Bin 714 -> 1072 bytes
 view/theme/diabook/icons/notifications3.png | Bin 0 -> 714 bytes
 view/theme/diabook/icons/notify.png         | Bin 534 -> 931 bytes
 view/theme/diabook/icons/notify3.png        | Bin 0 -> 534 bytes
 8 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 view/theme/diabook/icons/contacts3.png
 mode change 100755 => 100644 view/theme/diabook/icons/messages.png
 create mode 100644 view/theme/diabook/icons/messages3.png
 create mode 100755 view/theme/diabook/icons/notifications3.png
 create mode 100755 view/theme/diabook/icons/notify3.png

diff --git a/view/theme/diabook/icons/contacts.png b/view/theme/diabook/icons/contacts.png
index 8a3e69ec1f55d283e7e352b723e0b3ca66877b0e..f1c3649ef1bf4afb6ac8f7e645e42c7766b6d1eb 100644
GIT binary patch
delta 652
zcmV;70(1SZ1m6XaUw;G%4jUg20Cd{`00Li0L_t(I%k7oFYg17i#n1V^_tK`xGe|Jd
z!Hx9e}SuupdCz`*rqQp
z_c-`co7mQZxb=+Rci!iI?|I*QA8@KfJgm6BzCM=E=U=DO>3>lGXfztD^?Lo@#Kgqc
zlY;&J!ph2uUnmr+0|Nsi&N-1p7>1LQmHWy;oYZlGN?mIkz7R0JPg}
zF9?F3_ndQ?IF6$u!R@FWZ*FeZGDAZ*L;wN^aBF+}DF9Tf)vFLjo6V-ojDkQAl6>C}
z<^hzC9Jl4=<%ij9_7OmkfCSXHzF&lpI&&uXk;I_UD1RV%E(j87Y&IJ6Q4~G!4+HN-
zd!FrhVA8Q5M0-&{GS%AM4PZ$|`qi2w380Z^wOU`Mrl!;bUR+!}XJ&Wfc0B!~)5L+n
zfOGCer_*^JMNyvQO*5PIJnvHS9T-K?jHI{I)6<`OqNr3VB{O?M@~kBE&v7zxlC%xr
zjwH{_YJc6uOQljztXx=FC`x+foEz)T!lvl5Ck-8NgDxTy~tB
zo7*Kh_&c$`>%d{D2SM;Ej^nZj)gba`gREa*&<1t6-8tEd+`mmg2^7Py?`JTNMytZhr2WGp7t&K%%Y
z>-O*6M7>fg?2v8wCJqRX17NaW&|?wm6XF=XQ#J0UP}&fQL=K
zXVk^?vH^zb>VHmky9eCwsXCElPJN$b-f_ukB3T9Q4yR-|n6S`Ub*_0jzVpqrKGk)d
zVNdB%^;(ka-MpJFkCHrAj{p~wtf(g&*8+Edmvvo#+!948<)-=oINT`Ql+clrB;VAl
zNd~}1dwEq=TU=O5IjcTOveawEBqT|D;FY=tJWaBw{!;*MCt0uS`nRQ&@9KQFUOS;v
zh_C9ih7dKtyCmm^4Jo@N?YY_qd}v5pj?=)GnSc2-Hp&MR>TziA$MOI12Oc55m1y+o
Qm;e9(07*qoM6N<$f;`~eZU6uP

diff --git a/view/theme/diabook/icons/contacts3.png b/view/theme/diabook/icons/contacts3.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a3e69ec1f55d283e7e352b723e0b3ca66877b0e
GIT binary patch
literal 559
zcmV+~0?_@5P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyYz
z5i&XXrG9?^00FN_L_t(I%k7oFYZPG^gr6sO3GoMrh<2tG45Sk*L<#_V3+9y;4d!IF)!;i_uH{
zQIcco?9_}K1psMPH(A?pHR!yyIFRJ$c8Y%i8~rGNhfTg`)W!6&0fy@8PIbEn-0!J6
zkz`JNpJd)~$!Q{41?~=~WH^|x&{=h^c{;xH&9pw%b)8{P=~4AslIz{Pn=X%%JXVhY
z7n7{0CmYuScYv35U4PsXMJeT``T#iGDBP6Lk&`6f)T>Dbz(#v{RaIMDSV}poK1#CG
zYsDlaNqgXxx&}N=vZ($5ZYNo<>-x8)l<(?%w_ZD;Q;4tXvxX2gz`G>ph7BpZCGEM|
x2YhHqTaMGfmzjV0G&afy6Y6nj@5k}~@dq9uzLjY7>6icj002ovPDHLkV1h8h?m++m

literal 0
HcmV?d00001

diff --git a/view/theme/diabook/icons/messages.png b/view/theme/diabook/icons/messages.png
old mode 100755
new mode 100644
index 38e11ef8885670e74bfaeff1ee789448837a8b6d..fb77caf0ee5dd2dbc117162b1ec57a38d6cf3517
GIT binary patch
delta 690
zcmV;j0!{ts1BC{VUw;G%4hIkPz&YXo00M1^kDzV5xp?Ck6kfMdbO
zXNJS!&S*3m%*@PeXIVDKr7dBY7nr#k9t<~~^O!j~eVG(dN{x^R5CI5){K5i60?26e
zW7n2;v(xE3GJl2_N^8MYX@wLK8`D?b+3!D!2R=A8-I=~b1QLOOK#-P7fQYoc(%QGq
zR}ZqOsoQM0U)c&tM7VP9Xl)|33V|<2yd2w%MS%g#AA#++;WZE^r0gzz!OxJ*Q+lz&nyRaL3+m$I!aAdn^vsjlm7
z5pe*Wi6P$g-m_NvEJ*0kWT39=&ncz5AUXq)Z!yMgt@U*fDI__x)|PgB%@+Wk0k{L;
z9DpZ?*Z`0b(dlO9D}W6Uu0XH>;3I(h0H%oOYP%gf=crlnjZ*4iO6i`6EFRtx21+Rq
zQ9q^h4u1fYQhgCwPbm!mFn~oOib|=?lu}1T`T!0+X6E-=>s#LY$1%pGHcyRkV2mN9
z)cMBSn<0doO|OXwmY5k@>p@-DCt{2XthN5c%qua*rxVaNUmQXh7-P_Y2LSZM47FNj
zUJ;QKY>b(YF}{p3UY>wrOsGQ$H=1YqH#04qj4Lto9AkX`8z?4(Q^%O0hE@Onas2!G
Y2^xo<<{p=I8vpa{r=hQUaT*kxd0=Q-#6cV>8oYZe%_~cS=^BebZwD)8Rug{0nr7je=cViFmz&cc*~9!+$O87A#^1n-Tv8-a^M=
zEtV9Q@dfuYzjgxntny5geG-;Z8CG$KN9b|&5AYiLKAC%Az^pXkb$r7!oX4f#!0Y!<
z@!m}KNbj3&=&^?RwBTN&*U-Iq=9B4by>C|WGl%~b3wVJ23O+#hqbP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb+
z4hk=N0B2_a00C%8L_t(I%k9-YYZXBl#qra{r=hQUaT*kxd0=Q-#6cV>8oYZe%_~cS=^BebZwD
z)8Rug{0nr7je=cViFmz&cc*~9!!7ILdRh(mK2xq1@|+*b^`dU@=TL`
z5|&aKR&j_&=yCNA@EZC)nR{WttTf?ue8V%G$EDxE>-SIb-c0sL@0)Juv4;7y;9jHG
z(7kx(lj&={Z&vX$hyN7|c!2#1K0x=QEyTN%>`}Y+%__F>BHNl`1-Effo$o{QvjdbI&~&UXqB0QhzF2Pe?Wb=Hgy?_eDrP
znzS1M&spw{6r}->%^f7`^Bs)mI~XsOZDF;frLrwFa6+=aVV8|;!z@E#R%}h`OapPL
zY=ctSdjCV{mC7~%;-t=Wm=#;YEJF>9T*|gP-ysI0io0H`asr53LXP_Z`P)NF)#F>x*=bVWnMn{Tr)(<#T=;UN;jsYR~S6PIh(3)eQ
z(8)&c+d=&N-6_8E9VK&@c8+2X^i+_FKo}SK1kFYZr%}JaYXi;Y%TC^L*Y0
zFq)s8qZ(v5*4ZV_SLWR})p`1*U~PU469VMvx8!RQAb-fP!6+VB%WY4xIn1#ms<>-9
zWeO14HqNwnaJIdJv)MLIj})cTDN|9!U2Dy;)01qrmfJ@0Ajq(xSqkS6)?r49(jjQ`
zJyB2zH!tp!52Z&>m}6H8qt&hwk_*y}7?Mi0uTPam;2s=B$T>gHx2vuE_6oVAuMQnF`Zj$hM+nfJ$S
zr&hGb5w#|9b&g4`*<=hoUmuotq6!m6i7p5Iy?#r*Jz`j;3Z7DO#(g62!FYi9R`AJa5+_SSa_&s5orbWitE@kR-fb
z?thar#bKKRUM=^@nFAMWZzkk|b=*&5woM$9wdN4oea`Nd9%bja;VcKHK9NrvzCGvc
z8`9?|0T{#fE63%nrtb^e>G^yw1lx?JIQg-hYIeoa@upFH286)E@|UJHYthYtwHCOw
z%(q}P6ToF)dd0!AV*TZd9|xsd38YiHv|7yA
z59nGc=7&$8#rmrnx{fZuTc$r(Rz>U_-3{U;{kbAn`BC^Ue9D(4e*?;rx#=dkZ><0T
N002ovPDHLkV1iO)>m>jH

delta 630
zcmV-+0*U>w2+9SJUw;D%05&a6_8~w300K%$L_t(I%eB-`sLpv5$MM(wqZH-dqI>Vc
zlTfmll(M72h6yEEUYf|+O%}75EG-p9Hq%+SR@X*mF*GUaW@aa4x-|)-ERaGsA>nat
z&U5{GdelQX_3in6zvrCy@AI7V{T;rO4Rjtda|o-^j)(_e1AocP)fmEqh-kxL!@m-j
za49oKzXCei$t%WZ#ijNXj^ZqS!v}oqDChwkDq+JofnRV2zeYs6qqtSj863x39Kr6)
zT+{=)2)irhZRN}qqtz_MVYD$F5zny~C+oadSw_ou5_>CWx)_I>rT8BoOT|-675os+
zV<|Ql^dG#!&wn_FKPqkvmoXR-YdVTo;Sug)9e%`hT&-T*HtjNqIcvv^2V{JSv
z--_D5?_w-~-(Xp0F2`g1i=VJQB3{(R0R9VWu^}SvR};o@
zC^JXu>>b`k#Qn@1sfJD9N<`eNlC3S)0(c4|*kAh#xYkvI!LHJMsF(}2-(QTWCU^$_
zVKOuKMZ_H(#IcB&%gl+I1w)xR5fO7ZhJz7tCo}h9vKTYnLud!C;3oD&#IuI)2mD>z
zEfF!>@NX^0pV)+55ph+0=N-FIGh#7bc717Mjej?W*@o|B_2gnPdJdL>FPtC9%-6LJ
z^po3EtS)&k8*eBc?-kIUJKX2k9k1qn5!`M4f?Ex6tDl6yKEcD^Am;nnC#0a#=tRKk
QyZ`_I07*qoM6N<$g3OjV`2YX_

diff --git a/view/theme/diabook/icons/notifications3.png b/view/theme/diabook/icons/notifications3.png
new file mode 100755
index 0000000000000000000000000000000000000000..2709977406afc940f8e7a3376db1c6828aa2b151
GIT binary patch
literal 714
zcmV;*0yX`KP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyY+
z05&a6_8~w300K%$L_t(I%eB-`sLpv5$MM(wqZH-dqI>VclTfmll(M72h6yEEUYf|+
zO%}75EG-p9Hq%+SR@X*mF*GUaW@aa4x-|)-ERaGsA>nat&U5{GdelQX_3in6zvrCy
z@AI7V{T;rO4Rjtda|o-^j)(_e1If(Q7{Y^yXv1K`zY>>lDKkgE0y^5sE5>KVrS=q#
z;w*l{2Yl=(=m8umVZ%6qUvLJ$Mnt=#xK+>@9LHN6!S2jl)C0N*yDR2x<;)bL)hxwf
zv@snK&#@OL>%3Q4M$2~+dn;$U7>Aps_#Yoj#Zycb{1DD#DK;1MAH2fPIEOzfZVZ<(
z7!hkaidW$g?qVH&#C2S)m!HA!wN6LGeEF_pYvtT6#;Rs12I`v4m%35hiipS9fNfQ~
z7Pe>R#`4{&*rk=*?o^?9-RA4}eFdz@%q4hOH>6{2JS^Xe+Q08&EP&r&S!OQBWBiMs
zus$MQ)bm`eoz<-M*ooVCQn|~DwE+GLYq23B?pG7WaVRrK>g*lfMa2Eg9I1v);7UZ?
ztCFoP)&h76BiLX23%J%*g2ArReW;iVwclTisU~;^|6wvS_eI1V9K^ARn9IzGngv6d
zIS~+wd*NpV)+55ph+0=N-FI
zGh#7bc717Mjej?W*@o|B_2gnPdJdL>FPtC9%-6LJ^po3EtS)&k8*eBc?-kIUJKX2k
w9k1qn5!`M4f?Ex6tDl6yKEcD^Am;nnC#0a#=tRKkyZ`_I07*qoM6N<$f|u(`K>z>%

literal 0
HcmV?d00001

diff --git a/view/theme/diabook/icons/notify.png b/view/theme/diabook/icons/notify.png
index 9b852d05b2007ecb7508f9de807f8b5be8a9412c..cf94ea7c54198881305edadf29c8d7d20d11a8a6 100755
GIT binary patch
delta 849
zcmV-X1Frm*1fvI#Uw;G%4jL?}%Os2d00SdQL_t(I%Z*hrPa8`R{$_744n|ml80j_W
zDHT#GH`GWJCrbW6q$o8yLxtoY5Q&Nd(L{QpOPWwbLP+4k3Q9>s%gd{h4jhmy;k#pJ
zcT)Jyob7X7PP)6%?CiHQv){}RraWh7X9S?4l&X84w+x_?Eq|rf+H2=r7eKnczAk0^
zsZ7~!x0ih14{EjAX0=*vl-czA{i|NDcW8`h2SM=Te}Oxl&PJ_PYt7EiuH-rq5h9{-
z82}z09xi*m-n+H6wa-(5FD@>278VwEwAS-EfQUFEQboJMnh+5&^Zni3-R|n@>h1(^
zr_^M69f&*L~AcuWL{jHK1~^=7~S
z@IhPVIs}b4PD=SK5Ljzp9v>fn0RU_5%OpvLhk_)#(4nefnd{nGyPPBm#EFmsNeSJp
zwXc}j0{|j=l>=aw}yS29B?L_gdhgYX;17@Yw(;y9j+O90CJH^%t-@$qqp
zHn@j@1%G6Ow~d0w4Q4JbLMEyAw`S(lIX6~O@|3fI{)KbyF95N%_QiPhl@!ju+8A@~
zoFMb}ch5&6>bi`>qt`pgK^7}K&-gpM!t3@OwqC;!#KRMo{x%Z*jY<>lRD2l#2=YL+8G83R@S|5raRbdzk5w(?4m($uP
z09!1?>CUQ4B5H?W_>|WuiZ+ZfM?
zj!LHe{rx2o37C0voGk^wE3Ne*5w)Am=8r#`c>r*5a6kYmB2pKTkzqkcMGc
bI!u27&NSxW-S~j-00000NkvXXu0mjfzgU+(

delta 449
zcmV;y0Y3ht2bKhoUw;A|4k!igj=G!x00EXsL_t(I%e|GMP6I&@hQB?Q6x&dNAp`+U
zP-prI)w}=+L5!+zau3j?zJ^V}kYX?xOcexKQwzmmODai2;A&>W=F+{Zpp4nM+nIlN
z|DE~Q5HaVR0ct=4XsQpe0A7F@un>`aRlbRU?gMS01Ei6)Cx5^I7>USxC9reu6v%*9
z@H-D;^FrPj=!wXE6xcb}1-d{z0Qdot!uo#Bk8_|eB7Gl_6n5%C!$lK4!4Yr_^ny7*
z)`6~K`~oYdSpZtJClPrQkty&HiKzpbVv*?Wx0Ta8l9WgMVoVEYJLgQIWz;FF5@09d
zuez@eP_tU6v44{CcIcdY^nOKb3N)-1|Ee+y?F85gd`jprK+^^tWh!=I1D^^ywk_*f
z8tgb-BmTf@@0U@L1G~T;@Tq=TtN~uF3Q83f0JkbUtU<-pYVf4whz7U>p0%MqfU^?t
z2{22Pia|y34@G1sA~(QQMH3BxMWT8-Qk9C)@g4YIB|0Y?tBmHRAVSv>y~uz&O+MG}
rqRoK|FP|He&HoYljXq6(^_VUJdNGgCC0!Vv00000NkvXXu0mjfLM+AG

diff --git a/view/theme/diabook/icons/notify3.png b/view/theme/diabook/icons/notify3.png
new file mode 100755
index 0000000000000000000000000000000000000000..9b852d05b2007ecb7508f9de807f8b5be8a9412c
GIT binary patch
literal 534
zcmV+x0_pvUP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyW2
z4k!igj=G!x00EXsL_t(I%e|GMP6I&@hQB?Q6x&dNAp`+UP-prI)w}=+L5!+zau3j?
zzJ^V}kYX?xOcexKQwzmmODai2;A&>W=F+{Zpp4nM+nIlN|DE~Q5HaVR0ct=4XsQpe
z0A7F@un>`aRlbRU?gMS01Ei6)C%^z0iO72;uygJd$beSxI}c*>Lf#nYiO78v*g4k)
zxscD?I9((Dz-sT8QIP|?z#j0a
zep##mUabmB6%_!tDm<(~#nfu>q~wSOxCEZHp+11K67UHyOO%R1Mez?sWGEsxz*R*P
z4S+?WdOA{-iqY{M_+KR_8>@`wrXWJs5xvNOJ54^<@1o6t3ooA=lg
Date: Mon, 9 Apr 2012 16:56:01 +0200
Subject: [PATCH 16/44] source beautifarming to make review easier

---
 boot.php | 378 +++++++++++++++++++++++++++----------------------------
 1 file changed, 189 insertions(+), 189 deletions(-)

diff --git a/boot.php b/boot.php
index c3990c18b..fc6d6da89 100644
--- a/boot.php
+++ b/boot.php
@@ -109,25 +109,25 @@ define ( 'NETWORK_XMPP',             'xmpp');    // XMPP
 define ( 'NETWORK_MYSPACE',          'mysp');    // MySpace
 define ( 'NETWORK_GPLUS',            'goog');    // Google+
 
-/*
+/**
  * These numbers are used in stored permissions
-* and existing allocations MUST NEVER BE CHANGED
-* OR RE-ASSIGNED! You may only add to them.
-*/
+ * and existing allocations MUST NEVER BE CHANGED
+ * OR RE-ASSIGNED! You may only add to them.
+ */
 
 $netgroup_ids = array(
-		NETWORK_DFRN     => (-1),
-		NETWORK_ZOT      => (-2),
-		NETWORK_OSTATUS  => (-3),
-		NETWORK_FEED     => (-4),
-		NETWORK_DIASPORA => (-5),
-		NETWORK_MAIL     => (-6),
-		NETWORK_MAIL2    => (-7),
-		NETWORK_FACEBOOK => (-8),
-		NETWORK_LINKEDIN => (-9),
-		NETWORK_XMPP     => (-10),
-		NETWORK_MYSPACE  => (-11),
-		NETWORK_GPLUS    => (-12),
+	NETWORK_DFRN     => (-1),
+	NETWORK_ZOT      => (-2),
+	NETWORK_OSTATUS  => (-3),
+	NETWORK_FEED     => (-4),
+	NETWORK_DIASPORA => (-5),
+	NETWORK_MAIL     => (-6),
+	NETWORK_MAIL2    => (-7),
+	NETWORK_FACEBOOK => (-8),
+	NETWORK_LINKEDIN => (-9),
+	NETWORK_XMPP     => (-10),
+	NETWORK_MYSPACE  => (-11),
+	NETWORK_GPLUS    => (-12),
 );
 
 
@@ -291,7 +291,7 @@ if(! class_exists('App')) {
 		public  $plugins;
 		public  $apps = array();
 		public  $identities;
-
+	
 		public $nav_sel;
 
 		public $category;
@@ -427,67 +427,67 @@ if(! class_exists('App')) {
 
 				//			if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
 				//				if($ssl)
-					//					$scheme = 'https';
+				//					$scheme = 'https';
 				//				else
-					//					$scheme = 'http';
-				//			}
-			}
-
-			$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
-			return $this->baseurl;
-	}
-
-	function set_baseurl($url) {
-		$parsed = @parse_url($url);
-
-		$this->baseurl = $url;
-
-		if($parsed) {
-			$this->scheme = $parsed['scheme'];
-
-			$this->hostname = $parsed['host'];
-			if(x($parsed,'port'))
-				$this->hostname .= ':' . $parsed['port'];
-			if(x($parsed,'path'))
-				$this->path = trim($parsed['path'],'\\/');
+				//					$scheme = 'http';
+					//			}
 		}
 
-	}
+				$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
+				return $this->baseurl;
+		}
 
-	function get_hostname() {
-		return $this->hostname;
-	}
+		function set_baseurl($url) {
+			$parsed = @parse_url($url);
 
-	function set_hostname($h) {
-		$this->hostname = $h;
-	}
+			$this->baseurl = $url;
 
-	function set_path($p) {
-		$this->path = trim(trim($p),'/');
-	}
+			if($parsed) {
+				$this->scheme = $parsed['scheme'];
 
-	function get_path() {
-		return $this->path;
-	}
+				$this->hostname = $parsed['host'];
+				if(x($parsed,'port'))
+					$this->hostname .= ':' . $parsed['port'];
+				if(x($parsed,'path'))
+					$this->path = trim($parsed['path'],'\\/');
+			}
 
-	function set_pager_total($n) {
-		$this->pager['total'] = intval($n);
-	}
+		}
 
-	function set_pager_itemspage($n) {
-		$this->pager['itemspage'] = intval($n);
-		$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+		function get_hostname() {
+			return $this->hostname;
+		}
 
-	}
+		function set_hostname($h) {
+			$this->hostname = $h;
+		}
 
-	function init_pagehead() {
-		$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
-		if($interval < 10000)
-			$interval = 40000;
+		function set_path($p) {
+			$this->path = trim(trim($p),'/');
+		}
 
-		$this->page['title'] = $this->config['sitename'];
-		$tpl = file_get_contents('view/head.tpl');
-		$this->page['htmlhead'] = replace_macros($tpl,array(
+		function get_path() {
+			return $this->path;
+		}
+
+		function set_pager_total($n) {
+			$this->pager['total'] = intval($n);
+		}
+
+		function set_pager_itemspage($n) {
+			$this->pager['itemspage'] = intval($n);
+			$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+
+		}
+
+		function init_pagehead() {
+			$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
+			if($interval < 10000)
+				$interval = 40000;
+
+			$this->page['title'] = $this->config['sitename'];
+			$tpl = file_get_contents('view/head.tpl');
+			$this->page['htmlhead'] = replace_macros($tpl,array(
 				'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
 				'$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
 				'$delitem' => t('Delete this item?'),
@@ -495,27 +495,27 @@ if(! class_exists('App')) {
 				'$showmore' => t('show more'),
 				'$showfewer' => t('show fewer'),
 				'$update_interval' => $interval
-		));
+			));
+		}
+
+		function set_curl_code($code) {
+			$this->curl_code = $code;
+		}
+
+		function get_curl_code() {
+			return $this->curl_code;
+		}
+
+		function set_curl_headers($headers) {
+			$this->curl_headers = $headers;
+		}
+
+		function get_curl_headers() {
+			return $this->curl_headers;
+		}
+
+
 	}
-
-	function set_curl_code($code) {
-		$this->curl_code = $code;
-	}
-
-	function get_curl_code() {
-		return $this->curl_code;
-	}
-
-	function set_curl_headers($headers) {
-		$this->curl_headers = $headers;
-	}
-
-	function get_curl_headers() {
-		return $this->curl_headers;
-	}
-
-
-}
 }
 
 // retrieve the App structure
@@ -542,7 +542,7 @@ if(! function_exists('x')) {
 				if($s[$k])
 					return (int) 1;
 				return (int) 0;
-			}
+		}
 			return false;
 		}
 		else {
@@ -573,7 +573,7 @@ function clean_urls() {
 	global $a;
 	//	if($a->config['system']['clean_urls'])
 	return true;
-		//	return false;
+	//	return false;
 }
 
 function z_path() {
@@ -669,10 +669,10 @@ if(! function_exists('check_config')) {
 								//send the administrator an e-mail
 								$email_tpl = get_intltext_template("update_fail_eml.tpl");
 								$email_tpl = replace_macros($email_tpl, array(
-										'$sitename' => $a->config['sitename'],
-										'$siteurl' =>  $a->get_baseurl(),
-										'$update' => $x,
-										'$error' => $ex->getMessage()));
+									'$sitename' => $a->config['sitename'],
+									'$siteurl' =>  $a->get_baseurl(),
+									'$update' => $x,
+									'$error' => $ex->getMessage()));
 								$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
 									
 								mail($a->config['admin_email'], $subject, $text,
@@ -724,7 +724,7 @@ if(! function_exists('check_config')) {
 			foreach($installed as $i) {
 				if(! in_array($i['name'],$plugins_arr)) {
 					uninstall_plugin($i['name']);
-				}
+			}
 				else
 					$installed_arr[] = $i['name'];
 			}
@@ -770,13 +770,13 @@ if(! function_exists('login')) {
 		$reg = false;
 		if ($register) {
 			$reg = array(
-					'title' => t('Create a New Account'),
-					'desc' => t('Register')
+				'title' => t('Create a New Account'),
+				'desc' => t('Register')
 			);
 		}
 
 		$noid = get_config('system','no_openid');
-
+	
 		$dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
 
 		if(local_user()) {
@@ -790,22 +790,22 @@ if(! function_exists('login')) {
 
 		$o .= replace_macros($tpl,array(
 
-				'$dest_url'     => $dest_url,
-				'$logout'       => t('Logout'),
-				'$login'        => t('Login'),
-
-				'$lname'	 	=> array('username', t('Nickname or Email address: ') , '', ''),
-				'$lpassword' 	=> array('password', t('Password: '), '', ''),
-
-				'$openid'		=> !$noid,
-				'$lopenid'      => array('openid_url', t('Or login using OpenID: '),'',''),
-
-				'$hiddens'      => $hiddens,
-
-				'$register'     => $reg,
-
-				'$lostpass'     => t('Forgot your password?'),
-				'$lostlink'     => t('Password Reset'),
+			'$dest_url'     => $dest_url,
+			'$logout'       => t('Logout'),
+			'$login'        => t('Login'),
+	
+			'$lname'	 	=> array('username', t('Nickname or Email address: ') , '', ''),
+			'$lpassword' 	=> array('password', t('Password: '), '', ''),
+	
+			'$openid'		=> !$noid,
+			'$lopenid'      => array('openid_url', t('Or login using OpenID: '),'',''),
+	
+			'$hiddens'      => $hiddens,
+	
+			'$register'     => $reg,
+	
+			'$lostpass'     => t('Forgot your password?'),
+			'$lostlink'     => t('Password Reset'),
 		));
 
 		call_hooks('login_hook',$o);
@@ -916,7 +916,7 @@ if(! function_exists('profile_load')) {
 		}
 
 		$r = null;
-
+                          
 		if($profile) {
 			$profile_int = intval($profile);
 			$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
@@ -939,7 +939,7 @@ if(! function_exists('profile_load')) {
 			$a->error = 404;
 			return;
 		}
-
+	
 		// fetch user tags if this isn't the default profile
 
 		if(! $r[0]['is-default']) {
@@ -970,8 +970,8 @@ if(! function_exists('profile_load')) {
 
 		if(local_user() && local_user() == $a->profile['uid']) {
 			$a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
-					'$editprofile' => t('Edit profile'),
-					'$profid' => $a->profile['id']
+				'$editprofile' => t('Edit profile'),
+				'$profid' => $a->profile['id']
 			));
 		}
 
@@ -1020,7 +1020,7 @@ if(! function_exists('profile_sidebar')) {
 
 		call_hooks('profile_sidebar_enter', $profile);
 
-
+	
 		// don't show connect link to yourself
 		$connect = (($profile['uid'] != local_user()) ? t('Connect')  : False);
 
@@ -1039,28 +1039,28 @@ if(! function_exists('profile_sidebar')) {
 		// show edit profile to yourself
 		if ($profile['uid'] == local_user()) {
 			$profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
-
+		
 			$r = q("SELECT * FROM `profile` WHERE `uid` = %d",
 					local_user());
-
+		
 			$profile['menu'] = array(
-					'chg_photo' => t('Change profile photo'),
-					'cr_new' => t('Create New Profile'),
-					'entries' => array(),
+				'chg_photo' => t('Change profile photo'),
+				'cr_new' => t('Create New Profile'),
+				'entries' => array(),
 			);
 
 			if(count($r)) {
 
 				foreach($r as $rr) {
 					$profile['menu']['entries'][] = array(
-							'photo' => $rr['thumb'],
-							'id' => $rr['id'],
-							'alt' => t('Profile Image'),
-							'profile_name' => $rr['profile-name'],
-							'isdefault' => $rr['is-default'],
-							'visibile_to_everybody' =>  t('visible to everybody'),
-							'edit_visibility' => t('Edit visibility'),
-								
+						'photo' => $rr['thumb'],
+						'id' => $rr['id'],
+						'alt' => t('Profile Image'),
+						'profile_name' => $rr['profile-name'],
+						'isdefault' => $rr['is-default'],
+						'visibile_to_everybody' =>  t('visible to everybody'),
+						'edit_visibility' => t('Edit visibility'),
+
 					);
 				}
 
@@ -1072,7 +1072,7 @@ if(! function_exists('profile_sidebar')) {
 
 
 
-
+	
 		if((x($profile,'address') == 1)
 				|| (x($profile,'locality') == 1)
 				|| (x($profile,'region') == 1)
@@ -1096,15 +1096,15 @@ if(! function_exists('profile_sidebar')) {
 		$lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
 
 		$diaspora = array(
-				'podloc' => $a->get_baseurl(),
-				'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
-				'nickname' => $profile['nickname'],
-				'fullname' => $profile['name'],
-				'firstname' => $firstname,
-				'lastname' => $lastname,
-				'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
-				'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
-				'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
+			'podloc' => $a->get_baseurl(),
+			'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
+			'nickname' => $profile['nickname'],
+			'fullname' => $profile['name'],
+			'firstname' => $firstname,
+			'lastname' => $lastname,
+			'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
+			'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
+			'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
 		);
 
 		if (!$block){
@@ -1115,16 +1115,16 @@ if(! function_exists('profile_sidebar')) {
 		$tpl = get_markup_template('profile_vcard.tpl');
 
 		$o .= replace_macros($tpl, array(
-				'$profile' => $profile,
-				'$connect'  => $connect,
-				'$wallmessage' => $wallmessage,
-				'$location' => template_escape($location),
-				'$gender'   => $gender,
-				'$pdesc'	=> $pdesc,
-				'$marital'  => $marital,
-				'$homepage' => $homepage,
-				'$diaspora' => $diaspora,
-				'$contact_block' => $contact_block,
+			'$profile' => $profile,
+			'$connect'  => $connect,
+			'$wallmessage' => $wallmessage,
+			'$location' => template_escape($location),
+			'$gender'   => $gender,
+			'$pdesc'	=> $pdesc,
+			'$marital'  => $marital,
+			'$homepage' => $homepage,
+			'$diaspora' => $diaspora,
+			'$contact_block' => $contact_block,
 		));
 
 
@@ -1193,7 +1193,7 @@ if(! function_exists('get_birthdays')) {
 						$sparkle = " sparkle";
 						$url = $a->get_baseurl() . '/redir/'  . $rr['cid'];
 					}
-
+	
 					$o .= '
' . $rr['name'] . ' ' . day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . t('[today]') : '') @@ -1311,27 +1311,27 @@ if(! function_exists('proc_run')) { if(! function_exists('current_theme')) { function current_theme(){ $app_base_themes = array('duepuntozero', 'loozah'); - + $a = get_app(); - + $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : ''); $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme); - + if($theme_name && (file_exists('view/theme/' . $theme_name . '/style.css') || file_exists('view/theme/' . $theme_name . '/style.php'))) return($theme_name); - + foreach($app_base_themes as $t) { if(file_exists('view/theme/' . $t . '/style.css')|| - file_exists('view/theme/' . $t . '/style.php')) + file_exists('view/theme/' . $t . '/style.php')) return($t); } - + $fallback = glob('view/theme/*/style.[css|php]'); if(count($fallback)) return (str_replace('view/theme/','', substr($fallback[0],0,-10))); - + } } @@ -1371,7 +1371,7 @@ if(! function_exists('feed_birthday')) { * */ - + $birthday = ''; if(! strlen($tz)) @@ -1437,50 +1437,50 @@ if(! function_exists('load_contact_links')) { if(! function_exists('profile_tabs')){ function profile_tabs($a, $is_owner=False, $nickname=Null){ //echo "
"; var_dump($a->user); killme();
-
+	
 		if (is_null($nickname))
 			$nickname  = $a->user['nickname'];
-
+		
 		if(x($_GET,'tab'))
 			$tab = notags(trim($_GET['tab']));
-
+	
 		$url = $a->get_baseurl() . '/profile/' . $nickname;
 
 		$tabs = array(
-				array(
-						'label'=>t('Status'),
-						'url' => $url,
-						'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
-				),
-				array(
-						'label' => t('Profile'),
-						'url' 	=> $url.'/?tab=profile',
-						'sel'	=> ((isset($tab) && $tab=='profile')?'active':''),
-				),
-				array(
-						'label' => t('Photos'),
-						'url'	=> $a->get_baseurl() . '/photos/' . $nickname,
-						'sel'	=> ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
-				),
+			array(
+				'label'=>t('Status'),
+				'url' => $url,
+				'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
+			),
+			array(
+				'label' => t('Profile'),
+				'url' 	=> $url.'/?tab=profile',
+				'sel'	=> ((isset($tab) && $tab=='profile')?'active':''),
+			),
+			array(
+				'label' => t('Photos'),
+				'url'	=> $a->get_baseurl() . '/photos/' . $nickname,
+				'sel'	=> ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
+			),
 		);
-
+	
 		if ($is_owner){
-		 $tabs[] = array(
-		 		'label' => t('Events'),
-		 		'url'	=> $a->get_baseurl() . '/events',
-		 		'sel' 	=>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
-		 );
-		 $tabs[] = array(
-		 		'label' => t('Personal Notes'),
-		 		'url'	=> $a->get_baseurl() . '/notes',
-		 		'sel' 	=>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
-		 );
+			$tabs[] = array(
+				'label' => t('Events'),
+				'url'	=> $a->get_baseurl() . '/events',
+				'sel' 	=>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
+			);
+			$tabs[] = array(
+				'label' => t('Personal Notes'),
+				'url'	=> $a->get_baseurl() . '/notes',
+				'sel' 	=>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
+			);
 		}
 
 
 		$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
 		call_hooks('profile_tabs', $arr);
-
+	
 		$tpl = get_markup_template('common_tabs.tpl');
 
 		return replace_macros($tpl,array('$tabs' => $arr['tabs']));

From d25a9df99600b0ce204d88114f07f5ed1db9d5d3 Mon Sep 17 00:00:00 2001
From: tommy tomson 
Date: Mon, 9 Apr 2012 19:56:53 +0200
Subject: [PATCH 17/44] diabook-themes: small icon fix

---
 view/theme/diabook-aerith/icons/contacts.png   | Bin 568 -> 803 bytes
 view/theme/diabook-aerith/icons/contacts3.png  | Bin 0 -> 568 bytes
 view/theme/diabook-aerith/icons/messages.png   | Bin 579 -> 901 bytes
 view/theme/diabook-aerith/icons/messages3.png  | Bin 0 -> 579 bytes
 .../diabook-aerith/icons/notifications.png     | Bin 754 -> 1033 bytes
 .../diabook-aerith/icons/notifications3.png    | Bin 0 -> 754 bytes
 view/theme/diabook-aerith/icons/notify.png     | Bin 795 -> 1100 bytes
 view/theme/diabook-aerith/icons/notify3.png    | Bin 0 -> 795 bytes
 view/theme/diabook/icons/contacts.png          | Bin 735 -> 773 bytes
 view/theme/diabook/icons/messages.png          | Bin 773 -> 777 bytes
 view/theme/diabook/icons/messages3.png         | Bin 488 -> 488 bytes
 view/theme/diabook/icons/notifications.png     | Bin 1072 -> 926 bytes
 view/theme/diabook/icons/notifications3.png    | Bin 714 -> 714 bytes
 view/theme/diabook/icons/notify.png            | Bin 931 -> 1001 bytes
 14 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 view/theme/diabook-aerith/icons/contacts3.png
 create mode 100755 view/theme/diabook-aerith/icons/messages3.png
 create mode 100755 view/theme/diabook-aerith/icons/notifications3.png
 create mode 100755 view/theme/diabook-aerith/icons/notify3.png

diff --git a/view/theme/diabook-aerith/icons/contacts.png b/view/theme/diabook-aerith/icons/contacts.png
index cd0e289a772f5a6f90f1774e7ee77d300b72976f..79f6d497cbe50e41faabac3748eb1e9e45a8e0af 100644
GIT binary patch
delta 720
zcmV;>0x$iz1fvF!Uw;G%5fwMHOcmk)00N^)L_t(I%k7oDi3(tS%E?!P&3_y@Wth2Ga^&m?52;gro>W%*&8*Bh!_ARWX4z=%*mm&uiIGx-2P_*z
zWaUei*G1L*G!MmycyKBrs*zwaVCEo65fOlhAXRnwrkt#R45voKxSOYuQn-gL&d=Sn
zY?5AFs|Y{=PQ*bj?2{K>=BqPh**I4(uCu2%<$*9(UM
zzjFJx1Aq61q}aH3_G_uyrvQDMBtTM%UcuFaQxM;;tfnSh{)35lJIEWPtaAPr$aQ{hggl!y*7SlEpt|
z&eltkQMAE>-hTNW2BczC-e)|v2`C^tJ6r{NT0000hwRVHYkCpt@n26>~rbXaPw22(0uv?H{8OCx11hiKGv}jBQK8_7boS
zES2YOEw9f5IWP(A_B!o1F;8Q_g4D1*16Y!RD@$68F27;>6Y#+H03(%&`?{pDp&17S04`OBtQEOxMz1BNY#*Mc_z$pG
zjRJTX^1Uso<$p>xKq6`5th%iM>lIbAw#OxXu|1(d$qtch0MC;l88&McIwom6JT1J>(;2H3)-_5_Bh$793RY@;^t3lzh
zgh-BU|CaQ~b`#huFYk5QCtN7aiaU~C*`BMkq7JrQ9$a`YX%l#ByCvxWcxrpQ-_8Fj
z&5C_V6LG!HLR5%fl6C?ik_>#deK!fDj7nN@bqV+yNK1|s_}Mtmr!gpR*3{$5#gF6v
Z;|SeLx=SPm7ncA4002ovPDHLkV1i4X-@pI>

diff --git a/view/theme/diabook-aerith/icons/contacts3.png b/view/theme/diabook-aerith/icons/contacts3.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd0e289a772f5a6f90f1774e7ee77d300b72976f
GIT binary patch
literal 568
zcmV-80>}M{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyZ5
z3OE+9lA!be00Fp3L_t(I%k7o1YZOr!#D8hwRVHYkC
zpt@n26>~rbXaPw22(0uv?H{8OCpDyrqz}N1ZA-%T60i*{mFI3Pug?QHFbVATI_))UZ7RSdxM(OInOBzhV0m@WA#0u$5-T=BdQC2V#<>Xb$kCbo=jaEa_pI6_q883zRbE>(xD6}f6guO+5zAD*W853pB_0(cqny)CKbN;W_uY2&QA
ztpV#5RkOCoC4I3yp+U(Gk!%3ZlOY*4YZf{tX*@hNxbx$*zW2MilZw)7l9p{hj`I#(
z-m?8#(ll_-b}s2=a4p~&@UGv@znzF8&5Bh?FMz8-;jx5Bj&1*z^vHG-*efsZb=oIf
zD9wsHl3v-KtF)pHwp|{0FKH8aYr7@s0C;M9yWh?KD$R<0NfU9s&O%g(Uy^nLA(9My
zwtY7Vq>M^hadip!8c0iy6!_UV&!;gcZ`Rb~%Egc4|KkYVOS(%W1{aqA0000so

literal 0
HcmV?d00001

diff --git a/view/theme/diabook-aerith/icons/messages.png b/view/theme/diabook-aerith/icons/messages.png
index e2bf7d24d3c0fcdd4d97d46731194b0e24a6918f..c83ba186ab4a05587a8300866ce68050aee44e1c 100755
GIT binary patch
delta 819
zcmV-31I+xx1ce8XUw;G%5fUJO-Ui|T00RX{L_t(I%k5P=Z(Kzb{?6RF-h0=!%!1^9
z5Zt=ng31kv#1;w0l?yk<1(u>TX{?C2iD)93!q8ZdDk2Zbk!%_yL_OHAIOo;JinRw^v#?zzy})}eRX{P^U6oHT}Lz;F@FH`9>ONb1*@l6x&|81
zYd4?ye!I12hP8ZUwL#?OcKcsmPCCU0kd(WfG17K~7#Sx(Ykk4Nb`3-}8VzIbQ
zYBjjZ0}ucXC#K~o`TUZ|*VXJ(vhXF!!I31{cjVj}0Qgu&nAwmtJR!1QmC`pP*nlty
zR9EvaT^!zl)7mIb;*lb~Af-B#p@t0y{|pkoFn^Yh%~c+ODD$z5;t)?9=_#APG{Pnk
zUq4-=Er;Y6C&Rl$glNetIJX78#<1BYnS1UKZ<}b%Xz77B31{T=D2l&OP#uu}#D#zw
z3Ar;fgTgf+yeMzf3GQX;_>QX8Xmk5X!jimVr3Q%Jd;If3F=@@l_{^*+ywh{<{so?62UH#C_jmvR002ovPDHLkV1heOk;DK1

delta 494
zcmVbP2qRvu{T`T6?~}V$Q=95`k~`B1V>?N+mVcxJyj1t@LFry$bt<5l
zX0hUYA9B}v#=pisy
zL@k$EE`cvZ-+%Xytu0_N$K;Kn>+BGUphNs&*Kv!K#a-4+n9Ro{1
zx8$6tm%6LYIeV0(1^fg)tIvSPNk-KHV7}C>B9tR!bXQwSI+B0ORUv8QJ(XIrStP>KHIksk6XllE#0o@=adA2C$xFqDrz_
k6y5y|KG)sDAL%Uq00q9=#MmFP`2YX_07*qoM6N<$f;jr=-2eap

diff --git a/view/theme/diabook-aerith/icons/messages3.png b/view/theme/diabook-aerith/icons/messages3.png
new file mode 100755
index 0000000000000000000000000000000000000000..e2bf7d24d3c0fcdd4d97d46731194b0e24a6918f
GIT binary patch
literal 579
zcmV-J0=)f+P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyZ5
z3NkdG9SNEM00F~EL_t(I%k7oFOVwc%ho9&A9mGW}=s&PlN4fJ|RLDUKT^#NbE`hi>
zbP2qRvu
z{T`T6?~}V$Q=95`k~`B1V>?N+mZSr`RQK*d>0V)VDxjIU!0MBqP8Kuz!o0?-%n&)CILyr3Rpqq+e|V
zgTO1`;0Em)T|`wsJm)C$y4=(+5+C4&bcZ|kCQB^U&^{YE08*{kz}mE0a`$}oKbSu
zk~{|<0dIlc3iu7IsGV{_F79wcT~9JmjM`Ki=S@#C1bhNUfdO^C0#-{KUA2CNQ2^uW
zY8l!1H97Sp8|oM^P^q)PW|GE#uJTP@zy`3MWTHy4S`^*=4L;Z1!yoA^{s0BO+r-!(
RvH1W1002ovPDHLkV1nOP`rrTn

literal 0
HcmV?d00001

diff --git a/view/theme/diabook-aerith/icons/notifications.png b/view/theme/diabook-aerith/icons/notifications.png
index 2b4fbb818783399ef1b7697045f41fe73544760b..2bcd749275c49029f3f5afa3115005645c322878 100755
GIT binary patch
delta 952
zcmV;p14sPw1&IidUw;G%5g8s`OTvNx00W6hL_t(I%iWaUYg|PX$G>;(&F*G5n;)At
zTAHG75@@4^7A2&nFQ!7ZCeb_u6oSw+8j0JMCX$j85%SxA%cf7i}Z=&(RTCLsC+&58Q@x+!(B^8Ma2YOQKai9l!QYxOPyimDi>!s$tiFyFA
z0$qDju~>QHVsS~l;g8>cYn&Wxn|@r!O?{ugRQcrAZ}ZvAm6fH%{m!GJz^W;VL>rbD
z?+#B6woSi!?0;NktSs@ByK?`nuRnhCm$k50j-7idUY1B@mhUxB4z^9d-v7mLNqM4M
zS*j**R3{Wp5|Oy8EByfAgrh@FII;&ywXWw<*-onyj_h&5#X|s)%dYklv#3xc8Munp
zk1l5XoIB&Yt4#)Yx-?NW$4pCKe%SO30PH_9R_}yDO@F@UO@1@f{yhM^F);PBQg%gV
z>294d=2j>gpNvGKdjpPzCB~$0v4|LhDuK1x&8!Roz{|w^jtII=du$kFZ5wR5N5etBs1x&1%7$Q?Hlp2
z{aiLZGxE-D5mPNj?bdmBJP7u^G_wG9WC{RgMmh%a*_GonBONCIKn!+iO%O4={?bo)
z1%03}uaPMt25CPXd?3s>buKdsJAA0_?USDx_Pb|KcMd+(Mam2@#F(-Nx!Kd5gLUnn
z*ngHC8a77NQa(Fsh;9ZP&yOXA{d_MI-7#Wf^J7U4G!|^vT0;ceAI;C5eV>UqM!t84
z{Cw}+SW^D>$^4Kyyv*Ke&HUM}_O%+3lrjmJq;#!zb?m)%(QeJv)Zt|SaMpXOKc$b}
zTQ9F!c7QdMWp=Em|2Tf+VV$#)KUdg<*fB6{%Y^=E?}orWNiARu8`S=*VDbsDV8Iyt
a|Kd-*0R&Pr-LH2500007jS$Jz*~~RRlH>~t}9QwPCTk4iHMRJSeuJQUMZ6-&tBxw*pE)M-Yl2rh0045EuJ3h8}l4Kiz
zY7}^T0CJKBNiHQFS8WWd01yST9ItfYNOvvKIx&YX%k^baNFqrjU;`O@0WaeE4Hf@D4p{lnDT&591v@{)SZac>$P
z1>V8A*XFMl$yVF8{;oE2!GAy>NlEJatHL%0;uybNKLIi6F9Dnx@{9lg002ovPDHLk
FV1m+HGDZLZ

diff --git a/view/theme/diabook-aerith/icons/notifications3.png b/view/theme/diabook-aerith/icons/notifications3.png
new file mode 100755
index 0000000000000000000000000000000000000000..2b4fbb818783399ef1b7697045f41fe73544760b
GIT binary patch
literal 754
zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyZ5
z3kES&pJdel00MGJL_t(I%iUGaOB8V&eQ*77SyUqQv{JWNP)ksn4a+Xsp^FI~W+Ct*
z9Rv|NcxXn1UA!&`9lCVMouP~AArE;ejAkzV0imGfNe_mQ2LtzY`7EsCSP9Xg?`6K9
z&-=XhdGp~r-vR#RDiq5jgLwi9Qx}QaC{HITaxc3J!ozOCFKDOlU$4fZ@o|~Uk30Rz@sSezNCm<
zA^8%(!zl399k;Y7X_{m{`KmJ{Ym$6xQ~_{X()c+>#|^Jo>>GcE2?yT+ydya(=_<*O
zlD@^Ef2}@$0Hcyt;?VzKxz7MD0k{QVN74$(yGh4ck~;uu0J;EllB}4(9RM4Wo&eZz
z+>&FQilk0SU6N|X&z=${2>=;M0MKITPxic7ud%xOjX22`8(&7!+2bau$%sc5j~Vm|
zz_IOr0C-{hF{?YW22CVS3rpH0*>C52SJD>AsY0>b9R=Q3NjI$YdK~(@j$7)MG(~cY
zuRA`rc#>orfNB(YdjN8h21za@9an7(s{jxM
z-aLS(QQ*y4$$%tC8Zdm$@Oi^m?OAP3jCdQsb4iaKxAY9abQE|C4S0t&?x-iCz*{I3
z%S`|l0rVMv`;_B2^lOr4N$!)(#-V?bXxw8brl&C(1>T9ItfYNOvvKIx&YX%k^baNF
zqrjU;`O@0WaeE4Hf@D4p{lnDT&591v@{)SZac>$P1>V8A*XFMl$yVF8{;oE2!GAy>
kNlEJatHL%0;=f!!0Ws+>0h}4~i~s-t07*qoM6N<$f-hS_WdHyG

literal 0
HcmV?d00001

diff --git a/view/theme/diabook-aerith/icons/notify.png b/view/theme/diabook-aerith/icons/notify.png
index 9765bfd53ec06190f61bcc0a6904b3f6566233ed..159cd2c59fcbb2aec1ce104f6f29f8e59de76bd1 100755
GIT binary patch
delta 1019
zcmV{(L%&KPA
zZy^ktg(?6@%tg*gng@_y7~3xZc=n}t@blTX*RZS`=8A4J1is!2q>%v+}60a_7#>(&DWX
z7v9@9)d_B$pnrRs=SFKA9~{kMtQ#ORm{T;f006U|}d$s@pxe=!7SS7YiTLN>H(
z
z_VM=?41Yk_O0u+fNh8FbhKT-1Y0#5{l0ug>%0RY_VrDcTXj>{$w~Qf40F2ULq_bL-
zj>aySk|2bJgh&#hk~Q3k`-n*bos}p7yuTwPfwYFm3_z)OX53M>HvI%V7TrBJcZie)
zGpOxZ@>rB$*y7Z~W>|)>1@5iahjq1XKO8#$jDMofd2#?Uurr0$1E9k!0HJz@@_Ci)
z!F}3c0N^QIi*%o7zA|gE(ty?zqotVA@+YESHXwNN8=+D=(2W(MVDMQ;^N~~z?{!Z`%C8z+k=Me=2gD;O8n1?HqM?_E4UgR^$les6j
zCx3X6;7+(ZB>Ml&WRX&Wrvy)>-IK#z#+1)MoW64Uh}JIi^xl)hZaou#)g`T~VTPg^
z!1I!f$PUsf&3oCyg^1$NFXxU<0a!mapL+4+XyIYhEY#Z_lt>_iPEMJjyf)bWFT~(u
zzkYFatUcee>sK#f$G+pZe)SUm{o}hIA9Q(Q=Nw&+JMkzfKrpu6wFFR<2%|eFm?_O<
zR=n}sm!qGp8}!{)(~~cp7!Yk})iL63_qEoKhs7pMU@W002ovPDHLkV1iTQ_b&hd

delta 712
zcmV;(0yq842%83wUw;E03N$soK%R;K00NsyL_t(I%Y~IOXj4%bg};+VQYR_xAlM?s
zp-`-3DKvwF73$haNI($hj)g){EY+UlYi1SKX7pu6F=M(hN{8lDJrp+Hl9bB=b7_`JFkW0M);Sm
zO$EL4*D#LaZpQX7X8JVE49wcT4cr1|!@E=t!Jent&`?qx5i1^&8n(~>lU(GCvus%0
zoupmR{v~iMDP#K=@a&p;bS0fOe_S<%|dK^yaw+X0wG%
z17N$|tbPW_6iRgfLOd%NANzCj*q^pmb8V8iz4YDzf}UEBMTCSOex
uz!i@BoTMe&xv;?yI0-f#hT>njO#cA`Fn+DBpVS@z0000QS%&

diff --git a/view/theme/diabook-aerith/icons/notify3.png b/view/theme/diabook-aerith/icons/notify3.png
new file mode 100755
index 0000000000000000000000000000000000000000..9765bfd53ec06190f61bcc0a6904b3f6566233ed
GIT binary patch
literal 795
zcmV+$1LXXPP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyZ5
z3N$soK%R;K00NsyL_t(I%Y~IOXj4%bg};+VQYR_xAlM?sp-`-3DKvwF73$haNI($h
zj)g){EY+UlYi1SK5*D-RK6#{l>)kHyDVunjuj&jpJTfN?6#ZLgE+VnpgXpAfEh^!Wcvch07x3!
z$d}Y5X#niC8kM~WJTAp1@CKN%Jpu`7mnFTkElJNqMx*bNusx9UqSdGz5HSgwmTixL
zMl2cz)OPXB~1mr^Vcwr;%>(FFlPER%?!-i
zz75<0X2ZKw4#A$M+0al@9T6)Yk{Y(p|C3zgjI(T5+?}Ld(EcTGEGc9A7x3(wdUPe7
zXMthpQm-aC!}i;Dvw9p(>9+~MmL%Kzz%bKpRt+55?gXo(#oyTcPs-toWavmbY&WZy
z-t6~|e$TJ0|CICuxS7%~zAmh+|Cqo3Xcl-X>0wG%17N$|tbPW_6iRgfLOd%NANz8-7zlddLU!}jQEN;wc++xwCxUriIh6^{Fyq$S(Au)z>G2{s*u;$OK;
Z{{aIqeyy&b)E)o;002ovPDHLkV1h6HVYvVR

literal 0
HcmV?d00001

diff --git a/view/theme/diabook/icons/contacts.png b/view/theme/diabook/icons/contacts.png
index f1c3649ef1bf4afb6ac8f7e645e42c7766b6d1eb..1fb6d695b34d9ec545058dc305c825bf0bcc8d81 100644
GIT binary patch
delta 688
zcmV;h0#E(l1%(EXVSf+_4h#IMfB*mjg-Jv~R5;7+RljQ#Q4pS)-M!ttyF`p=XIjBP
zI>AD;P`DEjt!)%LIZ}EEM>?DQYNAyR2`LohgcJvdfz*Qj1-3SVR*9F~dvEvc`z*3&
z_QIW}vCDKjJNtd#elznP(OKldly
z%Q7;?kb?uWFcFceDro`5FEh5?3`N$@WLMl
zY_0VG6#OL;;eeS-&beTWAOOgz=zF8lzzFdA`uas8dZd(k3}B>zOuQkUycUrQ0Pdz~
zx=2Jb-+Lc$szf}jxW2wVme1#3r_TJ3T+o1HbYp`D$bH{;{um1DsqEtN`*
zNRpWm0GxBm<#H2U&)VAB`QhQ=_h#lxLKueEH#Rmd6pO`~uE+YplDZ4*$7E*g)&U@$
zPTwc#Cq7707=MPhS65fFM}kkHOeS-yZRIAmi5JsELrp%0jKoF9A-w);i
zl#d*@<>lpv*=+U^K#+h0)VIE0gpfLOCijuVpwTEGd4Dbl5@~EU8uL*UJ@5|$??ro_
z?Ra3)u^>cyQ9v@)+T9IcNk;nBnj{IJk!ZDAU#6y})B|2zTs&uHcjI
z&&+Dw#eYksQctX0SXd}Zdgh!P>(1pdk|ZX+cb?}xcFw(Y&W)06nOPaYQn_4qoSU25
zB{}#zvA^rUVW|f}@G6euvLuj{nSBU?;F_O6aZ+gCuF@nwB~SpMbM8v3)%s@tay2HM
kdw*m_=1zYc|6e}=$4eJfn&84900000NkvXXt^-0~f{9x^U;qFB

diff --git a/view/theme/diabook/icons/messages.png b/view/theme/diabook/icons/messages.png
index fb77caf0ee5dd2dbc117162b1ec57a38d6cf3517..ab7b0f491e5429e9c899c2291a3d279b7033c946 100644
GIT binary patch
delta 692
zcmV;l0!#gc28jlcVSf+@B{{=>P5=M`iAh93R5;7+)y--YK@>TFaUtqPT=;{;KLiyah`8|u@-A+Y$xLUeZdG?*7fwqXR8(;1
z+1_)%rmMSY;D08eot>Shb8~ac03aelMD#aMb9ZlV@0r=%-G5yTA?VrJ*(CtzRlMGrtTWY*=gW5YeJ@
z4#s;g^ff&I&VM;~E5@jjBsu#tyotsbUlm1hOKW|NhCpxP|pFNMnz;>
zM3w;@A)=L{C{**JH7o!KKt)7b02shA0GlFW034sp>wkP8qRmO?Gk`4-xdcGfmhs-#
zD74m(l~NC@s=8j5<$~7wo>FS9EX%a2s-pm)l=`H#UaP9=Tv?WDTI+44)Xl1@Y+05U
zCYBiI905R*B+midX673)#?zBR-&zY}OfSax8UU=dJ@5VH5JDe-0dP7=lEN6XQ53~g
zjIjrR41Y5tP183-bk#X`mzlfu!v|oPxj!{EMaGyD0N}k}ch0R(Pys;9+)dLI*4jRR
zjF}gWh`d)yt>k(BU_2f-QL1t0T)*9JWAY*N0q8>=a?W*ItroH@TM?1WSZhxWhr=g%
zo-Z9j(OA^Xd}Z=B=$~}Rd*AJJI@D^lPMN`A@GWRK9R3K!p+)-}9rE5U&CJY{|9>3+
aK3@Q=jiGDGMRSP&00005A?t};s5{wg-Jv~R5;7+mCb4tK@^40t-6(VVjwfG;|mBb
zB#4+0#Y_m2C>Vk`x{@d^MBPXh{vc5k1Py|SxbX$@F0MM$I$d2qUDrjr<1iou#hrIm
z^u6cnzNZc}@V}a({r&w{yu~=5)t`J=x$LI
zYuxR2_YMvYE&`BVuea2~kNf2l(4C?vu64WJJ=J-u!N+HY
z!{N?oG#bpz%xq^_HpitcVVD<~xf&h}H=XmCIXQiq6j4fzkO&X~2!Q;;0z?AHX!K*(
zmUgq#={z!q7k^4?!BuI66cHQKSKit0KZ*xFI5pjwzC;8Pfq+1emP&w#w7t^Wx6W4&
zvZ<-tY`9<93Q0t`a_(qtBDD&EFGuB8@FB~x?82li<7emGhY-S+*7_=uTCHq#)Mslg
z#>7fQRze70y!Xq_IX1?eYx`|-03d|$F~+z|M5mNeD}Pm0sqvSxtt=prCJm{s>unKn
z0G){;-u2$IR{AVR=+I=KuItY!rMnS0Rho`@_S-Vz2%DG*UV
zrSuK}lz&ov5m`?u4FE8JMIwqysm+v9M@0Gn4n1b(_gd>)-uuTf#-%n-jc{O$A*Iy$
z#@m}AgquyTi3ygN8CvT>UDqdKj0>!_{>02HF~+A8&^BKjLKqlh(0~U3^u!FcT4r7m
zkrQl;nU68Pj4@uGfMQIjLkKsTXZklYEu4%o^C=u-eEu6KCWKSRn4yMM|Nn9P`}zqQ
Who0shmvtKe0000&9e5B%2l&
zQ9*(hq2Q&o)E1$Zs$@#AG$C|M@Z>>ny?E(eq#lG`YNnKIP)g>|ND&&4)SD(s!j!b9wQi}z+vD$
z5T$hRz89!BP41ql%^Pjfa-n^@Y4eVZSG&AG?EszvaerG~0z5UjU8XkL#K^#Ppw|o3
z0I&r70(=Mz`>w2{bG@1lj+@0A295(i1ItF+Ygifh2Vg&N*mvclbP+@mnDheGXJSpD
z>AUig7pT5;!Nd@7(|6_X#2i<{;<1qN6O=cdUgq&{`$`k
z8r8~8%jv%BnQ+-^#22P)WQfZRc~P;_f7BthFDrxKSI7>Z=mK+SWA)JZQ6JO{sWZ+Rk?>i5ELw
zEbi6cM5p+v%l9XaU7W8SyEtDvb@~3pRUX+^a6$_xTJzx6Qz;Rf$o3)o{t=X0@*!-W*-+7oz
U#B7c)B>(^b07*qoM6N<$f|MDTW&i*H

delta 989
zcmV<310wvM2e1f`VSf%5C;}6&nE(I-ut`KgR5;7El}%_=R}{y8_rCWsFEeQ~Ln6k7
zL98HBOQ6(Ut=f$rqbN~ITbOE++FeO@UAq@ix)BSe8i-Aiw51thK&ef;vqFn>W38Z|
zQEDW~%$s@d-LEc^8Dg8(xbUpbJ?H%Y_uO;OJr`b*h=x)sTYpbTHUj42UU~OLNIsgh
z8v)N*?v50t0g%ldB!gaevqI9b!;Ox|_tAkOAkMi6cfwigMNuI8^B5WNVHAA^2BWgrLxxW1!H<
zNk8DwNKwwl5u?sIlL;AUUf$3z_D=_P?l1OR$KzMp8E$JAhn_rg{VL&0A!ze_-Ucw5
zpPi!`WH{E@CC*po-8a>F`lVoPehm`>QN>+r&9T#yY_^u$M)4rXu%THB=MdImMvBrQX!AW$
zPzg6L?voFtM^BhzS4&28w`4?jnB(1}SL~Y?_sNGU;im740)n=YqI3>SqY6GiTnCll
z091;q*MFSRiZvg6YjY~$UJ|1hy^tmtm2mIF?`+N()}*mBMxy|^q`!zmMv1UXJL+C(}bD#$8D!p
zw8s&(CUJF+Nv+vr3_V{TmUp5G6Gn+H2mQTY*?;`lVR3yJ+iVbULrA)H%F&5FIbJ+(*CALa_sOU@Y}aKn{0@*Lyk72;
zGk?Wln*&}g_sN+97i@1Po>>S+<;wAmLB3JoQ_%D3QmnDA#%96S1Cb@5|00000
LNkvXXu0mjffF$bf

diff --git a/view/theme/diabook/icons/notifications3.png b/view/theme/diabook/icons/notifications3.png
index 2709977406afc940f8e7a3376db1c6828aa2b151..2c9c791c06e495491c81ef52edab531bb706c7cf 100755
GIT binary patch
delta 20
bcmX@bdWv;IJSPjM0Kc4rpls5{j3g!iI+z76

delta 20
bcmX@bdWv;IJSQ_3gPE@HH${hy8A(h4LJbBe

diff --git a/view/theme/diabook/icons/notify.png b/view/theme/diabook/icons/notify.png
index cf94ea7c54198881305edadf29c8d7d20d11a8a6..355abb1ebb4bb76790a1f4fc056a2bc2f64906b5 100755
GIT binary patch
delta 918
zcmV;H18MxD2k8fpVSf+`Ct_n^F8}}oX-PyuR5;6xRWVE>R}g*kch?4c4Tp{*QiP%?
z1=3Y+Xp$D$G#4T6+DNCXY2YFuA#(+`A|X-IL`rDTMY4_{M1@`Da=J7$v?N_=f8RLc873}9UdMMfV?qg((}A&0Dt*pD`Mso5jg`8&CShe
z)_KZWY_(cbxm>PNDwP%sg+e(i=IZL|xYOxuS!>(XYW4KN#O-!_J`BUvLZL8|uBoaL
z5#9Cy!qrvpsN3y+SE*F??@iolwN^@{(u(i<6KMif6(TajaYK7bMC6=1?{qpF)oOL)
zPU3@ugZc6C@qca4^CoUrad~;U8prWl0F=w+UW|>6t==x2#hqVX{{8anr%(3>iFbE*
zr;5em&-r|QCX3IDi;J%o78ZU3fW5uFFCR@j`T*@8RsaM72#Btuqh7E3?Ai0@r+%~9
zBmfm6nu(%lh`)c$Ij6(EjqIJv6Ix~zs5G0+ZJ(L*L4Ob|T5IoB2{Vrj`$=p9nUJ)V
zQ~~38i`LpVJ~K~>NO=&PVIuPR&d$y+ssCTG0Lsif=`-_m6h${>l#-XY?A#L(@jwJs
zeG*xFvor!o0f8!kNLZ$Q=Qs~lC_rfwhL{7CASz{5^#MRs$|BNl83C#~ObG#iV-9=~
z2P>2U%zq{sCj1neK#z?vp8)tMB98|u1CYQ@VJS$-
zBky-#L{8#32DC57r20F^jWIs~bfzNEq`rPf2m@4UjsSo7B68-OI~I}qN~9nNzE{=v
zs$xXsFX!Ah_ieh*TC0$~`g`o8}b0L5|qqSx!KW>9b*hT+Rvt+szhU9Z<(uXKCe6%n53
zOMe~&KmeGmveS2xbYp#eeem1#hNIv8`tHN*?Cgni?u#gjK4oSwGcmI!Z`|@J2!f+x
zvG{GhUjOmI(X_Ux~spoko#+WkzQKQkw9H##Oc%lo<>kn9dAOHXW07*qoM6N<$g7vt+X#fBK

delta 847
zcmV-V1F-z*2crj&VSf%9EUC*Ri~s-wBS}O-R5;6xRWVN+OA!8MZ!Zo;Sb`YoHRvf7
zQYtspNE9bZ{y?NCH9A9uY-=Uf*+y1u?HW&5d2
z*>1O&eBTdhwc2L2T5Xis^!xp*Uaxm(jA;i!@Z*1hJDtu(tyXKz&d#pnIuQ{fqH!4j
z9v&Vpd%fPfwY9a+Q-LooE_N0c7Iw7O^ErTsI3iL-yTY0f5i#@q-QC^p>gww51aPO*
z*;rg$JknavkAFvTb92*5)ASPnnwgn-Q?J)s<2KBEe|vlTHuqfRIjz-dtujymFveU2
zLGWJ?1mDs$IfV!y0x7(n=grT}&9%L=F~YiR#Eblvw{AFbM7wyv9iMj4?+dGSM%5-)||UJ^>)-+#6%eL=z&Sd*AopZf$LSo@kqU
zdwV;~ypw_FX>ob88V@`F6VbiadUtz!dv|K1kD_RUnOn}el@g$F8A_>3t@XRy)8CG!
z{Yd@&B@qdjd2^gC1;8t<^&t_po6Y8rKbm;}aBy%y04gF<7m<-+N<`O0)CG`+VOTm$
Ze*w-k=HT7
Date: Tue, 21 Feb 2012 00:54:34 +0100
Subject: [PATCH 18/44] Rename gravatar_img() more generic to avatar_img().

I would like to extend the Gravatar support to also use Libravatar, a decentralized avatar service.
First step to extract Gravatar from core and put it into its own plugin. Later the Libravatar plugin can be done, too as a plugin.
---
 include/Scrape.php  | 4 ++--
 include/network.php | 6 +++---
 mod/register.php    | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/Scrape.php b/include/Scrape.php
index 9c237916b..141c90dcf 100644
--- a/include/Scrape.php
+++ b/include/Scrape.php
@@ -446,7 +446,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
 						$phost = substr($url,strpos($url,'@')+1);
 						$profile = 'http://' . $phost;
 						// fix nick character range
-						$vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
+						$vcard = array('fn' => $name, 'nick' => $name, 'photo' => avatar_img($url));
 						$notify = 'smtp ' . random_string();
 						$poll = 'email ' . random_string();
 						$priority = 0;
@@ -655,7 +655,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
 			}
 
 			if((! $vcard['photo']) && strlen($email))
-				$vcard['photo'] = gravatar_img($email);
+				$vcard['photo'] = avatar_img($email);
 			if($poll === $profile)
 				$lnk = $feed->get_permalink();
 			if(isset($lnk) && strlen($lnk))
diff --git a/include/network.php b/include/network.php
index 38d0980d5..59705634b 100644
--- a/include/network.php
+++ b/include/network.php
@@ -692,13 +692,13 @@ function allowed_email($email) {
 }}
 
 
-if(! function_exists('gravatar_img')) {
-function gravatar_img($email) {
+if(! function_exists('avatar_img')) {
+function avatar_img($email) {
 	$size = 175;
 	$opt = 'identicon';   // psuedo-random geometric pattern if not found
 	$rating = 'pg';
 	$hash = md5(trim(strtolower($email)));
-	
+
 	$url = 'http://www.gravatar.com/avatar/' . $hash . '.jpg' 
 		. '?s=' . $size . '&d=' . $opt . '&r=' . $rating;
 
diff --git a/mod/register.php b/mod/register.php
index 630c0a675..8812ebadb 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -324,7 +324,7 @@ function register_post(&$a) {
 		require_once('include/Photo.php');
 
 		if(($use_gravatar) && (! strlen($photo))) 
-			$photo = gravatar_img($email);
+			$photo = avatar_img($email);
 		$photo_failure = false;
 
 		$filename = basename($photo);
@@ -333,7 +333,7 @@ function register_post(&$a) {
 		if($img->is_valid()) {
 
 			$img->scaleImageSquare(175);
-					
+
 			$hash = photo_new_resource();
 
 			$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 );

From 1f9fe8b5eeebfb6bc1275cba7dbb4daac1a2e910 Mon Sep 17 00:00:00 2001
From: Klaus Weidenbach 
Date: Sun, 8 Apr 2012 23:20:31 +0200
Subject: [PATCH 19/44] Remove Gravatar from core and add new hook
 avatar_lookup.

This patch removes all occurances of Gravatar from friendica's core and adds a new hook "avatar_lookup" inside the function avatar_img($email) where the new *avatar-plugins should hook in.
I haven't touched the language files yet. Are they updated automatically somehow?
---
 doc/Plugins.md      |  7 ++++++-
 doc/Settings.md     | 10 ----------
 include/network.php | 14 ++++++--------
 mod/admin.php       |  6 +-----
 mod/register.php    | 14 +++++---------
 view/admin_site.tpl |  1 -
 6 files changed, 18 insertions(+), 34 deletions(-)

diff --git a/doc/Plugins.md b/doc/Plugins.md
index 29dff3187..df6004450 100644
--- a/doc/Plugins.md
+++ b/doc/Plugins.md
@@ -164,10 +164,15 @@ Your module functions will often contain the function plugin_name_content(&$a),
 **'init_1'** - called just after DB has been opened and before session start
     $b is not used or passed
 
-
 **'page_end'** - called after HTML content functions have completed
     $b is (string) HTML of content div
 
+**'avatar_lookup'** - called when looking up the avatar
+    $b is (array)
+        'size' => the size of the avatar that will be looked up
+        'email' => email to look up the avatar for
+        'url' => the (string) generated URL of the avatar
+
 
 A complete list of all hook callbacks with file locations (generated 14-Feb-2012): Please see the source for details of any hooks not documented above.
 
diff --git a/doc/Settings.md b/doc/Settings.md
index 9808ecc5d..574ce8dcc 100644
--- a/doc/Settings.md
+++ b/doc/Settings.md
@@ -172,16 +172,6 @@ $a->config['system']['no_regfullname'] = true;
 ```
 
 
-**Gravatars**
-
-During registration, we will try to automatically find a user photo for you on the web using the gravatar service. You may turn this off by setting 'no_gravatar' to true. Default is false.
-
-Config:
-```
-$a->config['system']['no_gravatar'] = true;
-```
-
-
 **OpenID**
 
 By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.
diff --git a/include/network.php b/include/network.php
index 59705634b..58cef4756 100644
--- a/include/network.php
+++ b/include/network.php
@@ -694,16 +694,14 @@ function allowed_email($email) {
 
 if(! function_exists('avatar_img')) {
 function avatar_img($email) {
-	$size = 175;
-	$opt = 'identicon';   // psuedo-random geometric pattern if not found
-	$rating = 'pg';
-	$hash = md5(trim(strtolower($email)));
+	$avatar['size'] = 175;
+	$avatar['email'] = $email;
+	$avatar['url'] = '';
 
-	$url = 'http://www.gravatar.com/avatar/' . $hash . '.jpg' 
-		. '?s=' . $size . '&d=' . $opt . '&r=' . $rating;
+	call_hooks('avatar_lookup', $avatar);
 
-	logger('gravatar: ' . $email . ' ' . $url);
-	return $url;
+	logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url']);
+	return $avatar['url'];
 }}
 
 
diff --git a/mod/admin.php b/mod/admin.php
index a395027c1..961002786 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -174,7 +174,6 @@ function admin_page_site_post(&$a){
 		return;
 	}
 
-	
 	$sitename 			=	((x($_POST,'sitename'))			? notags(trim($_POST['sitename']))			: '');
 	$banner				=	((x($_POST,'banner'))      		? trim($_POST['banner'])					: false);
 	$language			=	((x($_POST,'language'))			? notags(trim($_POST['language']))			: '');
@@ -194,7 +193,6 @@ function admin_page_site_post(&$a){
 	$global_directory	=	((x($_POST,'directory_submit_url'))	? notags(trim($_POST['directory_submit_url']))	: '');
 	$no_multi_reg		=	((x($_POST,'no_multi_reg'))		? True	:	False);
 	$no_openid			=	!((x($_POST,'no_openid'))		? True	:	False);
-	$no_gravatar		=	!((x($_POST,'no_gravatar'))		? True	:	False);
 	$no_regfullname		=	!((x($_POST,'no_regfullname'))	? True	:	False);
 	$no_utf				=	!((x($_POST,'no_utf'))			? True	:	False);
 	$no_community_page	=	!((x($_POST,'no_community_page'))	? True	:	False);
@@ -204,7 +202,7 @@ function admin_page_site_post(&$a){
 	$proxy				=	((x($_POST,'proxy'))			? notags(trim($_POST['proxy']))	: '');
 	$timeout			=	((x($_POST,'timeout'))			? intval(trim($_POST['timeout']))		: 60);
 	$dfrn_only          =	((x($_POST,'dfrn_only'))	    ? True	:	False);
-    $ostatus_disabled   =   !((x($_POST,'ostatus_disabled')) ? True  :   False);
+	$ostatus_disabled   =   !((x($_POST,'ostatus_disabled')) ? True  :   False);
 	$diaspora_enabled   =   ((x($_POST,'diaspora_enabled')) ? True   :  False);
 	$ssl_policy         =   ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
 
@@ -283,7 +281,6 @@ function admin_page_site_post(&$a){
 	set_config('system','directory_search_url', $global_search_url);
 	set_config('system','block_extended_register', $no_multi_reg);
 	set_config('system','no_openid', $no_openid);
-	set_config('system','no_gravatar', $no_gravatar);
 	set_config('system','no_regfullname', $no_regfullname);
 	set_config('system','no_community_page', $no_community_page);
 	set_config('system','no_utf', $no_utf);
@@ -380,7 +377,6 @@ function admin_page_site(&$a) {
 			
 		'$no_multi_reg'		=> array('no_multi_reg', t("Block multiple registrations"),  get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
 		'$no_openid'		=> array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
-		'$no_gravatar'		=> array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")),
 		'$no_regfullname'	=> array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
 		'$no_utf'			=> array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
 		'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
diff --git a/mod/register.php b/mod/register.php
index 8812ebadb..b60707d45 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -314,17 +314,13 @@ function register_post(&$a) {
 
 	}
 
-	$use_gravatar = ((get_config('system','no_gravatar')) ? false : true);
-
-	// if we have an openid photo use it. 
-	// otherwise unless it is disabled, use gravatar
-
-	if($use_gravatar || strlen($photo)) {
+	// if we have no OpenID photo try to look up an avatar
+	if(! strlen($photo))
+		$photo = avatar_img($email);
 
+	// unless there is no avatar-plugin loaded
+	if(strlen($photo)) {
 		require_once('include/Photo.php');
-
-		if(($use_gravatar) && (! strlen($photo))) 
-			$photo = avatar_img($email);
 		$photo_failure = false;
 
 		$filename = basename($photo);
diff --git a/view/admin_site.tpl b/view/admin_site.tpl
index 01fe893c6..ec144fbba 100644
--- a/view/admin_site.tpl
+++ b/view/admin_site.tpl
@@ -17,7 +17,6 @@
 	
 	{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }}
 	{{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }}
-	{{ inc field_checkbox.tpl with $field=$no_gravatar }}{{ endinc }}
 	{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
 	
 	
From 0d4fab4ee3cba6db669d6b7e608bfbbba8e8d3dc Mon Sep 17 00:00:00 2001 From: tommy tomson Date: Tue, 10 Apr 2012 00:55:39 +0200 Subject: [PATCH 20/44] bbcode toolbar attached to the comment text field minor css-fixes --- view/theme/diabook-aerith/comment_item.tpl | 39 ++++++++++++++++++ view/theme/diabook-aerith/icons/bb-image.png | Bin 0 -> 697 bytes view/theme/diabook-aerith/icons/bb-video.png | Bin 0 -> 917 bytes view/theme/diabook-aerith/icons/bold.png | Bin 0 -> 699 bytes view/theme/diabook-aerith/icons/italic.png | Bin 0 -> 577 bytes view/theme/diabook-aerith/icons/underline.png | Bin 0 -> 604 bytes view/theme/diabook-aerith/style-network.css | 3 +- view/theme/diabook-aerith/style-profile.css | 3 +- view/theme/diabook-aerith/style.css | 25 ++++++++++- view/theme/diabook-aerith/theme.php | 33 +++++++++++++-- view/theme/diabook-blue/comment_item.tpl | 39 ++++++++++++++++++ view/theme/diabook-blue/icons/bb-image.png | Bin 0 -> 697 bytes view/theme/diabook-blue/icons/bb-video.png | Bin 0 -> 917 bytes view/theme/diabook-blue/icons/bold.png | Bin 0 -> 699 bytes view/theme/diabook-blue/icons/italic.png | Bin 0 -> 577 bytes view/theme/diabook-blue/icons/underline.png | Bin 0 -> 604 bytes view/theme/diabook-blue/style-network.css | 3 +- view/theme/diabook-blue/style-profile.css | 3 +- view/theme/diabook-blue/style.css | 25 ++++++++++- view/theme/diabook-blue/theme.php | 31 +++++++++++++- view/theme/diabook-red/comment_item.tpl | 39 ++++++++++++++++++ view/theme/diabook-red/icons/bb-image.png | Bin 0 -> 697 bytes view/theme/diabook-red/icons/bb-video.png | Bin 0 -> 917 bytes view/theme/diabook-red/icons/bold.png | Bin 0 -> 699 bytes view/theme/diabook-red/icons/italic.png | Bin 0 -> 577 bytes view/theme/diabook-red/icons/underline.png | Bin 0 -> 604 bytes view/theme/diabook-red/style-network.css | 3 +- view/theme/diabook-red/style-profile.css | 3 +- view/theme/diabook-red/style.css | 25 ++++++++++- view/theme/diabook-red/theme.php | 33 +++++++++++++-- view/theme/diabook/comment_item.tpl | 39 ++++++++++++++++++ view/theme/diabook/icons/bb-image.png | Bin 0 -> 697 bytes view/theme/diabook/icons/bb-video.png | Bin 0 -> 917 bytes view/theme/diabook/icons/bold.png | Bin 0 -> 699 bytes view/theme/diabook/icons/italic.png | Bin 0 -> 577 bytes view/theme/diabook/icons/underline.png | Bin 0 -> 604 bytes view/theme/diabook/style-network.css | 3 +- view/theme/diabook/style-profile.css | 3 +- view/theme/diabook/style.css | 24 ++++++++++- view/theme/diabook/theme.php | 33 +++++++++++++-- 40 files changed, 383 insertions(+), 26 deletions(-) create mode 100644 view/theme/diabook-aerith/comment_item.tpl create mode 100644 view/theme/diabook-aerith/icons/bb-image.png create mode 100644 view/theme/diabook-aerith/icons/bb-video.png create mode 100644 view/theme/diabook-aerith/icons/bold.png create mode 100644 view/theme/diabook-aerith/icons/italic.png create mode 100644 view/theme/diabook-aerith/icons/underline.png create mode 100644 view/theme/diabook-blue/comment_item.tpl create mode 100644 view/theme/diabook-blue/icons/bb-image.png create mode 100644 view/theme/diabook-blue/icons/bb-video.png create mode 100644 view/theme/diabook-blue/icons/bold.png create mode 100644 view/theme/diabook-blue/icons/italic.png create mode 100644 view/theme/diabook-blue/icons/underline.png create mode 100644 view/theme/diabook-red/comment_item.tpl create mode 100644 view/theme/diabook-red/icons/bb-image.png create mode 100644 view/theme/diabook-red/icons/bb-video.png create mode 100644 view/theme/diabook-red/icons/bold.png create mode 100644 view/theme/diabook-red/icons/italic.png create mode 100644 view/theme/diabook-red/icons/underline.png create mode 100644 view/theme/diabook/comment_item.tpl create mode 100644 view/theme/diabook/icons/bb-image.png create mode 100644 view/theme/diabook/icons/bb-video.png create mode 100644 view/theme/diabook/icons/bold.png create mode 100644 view/theme/diabook/icons/italic.png create mode 100644 view/theme/diabook/icons/underline.png diff --git a/view/theme/diabook-aerith/comment_item.tpl b/view/theme/diabook-aerith/comment_item.tpl new file mode 100644 index 000000000..4668b9ce3 --- /dev/null +++ b/view/theme/diabook-aerith/comment_item.tpl @@ -0,0 +1,39 @@ +
+
+ + + + + + + +
+ $mytitle +
+
+ + video + img + i + u + b + {{ if $qcomment }} + + {{ endif }} + +
+ + +
+
+ +
diff --git a/view/theme/diabook-aerith/icons/bb-image.png b/view/theme/diabook-aerith/icons/bb-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1b32113ee777036adb913693ff54156d8423f6 GIT binary patch literal 697 zcmV;q0!ICbP)eb zEdrPBTSbfhfS~_DXyIybDG}u+TxD(gf&vpA$|S{M#`&Dh!}72=kKN?j<_1!JJ5FeK7;4^x#&`Neeh zEL~0r!{aRDXg@sk%tLykkrBWo4F-`R;mFrXkNO;hU9NnoDxm=Fiw^^(cW@he_$z-Ngb=`D+ z+4p@kR$Q#~Sc^nHO_EGZPO`MLL^_@3{nk4^ZGXh`JPL)vA}}Vv?M9>VGKyoYG3-y{ zAwGQdfVIL31O2^NE0im{j1FGq(fE^H2jsKa>|Iqob{CeHm!GZ`^68bIYi#cMBs?Vy zBTo3q)`Y0)-#D(SMOD?|$EWqy?1;8eQq`7c{0 fwrW{bvz_>F7G5O{14>~L00000NkvXXu0mjfvu`%Q literal 0 HcmV?d00001 diff --git a/view/theme/diabook-aerith/icons/bb-video.png b/view/theme/diabook-aerith/icons/bb-video.png new file mode 100644 index 0000000000000000000000000000000000000000..bd323531ec179d740995c936c77eb440632b55de GIT binary patch literal 917 zcmV;G18V$f&M+fR)3`NngTLr=W0T#il z!Pvl|Aj;|xHqdspOsEB0yc4_WOglzLZM%gg!KBtCtzDa!ljQuoP^9Vi{_|WspU+of z-(9+V(I$jAb^pP`FB*p7lOzCv5CAlddLv(NG(Y{}`{^qH(!Q_@cw_GFz0c2_e$^Td zhY5$m0OayH0OsfCnVFrTS~JF`zMFd6vKKIPa_G&arIpX#d-omf=|i0)7Z%87vqU2i zrlzOKWU|<8c7}&fvAFmk)*TM5$$J5%&F!t#e3l#kv=;{p3k78jAwZ-`__x76Bp9b)64KMgYiUGXV7V_F}Qfo)*9# zx%Kek;zRoSUf|B1Us$-mK(o={!iD$w`07;v91c4tPCQSoTBY7Fr4|Q)PVakEerV@;7eWyupFCHVVbkd`pdk!^7uIAuehbxofjn;>gh>*ljipqlWjO z7l4h80>Ps}eqUWOEV7)H_7CZJ|G@DMxBkIqvGjU*cb9xFhY*5hvx)Dpk2Y7kh(#i6 ziJpW$H}}&4Y4D{Ng=Vv%sVX+R4FFx&QB@UHRk2zX0P6KR0Do_9*K3ukQm$4SnyMfJ zB=02wm>8b~;QHuSI2}%IjeU!|y`4uZtGIL*f39yJ3rW#54aI7afV_0}wKKx$bYhw& z@kE?jtwwpLOduG*Yzj)n5*-~+k;~^XO_O4wM5VgR&d$!J)oQ&gi~qi)Zq)zxV6psL zj-n`-rb(et1R$SZN7WRzwzkY>lbaLclb0->gPxD(e!eUD4*SfpZ*EBrhuxf={ZTs9 z+1Z$xnUwvkl rQj%qfZW9R0-{00000NkvXXu0mjf>I|}A literal 0 HcmV?d00001 diff --git a/view/theme/diabook-aerith/icons/bold.png b/view/theme/diabook-aerith/icons/bold.png new file mode 100644 index 0000000000000000000000000000000000000000..8fab2a10f83657ccab15743230469170189fdad7 GIT binary patch literal 699 zcmV;s0!00ZP)$?_4Y7csZb~svbQLTu(j5tX$pYr3fkH%CMWLUI_&^7e*I*6<~6hL<_NU0I?4>B6vS~%k|Y_ZwPt={ z0VxF+hR$W|AA=ZMZ|xXJ;S$FdckfSRkTHfdP3i0D;o8_(tAW*qk34#&H|~ z(lljLZSsC;iARs8xO!!jV_jW)FHs1AF@{rvg9ssZEMi0V@e@3I@tikrXX)zfY&9^( zWFr`3uq_*_&B_9-b_?J4k;0|fR2jc*(7Hrp4D$@g{*fCP7#J>>%P*Bur633>7K;QyfbaVRL4fCZD5a>^>ogh->h(Gs h8ylo)T9Z;%egi11r;P)HD42wrwLxl4A|9PuggIX}cy7Aq0`{p$OKx>UOP5%v`zXJ{vWLXBSH9l`` z;o{{>kWv<&L5g4!sUrj<{n*{b;=)2{UXg}DgCRlD>-av-ojp^UC!*pLM%oL0VSaAD zG+$~W0QCEP7zR+QR!dJ96C8AQq|VO{E-aoe-F|?e*u-wPi+a6Yx_wAc@Qv#mYlwfx z<9MgNjjCJ2)#a5kf=LhV-dTlV7!!qQnj((l!~H`K6e(W_F;}Tn#_0betu@SPb8o8I zY+h+J8t;S<9_Jjc>w+lBv`|4PR!?oI z`U|`Y-Ua;y3W`TX|ABu%^iWg;sq`1rgL+$8(`>dbljNIB#)G>tq3c3F_zo}M%sVg7 zH_qF4Z|;O)_$*1(G8Y1Z3vkXMgg~>&advSLq&3nsfl>-dl0YR2lx5*L&%4LI|M>QF zcjxwU5Ck|)g-2m-T@2cU>20nx4wQZMiu7dgw0@5sIQH`^MIGO;>yC<}GAd zR%)#^7!ko*TROLdsOf5n$!t2;G%+ZOqGG^nx^B=cUk3ov1V*Im30nV8&=LXwDhYBh z%IXQkoCKV6SZn_!Ai@cVmsVF1MbQa>Q550gg$^9YsX<(rLY(%M^>uvw^a01ek70~~ zF$QrQWAFVQHm+{e&JxjIh{l*Q=Gx^obXGdp-~WukuK@s{-EL#^+9sC#CFFTto}H|* z4pD0jU;5bD-UVX})>;^2kftfL)-@(HYmER<6a~iP@l24_n)#9LKYTFv(vwGzD+vfp zlkO{}RvL{40N~a07jq4wC;|ZFc@B1l4V+%DcfH%~zE(;FQcC!~4=E))&x4c_LI^0O q5XUh_qY>gb#&9@page['htmlhead'] .= sprintf('', $diabook_version); @@ -507,4 +507,31 @@ function restore_boxes(){ $.cookie("close_lastlikes","2", { expires: 365, path: "/" }); alert("Right-hand column was restored. Please refresh your browser"); } -';} \ No newline at end of file +';} + +$a->page['htmlhead'] .= ' + + '; \ No newline at end of file diff --git a/view/theme/diabook-blue/comment_item.tpl b/view/theme/diabook-blue/comment_item.tpl new file mode 100644 index 000000000..4668b9ce3 --- /dev/null +++ b/view/theme/diabook-blue/comment_item.tpl @@ -0,0 +1,39 @@ +
+
+ + + + + + + +
+ $mytitle +
+
+ + video + img + i + u + b + {{ if $qcomment }} + + {{ endif }} + +
+ + +
+
+ +
diff --git a/view/theme/diabook-blue/icons/bb-image.png b/view/theme/diabook-blue/icons/bb-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1b32113ee777036adb913693ff54156d8423f6 GIT binary patch literal 697 zcmV;q0!ICbP)eb zEdrPBTSbfhfS~_DXyIybDG}u+TxD(gf&vpA$|S{M#`&Dh!}72=kKN?j<_1!JJ5FeK7;4^x#&`Neeh zEL~0r!{aRDXg@sk%tLykkrBWo4F-`R;mFrXkNO;hU9NnoDxm=Fiw^^(cW@he_$z-Ngb=`D+ z+4p@kR$Q#~Sc^nHO_EGZPO`MLL^_@3{nk4^ZGXh`JPL)vA}}Vv?M9>VGKyoYG3-y{ zAwGQdfVIL31O2^NE0im{j1FGq(fE^H2jsKa>|Iqob{CeHm!GZ`^68bIYi#cMBs?Vy zBTo3q)`Y0)-#D(SMOD?|$EWqy?1;8eQq`7c{0 fwrW{bvz_>F7G5O{14>~L00000NkvXXu0mjfvu`%Q literal 0 HcmV?d00001 diff --git a/view/theme/diabook-blue/icons/bb-video.png b/view/theme/diabook-blue/icons/bb-video.png new file mode 100644 index 0000000000000000000000000000000000000000..bd323531ec179d740995c936c77eb440632b55de GIT binary patch literal 917 zcmV;G18V$f&M+fR)3`NngTLr=W0T#il z!Pvl|Aj;|xHqdspOsEB0yc4_WOglzLZM%gg!KBtCtzDa!ljQuoP^9Vi{_|WspU+of z-(9+V(I$jAb^pP`FB*p7lOzCv5CAlddLv(NG(Y{}`{^qH(!Q_@cw_GFz0c2_e$^Td zhY5$m0OayH0OsfCnVFrTS~JF`zMFd6vKKIPa_G&arIpX#d-omf=|i0)7Z%87vqU2i zrlzOKWU|<8c7}&fvAFmk)*TM5$$J5%&F!t#e3l#kv=;{p3k78jAwZ-`__x76Bp9b)64KMgYiUGXV7V_F}Qfo)*9# zx%Kek;zRoSUf|B1Us$-mK(o={!iD$w`07;v91c4tPCQSoTBY7Fr4|Q)PVakEerV@;7eWyupFCHVVbkd`pdk!^7uIAuehbxofjn;>gh>*ljipqlWjO z7l4h80>Ps}eqUWOEV7)H_7CZJ|G@DMxBkIqvGjU*cb9xFhY*5hvx)Dpk2Y7kh(#i6 ziJpW$H}}&4Y4D{Ng=Vv%sVX+R4FFx&QB@UHRk2zX0P6KR0Do_9*K3ukQm$4SnyMfJ zB=02wm>8b~;QHuSI2}%IjeU!|y`4uZtGIL*f39yJ3rW#54aI7afV_0}wKKx$bYhw& z@kE?jtwwpLOduG*Yzj)n5*-~+k;~^XO_O4wM5VgR&d$!J)oQ&gi~qi)Zq)zxV6psL zj-n`-rb(et1R$SZN7WRzwzkY>lbaLclb0->gPxD(e!eUD4*SfpZ*EBrhuxf={ZTs9 z+1Z$xnUwvkl rQj%qfZW9R0-{00000NkvXXu0mjf>I|}A literal 0 HcmV?d00001 diff --git a/view/theme/diabook-blue/icons/bold.png b/view/theme/diabook-blue/icons/bold.png new file mode 100644 index 0000000000000000000000000000000000000000..8fab2a10f83657ccab15743230469170189fdad7 GIT binary patch literal 699 zcmV;s0!00ZP)$?_4Y7csZb~svbQLTu(j5tX$pYr3fkH%CMWLUI_&^7e*I*6<~6hL<_NU0I?4>B6vS~%k|Y_ZwPt={ z0VxF+hR$W|AA=ZMZ|xXJ;S$FdckfSRkTHfdP3i0D;o8_(tAW*qk34#&H|~ z(lljLZSsC;iARs8xO!!jV_jW)FHs1AF@{rvg9ssZEMi0V@e@3I@tikrXX)zfY&9^( zWFr`3uq_*_&B_9-b_?J4k;0|fR2jc*(7Hrp4D$@g{*fCP7#J>>%P*Bur633>7K;QyfbaVRL4fCZD5a>^>ogh->h(Gs h8ylo)T9Z;%egi11r;P)HD42wrwLxl4A|9PuggIX}cy7Aq0`{p$OKx>UOP5%v`zXJ{vWLXBSH9l`` z;o{{>kWv<&L5g4!sUrj<{n*{b;=)2{UXg}DgCRlD>-av-ojp^UC!*pLM%oL0VSaAD zG+$~W0QCEP7zR+QR!dJ96C8AQq|VO{E-aoe-F|?e*u-wPi+a6Yx_wAc@Qv#mYlwfx z<9MgNjjCJ2)#a5kf=LhV-dTlV7!!qQnj((l!~H`K6e(W_F;}Tn#_0betu@SPb8o8I zY+h+J8t;S<9_Jjc>w+lBv`|4PR!?oI z`U|`Y-Ua;y3W`TX|ABu%^iWg;sq`1rgL+$8(`>dbljNIB#)G>tq3c3F_zo}M%sVg7 zH_qF4Z|;O)_$*1(G8Y1Z3vkXMgg~>&advSLq&3nsfl>-dl0YR2lx5*L&%4LI|M>QF zcjxwU5Ck|)g-2m-T@2cU>20nx4wQZMiu7dgw0@5sIQH`^MIGO;>yC<}GAd zR%)#^7!ko*TROLdsOf5n$!t2;G%+ZOqGG^nx^B=cUk3ov1V*Im30nV8&=LXwDhYBh z%IXQkoCKV6SZn_!Ai@cVmsVF1MbQa>Q550gg$^9YsX<(rLY(%M^>uvw^a01ek70~~ zF$QrQWAFVQHm+{e&JxjIh{l*Q=Gx^obXGdp-~WukuK@s{-EL#^+9sC#CFFTto}H|* z4pD0jU;5bD-UVX})>;^2kftfL)-@(HYmER<6a~iP@l24_n)#9LKYTFv(vwGzD+vfp zlkO{}RvL{40N~a07jq4wC;|ZFc@B1l4V+%DcfH%~zE(;FQcC!~4=E))&x4c_LI^0O q5XUh_qY>gb#&9@page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -509,3 +509,30 @@ function restore_boxes(){ alert("Right-hand column was restored. Please refresh your browser"); } ';} + +$a->page['htmlhead'] .= ' + + '; diff --git a/view/theme/diabook-red/comment_item.tpl b/view/theme/diabook-red/comment_item.tpl new file mode 100644 index 000000000..4668b9ce3 --- /dev/null +++ b/view/theme/diabook-red/comment_item.tpl @@ -0,0 +1,39 @@ +
+
+ + + + + + + +
+ $mytitle +
+
+ + video + img + i + u + b + {{ if $qcomment }} + + {{ endif }} + +
+ + +
+
+ +
diff --git a/view/theme/diabook-red/icons/bb-image.png b/view/theme/diabook-red/icons/bb-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1b32113ee777036adb913693ff54156d8423f6 GIT binary patch literal 697 zcmV;q0!ICbP)eb zEdrPBTSbfhfS~_DXyIybDG}u+TxD(gf&vpA$|S{M#`&Dh!}72=kKN?j<_1!JJ5FeK7;4^x#&`Neeh zEL~0r!{aRDXg@sk%tLykkrBWo4F-`R;mFrXkNO;hU9NnoDxm=Fiw^^(cW@he_$z-Ngb=`D+ z+4p@kR$Q#~Sc^nHO_EGZPO`MLL^_@3{nk4^ZGXh`JPL)vA}}Vv?M9>VGKyoYG3-y{ zAwGQdfVIL31O2^NE0im{j1FGq(fE^H2jsKa>|Iqob{CeHm!GZ`^68bIYi#cMBs?Vy zBTo3q)`Y0)-#D(SMOD?|$EWqy?1;8eQq`7c{0 fwrW{bvz_>F7G5O{14>~L00000NkvXXu0mjfvu`%Q literal 0 HcmV?d00001 diff --git a/view/theme/diabook-red/icons/bb-video.png b/view/theme/diabook-red/icons/bb-video.png new file mode 100644 index 0000000000000000000000000000000000000000..bd323531ec179d740995c936c77eb440632b55de GIT binary patch literal 917 zcmV;G18V$f&M+fR)3`NngTLr=W0T#il z!Pvl|Aj;|xHqdspOsEB0yc4_WOglzLZM%gg!KBtCtzDa!ljQuoP^9Vi{_|WspU+of z-(9+V(I$jAb^pP`FB*p7lOzCv5CAlddLv(NG(Y{}`{^qH(!Q_@cw_GFz0c2_e$^Td zhY5$m0OayH0OsfCnVFrTS~JF`zMFd6vKKIPa_G&arIpX#d-omf=|i0)7Z%87vqU2i zrlzOKWU|<8c7}&fvAFmk)*TM5$$J5%&F!t#e3l#kv=;{p3k78jAwZ-`__x76Bp9b)64KMgYiUGXV7V_F}Qfo)*9# zx%Kek;zRoSUf|B1Us$-mK(o={!iD$w`07;v91c4tPCQSoTBY7Fr4|Q)PVakEerV@;7eWyupFCHVVbkd`pdk!^7uIAuehbxofjn;>gh>*ljipqlWjO z7l4h80>Ps}eqUWOEV7)H_7CZJ|G@DMxBkIqvGjU*cb9xFhY*5hvx)Dpk2Y7kh(#i6 ziJpW$H}}&4Y4D{Ng=Vv%sVX+R4FFx&QB@UHRk2zX0P6KR0Do_9*K3ukQm$4SnyMfJ zB=02wm>8b~;QHuSI2}%IjeU!|y`4uZtGIL*f39yJ3rW#54aI7afV_0}wKKx$bYhw& z@kE?jtwwpLOduG*Yzj)n5*-~+k;~^XO_O4wM5VgR&d$!J)oQ&gi~qi)Zq)zxV6psL zj-n`-rb(et1R$SZN7WRzwzkY>lbaLclb0->gPxD(e!eUD4*SfpZ*EBrhuxf={ZTs9 z+1Z$xnUwvkl rQj%qfZW9R0-{00000NkvXXu0mjf>I|}A literal 0 HcmV?d00001 diff --git a/view/theme/diabook-red/icons/bold.png b/view/theme/diabook-red/icons/bold.png new file mode 100644 index 0000000000000000000000000000000000000000..8fab2a10f83657ccab15743230469170189fdad7 GIT binary patch literal 699 zcmV;s0!00ZP)$?_4Y7csZb~svbQLTu(j5tX$pYr3fkH%CMWLUI_&^7e*I*6<~6hL<_NU0I?4>B6vS~%k|Y_ZwPt={ z0VxF+hR$W|AA=ZMZ|xXJ;S$FdckfSRkTHfdP3i0D;o8_(tAW*qk34#&H|~ z(lljLZSsC;iARs8xO!!jV_jW)FHs1AF@{rvg9ssZEMi0V@e@3I@tikrXX)zfY&9^( zWFr`3uq_*_&B_9-b_?J4k;0|fR2jc*(7Hrp4D$@g{*fCP7#J>>%P*Bur633>7K;QyfbaVRL4fCZD5a>^>ogh->h(Gs h8ylo)T9Z;%egi11r;P)HD42wrwLxl4A|9PuggIX}cy7Aq0`{p$OKx>UOP5%v`zXJ{vWLXBSH9l`` z;o{{>kWv<&L5g4!sUrj<{n*{b;=)2{UXg}DgCRlD>-av-ojp^UC!*pLM%oL0VSaAD zG+$~W0QCEP7zR+QR!dJ96C8AQq|VO{E-aoe-F|?e*u-wPi+a6Yx_wAc@Qv#mYlwfx z<9MgNjjCJ2)#a5kf=LhV-dTlV7!!qQnj((l!~H`K6e(W_F;}Tn#_0betu@SPb8o8I zY+h+J8t;S<9_Jjc>w+lBv`|4PR!?oI z`U|`Y-Ua;y3W`TX|ABu%^iWg;sq`1rgL+$8(`>dbljNIB#)G>tq3c3F_zo}M%sVg7 zH_qF4Z|;O)_$*1(G8Y1Z3vkXMgg~>&advSLq&3nsfl>-dl0YR2lx5*L&%4LI|M>QF zcjxwU5Ck|)g-2m-T@2cU>20nx4wQZMiu7dgw0@5sIQH`^MIGO;>yC<}GAd zR%)#^7!ko*TROLdsOf5n$!t2;G%+ZOqGG^nx^B=cUk3ov1V*Im30nV8&=LXwDhYBh z%IXQkoCKV6SZn_!Ai@cVmsVF1MbQa>Q550gg$^9YsX<(rLY(%M^>uvw^a01ek70~~ zF$QrQWAFVQHm+{e&JxjIh{l*Q=Gx^obXGdp-~WukuK@s{-EL#^+9sC#CFFTto}H|* z4pD0jU;5bD-UVX})>;^2kftfL)-@(HYmER<6a~iP@l24_n)#9LKYTFv(vwGzD+vfp zlkO{}RvL{40N~a07jq4wC;|ZFc@B1l4V+%DcfH%~zE(;FQcC!~4=E))&x4c_LI^0O q5XUh_qY>gb#&9@page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -509,4 +509,31 @@ function restore_boxes(){ $.cookie("close_lastlikes","2", { expires: 365, path: "/" }); alert("Right-hand column was restored. Please refresh your browser"); } -';} \ No newline at end of file +';} + +$a->page['htmlhead'] .= ' + + '; \ No newline at end of file diff --git a/view/theme/diabook/comment_item.tpl b/view/theme/diabook/comment_item.tpl new file mode 100644 index 000000000..4668b9ce3 --- /dev/null +++ b/view/theme/diabook/comment_item.tpl @@ -0,0 +1,39 @@ +
+
+ + + + + + + +
+ $mytitle +
+
+ + video + img + i + u + b + {{ if $qcomment }} + + {{ endif }} + +
+ + +
+
+ +
diff --git a/view/theme/diabook/icons/bb-image.png b/view/theme/diabook/icons/bb-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1b32113ee777036adb913693ff54156d8423f6 GIT binary patch literal 697 zcmV;q0!ICbP)eb zEdrPBTSbfhfS~_DXyIybDG}u+TxD(gf&vpA$|S{M#`&Dh!}72=kKN?j<_1!JJ5FeK7;4^x#&`Neeh zEL~0r!{aRDXg@sk%tLykkrBWo4F-`R;mFrXkNO;hU9NnoDxm=Fiw^^(cW@he_$z-Ngb=`D+ z+4p@kR$Q#~Sc^nHO_EGZPO`MLL^_@3{nk4^ZGXh`JPL)vA}}Vv?M9>VGKyoYG3-y{ zAwGQdfVIL31O2^NE0im{j1FGq(fE^H2jsKa>|Iqob{CeHm!GZ`^68bIYi#cMBs?Vy zBTo3q)`Y0)-#D(SMOD?|$EWqy?1;8eQq`7c{0 fwrW{bvz_>F7G5O{14>~L00000NkvXXu0mjfvu`%Q literal 0 HcmV?d00001 diff --git a/view/theme/diabook/icons/bb-video.png b/view/theme/diabook/icons/bb-video.png new file mode 100644 index 0000000000000000000000000000000000000000..bd323531ec179d740995c936c77eb440632b55de GIT binary patch literal 917 zcmV;G18V$f&M+fR)3`NngTLr=W0T#il z!Pvl|Aj;|xHqdspOsEB0yc4_WOglzLZM%gg!KBtCtzDa!ljQuoP^9Vi{_|WspU+of z-(9+V(I$jAb^pP`FB*p7lOzCv5CAlddLv(NG(Y{}`{^qH(!Q_@cw_GFz0c2_e$^Td zhY5$m0OayH0OsfCnVFrTS~JF`zMFd6vKKIPa_G&arIpX#d-omf=|i0)7Z%87vqU2i zrlzOKWU|<8c7}&fvAFmk)*TM5$$J5%&F!t#e3l#kv=;{p3k78jAwZ-`__x76Bp9b)64KMgYiUGXV7V_F}Qfo)*9# zx%Kek;zRoSUf|B1Us$-mK(o={!iD$w`07;v91c4tPCQSoTBY7Fr4|Q)PVakEerV@;7eWyupFCHVVbkd`pdk!^7uIAuehbxofjn;>gh>*ljipqlWjO z7l4h80>Ps}eqUWOEV7)H_7CZJ|G@DMxBkIqvGjU*cb9xFhY*5hvx)Dpk2Y7kh(#i6 ziJpW$H}}&4Y4D{Ng=Vv%sVX+R4FFx&QB@UHRk2zX0P6KR0Do_9*K3ukQm$4SnyMfJ zB=02wm>8b~;QHuSI2}%IjeU!|y`4uZtGIL*f39yJ3rW#54aI7afV_0}wKKx$bYhw& z@kE?jtwwpLOduG*Yzj)n5*-~+k;~^XO_O4wM5VgR&d$!J)oQ&gi~qi)Zq)zxV6psL zj-n`-rb(et1R$SZN7WRzwzkY>lbaLclb0->gPxD(e!eUD4*SfpZ*EBrhuxf={ZTs9 z+1Z$xnUwvkl rQj%qfZW9R0-{00000NkvXXu0mjf>I|}A literal 0 HcmV?d00001 diff --git a/view/theme/diabook/icons/bold.png b/view/theme/diabook/icons/bold.png new file mode 100644 index 0000000000000000000000000000000000000000..8fab2a10f83657ccab15743230469170189fdad7 GIT binary patch literal 699 zcmV;s0!00ZP)$?_4Y7csZb~svbQLTu(j5tX$pYr3fkH%CMWLUI_&^7e*I*6<~6hL<_NU0I?4>B6vS~%k|Y_ZwPt={ z0VxF+hR$W|AA=ZMZ|xXJ;S$FdckfSRkTHfdP3i0D;o8_(tAW*qk34#&H|~ z(lljLZSsC;iARs8xO!!jV_jW)FHs1AF@{rvg9ssZEMi0V@e@3I@tikrXX)zfY&9^( zWFr`3uq_*_&B_9-b_?J4k;0|fR2jc*(7Hrp4D$@g{*fCP7#J>>%P*Bur633>7K;QyfbaVRL4fCZD5a>^>ogh->h(Gs h8ylo)T9Z;%egi11r;P)HD42wrwLxl4A|9PuggIX}cy7Aq0`{p$OKx>UOP5%v`zXJ{vWLXBSH9l`` z;o{{>kWv<&L5g4!sUrj<{n*{b;=)2{UXg}DgCRlD>-av-ojp^UC!*pLM%oL0VSaAD zG+$~W0QCEP7zR+QR!dJ96C8AQq|VO{E-aoe-F|?e*u-wPi+a6Yx_wAc@Qv#mYlwfx z<9MgNjjCJ2)#a5kf=LhV-dTlV7!!qQnj((l!~H`K6e(W_F;}Tn#_0betu@SPb8o8I zY+h+J8t;S<9_Jjc>w+lBv`|4PR!?oI z`U|`Y-Ua;y3W`TX|ABu%^iWg;sq`1rgL+$8(`>dbljNIB#)G>tq3c3F_zo}M%sVg7 zH_qF4Z|;O)_$*1(G8Y1Z3vkXMgg~>&advSLq&3nsfl>-dl0YR2lx5*L&%4LI|M>QF zcjxwU5Ck|)g-2m-T@2cU>20nx4wQZMiu7dgw0@5sIQH`^MIGO;>yC<}GAd zR%)#^7!ko*TROLdsOf5n$!t2;G%+ZOqGG^nx^B=cUk3ov1V*Im30nV8&=LXwDhYBh z%IXQkoCKV6SZn_!Ai@cVmsVF1MbQa>Q550gg$^9YsX<(rLY(%M^>uvw^a01ek70~~ zF$QrQWAFVQHm+{e&JxjIh{l*Q=Gx^obXGdp-~WukuK@s{-EL#^+9sC#CFFTto}H|* z4pD0jU;5bD-UVX})>;^2kftfL)-@(HYmER<6a~iP@l24_n)#9LKYTFv(vwGzD+vfp zlkO{}RvL{40N~a07jq4wC;|ZFc@B1l4V+%DcfH%~zE(;FQcC!~4=E))&x4c_LI^0O q5XUh_qY>gb#&9@page['htmlhead'] .= sprintf('', $diabook_version); //change css on network and profilepages @@ -519,4 +519,31 @@ function restore_boxes(){ $.cookie("close_lastlikes","2", { expires: 365, path: "/" }); alert("Right-hand column was restored. Please refresh your browser"); } -';} \ No newline at end of file +';} + +$a->page['htmlhead'] .= ' + + '; \ No newline at end of file From 2072fabc7891a7c659e4e7c1bac926535c265a23 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 9 Apr 2012 16:54:39 -0700 Subject: [PATCH 21/44] rev update --- boot.php | 2 +- util/messages.po | 58 ++++++++++++++++++++++++------------------------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/boot.php b/boot.php index 1815d37e2..c8f3e0b72 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1306' ); +define ( 'FRIENDICA_VERSION', '2.3.1307' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1137 ); diff --git a/util/messages.po b/util/messages.po index 2749281a9..d4d2e5d82 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2.3.1306\n" +"Project-Id-Version: 2.3.1307\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-08 10:00-0700\n" +"POT-Creation-Date: 2012-04-09 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,7 +34,7 @@ msgstr "" msgid "Contact update failed." msgstr "" -#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43 +#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44 #: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:866 #: ../../mod/editpost.php:10 ../../mod/install.php:171 @@ -50,7 +50,7 @@ msgstr "" #: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150 #: ../../mod/profile_photo.php:163 ../../mod/message.php:38 #: ../../mod/message.php:91 ../../mod/allfriends.php:9 -#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9 +#: ../../mod/wall_upload.php:46 ../../mod/follow.php:8 ../../mod/common.php:9 #: ../../mod/display.php:138 ../../mod/profiles.php:7 #: ../../mod/profiles.php:232 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 @@ -173,12 +173,12 @@ msgstr "" msgid "Page not found." msgstr "" -#: ../../mod/wall_attach.php:57 +#: ../../mod/wall_attach.php:58 #, php-format msgid "File exceeds size limit of %d" msgstr "" -#: ../../mod/wall_attach.php:85 ../../mod/wall_attach.php:96 +#: ../../mod/wall_attach.php:86 ../../mod/wall_attach.php:97 msgid "File upload failed." msgstr "" @@ -420,12 +420,12 @@ msgid "Image file is empty." msgstr "" #: ../../mod/photos.php:654 ../../mod/profile_photo.php:124 -#: ../../mod/wall_upload.php:65 +#: ../../mod/wall_upload.php:69 msgid "Unable to process image." msgstr "" #: ../../mod/photos.php:674 ../../mod/profile_photo.php:257 -#: ../../mod/wall_upload.php:84 +#: ../../mod/wall_upload.php:88 msgid "Image upload failed." msgstr "" @@ -2753,8 +2753,8 @@ msgstr "" msgid "Empty post discarded." msgstr "" -#: ../../mod/item.php:373 ../../mod/wall_upload.php:81 -#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97 +#: ../../mod/item.php:373 ../../mod/wall_upload.php:85 +#: ../../mod/wall_upload.php:94 ../../mod/wall_upload.php:101 #: ../../include/message.php:144 msgid "Wall Photos" msgstr "" @@ -2805,7 +2805,7 @@ msgstr "" msgid "Unable to process image" msgstr "" -#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:56 +#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:60 #, php-format msgid "Image exceeds size limit of %d" msgstr "" @@ -5339,7 +5339,7 @@ msgstr "" msgid "j F" msgstr "" -#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438 +#: ../../include/profile_advanced.php:30 ../../include/datetime.php:448 #: ../../include/items.php:1392 msgid "Birthday:" msgstr "" @@ -6097,71 +6097,71 @@ msgstr "" msgid "Miscellaneous" msgstr "" -#: ../../include/datetime.php:121 ../../include/datetime.php:253 +#: ../../include/datetime.php:131 ../../include/datetime.php:263 msgid "year" msgstr "" -#: ../../include/datetime.php:126 ../../include/datetime.php:254 +#: ../../include/datetime.php:136 ../../include/datetime.php:264 msgid "month" msgstr "" -#: ../../include/datetime.php:131 ../../include/datetime.php:256 +#: ../../include/datetime.php:141 ../../include/datetime.php:266 msgid "day" msgstr "" -#: ../../include/datetime.php:244 +#: ../../include/datetime.php:254 msgid "never" msgstr "" -#: ../../include/datetime.php:250 +#: ../../include/datetime.php:260 msgid "less than a second ago" msgstr "" -#: ../../include/datetime.php:253 +#: ../../include/datetime.php:263 msgid "years" msgstr "" -#: ../../include/datetime.php:254 +#: ../../include/datetime.php:264 msgid "months" msgstr "" -#: ../../include/datetime.php:255 +#: ../../include/datetime.php:265 msgid "week" msgstr "" -#: ../../include/datetime.php:255 +#: ../../include/datetime.php:265 msgid "weeks" msgstr "" -#: ../../include/datetime.php:256 +#: ../../include/datetime.php:266 msgid "days" msgstr "" -#: ../../include/datetime.php:257 +#: ../../include/datetime.php:267 msgid "hour" msgstr "" -#: ../../include/datetime.php:257 +#: ../../include/datetime.php:267 msgid "hours" msgstr "" -#: ../../include/datetime.php:258 +#: ../../include/datetime.php:268 msgid "minute" msgstr "" -#: ../../include/datetime.php:258 +#: ../../include/datetime.php:268 msgid "minutes" msgstr "" -#: ../../include/datetime.php:259 +#: ../../include/datetime.php:269 msgid "second" msgstr "" -#: ../../include/datetime.php:259 +#: ../../include/datetime.php:269 msgid "seconds" msgstr "" -#: ../../include/datetime.php:267 +#: ../../include/datetime.php:277 #, php-format msgid "%1$d %2$s ago" msgstr "" From 4c3b835307c072cbdf3b68857c34fc22a58872c6 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 10 Apr 2012 01:51:53 -0700 Subject: [PATCH 22/44] path to default.php in theme dir was incorrect --- index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index 1cb16778a..f0ed00232 100644 --- a/index.php +++ b/index.php @@ -360,13 +360,13 @@ $profile = $a->profile; header("Content-type: text/html; charset=utf-8"); -$template = 'view/' . current_theme() . '/' +$template = 'view/theme/' . current_theme() . '/' . ((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.php'; if(file_exists($template)) require_once($template); else - require_once(str_replace(current_theme() . '/', '', $template)); + require_once(str_replace('theme/' . current_theme() . '/', '', $template)); session_write_close(); exit; From 707a5dbae7fa895186d73abd22486dab33710dc6 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Tue, 10 Apr 2012 05:48:42 -0400 Subject: [PATCH 23/44] aaah, nice asides ;). we'll be updating these soon Signed-off-by: Simon L'nu --- view/theme/dispy-dark/communityhome.tpl | 4 +- view/theme/dispy-dark/default.php | 9 +- view/theme/dispy-dark/style.css | 4 +- view/theme/dispy-dark/theme.php | 224 ++++++++++++------------ view/theme/dispy/communityhome.tpl | 4 +- view/theme/dispy/default.php | 9 +- view/theme/dispy/nav.tpl | 3 - view/theme/dispy/style.css | 4 +- view/theme/dispy/theme.php | 217 ++++++++++++----------- view/theme/dispy/wall_item.tpl | 19 +- view/theme/dispy/wallwall_item.tpl | 21 ++- 11 files changed, 264 insertions(+), 254 deletions(-) diff --git a/view/theme/dispy-dark/communityhome.tpl b/view/theme/dispy-dark/communityhome.tpl index 340b7216c..edabab611 100644 --- a/view/theme/dispy-dark/communityhome.tpl +++ b/view/theme/dispy-dark/communityhome.tpl @@ -37,10 +37,8 @@
{{ endif }} -{{ if $lastusers_title }} -

PostIt to Friendica

+

'PostIt' to Friendica

Post to Friendica from anywhere by bookmarking this link.
-{{ endif }} diff --git a/view/theme/dispy-dark/default.php b/view/theme/dispy-dark/default.php index e74ec1a4f..24df92a72 100644 --- a/view/theme/dispy-dark/default.php +++ b/view/theme/dispy-dark/default.php @@ -7,13 +7,18 @@ -