From eed686a09b791d7be7d4695c5c4c2e40f20dabb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Sun, 10 Jun 2012 16:29:31 +0000 Subject: [PATCH 1/6] Some Bugfixes and new ways to create an event --- dav/calendar.friendica.fnk.php | 29 ++++++- dav/common/calendar.fnk.php | 61 ++++++++++++++ dav/common/wdcal.js | 44 +++++++++- dav/common/wdcal/js/jquery.calendar.js | 19 +++-- dav/dav.php | 2 +- dav/layout.fnk.php | 82 ++++++------------- dav/main.php | 109 ++++++++++++++----------- dav/wdcal/Changelog.txt | 10 +++ dav/wdcal/css/main.css | 3 +- 9 files changed, 238 insertions(+), 121 deletions(-) create mode 100644 dav/wdcal/Changelog.txt diff --git a/dav/calendar.friendica.fnk.php b/dav/calendar.friendica.fnk.php index 1d4600c6..af4a0175 100644 --- a/dav/calendar.friendica.fnk.php +++ b/dav/calendar.friendica.fnk.php @@ -22,11 +22,17 @@ define("CARDDAV_NAMESPACE_PHONECONTACTS", 2); define("CALDAV_DB_VERSION", 1); +/** + * @return int + */ function getCurMicrotime () { list($usec, $sec) = explode(" ", microtime()); return sprintf("%14.0f", $sec * 10000 + $usec * 10000); } // function getCurMicrotime +/** + * + */ function debug_time() { $cur = getCurMicrotime(); if ($GLOBALS["debug_time_last"] > 0) { @@ -80,13 +86,30 @@ function dav_compat_principal2uid($principalUri = "") return dav_compat_username2id($username); } + +/** + * @param string $name + * @return null|string + */ +function dav_compat_getRequestVar($name = "") { + if (x($_REQUEST, $name)) return $_REQUEST[$name]; + else return null; +} + /** * @param $text - * @return mixed + * @return null|string */ -function wdcal_parse_text_serverside($text) +function dav_compat_parse_text_serverside($text) { - return $text; + return dav_compat_getRequestVar($text); +} + +/** + * @param string $uri + */ +function dav_compat_redirect($uri = "") { + goaway($uri); } /** diff --git a/dav/common/calendar.fnk.php b/dav/common/calendar.fnk.php index 51b7f5e0..410c60dd 100644 --- a/dav/common/calendar.fnk.php +++ b/dav/common/calendar.fnk.php @@ -477,6 +477,67 @@ function wdcal_get_list_range_params($day, $weekstartday, $num_days, $type) } + + + +/** + * @param string $uri + * @param string $recurr_uri + * @param int $uid + * @param string $timezone + * @param string $goaway_url + * @return string + */ +function wdcal_postEditPage($uri, $recurr_uri = "", $uid = 0, $timezone = "", $goaway_url = "") +{ + $uid = IntVal($uid); + $localization = wdcal_local::getInstanceByUser($uid); + + if (isset($_REQUEST["allday"])) { + $start = $localization->date_parseLocal($_REQUEST["start_date"] . " 00:00"); + $end = $localization->date_parseLocal($_REQUEST["end_date"] . " 20:00"); + $isallday = true; + } else { + $start = $localization->date_parseLocal($_REQUEST["start_date"] . " " . $_REQUEST["start_time"]); + $end = $localization->date_parseLocal($_REQUEST["end_date"] . " " . $_REQUEST["end_time"]); + $isallday = false; + } + + if ($uri == "new") { + $cals = dav_getMyCals($uid); + foreach ($cals as $c) { + $cs = wdcal_calendar_factory($uid, $c->namespace, $c->namespace_id); + $p = $cs->getPermissionsCalendar($uid); + + if ($p["write"]) try { + $cs->addItem($start, $end, dav_compat_getRequestVar("subject"), $isallday, dav_compat_parse_text_serverside("wdcal_desc"), + dav_compat_getRequestVar("location"), dav_compat_getRequestVar("color"), $timezone, + isset($_REQUEST["notification"]), $_REQUEST["notification_type"], $_REQUEST["notification_value"]); + } catch (Exception $e) { + notification(t("Error") . ": " . $e); + } + dav_compat_redirect($goaway_url); + } + + } else { + $cals = dav_getMyCals($uid); + foreach ($cals as $c) { + $cs = wdcal_calendar_factory($uid, $c->namespace, $c->namespace_id); + $p = $cs->getPermissionsItem($uid, $uri, $recurr_uri); + if ($p["write"]) try { + $cs->updateItem($uri, $start, $end, + dav_compat_getRequestVar("subject"), $isallday, dav_compat_parse_text_serverside("wdcal_desc"), + dav_compat_getRequestVar("location"), dav_compat_getRequestVar("color"), $timezone, + isset($_REQUEST["notification"]), $_REQUEST["notification_type"], $_REQUEST["notification_value"]); + } catch (Exception $e) { + notification(t("Error") . ": " . $e); + } + dav_compat_redirect($goaway_url); + } + } +} + + /** * */ diff --git a/dav/common/wdcal.js b/dav/common/wdcal.js index cbdc5a43..877d3852 100644 --- a/dav/common/wdcal.js +++ b/dav/common/wdcal.js @@ -1,17 +1,53 @@ +function wdcal_edit_getStartEnd() { + "use strict"; + + var start = $("#cal_start_date").datepicker("getDate"); + var start_time = $.timePicker("#cal_start_time").getTime(); + start.setHours(start_time.getHours()); + start.setMinutes(start_time.getMinutes()); + + var end = $("#cal_end_date").datepicker("getDate"); + var end_time = $.timePicker("#cal_end_time").getTime(); + end.setHours(end_time.getHours()); + end.setMinutes(end_time.getMinutes()); + + return {"start": start, "end": end}; +} + +function wdcal_edit_checktime_startChanged() { + "use strict"; + var time = wdcal_edit_getStartEnd(); + if (time.start.getTime() >= time.end.getTime()) { + var newend = new Date(time.start.getTime() + 3600000); + $("#cal_end_date").datepicker("setDate", newend); + $.timePicker("#cal_end_time").setTime(newend); + } +} + +function wdcal_edit_checktime_endChanged() { + "use strict"; + var time = wdcal_edit_getStartEnd(); + if (time.start.getTime() >= time.end.getTime()) { + var newstart = new Date(time.end.getTime() - 3600000); + $("#cal_start_date").datepicker("setDate", newstart); + $.timePicker("#cal_start_time").setTime(newstart); + } +} + function wdcal_edit_init(dateFormat) { "use strict"; $("#cal_color").colorPicker(); - $("#cal_start_time").timePicker({ step: 15 }); - $("#cal_end_time").timePicker(); + $("#cal_start_time").timePicker({ step: 15 }).on("change", wdcal_edit_checktime_startChanged); + $("#cal_end_time").timePicker().on("change", wdcal_edit_checktime_endChanged); $("#cal_start_date").datepicker({ "dateFormat": dateFormat - }); + }).on("change", wdcal_edit_checktime_startChanged); $("#cal_end_date").datepicker({ "dateFormat": dateFormat - }); + }).on("change", wdcal_edit_checktime_endChanged); $("#notification").on("click change", function() { if ($(this).prop("checked")) $("#notification_detail").show(); diff --git a/dav/common/wdcal/js/jquery.calendar.js b/dav/common/wdcal/js/jquery.calendar.js index 88987cf5..194ae566 100644 --- a/dav/common/wdcal/js/jquery.calendar.js +++ b/dav/common/wdcal/js/jquery.calendar.js @@ -195,6 +195,7 @@ * {Number} Calendar height, false for page height by default. */ height:false, + baseurl: "", /** * @description {Config} url * {String} Url to request calendar data. @@ -1744,21 +1745,21 @@ temparr.push(i18n.xgcalendar.time, ':
'); temparr.push(i18n.xgcalendar.content, ':
'); temparr.push(i18n.xgcalendar.example, '
  '); + temparr.push(i18n.xgcalendar.create_event, '" type="submit"/>  '); temparr.push(i18n.xgcalendar.update_detail, ' >>
'); temparr.push(''); - var tempquickAddHanler = temparr.join(""); + var tempquickAddHandler = temparr.join(""); temparr = null; - $(document.body).append(tempquickAddHanler); + $(document.body).append(tempquickAddHandler); buddle = $("#bbit-cal-buddle"); - $("#bubbleClose1").click(function () { + $("#bubbleClose1").on("click", function () { $("#bbit-cal-buddle").css("visibility", "hidden"); releasedragevent(); }); - $("#bbit-cal-submitFORM").keyup(function (e) { + $("#bbit-cal-submitFORM").on("keyup", function (e) { if (e.which == 27) $("#bubbleClose1").click(); }); - $("#bbit-cal-submitFORM").submit(function (e) { + $("#bbit-cal-submitFORM").on("submit", function (e) { e.stopPropagation(); e.preventDefault(); if (option.isloading) { @@ -1838,7 +1839,7 @@ } return false; }); - buddle.mousedown(function (e) { + buddle.on("mousedown", function (e) { e.stopPropagation(); e.preventDefault(); }); @@ -1857,6 +1858,10 @@ $("#bbit-cal-allday").val(isallday ? "1" : "0"); $("#bbit-cal-start").val(start.getTime()); $("#bbit-cal-end").val(end.getTime()); + + var addurl = option.baseurl + "new/?start=" + Math.floor($("#bbit-cal-start").val() / 1000) + "&end=" + Math.floor($("#bbit-cal-end").val() / 1000) + "&isallday=" + (isallday ? "1" : "0"); + buddle.find(".bbit-cal-editLink").attr("href", addurl); + buddle.css({ "visibility":"visible", left:off.left, top:off.top }); calwhat.blur().focus(); //add 2010-01-26 blur() fixed chrome $(document).one("mousedown", function () { diff --git a/dav/dav.php b/dav/dav.php index 8c29e385..1f35b06a 100644 --- a/dav/dav.php +++ b/dav/dav.php @@ -2,7 +2,7 @@ /** * Name: Calendar with CalDAV Support * Description: A web-based calendar system with CalDAV-support. Also brings your Friendica-Contacts to your CardDAV-capable mobile phone. Requires PHP >= 5.3. - * Version: 0.1 + * Version: 0.1.1 * Author: Tobias Hößl */ diff --git a/dav/layout.fnk.php b/dav/layout.fnk.php index a712a09b..550f90b6 100644 --- a/dav/layout.fnk.php +++ b/dav/layout.fnk.php @@ -18,8 +18,11 @@ function wdcal_addRequiredHeaders() $a->page['htmlhead'] .= '' . "\r\n"; switch (get_config("system", "language")) { - case "de": $a->page['htmlhead'] .= '' . "\r\n"; break; - default: $a->page['htmlhead'] .= '' . "\r\n"; + case "de": + $a->page['htmlhead'] .= '' . "\r\n"; + break; + default: + $a->page['htmlhead'] .= '' . "\r\n"; } $a->page['htmlhead'] .= '' . "\r\n"; @@ -80,6 +83,7 @@ function wdcal_printCalendar($calendars, $calendar_preselected, $data_feed_url, "date_format_dm2" => $localization->dateformat_js_dm2(), "date_format_dm3" => $localization->dateformat_js_dm3(), "date_format_full" => $localization->dateformat_datepicker_js(), + "baseurl" => $a->get_baseurl() . "/dav/wdcal/", ); $x = ' @@ -111,6 +115,9 @@ function wdcal_printCalendar($calendars, $calendar_preselected, $data_feed_url,
' . t("Settings") . ' / ' . t("Help") . '
+
+
' . t("New event") . '
+
' . t("Today") . '
@@ -122,7 +129,7 @@ function wdcal_printCalendar($calendars, $calendar_preselected, $data_feed_url, if ($view == "day") $x .= 'fcurrent'; - $x .= '">Tag
+ $x .= '">' . t("Day") . '
user["uid"]); foreach ($cals as $c) { $cs = wdcal_calendar_factory($a->user["uid"], $c->namespace, $c->namespace_id); $p = $cs->getPermissionsItem($a->user["uid"], $uri, $recurr_uri); @@ -199,54 +206,12 @@ function wdcal_getDetailPage($uri, $recurr_uri) return $uri . " / " . $recurr_uri . "
" . print_r($details, true); } - /** * @param string $uri * @param string $recurr_uri * @return string */ -function wdcal_postEditPage($uri, $recurr_uri) -{ - - $a = get_app(); - $localization = wdcal_local::getInstanceByUser($a->user["uid"]); - - check_form_security_token_redirectOnErr($a->get_baseurl() . "/dav/wdcal/", "caledit"); - - if (isset($_REQUEST["allday"])) { - $start = $localization->date_parseLocal($_REQUEST["start_date"] . " 00:00"); - $end = $localization->date_parseLocal($_REQUEST["end_date"] . " 20:00"); - $isallday = true; - } else { - $start = $localization->date_parseLocal($_REQUEST["start_date"] . " " . $_REQUEST["start_time"]); - $end = $localization->date_parseLocal($_REQUEST["end_date"] . " " . $_REQUEST["end_time"]); - $isallday = false; - } - - - $cals = dav_getMyCals($a->user["uid"]); - foreach ($cals as $c) { - $cs = wdcal_calendar_factory($a->user["uid"], $c->namespace, $c->namespace_id); - $p = $cs->getPermissionsItem($a->user["uid"], $uri, $recurr_uri); - if ($p["write"]) try { - $cs->updateItem($uri, $start, $end, - stripslashes($_REQUEST["subject"]), $isallday, wdcal_parse_text_serverside($_REQUEST["wdcal_desc"]), - stripslashes($_REQUEST["location"]), $_REQUEST["color"], $a->timezone, - isset($_REQUEST["notification"]), $_REQUEST["notification_type"], $_REQUEST["notification_value"]); - } catch (Exception $e) { - notification(t("Error") . ": " . $e); - } - goaway($a->get_baseurl() . "/dav/wdcal/"); - } - -} - -/** - * @param string $uri - * @param string $recurr_uri - * @return string - */ -function wdcal_getEditPage($uri, $recurr_uri) +function wdcal_getEditPage($uri, $recurr_uri = "") { $a = get_app(); @@ -290,8 +255,8 @@ function wdcal_getEditPage($uri, $recurr_uri) "Subject" => $_REQUEST["title"], "Location" => "", "Description" => "", - "StartTime" => $_REQUEST["start"], - "EndTime" => $_REQUEST["end"], + "StartTime" => wdcal_php2MySqlTime($_REQUEST["start"]), + "EndTime" => wdcal_php2MySqlTime($_REQUEST["end"]), "IsAllDayEvent" => $_REQUEST["isallday"], "Color" => null, "RecurringRule" => null, @@ -311,10 +276,10 @@ function wdcal_getEditPage($uri, $recurr_uri) "Subject" => "", "Location" => "", "Description" => "", - "StartTime" => "", - "EndTime" => "", - "IsAllDayEvent" => "", - "Color" => null, + "StartTime" => date("Y-m-d H:i:s"), + "EndTime" => date("Y-m-d H:i:s", time() + 3600), + "IsAllDayEvent" => "0", + "Color" => "#5858ff", "RecurringRule" => null, ); $notification_type = "hour"; @@ -322,26 +287,27 @@ function wdcal_getEditPage($uri, $recurr_uri) $notification = true; } + $postto = $a->get_baseurl() . "/dav/wdcal/" . ($uri == "new" ? "new/" : $uri . "/edit/"); $out = "" . t("Go back to the calendar") . "

"; - $out .= "
\n"; + $out .= "\n"; $out .= "
\n"; $out .= "
\n"; - $out .= ""; + $out .= ""; $out .= ""; $out .= ""; $out .= "
\n"; - $out .= ""; + $out .= ""; $out .= ""; $out .= ""; $out .= "
\n"; - $out .= "
\n"; + $out .= "
\n"; $out .= " "; $out .= "
"; diff --git a/dav/main.php b/dav/main.php index b79a4779..6635d18a 100644 --- a/dav/main.php +++ b/dav/main.php @@ -22,48 +22,49 @@ function dav_module() { } -function dav_include_files() { - require_once (__DIR__ . "/common/dbclasses/dbclass_animexx.class.php"); - require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendars.class.php"); - require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.jqcalendar.class.php"); - require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.notifications.class.php"); - require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendarobjects.class.php"); +function dav_include_files() +{ + require_once (__DIR__ . "/common/dbclasses/dbclass_animexx.class.php"); + require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendars.class.php"); + require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.jqcalendar.class.php"); + require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.notifications.class.php"); + require_once (__DIR__ . "/common/dbclasses/dbclass.friendica.calendarobjects.class.php"); - /* - require_once (__DIR__ . "/SabreDAV/lib/Sabre.includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/VObject/includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/DAVACL/includes.php"); - require_once (__DIR__ . "/SabreDAV/lib/Sabre/CalDAV/includes.php"); - */ - require_once (__DIR__ . "/SabreDAV/lib/Sabre/autoload.php"); + /* + require_once (__DIR__ . "/SabreDAV/lib/Sabre.includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/VObject/includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/DAVACL/includes.php"); + require_once (__DIR__ . "/SabreDAV/lib/Sabre/CalDAV/includes.php"); + */ + require_once (__DIR__ . "/SabreDAV/lib/Sabre/autoload.php"); - $tz_before = date_default_timezone_get(); - require_once (__DIR__ . "/iCalcreator/iCalcreator.class.php"); - date_default_timezone_set($tz_before); + $tz_before = date_default_timezone_get(); + require_once (__DIR__ . "/iCalcreator/iCalcreator.class.php"); + date_default_timezone_set($tz_before); - require_once (__DIR__ . "/common/calendar.fnk.php"); - require_once (__DIR__ . "/common/dav_caldav_backend_common.inc.php"); - require_once (__DIR__ . "/common/dav_caldav_backend.inc.php"); - require_once (__DIR__ . "/common/dav_caldav_root.inc.php"); - require_once (__DIR__ . "/common/dav_user_calendars.inc.php"); - require_once (__DIR__ . "/common/dav_carddav_root.inc.php"); - require_once (__DIR__ . "/common/dav_carddav_backend_std.inc.php"); - require_once (__DIR__ . "/common/dav_user_addressbooks.inc.php"); - require_once (__DIR__ . "/common/virtual_cal_source_backend.inc.php"); - require_once (__DIR__ . "/common/wdcal_configuration.php"); - require_once (__DIR__ . "/common/wdcal_cal_source.inc.php"); - require_once (__DIR__ . "/common/wdcal_cal_source_private.inc.php"); + require_once (__DIR__ . "/common/calendar.fnk.php"); + require_once (__DIR__ . "/common/dav_caldav_backend_common.inc.php"); + require_once (__DIR__ . "/common/dav_caldav_backend.inc.php"); + require_once (__DIR__ . "/common/dav_caldav_root.inc.php"); + require_once (__DIR__ . "/common/dav_user_calendars.inc.php"); + require_once (__DIR__ . "/common/dav_carddav_root.inc.php"); + require_once (__DIR__ . "/common/dav_carddav_backend_std.inc.php"); + require_once (__DIR__ . "/common/dav_user_addressbooks.inc.php"); + require_once (__DIR__ . "/common/virtual_cal_source_backend.inc.php"); + require_once (__DIR__ . "/common/wdcal_configuration.php"); + require_once (__DIR__ . "/common/wdcal_cal_source.inc.php"); + require_once (__DIR__ . "/common/wdcal_cal_source_private.inc.php"); - require_once (__DIR__ . "/dav_friendica_principal.inc.php"); - require_once (__DIR__ . "/dav_friendica_auth.inc.php"); - require_once (__DIR__ . "/dav_carddav_backend_friendica_community.inc.php"); - require_once (__DIR__ . "/dav_caldav_backend_friendica.inc.php"); - require_once (__DIR__ . "/virtual_cal_source_friendica.inc.php"); - require_once (__DIR__ . "/wdcal_cal_source_friendicaevents.inc.php"); - require_once (__DIR__ . "/FriendicaACLPlugin.inc.php"); + require_once (__DIR__ . "/dav_friendica_principal.inc.php"); + require_once (__DIR__ . "/dav_friendica_auth.inc.php"); + require_once (__DIR__ . "/dav_carddav_backend_friendica_community.inc.php"); + require_once (__DIR__ . "/dav_caldav_backend_friendica.inc.php"); + require_once (__DIR__ . "/virtual_cal_source_friendica.inc.php"); + require_once (__DIR__ . "/wdcal_cal_source_friendicaevents.inc.php"); + require_once (__DIR__ . "/FriendicaACLPlugin.inc.php"); - require_once (__DIR__ . "/calendar.friendica.fnk.php"); - require_once (__DIR__ . "/layout.fnk.php"); + require_once (__DIR__ . "/calendar.friendica.fnk.php"); + require_once (__DIR__ . "/layout.fnk.php"); } @@ -79,7 +80,7 @@ function dav_init(&$a) */ dav_include_files(); - + if (false) { dbg(true); error_reporting(E_ALL); @@ -174,15 +175,29 @@ function dav_content() return wdcal_getSettingsPage($a); } elseif ($a->argv[1] == "wdcal") { if ($a->argc >= 3 && strlen($a->argv[2]) > 0) { - $uri = $a->argv[2]; - $recurr_uri = ""; // @TODO - if (isset($a->argv[3]) && $a->argv[3] == "edit") { + $uri = $a->argv[2]; + + if ($uri == "new") { $o = ""; - if (isset($_REQUEST["save"])) $o .= wdcal_postEditPage($uri, $recurr_uri); - $o .= wdcal_getEditPage($uri, $recurr_uri); + if (isset($_REQUEST["save"])) { + check_form_security_token_redirectOnErr($a->get_baseurl() . "/dav/wdcal/", "caledit"); + $o .= wdcal_postEditPage("new", "", $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/"); + } + $o .= wdcal_getEditPage("new"); return $o; } else { - return wdcal_getDetailPage($uri, $recurr_uri); + $recurr_uri = ""; // @TODO + if (isset($a->argv[3]) && $a->argv[3] == "edit") { + $o = ""; + if (isset($_REQUEST["save"])) { + check_form_security_token_redirectOnErr($a->get_baseurl() . "/dav/wdcal/", "caledit"); + $o .= wdcal_postEditPage($uri, $recurr_uri, $a->user["uid"], $a->timezone, $a->get_baseurl() . "/dav/wdcal/"); + } + $o .= wdcal_getEditPage($uri, $recurr_uri); + return $o; + } else { + return wdcal_getDetailPage($uri, $recurr_uri); + } } } else { $cals = dav_getMyCals($a->user["uid"]); @@ -226,9 +241,9 @@ function dav_event_updated_hook(&$a, &$b) function dav_profile_tabs_hook(&$a, &$b) { $b["tabs"][] = array( - "label" => t('Calendar'), - "url" => $a->get_baseurl() . "/dav/wdcal/", - "sel" => "", + "label" => t('Calendar'), + "url" => $a->get_baseurl() . "/dav/wdcal/", + "sel" => "", "title" => t('Extended calendar with CalDAV-support'), ); } diff --git a/dav/wdcal/Changelog.txt b/dav/wdcal/Changelog.txt new file mode 100644 index 00000000..9cc23a4a --- /dev/null +++ b/dav/wdcal/Changelog.txt @@ -0,0 +1,10 @@ +v0.1.1 +====== +[FEATURE] A "New Event" Button in the navigation bar of the calendar is added. +[FEATURE] When creating an event by dragging in the calendar, the "Edit Details"-Link leads to a page where the details can be added before actually creating the event. +[BUGFIX] When editing a event, the start time cannot be set befor the end time anymore. +[BUGFIX] Fixed some problems with Magic Quotes + +v0.1 +====== +Initial Release \ No newline at end of file diff --git a/dav/wdcal/css/main.css b/dav/wdcal/css/main.css index c9ca2d36..78872d5b 100644 --- a/dav/wdcal/css/main.css +++ b/dav/wdcal/css/main.css @@ -107,10 +107,11 @@ a.imgbtn span.Delete background: url(./images/icons/delete.png) no-repeat 3px 4px; } -span.addcal +a.addcal { padding-left:20px; background: url(./images/icons/date_add.png) no-repeat 1px 50%; + color: black; } span.showdayview { From b1fa327497c81123f71181d514cf7f298e9983d8 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 10 Jun 2012 16:32:53 -0700 Subject: [PATCH 2/6] update package --- privacy_image_cache.tgz | Bin 2785 -> 2841 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/privacy_image_cache.tgz b/privacy_image_cache.tgz index 47f683652d16138d3505a77cc2a42a9ae851b7e5..bf38693803edf46ba41cc1431be251f397235bf2 100644 GIT binary patch literal 2841 zcmV+!3+D76iwFQ)cGOP*1ML~xR@+FDSNs(ntrJO%!8YNNhjFu^3v+!;?hiOd1Y~BsV(PIm}$3HSC(6=uiLL-zP$v48M6G`f|NlL z3mOqJ<5Sz^(KQbqz#F;CEA2OL-h2z0z9EcC{D0Ef-aYIr_|7x&KnJg^EIsJ|)#VlR z|I%{1y|}oD{$E*aw`NG|nfN~n|L6Wc4s1rKEg%X6a~ebpc}%F|gaORL2>v6ZD7?KR zeI{-g3jl+WBxVtzfkW7>U{OFlBIAcdEDn>%X7NI;JD6AmN)aO>1VSVphBrZjc>D^O z17{k=B#a32`^<5elWu58Ucl-axJ67voLvJMoK);k0{rqq8@PBpxFR5Z%mRUYGC>z= zZ|`8h16OG$)fuBb3}c~|8HmAMey@>DgCG<+cQRs89LnWj5Jo-~94r+M?yVwq!msXo zv?Evq^f<$nZ5IUtHFv`BildG8!yBL(DOn=shawm0hI<}biuOHeG!aqzYJzUYw?vBp zNEK<`**(P++TG z##a%RTu{go)(($H9)(?k`AFs2SQiODCcp?1h;{3G{C8=9=M$hn_%Z%=6b8BFpOe2N z3_L&8o(PU4m<*33_>KWG#r)fc$dm}*JV>S_`2Jzyhfd-#jFBf%dBBAXrdd8PGE9rz zfQ1pw`vh@fsKN{L;=b*FGgQWiMkd?Y`UPrL z_qosV1Nfj+~tk*X09kUCyiWa+CZd z2X@4u{vJf357gik$PCJAlW#?Ss>fNgNIVsMf)S-J{daNsn}oddHaqam65) z3HYr+F6}T7Q0dRBFE^bnIv0_oAackYo{k3GV*!)~IHq1d@o_L@+#L!W-EcrWALee z%WxmxPfV?W>}Ffip)L~^n#nL5#OZ@>Mi%R)LQ|8VEfe5n3k(c(IGpt_S?<$V+SW)p z7>D(3cmA*_HpYp2zrxA^)FU?6*`jNBH^CnS1`eEoX z8pzuH@p~?|WFxL7IK~N~}+#h~7aEQMiCuTy#M0lBetsj<)+o zMnaw&Fw7vtB#RFNAUh-WkOnT8XT+j$1EB{#$E_*(^F_!_nfm!;`vL;7fKvQ=eKBUT z@jVYY0nb5cVfP~}%dm%ZLr2UK)Qt_O17i;|0*j4^-X!P(tfEB^if1N@a3TV^xnXOKFyha&-NvoNh?pHIK3HepIj3?v@M3<|*T zTniI1N(5eHg{rI^kVDe zMRdK;DZaR;VvbXM>Ul6NXzE}fF)0Agx#FtjFpr6xZ9Qe6s;+xc)cghvB*`BL)>HW% zm$LIh*Tp*QeG<7ChoR@F7t-u8zU1)~67j+D-d^Vf zn;QNV#>(D*EfHSf60{Bptm$cCQG#Qj0b_a%6+0m5+LoTh)Ax?*aUm>x%GqJuGYVvy zDm2$~6D^>PJlba-lzY)8>SpEWpc|+t4E=x))c!P7B?jC@0U1Jc#ilMzvC))-w(^vg z8lO9pbW;x$CX|B&yA@+TDCV@HYN_cr`Vpk{I}d3=s}Ze1&mo5E1)roE7NYlj71QFIH$$(?-!g$I=Q z;A*VY;&I=mmduO}O&1v5g$86@lYWkKb4Z#5iaz{9r1PLt0ZYEBF&UV zcSZpx^$Q4bqup9ug0zA^=4YvoTXX$Sk$5rCzuE$lY^e#920)b@zI~Q3RvFiVreHFd zcjb!I=4J>Dc~K|H;Y(|PFU-u=D2&BKK@esIfvN{!i+xp=YoXh5cm!OJgH99~dQ(zt zD)MnzIV7LwResj9G*>8_?_YZ)#&~ZrkvqGA_&~>=bMy856+Ev1id#2G+nglUzQ>Qh z3M#0e rf(k0Apn?i2sGx!hDyX1>3M#0ef(k0Apn?i2_)Pd8^In(Y08jt`A(?v6 literal 2785 zcmV<73LfAJ9(#1MOMsR@+Dt<}ZGVj@F4J#$d}akmWW*zyY7-k_D4Fb67^m zQd{mp7e{Jw+1WhHzQw-4yx3NCOF}jRLJmXD*;SpHSn5k%zb;iZEiW(5v==+e?RICTwYbz?>KI}?r5VFmUh1@r<&N=ore$=N-x@Py@wpW# zqa@~5M97S9*)EGNS#Zy~vAeirynFZVC3Jd08kfZXsJpqn-(B#XXOe*dURvth8~^3S zC5(S((JJp?ylt+wS0vjBZ;!p#8^FkY>cr3UepnXgOj&d?Z z7i#Zs;DH6Mv`&~a!Fv?OTuxI^gSqV1BHIdrkmu6Lm_~6Zrh{P^`4(s3sc?Af6=4&; z^**8>!6RVD3C?V~s2G^J6^0iKeY6{10nbS45>Y?oxk^{e^Uzb)z!Og6k!4>@@y+Cx zSTO``1Bclb=m`M#JfY~q-T0TC|B|tV@o45q8%v9e?aBP#Haf;)b^c$1)_#P@ z)@seUxf+=x2bND)$VVA}(i10O3*(QIp8)y*q7~9wFz|gd;iE8GA^mW`AW!W6@t;5b z?UA(+=i_*#*>o8nC4&V!^qX525Bs~#4cOJJ)f_rx0o9a`N4-y*TfdmS{mq@OxwW~q z+cmelA2v_+`ewhk-&Gpq9blrRuaahy7-ZYJsnsI-IbjhsL&#g2$^zR<9NLVjokWb^ zAWT(#wN@J@fh~?^36{arM8l{tcgsi}j39XeEP5J{@YhGmE1zJmf= z)iSw~v5I#8OaXREc@*}BhsnolSWjcr9tAh&dKohXV zgX8W|pY#s;hgkq|MkD75#H~Tj?J(d_iqFe8Hyteo7Z(Xd#3OZB`ZQ!74dC02&z3hx ze0&&D=8iZ%T``A`@Bzanej%>-8$;bJHbG5{Jmh{ayfSSmO}@DD#i7AXHX)vIoaku8 zr_DVG1<}ZB=ppcb#NcE9maTnwKhc#2ikoeTfVz~M=q62X5N80kX&Kgaxl9g%wUk4Y zO>i(2%5WH;GCiW2D^Ve&1{Qbu-YoS<_UMCSdDP^ZFD0inO)fYo6O7CmBWgJ`(v&SYP|$PD z^P4f0wPLT5Cc$h;_j(N3Cte{6Bx2V`ENIF$c!}(jU&!tXTZtisB0M04|3I|2ORd&i zy8}iqz?Pl;{xm~TF3+RnDD+l{Z(YxWrt8T5c5|BBs67hvv|_5}AI)C^V%>6p%p}dejO;asBXzC^ki>ECF=&lsBW2?wE|0nWnK8Syu^$0E^a1rS)m0?!;nqJSKIkFd#!f z>fz&2D3rEc-%Jn%WvBx6@xY&gSCCCUfg# z?(`oD)LPo%D^Wic^YQ^{fPcUZ_rYY^6v=)kM7u_P@d=;VEuUHx`^+WcR1KGZ+1J zCp<_z?_c5IH)?bE3_b2U>^0F}`0<0S=(a)noM$t!lFOP0t%MSF$XuLHkp8;m`*vWN|p!0!-g&cRc4iC1WrY$&IDiN1@ zjZC<$Aw8Dj>}g2*np5f};7QYRd=}iE(BIQ)S$s0pH5NebAXqA|Db*dQk2~>u8&qF9+MeM6RiOY$*4qP!%iSTNIEHpexo@;fl4UV6>5^wAA^` zndX~DpfDf<#OXDkh(R%@6-`TBzcz>1Xa3z~&!1-b@4S}nvRwXlc+D7bybGaW=E ziz30?V;EDXqnmOXbuy>O!+Xpv&SDOb$ee&HvQ0tai;FHbz3AFHJUQrVb2?z%Z;<1Y zeQmFMu+!hgZry^65yKbf-c!Avp6SAc%KD?nJkMQsV;!UFHmYudI(e`UpzweaA3}|l zT09xs)RURhLl6H{;z9$ms)#tpxjO_;0!1JGt$+TUNdIT6YVFDI1@sc2IBY?(hAV-ij)!sG^E0s;HuhDypcWiYlt8qKYc2sG^E0 ns;HuhDypcWiYlt8qKYc2sG^E0s;Huh{uk)Kq)zra08jt`8X{}O From 46fcc40e92172ca8cba340c5c6cddfdbf9168b2a Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 13 Jun 2012 20:46:11 -0700 Subject: [PATCH 3/6] "No Timeline" addon --- notimeline.tgz | Bin 0 -> 1083 bytes notimeline/notimeline.css | 14 ++++++++ notimeline/notimeline.php | 66 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 notimeline.tgz create mode 100644 notimeline/notimeline.css create mode 100644 notimeline/notimeline.php diff --git a/notimeline.tgz b/notimeline.tgz new file mode 100644 index 0000000000000000000000000000000000000000..74babcc4f211f97917b1e1b98122a1426251b93c GIT binary patch literal 1083 zcmV-B1jPFviwFR1UfE9o1MOFBZ`(Ey_E-B?+_a#wgT%5OzXVR~qCki3Lz50jurF;P z&=O@4kw}50oCItB`;L_6m)De=;5qM&rqF(&+V%`lF);j9x6G9pp+A3D8JMuw-(@_#^YO zYGu<#G(ux_g9a&Ud*sbN-@apK|}=bZax)d*ooxJQUPf)cyq$5s<{s6_r?z zuU`R8H|;(D&yN?E2RjiDRlZ0WhU#=$O_WgQl4H~+y7#j{@Q5wjyRHsgb&IT1*EsR7 zvD`i>Ti!1l-aTMkuSinG`m__v{n9a|V>}XV&~5izz-2WAYdVl;A<;DKx*h1kZy!J4 zio5Sup#28fzu8k|i$5S==jGvc3qugO1f_2is$zo*W4qAbF=1?8|yTQDGA*#(4B#MiV0qUq{+!$;6!G&sY=2Q<3+NR(Z`=+_kT8WgxAD3qz)-ux@+_`pY?~R`VL|1CN$7O?tX`iRO=iIzqRm;XSu!~eiNr^;q5!ePvh=X z2YV^W(bP9;U}JwnOw-!6m>$+fZz_y57z-v3_%coe!Luo8Hf6ZDC + * + * + */ + + +function notimeline_install() { + + register_hook('plugin_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings'); + register_hook('plugin_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post'); + +} + + +function notimeline_uninstall() { + unregister_hook('plugin_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings'); + unregister_hook('plugin_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post'); + +} + + +function notimeline_settings_post($a,$post) { + if(! local_user() || (! x($_POST,'notimeline-submit'))) + return; + + set_pconfig(local_user(),'system','no_wall_archive_widget',intval($_POST['notimeline'])); + info( t('No Timeline settings updated.') . EOL); +} + +function notimeline_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the page so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $notimeline = get_pconfig(local_user(),'system','no_wall_archive_widget'); + if($notimeline === false) + $notimeline = false; + + $notimeline_checked = (($notimeline) ? ' checked="checked" ' : ''); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('No Timeline Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} From 24da42a22a0b0fd8110fb74290195a471a63df94 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 13 Jun 2012 21:41:49 -0700 Subject: [PATCH 4/6] html issues --- libertree.tgz | Bin 2073 -> 2075 bytes libertree/libertree.php | 2 +- posterous.tgz | Bin 2474 -> 2471 bytes posterous/posterous.php | 2 +- tumblr.tgz | Bin 2158 -> 2158 bytes tumblr/tumblr.php | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libertree.tgz b/libertree.tgz index 4aae298edf3ca71b0cabde18c4cb0154056ba35c..a817c140b009c86ff14ecbc535ebbe116cd79456 100644 GIT binary patch literal 2075 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 DU{w)S diff --git a/libertree/libertree.php b/libertree/libertree.php index 0de89b9d..4f0c814d 100755 --- a/libertree/libertree.php +++ b/libertree/libertree.php @@ -32,7 +32,7 @@ function libertree_jot_nets(&$a,&$b) { if(intval($ltree_post) == 1) { $ltree_defpost = get_pconfig(local_user(),'libertree','post_by_default'); $selected = ((intval($ltree_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' + $b .= '
' . t('Post to libertree') . '
'; } } diff --git a/posterous.tgz b/posterous.tgz index 39f8e69fb3f57f25402b4bd727240fec6290f0ee..a58e70ea71d8d42e3b60c07a57049d0f0147c151 100644 GIT binary patch delta 2456 zcmV;J31{}I6Q>h@ABzY8a%p+ih5bLYj4v%;56t%;=G5$A%}7pM4Yf7j;yUmgATxp zUTgpAF4yn|BFTQzu)N|l;yhgz`! z{?F(C^$E;&qhURJ)^Z^A3Ry6w9eqYO;!x`A&kSTaCrW*TyTB3iGiboc?MV+yZ+z-F1Eb#z3; zcNa+iPrz-T@VkKBL^&VUk)DW%7HDvER)86tQ-2a|=0d{zy-H+Yg^Uf9C|=Oi_*Rt^ zv0qM$*k7F(e=jNKG*qO;rYSKeyCNz6PD0Gdf1H%~4mCd{DZVu-ONI8j`E&=jpYDuw zZqRXm^9ho3X~z*^%~q?SR~aKbWgzm0)8GlwAW^$H+`o3)n-vY0hm|W=rtBw!o-kQ`!1$Q6A`g zN%9~P;a@8eEZDjx5r6PVG$llu!>0s=ctTJVpgV#b?4ucmEmBe@T0uc@gM8|L z5V@tvh~nL2!FFX%`OKRV?3&jq#vb)=K)2U7GDQYT;>yWAx11<4(3FvJUxg7wiIf@P zh{R0PKM0GpcrgLHU^5LgBQC{#1B#{yx)?ORvai08`TU!35KKO*a#l@aCl9klH-BA^t}4Qf?W*{JM(* zh~T^7#}9hRk$c!wU~Qo>?6g_pMRRpZufg3B*l=U$N}(yI&t={x^(A+1zDzfNGF4>+ z;j1|%)XmklU6mWVcMOLiVRO1XJR)8-i$od1nLIMBqT0rRq%I%v&%Jm;eQl@|RaUKP zb5V6xqgT{yBUhVc!O@FC)S0p-S&s7);CKW>EYdo?B8EEU*NS4wR2@f+Hs03I{d?bgQ(Z}T0u;is)MM}6+z6(%9?RZWhQaV-pjGfFmtg? zE8^qCGAVLvg;MiWM>4@y1X5to`?IyS}iGDkKS%xnvMoN$gFl7q@x;mo+I!;VfPcjUG^cdPZ6^u9^6i z4ML8zwC&{2W1DY1aH4?T<(9exVHCxq8Rcjca}NE&_Z%Y>M;d!n?0Xc}C@;@swB%|! zUag~$TQDJ)a#V$0fDOfM>e1NKDeMld=!Z%a29OluSs;;1$73QpR8jkh?@F{v@tx6?DHy>#@IUQ;>IJIY`=dYqM1`oJ zCw(ONV->(Mzd(hI-a=Ch?K?2b0W1tDX)9eOA?S~iq+X{(&h?e5aZr6}Cim%6Bv$mr z;P)?s!lF*-#iBkz>2gZwuIA~kThPdMTH4QyQp|P)-M=F|26bzDQE0VgNJ|cNU*)c5 z^0@SBrVv#i0}_va_-ZylLlAOVa5Q;wT$c8BvUOD9GK1B%;)1H`yM-i9OcC;2;t@{V zTt?(mM3Oj+U`6tzuQE(zC~@;<&$;;ofur!J%3Q&h1EA61C4S2EW;t zgQ5NT;%sn#AzhL_-3vRnx3}TINw70*Y6gTOv@?Up1fQCCbq!`n%+>z2unRU6^%um+ z50p(!D$7Ue1)YT+INgLOw^NE&+uI_cVX`p8vncgnFv`ie;*@*j+C=?hQA>qmVn9^D z6O?;}dZUQPU@_5rbfi zBFl0{@)r|Ok?1_n2$B)Nib)r-aHbFkCuW{aeaclX$X7TWKv8J|K^wjKa`EBw`Ot>{ z+WE9wN_;UGe!2KGyg2=I`F3#8M&0G)Z$5weGKJrH?^z!|i6~0~$F3$gb)~>jwIhwz5ST0K*s}X1M3QGmu+xLSH zXO}{)%u=;_c3jM{o+xrp9Kom7Eh7=^pBguVXKF+7fzrc?&r>>yb-W-V$q1)q0*sE*}-zyIlU4i66G?|%+D&wGc@d+PT;2lelN zeg-stss57CMma?Ba=d^lUilVKg)7VgrgSq`z?H6<#LhnU0?dz)N5&k=${lt2^a$;D zI^jLM&M=!$e;1145$ehzs5&`$`kJWHp-NY(oTxUx+VFXkSJ{}{A^lOJ>?M@{bdJ;k WP?K;8EDi9#2Y&(k0cm#tPyhhFZMii7 delta 2459 zcmV;M31s%C6RHz`ABzY8z&p@S00ZqBYj4{)GGF6g!D@rbE}Y0t;}zbnTR*ywg&9_)AadIx*GjZSxeud{csfqGA8QU-CvF+*r$ zhMfszx71%i7fyNy-B+(({S2FaB82Jur%yZKH2k4DtKBSHEv!Xio5-RX$;%oD zc=ZD|%M`7mBO<=LK>B|IZu^Aa1?(ou`LK%gL`1YegQK$o%;22*lW08`65j7sA_FUA ztf55lf~Ll|s-%eha$3ax^2GRiNinCPA}!WUi83l8$&|Qcys{p9^dR_f?4>HDz=(JdW8#9aX3>H~ zi#FmdGLbVS&JA(bFH{pwlHugGfYwr97};3v*o*#0*9J!6VU>5NQsd5)|SIK~aG22y(EGW*ByV zNJ*J!1qHzk@~K1QjwS<&w~qwdl{w`zZ%VLhUaJs$)V~4UUf;+R87K)WC->ZPqR2o~ zM#g;=MGz%2W`rXWGg1B^EY{++1nh#%G|-H=6!#6NnIh<7(D=%}`bOsSZ^B9N(1{r% zJ_p}12j9lhJ(Z#87BecQG|HS)bL_5vykr!2l7=#OwWy_;s#qbr?RAuw)=?&`U`tN= za(gz_dJ`JO5_rrUl(#2ej@PM3#A#H(hJC_^}tN2Wzo+c=Qa=3<#v#HWd6Qsh<&rRJ%QWP+^-q`;t$Co9KMOMEmPQ=+*D>OJ6T0+?3y zl|qAQ>5x%WkO)2w#Do1eL5{JYUWaUrf3&m#1vbuuO3A@c1omFT^3D#7Q?v0BS zqy%d!(1-9v@-==<@!6Stk%Ejus%UI}let)tirEEPF%K;Z4W~4c%`>dc5gc+K&TA1YB8KvIZjfkZAHkBRJ1MeQfPE72-{#kWRRreFl~!2h(X z7pQXYkN*4<6{3Qk^^xF@RRGKU0u?fP3r#V!@4zevurQ>gt#p@!pg&5IdX)}2*H@~> zLG`7X+~?1cSkV`Q-@gnBi#nkfi~21}ms3J_HBWclf=0H}(tc)?Vzwjb{vF{ls9V{K zLaQx9T5_oSI(IdHlgFi3Gli%E8IX9ySF-^cf{@FCqsfcovb498t)mK;8LVy<7gSZ> zEhKSbije0Lk8tAVG9sTMlEh&IE0Sk@m0==7iJLcj&dp~C9ECq6NAn?mggc*_I;~|^ z&vPufyGR$r(xSTb+G44w@4m5EDrx?*Vg$_}NHLNxSh*X2vS4OGo?E+?V2Z4QUP%`j zORqeZ8dSXPkjtzXby!`c;H4wN^kjQxdE=~p)(k1EBy|8n0a}y4n1Uu8FWi&FmuqnwN@PPs>} zP1HXUwNyAJ21EsXi*m0}5A~^d%z_zu&nVOY>R?!ZbnQ%OM~X?(Fn*@NPK#_<3;lW!Of& z$H_l`431BP)G_uVvV?RvJU{+2{Gdj}ll|-Q<;QnRe7zi8od5fzU2#owIDg~txGZ_B zMx4bfTne=^OV#SxaxuqxqR2gQ1fN>Bj6|@1YTOK-sSU*kN)IPKPw6Dq z@q&mXLofzYIDwtH^wsfDwOC57;FX_J{^_58H`K5M7JT3Np*kM_{ZFTJu)kmW{TC4I z*T4Vy8PNEp`cpz1d!kB*DqX2^qT2jw!{<$2W@B=R^hb%Zmr(u# Z(>YR;ZV4<7P{aQo`~@1joo4`0003MLymtTq diff --git a/posterous/posterous.php b/posterous/posterous.php index eda2a93a..7ff95948 100755 --- a/posterous/posterous.php +++ b/posterous/posterous.php @@ -33,7 +33,7 @@ function posterous_jot_nets(&$a,&$b) { if(intval($pstr_post) == 1) { $pstr_defpost = get_pconfig(local_user(),'posterous','post_by_default'); $selected = ((intval($pstr_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' + $b .= '
' . t('Post to Posterous') . '
'; } } diff --git a/tumblr.tgz b/tumblr.tgz index b97ba171a8ba9fa089655ced91d6d51fbfb6da80..d5a34c218ee8e92aad3e2d0cb943c560fb888f4c 100755 GIT binary patch literal 2158 zcmV-!2$A<6iwFR6YuQf#1ML}EbKAJtuhOqTxSmkT$fBf3c1E$B+3C8wJJWRC#O;gi z;eaG0q2^T(wCvfvb?3o*cvOWH^BR;b?U7_5e+uRV%&njAMq-L4^GUWp^}w1TS4oj)(8w zz55p8E$KpR6kB`Td_zxid3d|FYEx`XGER&#Ne;}TJ z%=t25Q}mJE6786SjP#ca|(}f z!lIJ@4y-d02ahoQcf#G6@KwTYvx>$$Fx8aVBaD3$Gmy?XjThNo3Tu*Gc}wpJ2D|fC zBp{&uWi7~g+zfLbKON|=3i2A`4Po9h#A_@!1o@4P}XNN%1H*6DWJrY;!aIg24@#KR#6Hc|qbp#|Y?3Odi}qEn^qX_f4r zZFJExXw2_$*eSVm(QJl>MvGEHK<4`ialHpYg!8bFC%I)L1doycICbjcwFslZ2V^6E zN&H(9%q;!Gg1srSYYaWqpCS7+pm)d*ahA<2-9eAQw@2Vx>+F=qX%0R5AtjoXm)u(@ zh9*C=bRbBKy^vTo>Q{8^gFH|$2ehGuoHJw>a>eQ+-m&ZL-|h;cQwP*Jvz3-#HU{2g zhYoxuT)tQ29XMBl03|s?8Gi^#wj@LpcO$rj!}f+;E|YGDhNn!QA~Xz z4;bl4d~_zruIwd`!X?3heWP3(()bo+hcl}bWFhTNPVTwmXPJeTjLc`sfxt?niH9?i zGtt1nC(fpd0YX7wTPPv{#WM@~op7|+w6588Y?apjEX)Jj{G2fobFdn7uxc(1Qwa&d zVpPO2E6q}Y4fZP!MXIw-rmErdWMV2(NM?6$$&H#RIn@-Yuzp&ZmZ~iwPNe%bT~MJ+ z(ZURwV5K>wP-4);w_3GurvmH!ngkk{zHp>GeY9dYO$l3*5@L^p8}Q}6C2S}l zMdLAgolDf(lz9>63mO~cB$K8@)ypap%Z9eC!C93?CTrB>lqk)n4B5V_zV<_c!T6%D zZS$B(n%#X?P;Bs;fmw}chRNQJDp*xoSK|~YQM9+DtLh~r+ts&qnW>K5T~<(RaG8NM zT~^lMK3*%hX|I*fHP4mXYo04w#xr=%d(aJYch{998+=y)3+L6(cjP^wqDAlH#**>& zIi!NuDA?*j@byItZ5QUFI~ov#QI>lV<;cr9hsk7@UaKeyXQTRTrJz>TZnIT2ve?|r zy_P}{fzNVRxm)CqwzM#7+ju31+UjuKZozB1yA z=o<4%G@Md5gTdPuhJv8|l&=lC(v1x}hVLtvp(?Dn4AnddXc=cAiB$wZLXz@KMyR+Z zR`+Fp>*@Zv38uAGclJ%)B@SvStCbL(0=PWF-LVq?YC=d9pAoE3Ud>cKiF_nMRpB)Q zU%`ck!JmeSg=e>rR*`(Yjs$MgIoAo8t_tN>65 zFI>zRs007vhmP!-VmA{S+Vbfhex{5p+z4}j>53P4wsZZ%^;M_;=0o@TM*Vl?*gfF~ zpanl1N?ellE! z2~&{2G74o%eXPO4K&=J*QhQz!Jjgv2YnhsIPj+h^bs167wZyxOGIx5~8!8E)f?UBu zxLv>g@Bv@$sXP&JEU{*2G#Er|?n2wShm$@haO@y?phIW;v%lGV%eD4i z>KSBg|Nb`^j3-0!{ckuLOiqR;WBL7Wc=Gc7?|ZEF4;x-X?-zj4VF z-FY4+m`_ni<{av9MFYN^LK7II_wX2DwxID59O_dvlv_|=hMBo4uB)@I$OaYGg>RLn kFNME1&?Xw~&koefdRZ^)WxcGI^$pj50Z(HXpa3WU0694z9smFU literal 2158 zcmV-!2$A<6iwFR_uU=081ML}WbK1t%U*T7rsGbNi7y&kR#xc%xZhhO%+_Y}u_KWRd zR?-4{EhOF5%8zOD-|yL%Bm~Bg8>b(xcM^m4yq|kkhksyOgB=(?t5#;^nIIfsXHJ4COu#>qIHrL}xCH+|vw*Wyup~a#V38PX3I2ofOo95{o_zj3 z7qf&P!v}Ul;e+)roXmtsk3FyOcsEGqUdodRi>Nn8fn$1Zb2T~U3>>RTgV--cM zHvHKHT%1l>CMX}zlH{i4rl`<3N&*tO9VnMe!Z3-wr9?+0*D$V7w%@H{9VdcK7(T`c zpO^eMV4cx8e1z%06ETjdxJ&p=R?&C^riLtW90rvv>(L0)3KBFtNcc!}kTAb&xCm)L&Q5O2W!e+lyE=5i@p16!|m zN$2&hZ)43StyiFeG|n^1TkUq!)&-{`=P~AteApGpMoEAXOsN>BsPlwPTUFYQQOWJN zRu?0K#p0Gkt&&R{MkDB3ElLR?oopv$>_12%l1GI+#Vw-|dX$F9skJEHh_D*G2N!}F z4Q^;Sa?BS8_m06`VCX}41nx=5ZXt+BmW>?KLHE$Nd+1x|^n}G}jy?JzrG}NC+&d6s zlOH)I5Hu!!L>(8p6&<_aqJBAI^&Rj|!7aqf)dkUV7rVdPmNX|GYIEvpB|oo>yG;%g z_e^?xtH67Btb`#XIfqOd>Sn=~Sj#K2PSQCdFJHZ!Ni2G9{-4MJlYHR;Hm#ONx`(zD^e?lqoux zC6lZSrxYs;d-z(bR&cUpN~vo8W(jKb)5V8>+0>=?*nlxdVS-0b8OCg>%55(1`6&Fx zvE^nlXZtFPutKX-+^3@B>pGQK@0KL6(6)s=?diQcPSTX}B`Fc{X|w`g?K{$j0#fuH ztJj%AT^KUYqkPI@tDIs|m#AA=MPk{{*7Y|B%0{MY)aH~d&AJTLzN)?sB1+KsqOYy< zm`$3^eO6Gc@S24=wP;4k){ZJzRa#f=5GYZMx0I_EOGve=uj?{f9h&hdw|KsT{{Tgc-o}k34akSDB64BMzGt~7>#VhNugusSHD90ogO;$cvv!h{TgJVe?0r`_p>tB4YJJj_fVvpLAtCVUAJ+P?6s|V zB^pWDIK#m^kcOh5?UY{_bd?)xcJ$v>E<;sVaT!|hB%)=4M>N(EKnY1IG8LiXmRQ|a z{jFpA=PH=dR$tjyb(c6?NLizV zJRJYkOe{RRhP0Z6HiK0HFH<~mVJLEcO{018uCRtl^_pOq;B-Gl2CjKmdUto%wU@_a z?qME!cO0GP+8kX}A5*iYOR*yvn|{yfe{#m@IEe$=a#3T#qwb}mjYb1U6-t6x%Mt*|V0VsR4ZKkC@*34p zkjuff)C*g%{*UZ}B#%YQqN@5UtYGsrLaSRClTLy0uF+^J2VfSFc~;mj30*oTEOKFV zS{sx*3R*<8M6g>LK`?=hMnR=N)YG*A;ZUInrKZ|b-P%N5MO1bz`7Wc(osRK_P6Di;v1B3L zZeD)`h_Ci^p2#?sSR)wp`pWajYKlFw`V#dRC$k`+nR+qVXwWF5b?SrO{^Qgn$D1@B zhXGMtYk~pFIW3tzN~m2J0p(o&ULglCY+tb$W81mMlRl?-?0`DZu`~YNKiPcMwe(`@ z8Dy;g{jb+M8207wfBivkc+@{SP{056k6wQN`xdMD-HJCj9k9EL? z_B@FaB90-V6M={$ac&Z;mUu|K5S!VXGxU9~yA}dr_7QR-R kxfT9dLmL{jzdKMb>t(&Hm-Vt<)>mBr1^gC@h5#r40NgP&A^-pY diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index 31021842..723bdef0 100755 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -32,7 +32,7 @@ function tumblr_jot_nets(&$a,&$b) { if(intval($tmbl_post) == 1) { $tmbl_defpost = get_pconfig(local_user(),'tumblr','post_by_default'); $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : ''); - $b .= '
' + $b .= '
' . t('Post to Tumblr') . '
'; } } From 174c67c7fc7fa9dab933ff1327fc98c0385ce46a Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 13 Jun 2012 22:42:22 -0700 Subject: [PATCH 5/6] refresh FB profile photos occasionally --- facebook.tgz | Bin 18964 -> 19038 bytes facebook/facebook.php | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/facebook.tgz b/facebook.tgz index edddbb64a6faaf36f21af834556734eea2c82bcf..b8335178564f78d77624187d981123a41a680abe 100644 GIT binary patch delta 18486 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 delta 18517 zcmV(yKHh2mr9>^$vq+enW2Ydu9rr-V{QvOW?g87Feq281a1Pc?YkzVPxwO z+xd<(C7)RoTOnhQCYC*N!)w=HGHyEBdD(vb`t=_{(;xU5s`WqX?Z5xf+nzWNKL@S< ztEKDTezEf$*Z;*%yWQz@aQ$Dj+B=U}>)}aR{QN&(|05sx_dM4hv3ShcVd!$-ac!%4 zC>4X*f$wuW4u8T@={=7v*W(Uz0Vdi*3&uq(Q1I~uQ z%y*a-mk|BMFEn;HoyUk+GSh*Y>9RVG<7u?pY>wP`JR5A=!K67%NK3!X-7B{VI2(Yo zk>GsN>pXegdh+9sQA6QwBwWaQt4OM33$XTpnr}}2Hc6*-1R)>2QiX84Wbws z9imu5&VVmJU;+L>iNxHGx7o4lUq!5hDBKBPl_&rlhFtRyF@R(&5JEVyViwKZ*cx~! zlu(FUvA+NDh$ty}0jva09x;%xZ(E3?0eIsv;DL3zLX6igpA&-N4Cce(+pJX5mn^pI zILi@Dtbbsqp?eLe*>oJlK~!f}gy?RW1+3zDIk;ra;IbdPNCyJn2D6YwuK2+t3e7ntl<6=_FaY7zNLL*9`4j_bCJOlJ0_qY||3LN=EP=zV|WE1O(gMdO*A`lf! z#6WR)2y>wRAj)XUktt_Jv+F8Ua`@1ic`*pc=6}8oG>lyv$clE^#fPIlEEHUh_{MrQ z@Pa{eVu1>T&Eunk-pP5dR{FC|^}Bo$|F6Dm+fnqubFA_ItN)uT zomS`H{{Ij8l>S34e1rRF^^JLGO{d`H{!!YRSRr_FaIVu`)@e;|-jwc28i3t^s-wmK zEwcaT|F-`>{*FDV<*;x?-s;kc<)!(iXq(FW$o?f_<|41*DR|hYLpm*+WL8fbJWDQo-DJh)j{ohY3yrQ(=6H3I}&V zy zR%{W7)VDD(X@?xeS{K&Aw@2Fo>2zvZwhh#pad5?bX$DPp?*5&#U~YAaO517pJ2OvC z`$vaI2m5`zaCFk|o&CCh48Wb8A3H6Wg8?beL29?rBA)lX!~IXkee>h#@v#p3Qo@bg zYwqI$!{W?hUV!1l(a8ezP7%px{ZB;hhy9~tbN>(qBkZSs?;If7uMrRnV-?eng9JXasl_l>Er_H2h++0%-=yT7w32g z&0N6xP`bH*_#w2jv<1!;f3Qh#4O`nPO$2J3hg6pQntbDWqM*dlnVEcxrBw zz?oq@rtB~ZL_sW>fXzaW;oia{6-Rj(s8L*q!NH;l3!G@bI5TeSM?+>c_8`B$zGz=! zG-)y4wXb|g0O}$vqH7>ZZ(!M1Y#0WUG>Qu_@=9pfmIy26S?@nT_0IbjWr#k!*qw0G z9+U|^aK9Wc@_z;pjafc`uuoG6k05Y`05pmB|1z~gYr^)YQ&zDk1S;A!-MIR+VxgBR zZ9$}5y{RT7)met78hiSbt+-8|Zp#ZsBOX@EnJKjVD5W{!2fuKqTxZ9pKmQEz!Ta8m z%myI@lgZ{|lko-=f2-&-u`V0&*c5STHPKeoTsun>S%e@yi{WusU-AW3E+s2Uj7Cn3 zzlE4pq{*h@>Q~|w@|p(YH(2q7T*F}7EIau&15!tj574cZWDxnVUqW>6)Au_ik>Ulh z$GC|8h$pMDjD>wanhU`nD45+Mf>Ml^sb=i=_a$lE9tSHxf5afi1p`jVzY`i&9AZKS zG>KGvN#itivKVaU@hp*XOBC33eVC0u5@J;Z9fx}Z=Z&K@ne9({0unME=n0@lvq6j5bkKG9T432E<1%of3 zIyLsse=_Yif9h-*vi-1(H}vr^Yj~^Hd&zPi1T)W}Boy3HwCJ-auQLj4UsFE0a20Df zB-J*N8kB<-hSn|k8V>G*b@$|NV74r(3z2?RaSis)Eqlx~9x!392yO&3mEi#AfGNb~ z#@@_zh^iD?-T6Ma=?pbI(6z=arif0k%P3GG3FY|PfpK1 zf9xOY^Oka7?lKBB0B)|{WK>vs)vwoLfnbdygGf>R_*4&14g zG>22c!~>zzgyao@fC@qcRHggmELV7Mf1EdQ-71q=bju==60Vuh!iAcc?Xj}4kdlMc zOY6jzgnv#y3!b`ysga3BEbmi*`E#$2fi+w;(01s;h4_65He`@{uJAB~g-B6rpmYno zLu7~U6te&w&*IGlX-Np5M$}46^`eLOW#}r#zLAhAJ0KKfUZhvR=X6RtRdE(!f6#5Q z>)_Cc+aSXgNk=k9r21Qxn~mKsWur~q)xNVmu$mZl=&pfFj-Hsv1uFrnY04*j4Z|R7K&MK~0f~0eBIltcEaY8G!JSYB2!`69Sl=M+sB#xMVSevO(4( zSYpJIT%4P{@21cfO=TK@ce%;#fBId}lE>Yy^fxjbRIvlVm?58f7N!naC|D2puW|$U z*;Zx(8c;W$W)KUvSV6+vb@kp4F$5l7 zK>`Q-bhG@doJRw!x5Zr2(PLyt<1<&Y?myi!wG9^wtP+k~C;3iMDAG$Hf3P2t8Rm*0 z`N?suzb#lSjuca`eXsCngV0C|ik5{#E0;ut6_ zf;JstWa7k ziDJs%jlKISR|1%5mnadtF&3b(0T;`fK9+?=_1g_2NCY5eODn<{(&3eo67u5|EsZy6 zJeI!G8wx1Zr9z-?0Z2+H1=~2~91rio{+wGjwyrrAuBCWO-^*HxEk#;MW<3Op%2dF8 zrXeeaXbLpphfWcIe z2NC=d7UPntZRyo`Jev#_u1;J##IboR&Xh9C9}y#}R9W{0!Z?X!%e|@$f$@$o0zoE*^ZBV^sXu*$xT~kF@p%ste-WBmEo#=kt@?Z>34H|| z$?z-SP|X`ysr(992!_8F)VhZBKFmOG3@mLZF(GL&YvId_^hqNU`U8txTQ{V=en@Be z5M);zD2dK1$lL#@p~{J9s+<{9(>F5pO@(&pRawc&xDx78O14!>Uu?>vzn*JFbb}6*@!K@;V944vC;cW!$iE1V z>=G}CgMR!Pa++-#x&gM~Y=U+kiY7UP8+d_zCFsYEA@DsxAvXH?qtC3i7TvG=$DexV zAd)BGZOD?o>HmmD{nrxzvRYpK*Tr9JwW@FfDjFghe>L2QQ-YL-C{PS5^os=l>a zp)MSpp7i$*`sUHOd3bizJ9%F`ti9~A9<1Y^yZgmNS`Z|nqP&MMuZez&L#BL8q#w6v z0Y}!?e`SJQ6YG0jJq)0--$<|pStf?r4j-B$7)Ze?)r9BNejyHTfC&<5#f6crHw^y16_EJ- zhaWQKoPmXPG*lTe{UOk;@7 ze|Dq0XZ+mjW2ga9lNGzy9E*K$S)sb9e7TfGwuEw&1GUqws|x~NIbEjsh;0tJMKOp_ zxEP`_2O<&GH8e_BZ| zWr=#wQv$gb_d6`eAENEDyjc*2XtC*G*)hXuPpMORj0Ge~_SDm)Hub zG9x#Zv<_6y_F4gOX&t<*N}1TmVALTPx2D{Ttx;434VolGW`VN^K){RIlo(9k@5G&nBX?{uLf5mkwk;q7T-9brep*0oTZ#gl$Kg-( zKr0?m&B4>c3Iubo(!ngIfAf(qvnUpaB(g~(7!Fwjk^y`ug^pDKK^n98j(BcX3InzR zB|dFOrG_KzR!W{~^vg#eX#le3ut^m@Rjoy~KxONJX;aif=?L#7y%d>J%GTDh0>yzK zDJ@YXoyGu5yH^-$y|0)J3h}}1FgbZid&p>!Vfq5e=`|EhYRNMcf7)Ww6Vvl#JsYx| z0h#4&INW~V4i3@4v4sgkmBm%#Ty0UJ>E78kux+S!O1*V=u-mAhU~5ZmeuoRY8$PkU zbX#J75eQ_Wykw)2?e+RoGN5+)P9;Q#m3LTCr2HcfCvFtcQ_I|UbEHeMnPG^6Ql`^y zkF_ZS)gCm$9ved}f3_i}a=4e+txm{dTaSpQltdHx$d`~f8HsL4iE7~#q~umQLruEk z2?f;ikDH&e_8bMJuh`|cDi{KiGzGYP^pX%zbJ82}Xp_F(t`VE;sacUdEJd)`K~Aw` zCK{Ix>icv{XF8>qcS#p^Naw|eE0}FfMHz3}#+al!cwxaxe==`PxZ=0yZOCl=(Q11^ zmBg_10wgx^#@qtu$F@NQ-crj&$h~ekif=t0jX96YEWVxcZaL;Ranp{XG8>0{*ezp| z;x;SpOkDPuB7ht8%mswij%#(xAg3~G?%~Dq-@?E7WvP!u&Gsl2O;*1w@n<8 zibOMklV!R-vrU~$ zb%n0)<+MbH$c3Q}d2oRMVPpre6w?{KV?wse*YQYDeTTpR){x7$HetH%>aFm^%|;&?0Xs zCkgfcR*6(z|VvV(C}c#FqNKELLnc*jX1->DTv5Z^gCSU$Y9eYs9+RtbLL z1zqJV5_)HsMPWq>RhF4~w~XLrCP8xPJGG+_+A^)oYe!zIvNc$fX;DF{@ZoSs(MU1W(@V=1oZe1MEAMP?aKJYA4x773v)ZNdeboNmjd zf51_~W77TYj0r1-PP6pY3mIbq4Z24FGjpXQ5_y*D&&jTHBg1dzD*cQ zJ+j7KUWSPlOx1>#D?M%IA2X$>0_T`}Q11aeV_|V?bKT1=)hdZ))rX9V77i>cyLP%h zW($g&`qgFfQ^mmt7M(=9xzyeVbf728e-xX_Y>k~t?`4mJARIjs1CDxZ8nYi0XRQFTsoR0%G zv2N+LXK1Mz-f|X*64Gm;n`%#{j#|ryvU_hmYrs7UtmMcBj%?87GKTrt8%ZE|e-KP2 z7Eq4G9V{BaO;5h{10Mrp?#K^9;ff9Rw)wy9UH?}bN0Pr^#a}U=Q!FVF0vzwYEEv3w zjd#6go1DS9^TV80NCQkPB&|j=kd6QM>-yGR-P0op+k1O=k9jXKn(6OdU0q#W^(idR z3Dj`&;*Y|)PmQ=C z)yXej0^I9Ed`rE86X>H2kTUoDV-6pj>*Jk>Q@vU3Lgy(B zjMS|6+VxYu$r<*FYM;dheC>j1DsqE05O{|}a}YC>XgcV-pGUHLsmUphf6mU{hZafF ze!+{u@5FTz+Q+BCk(n>J8^jKM2hK!ZiQghx9?OWBb}wO9<3!(B;!Kph76ng=5SpIn zW)UNj(g^0CjSj%{nF`v1_LQF>BL&^BG=$nI2(z}H7Fv1<0 z6Xx{Bh+#8aFn_)5ojC!bT|MqhbB2f3H;UTsf$-$dv`)`sT-z9I%dvmf(dCmj9dRbX+Wp(eC z4V2~Rc3gR4AT7HGFj4QF#woM7DQ4LvDgDrFp?3=3kq54}_Bdjxpn z*C_A?>g#LPSq4-wV0|L;G2Cz%;xS`^gNRFCyXJ>Cpz*o!ocY~|mP(^lN6R*>CQ|oz z$q&DOxVgC_ryuwie@zQw`8RE~<*$!+?XsuY4KF`jw>0iUam${2Fb1DuwAdkt>9HE#`3}Zl%#hi$zHwa)nPR{acI3#vDe~l>gf^7%5R*R26n*1Vz zWmu>+R)jC_=vovZf;xFPN8Oa+oAI`&({<%A0nTzHH_j3*NTe1gwVPAK9=Ws*Qq$&)f@^T2T5#)*<816yU#|;Dr?q-)} zaNvgg{{7_Mf70GVeUQNr8i+@5gXK45FKMm-PD|Un9V#fXx@m1xXidlFq;*-4+#bQZ zV?u8T+pVR4&hNb+y&oNc8GHksJgE#S!b6rWuNQPp?Ds~D2VIPZA3^$^&&HQM(21Ho zypz1@-2hf}GI2MO=AU`?80!6rf`|bA6{%j3+CiCWe-@renX=xN`<&8lm!2G_^XV`J z^=-O=fHFElXlyXrfF`F{2gEYOJ;Jwde*vm&d2@2=gZ1?Ta^YtGZ)ftVj zRh(the|5B(HT-5f`Qg+^+muok$%;$GBScke3xY9J2?OD z%_fxl5v!lCy1O$%&Y^`RwHGv}Q@93H<=Hdde{Dx)ym(Y_!Qqf3_v>RajiU>2?+kg7 z4+h!DDpbtbuqzODvp{LVF!=(ZFlnnvE zx7}rU;AMCaW}qs;HUa6*kQ)OpnN13AI(yT?MZdyJ5!A$-xV>D z<^+uzv(Ckg`VVGT2*24$o)i?hL5EQAe+rx;*suAb_Fhxwyr94uIT;;w3`YR2uqS#B zuqZPrx_r9}OWU_j;WdILH@4TLi2xB6Q%6MF0uCEZXJlEll0kN%<9F8x|tir7Z zhy~}_dn2ixkKx656g23QW{;%LM7^asso~_>J%wp<1L|H^43m|U#K`fES#mNX=O50Z z#be{zhLy?bv0UD7C#kS;*sRb#e`YuB8xhb@1?a4Ic;l>UK2fCZf~5@sAzRo9&hI)R zFIMaf?+A}I^4OPk%Hz`1u>yS)&YE~ZO|f!b2pf0dFp?$+s1QKpo2_~wZ(ByPPpSiC z#70N%&~-ax$bz>tN~1ZrtENyTjZ$@eq#0HN8th7+J8Ir0XvyKwyuC0-e_2pa+MTpH z8oM8cPOO{&Ocl-}a3Rv0@s$HzdD<{62^}{KH|`BuQQBhtxYr&Tz2I$l&jhV*2K)Zw zq`|i|d|d@qt~Nr|+Iwh<*^{~-vYVo$!|#3MdkGP(kb{?bns1)u7}Ct4e4S_2APxW45CvB=;vj=A5!M^$rH zHE#^R#TNn1Kuc?;6(yTTvb2J48+cv69J(Z)2J8&~WsS9`kjs@8g<@%24e0!UNHL9Fil#c-L$Z>b^p$6rg>B9$0B>dsVm zFZ@84acitGf7W-_&@_SkWhm@vZaTWze%N9!o73&>2C94QWW_Q(Y`JsxqTpxS&^yDalD*eyWjR&Ee2bi z(4dQfJ^oT&SY{q@Do)7}c|0*9fnEnK%Y@jvP#`0@BnBL3)@9SMk`1Rjgt(@qJ;`AC zm}$$dC%w_Y?Ef@X^tJE&3^_e=r^2PD-_2-lhH0Yg$X~d&a&`Ds*M={+vSqbVTB(dl zyq`~UELQI#Yd^UJrG%7Z#!V)z+=HO`%fF?3!Z8fi%CI43kVF z8GkQcC(T6F-YPr00(mvk)=naKvSHYjDwkBXF%X^t*dlOjyAx$9LIYCWclfM&Evdh> z)3(;H+h^G#7k1f|D9OchnP1zHYssobW_JMAT~oA(0IRUG@$ds!a!xaLDHVk*7;TNl zfF6SymLJgpn-$i032eQ0DMLpp!28)t2!9iw^m`P{nL;MBE_gi2kXxc_PG75U+E^)a zWAojLbOfbVNco^M9#ODm9`8Ufn69_WfvMh^~|`<%t;W~)37%p<>>g#^Z-$WO{y#KWa!W&Ylq=b zFzoltK%o!jX-2aHW_(7<&)0b{W&YL8KFCdGs%F0TWDvzoOtx|WmS&>^Qd!7A5JkDR z@Vt_uhiS=lR;B}o-xD&0?xQsB6Mw&56TI4V%rCcpeaxn(Bu+kgdi3Jw7f0{9FJJuI zK1nYkx}w$}@8wmfjTLVk;n;Mm`$le?yRvcjH8EqTZ3d8rVlz?cGV!LBkhpoyWq4}3$`n1lx|Fk7dE1`BywMJc$tY=4bLf-;5X zW-Fc*rK}`$nBO#AW)kkKvMeB&pqR3BtE(|j}phQSju$P1W? zWS!7Cz%CE7z XbUop0Hh=YEeD>ndu1Awnx{fd^*ciISp;2nWSAkKXt!_A=mg4Vk z>jYTFVnSU0rX&q#JvNzU=iN(ywri#v?~hH&-Dc<8$F27#^w0784S)0Q{mDjNq-`A9 zI;PGFx9dV%2IEl!E^`6$y|{p8BWD+ihcV~GD!>bubo}6?ts37d$=Ef`2@kGe7^j zY=#>DT7S^Mc~W#@4qYGf0SPMDZgKiBtwq~ogi)p*E~x&HfyonI#B4ZkN#Ry}IEXg*&fQla8dFAY1Ch`cVs1y;M}wXf0GSuicT z&Ew7WKb(Bqx|ToUGi5pR3iI{-i5*=)3#HG{ke1~Js}e|cwTtKkAlg8~D&x}wpvDiE zJtGMkNfsG3mVbZ}s=w_>vxO+&eLG2yrGT^?@QRqmWSFC&o7)%w2kvT&TYa%@6Y|yr z!bR^4y}*rBgt>nbGtWX6k{;f@_;nH>qV*hIwemnlkE2V$eT zb#QcnCP-8O9r#f9jRloh5v+t+J{ubOu#+ZWnVfc41mkS^Ur++RX=zSkUVJlwR`0f2Mwd(x|n&`ey zi6qmc$bZe$PrQdxKVj0{Zy;eQ=Qq%^Irgh0FsNS#$5s98L}a#45pl~#72{1xOKS4Y z%+e4&?hPlGMZZquj{NDu{0~78=!_+SH!3#0)p<(A_G72DQaW8IZo2jT;*3lr$=#>4 zMSoEMs~MbL-2RR-wcT2&1-P?%tpZBvkB6XZ0ve`uD>H|?n<0iVqa+qB?QRFBHpIE2 zPnOiUv;FxLE^va+p#;q+J+o;qN3$??_(o@@Vq(^1QRY1UvLxk~JD^)bCm4#$-Zh*9 zhh}&#dqt6d%y6qgJR5+pVQKsVEM7-R?|&TF-F8cF?dUuMHJYwF%Z4Za35b&~_g~w= zh@W)}==_blJ;c74GooQRH-JvYBE^KRMQjSnWBn4#5qDqmOCb+bOh{6{-1rn(IS=F1j;8}NX7lM*r{8PiWPh}i ze9$=u6vBLTW7_4le|-;aHmF%mzSvY<>b`xm)$akKoqBf!Q|!NbQT%BTrZUyNee=>t z&@DR@b?l5RHQNMu*;KI<#C0)oZo=ZgKbx>DH zKf!J2a^jfXJx$#Hwpgc9S4oMI^=e6l)$LTUH8KZg6%w(u?3zciqG)xIS*Zb9s`w!c z*biC3;BYm@i~0yA@VnJ<0YrP|x##JK_VbBI=PtwDKSNj~H=rC=# znJBB{BXeOZf<@d;F)l$rU44O8U>v7us<<&siXf5vAOjlA_(kD?zxWQ(X zupLy|&X&fHB9%2LKG0g&uD!=e1OGx}DQB?9Q%uIE=o3Q%#=TuMQcoy~37+ry6~1w& z6Onr0wYQ%?N`AMAzNpE{9bmjrH6?2Ij?4z>;|rlKAX%A=S+ntT4uAL$qvW}0e%P3` z&1-~HY6$_qe`QYnrtWSGsI-0^M>?55XM>n+Tq3mUbe2yyO(+u8GxBz>vjJ7vdd6Bh^ zd<=IDgE9E&yPdZR8pc-KPz(?v+S|Z5&{5LzVB2L_qx&g`8Y;>$;FFszNCBFYi&x9jeJ76l8&xjjRZC@vxmeGjAnV94pgllkmo|C3iP z9)EMZiDVE`3rwmIEreKWUN0C+1+7iQ2dnDxIPq=JsTC4lCv+2+A-Wf-0Pa@HZyzaG z2YXsL+&?^gaqt?U660UPVeRYHNL3J0Mz%Bo9obA3hMX1fId=6WCF{e) z6<*UlYkGTyc`&^!5E@(c5v4}>iv4}pJ%4<6c(ngYryzHxu1%;QK&+!rHy@eSf&YZc zI5gBT$2|xhXaE^#+V_4##uzh`606h_vAdL-Ff4-90&Jn%Kb}wfnG|l4mXR7F$x#}h zlB?Ng-{R>2Aa#bZq&v{yJvOePWIcz}JcFo)*_2*&V}34jeCL_B#& zpmPWOhD`zrEEsA9-W|)U6L*-}_16WY5VJb?+nqu^M4Q=mFF>BiC=;fHCEn97+)nosuloMDqI9dE_->g zUTzXYVRvW0RZ~X#=REml>wUdwGq#Lh*6a!#fYAM&LCerJ^P2}I2g=+IkU8iM8Vt@0 z68%UKDYs_?j|sb&k8indx3uJFoG`NQ%x@CvGTY93-)xBAd~X^v4FJA19DmNb#Yq3= zp-I|FTkQz#F(*8Mi$=KePZ`R5A)?JmB$c5YJP~1nV=xssNpDrCB{s@OC47!sQ>EVu zdI|YRDTph0KA&dE7#y+Bd?P(H*C=>S1`bBwnu#IeC@KyUXM>KVl6AkBUk>u3KL!=G zNjsQh#8J@cfz`7qWsnVX^MCQCLk&V2>H|n2g8|K^IWSEybcCZIc7uEfq>-ey%%@=6 zj|iw8_Vw^Xuz&_dzY*t?xs46HR&&l#i6k(~+R)qzw23xbnc-QgGp|GIv~nKOY0qtkIE0`%mUw+EK~)|9`f9_M@bc!KLp1 zmY70P_zHR-x^5_NFVCNW%k$omHi&p~`Ge-!w{`;a<5t$a>u1HnBTeG%A%tZ(NH&(P4$# zfaodsykQJakghwvtbhG-|M^k!mxC9tl>xpPVf&*aVmRlfpU@bAoUsWZh!mvUA}f9O zVX+IA>3YA?k%)DVUdQXmUpQR(&Og^$xVD@r)hTX9*%nwar3GfhRk_R2POYu2@H2OF zP=#K|B=h+;wU`v~Q0F73qQE&N8yoQes@2iK%goxZB+7|p6MsfHaw?)6I9K#V8a8ItCc8Q5cBN0Orz_g|r#7DhPr65a3 zR98bu(;UrB;D1WBm<^tSPcu2S@;8nY>-oEy#1u+=6Wv@_(%)W;FS8&}SI27}IjaKx z2wDW(<6w?hI@p@r$M?HwhY~>Y!I+Vt5*;zjDt@b?eAUOpfoVU?S)w66W3j(r;#|OO z9XA)o$6lY*+3T5%l4fHf0!(5=VETsB;%+UIri|mGM1Qi&m8%_K`Ji)2ReQTk6_U%F zF>=4c7Q`|?G9TSAND1D+xVmdDcq06LYTkd~Jp-p+joPGlZlfs%FW2_~CK%+s@SXVA zLjXfI1Z(QH>`6ya1otR}-#|O=;YCr)(h(2ho*E_2xts7u5;I^qHD&Z#JLUDM;(_~% ztrV{jg@2{E-~x=Na18#7VsI}Dmc8b#6qd%Y6(8^*fJk)9T@-7U&jJ6C=zThPUuEpR zXz0FRhjvp&AOqWYc3L$6w}&oG1<;_FEahk^Xu)Sl+re9VH-1aobUsFpGh{e;!{jt* z3!AGkmR*2Cb87liHgkG5SXdmFfYM!HT4_F?o(hpAe!C)pMd zSyxQqg24hBT6F@er_Vw!;Q8`DrVwBNjc|f4EshRsM=9tRP5dhT_~J=l#Joaz18oeK zMSP{{L(Maf78y7F{p<5E^wqzI%|L@I^wVf~Oat3NTvQzwlN2pdHa6tv`w?iM8mNmR z4SzBi9hf&Ke0h&5PrR=uy%XY=(dk87*>0Sj<^$_FvC*K;vyCWs0u%%9a(sVy;xV#Ndg?}&% zd@5X;1XHwjWW%422`wcv>-u9pqkDu93+mJD1|L!VkoarkMSKAlAJmhF>lUTvaOZe__*$;oNTSSgk-uvxPCtl3g26B=*nAqj-S zNEWh))LHCa6Bz^`8jK*uCQIdY!Cq07>%y9vBMXYuQL@0QV&2txl{r=g8?Vl*OtLCj zbtE_LK6)6vT_}=a?0=CjSjyo{L{jn^(KF8uoYt&q@z*?vt#;}oH>|6S?adhl1aNT1h;!B^Z&~t@J453W^qmEJ zBs6gbz;B7MIRz^cY+#X@F&XfNCQcrq^#54N_ISGpdi+&|9e-QmZ4RC*iUhE@Bmu>; z<#Vc*M)Y|#_C9uMy`2aV=JR2?N=Mq;k6fu?ZrZBkm+JE{6dOGc%ZG*MVV9^ZS3`G8 z$@F>n`_k9QdDwkidLCBg@aY!i)=_q4h9+;8HljAxQ`O&9j>xg~;RHli;tFTuf5fR6 zfATpK#bSCRr+-X(weaX1Bf5~@m!6t^0k3*g!ZWjfwv~L9XWQz6mz-@~#>%tpt?9gU ze&mrw{k$V-WQ8EJ2ls^o9G(U z)KyebPEl0{+QpDB3#g!rS#LH+Uq$*VNEOk_Ctukk1!?1ckH+!G5hUmrnxFwOPl5De)X_y&MSchlZ*1}7W{ zAmYLwA%Bc}%5ex)#>k}DxbHSF4pjCC-409b68}=_8YX$f)>WmnJQtW$(mdMWag&vy zbt5v;u?x8s1!56d(S+k4E-1$ZVp7yx2yTi>hrq}!6wDz{ zVSM8BnTCp0heN+3eBkkV!Mg_e!^FOz98gl7L%}Q|goS`86=n}|mqthxfWrg7r>3dl zDercp!KL^b{7<2%W=Uf91!TB^Jy?wx!*Q%f#|NAAA*9k-q>NyqKST*KKJ*{TV_umH zbANvQ`M^0@i~myUiKW&N!gznFVxv{O(laQjvmKSi4+L`w=4(c}EX+?*tNO~MzYK%M29V5>jd{Ih%f|HvC>f} zFqn^rDk%*S#3-f%5{6}5)^eQ|+wSG=#(!Ys)OV`y^8)M&S2lE<{PAONYPWvqHyDTj zf!6G=CH>%JjgUyh{K}c+5V#Q~Z~63t97buqHu;^s$f&TJEn7ovC-^xqb|QhJ!lny7 z+)$wLg72&n)MlCGLTh2Lo01K?<>Rf@zWX#-j)!BT3<~FyvoZNLXf>lgF*{@3NPm8a ze@jWMhmt3*)zpCcN}A1`;G?gj@xLun(FCQ4a>cz0)Gm<$WakdBkK47c;pdL^*U;7q zLbYV7?J8QLjq!Z~6cVr5Baw0EMMB|o5UC3^sTYXI(i;r20af;8QZ1XDVjyzDF`^Kj zqwI>a2iBAvP#Ah|;YgSk#(zswh0NAx zgYs7zL<-f#TTW%7(sCB1or2k}&TW@>RViBaN9+b}PrAGY5)~CrlWr&lSQ4^(VM$Ja zP4TpcFYLT3?@)&8l?3F|YfWT>cDKXS8t^UbfJ6kZl@JpM6ax9E&QrY{FaZL9x`Add zsi1``t$>o!RGZsGliprs>VNEPq6OYYVOn8e7%NUMnqRyA7)!QSqLB@aJa z@16)}pyduuJpOwED-74B=;3zBUfDwYf>)Tz*hx>^3*^e_u|@nnNq_CqS7%+_oaNOL z970$DlpO7(85?AMvVLIGx%Du7={RsBB17TWU_~9rxz}M;QhtI^*LDq;dnSFy&c%A| z1|^(~RXTr+pbQE@!H2RG$IuQG8uE$F$CBeBy1l9ah5pm7-45AEsV@n z#?i^J-8^`BAp?k#m@HK*FPH}QgeXfTK3r-g<@nwWDzEaK=zj#Ybpp?cn%jLnFXYPB zTCB>2t+HMles1TvAwZafsDTlWdT0Yk_JcjdBI%(!T7q^?=AeTCjVqd`7i_$35pN=$ z*YlQ^DJ=;(h(NcG7>sF*X)lS@*7%3SP{T{ri%yME;Y$qV!pVY z2g}Ti`d@I!A%CnCz&x7K#mIpOluA(E5M~3H2?Vn<;uSloQg$=`B<_WcYN;SB5O^xG zm3s}d?Rhd7NMMi@zoa${g=^N7nq^MFXY(O>s^udfm?m_B6?fRY*xcO<=gwr=UI8=(Qh^U=lh>k!mYIFkalNShMvGf{lE%6N??|-}fqhi-JOVo83(&LtE-X`}) zr^RF^sVw|UmO!uuV8Wh~@-Y>6>r#T3`G+iB!j`HRi7rkSNzla@4OdLMP%{Ebm$H$U zxVVjzf@rI?nC^~8<4JE?z*ZNf3TU%UvJ=`>mv(-LS0XzBJqW`0izM+r^1zO#N$?sJ z^fXj(+mOvn5*&YWRKQjx?dP+bg=Ia%(K#pDs3Q7dc17z#fKuc#rjU7ADr00IYU}?`tR2F5N;oFwHo_B@4tC> z@Or-y(M%({NTdjj7JOAP)X^G=f@5e+JP53N4ZYW@s}F5;BZcx5u3(eyK^lMCh`?hi zNGOOa_Ks}28yd=C4Pt?Qo6yZ)XvYILf4&*ywCIlJmu1yW$$&$@x3(6Kt;tUG^LDbC z$feb-if5~WTCK*7R063=0!7Q&-6fYz#Qo3rDCU$QN`p1*I76usUOmej%*1MW` z`P90ch%F4WwU=X17O;f-Z2?eFZ!+m>n}jCPJ7EQRW)P8BCt+TceAYxSC)rh0UT%~7 zxIf5lI)AUpdrL-5jbynu5>`sxUurup-Ua5N#(^nmL7SKphNYTMSA3 zvsmB@?zuz>HS{2rEV!&3!*%0^uKID4{X-Wuh#VhwIj#AGClS-8M#)a=7I;VhgUyr~ zwSi}^eW0q{MkxyP(#fQ$$p#6%PWW{gaEHfb4UUX5~`Y#$!tZ{nOp8 z24(c2tifyDMj=YcSU&}rgB0c%H8$y4o(%^Dy#-vwwnTx%uYC@%3gx8)kZ_70bff8m zeq)m0C{&SeI0{Ny_=S_bMH7FW;EexLW1UsXdD74+JN0^WCd}cqzPOtcB zgOmJ59)FwkO>y0Pl+P@6<4v_IZ7=yj{BBGRGlV6nbFGGj80sEROfdlX_4MtVmj^!` zb^pBoiu@|`^^@$3%fYT&T?}UY&KrL_|u<{j(&P3J_TebDa)E^%X<7c zTH~;!`_~gg8r!rn>CFwx8FhnX?IbL+hAFy}d2wN@GrZa>SD}T2>9>@yXmp@YLUA?& zI)AqjYwTy!P_<%bfrO=^pzXG@io?T~-Jkd0ymseSEEViHi;~7;7d6*1A5H=Yc$#FBZ|IR|e-GsI}=z<<_T z6slD=7`#u1t7udU!*p*v=v*UM78H7xUy}xTkeTW*NJY~F3jZ(2@_yrZYyH7V=ex&= z`Qvvdh#QXo1L$xV35mAQznCM)h$v^^o6^nT&-DHD{RsX`Ti-n-D&lT~oeP$LFL{K$ zqJ(@fmF7r#gm;tgH@8rA8N7TDdw==82YZ11&K!$U8f|Y}nlIUiWBa$aZ(eM-nw@VS zx89F79FJ<-!c-Y7gQAHSv##-^X%hx1yJ&j_D&IfiUs`sQbV?v}Im$@Bb{qcgJ74#1 zci<%gLfaM5Ry&nb-?I|Gye!>-lS46>CAw)X?3_|X!A!~j4601RShZvX%Q diff --git a/facebook/facebook.php b/facebook/facebook.php index f70524a6..a59036dd 100644 --- a/facebook/facebook.php +++ b/facebook/facebook.php @@ -270,9 +270,13 @@ function fb_get_friends_sync_parsecontact($uid, $contact) { if(count($r)) { + // update profile photos once every two weeks as we have no notification of when they change. + + $update_photo = (($r[0]['avatar-date'] < datetime_convert('','','now -14 days')) ? true : false); + // check that we have all the photos, this has been known to fail on occasion - if((! $r[0]['photo']) || (! $r[0]['thumb']) || (! $r[0]['micro'])) { + if((! $r[0]['photo']) || (! $r[0]['thumb']) || (! $r[0]['micro']) || ($update_photo)) { require_once("Photo.php"); $photos = import_profile_photo('https://graph.facebook.com/' . $contact->id . '/picture', $uid, $r[0]['id']); From 640c21f22f2d53ba6c290a1ff0ab62e3df0b2138 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 14 Jun 2012 18:36:02 +1000 Subject: [PATCH 6/6] required for github/Windows --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..4be1c918 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Disable LF normalization for all files +* -text \ No newline at end of file