diff --git a/CHANGELOG b/CHANGELOG index 1e6b0129de..096d27f37c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,70 @@ -Version 3.5 +Version 3.5.1 + Friendica Core: + Updates to the translations (BG, CA, CS, DE, EO, ES, FR, IS, IT, NL, PL, PT-BR, RU, SV) [translation teams] + Fix for a potential XSS vector [heluecht, thanks to Vít Šesták 'v6ak' for reporting the problem] + Fix for ghost request notifications on single user instances [Hypolite] + Fix user language selection [tobiasd] + Fix a problem with communication to Diaspora with set posting locations [heluecht] + Fix schema handling of direct links to a original posting [Rabuzarus] + Fix a bug in notification handling [Rabuzarus] + Adjustments for the Vagrant VM settings [silke, eelcomaljaars] + Improvements to the unliking of prior likes [Hypolite] + Improvements to the API and Friendica specific extensions [gerhard6380] + Improvements to the Browser Notification functionality [Hypolite] + Improvements to the themes [Hypolite, rabuzarus, rebeka-catalina, tobiasd] + Improvements to the database handling [heluecht] + Improvements to the admin panel [tobiasd, Hypolite] + Improvements to the update process [heluecht] + Improvements to the handling of worker processes [heluecht] + Improvements to the performance [heluecht, Hypolite] + Improvements to the documentation [Hypolite, tobiasd, rabuzarus, beardyunixer, eelcomaljaars] + Improvements to the BBCode / Markdown conversation [Hypolite] + Improvements to the OStatus protocol implementation [heluecht] + Improvements to the installation wizzard [tobiasd] + Improvements to the Diaspora connectivity [heluecht, Hypolite] + Work on PHP7 compatibility [ddorian1] + Code cleanup [Hypolite, Quix0r] + Initial federation with Mastodon [heluecht] + The worker process can now also be started from the frontend [heluecht] + Deletion of postings is now done in the background [heluecht] + Extension of the DFRN transmitted information fields [heluecht] + Translations of the core are now in /view/lang [Hypolite, tobiasd] + Update of the fullCalendar library to 3.0.1 and adjusting the themes [rabuzarus] + ping now works with JSON as well [Hypolite] + On pending registrations, an email is now send to inform the user about it [tobiasd] + On systems where the registration needs approval, a note for the admin can now be written [tobiasd] + Theme developers can now announce if their theme does support the RichText editor or not [heluecht, rabuzarus] + Meta Information for HTML descriptions is now limited to 160 character [rabuzarus] + Removed very old deprecated themes from the repository [silke] + Marked frost and frost mobile as deprecated [silke] + When creating new postings in the UI, focus is automatically put into the Title field [Hypolite] + We are now shipping config files for "tx" (the Transifex client) and the "EditorConfig" addon for many common editors [fabrixxm, tobiasd] + The TinyMCE richtext editor was removed [Hypolite] + Various bugfixes + + Friendica Addons: + Updates to the translations (DE, ES, FR, IT, PT-BR) [translation teams] + Improvements to the IFTTT addon [Hypolite] + Improvements to the language filter addon [strk] + Improvements to the pump.io bridge [heluecht] + Improvements to the jappixmini addon [heluecht] + Improvements to the gpluspost addon [heluecht] + Improvements to the performance of the Twitter bridge when using workers [heluecht] + Diaspora Export addon is now working again [heluecht] + Pledgie badge now uses https protocol for embedding [tobiasd] + Better posting loop prevention for the Google+/Twitter/GS connectors [heluecht] + One can now configure the message for wppost bridged blog postings [tobiasd] + On some pages the result of the Rendertime is not shown anymore [heluecht] + Twitter-bridge now supports quotes and long posts when importing tweets [heluecht] + + Closed Issues + 1019, 1163, 1612, 1613, 2177, 2252, 2260, 2403, 2991, 2614, 2751, + 2752, 2772, 2791, 2800, 2804, 2813, 2814, 2816, 2817, 2823, 2850, + 2858, 2865, 2892, 2894, 2895, 2907, 2908, 2914, 2015, 2926, 2948, + 2955, 2958, 2963, 2964, 2968, 2987, 2993, 3020, 3052, 3062, 3066, + 3091, 3108, 3116, 3117, 3118, 3126, 3130, 3135, 3155, 3163 + +Version 3.5 (2016-09-13) Friendica Core: NEW Optional local directory with possible federated contacts [heluecht] NEW Autocompletion for @-mentions and BBCode tags [rabuzarus] @@ -58,7 +124,7 @@ Version 3.5 2506, 2512, 2516, 2539, 2540, 2893, 2597, 2611, 2617, 2629, 2645, 2687, 2716, 2757, 2764 -Version 3.4.3 +Version 3.4.3 (2015-12-22) What's new for the users: Updates to the documentation (silke, tobiasd, annando, rebeka-catalina) Updated translations (tobiasd & translation teams) @@ -137,7 +203,7 @@ Version 3.4.3 Fix bbcode conversion of the about text for the profile (issue #1607) (annando) -Version 3.4.2 +Version 3.4.2 (2015-09-29) Updates to the documentation (tobiasd, silke, annando) Updates to the translations (tobiasd & translation teams) @@ -182,7 +248,7 @@ Version 3.4.2 Parse BBCode in contact request notification email (annando) -Version 3.4.1 +Version 3.4.1 (2015-07-06) Implement server-to-server encryption (RINO) using php-encryption library as "RINO 2", deprecate "RINO 1" (issue #1655) (fabrixxm) Fix connection with Diaspora "freelove" account (issue #1572) (annando) @@ -234,7 +300,7 @@ Version 3.4.1 Update to German documentation (Frank Dieckmann, tobias) Updated translations (translation teams, tobias) -Version 3.4 +Version 3.4 (2015-04-05) Optionally, "like" and "dislike" activities don't update thread timestamp (annando) Updated markdown libraries (annando) @@ -262,7 +328,7 @@ Version 3.4 Add help text to explain the options for approving contacts (issue #1349) (silke) API set as unseen only posts returned by the call (issue #1063) (annando) -Version 3.3.3 +Version 3.3.3 (2015-02-24) More separation between php and html in photo album (issue #1258) (rabuzarus) Enhanced community page shows public posts from public contacts of public profiles (annando) @@ -296,7 +362,7 @@ Version 3.3.3 Fix email validation (ddorian1) Better documentation for developers (silke) -Version 3.3.2 +Version 3.3.2 (2014-12-26) Set default value for all not-null fields (fixes SQL warinigs) (annando) Fix item filters in network page (issue #1222) (fabrixxm) @@ -308,7 +374,7 @@ Version 3.3.2 Better display of pictures in posts (annando) Fix out of control gprobe process (annando) -Version 3.3.1 +Version 3.3.1 (2014-11-06) JSONP support for API (fabrixxm) Fixed small bug in direct messages API (fabrixxm) @@ -326,7 +392,7 @@ Version 3.3.1 Translation updates Added CHANGELOG -Version 3.3 +Version 3.3 (2014-10-06) API added support in the API to allow image uploads from Twidere diff --git a/doc/Developers-Intro.md b/doc/Developers-Intro.md index 068008c281..9cc5301631 100644 --- a/doc/Developers-Intro.md +++ b/doc/Developers-Intro.md @@ -29,7 +29,7 @@ Welcome them, answer their questions, point them to documentation or ping other Translation --- -The documentation contains help on how to translate Friendica in the [at Transifex](/help/translations) where the UI is translated. +The documentation contains help on how to translate Friendica [at Transifex](/help/translations) where the UI is translated. If you don't want to translate the UI, or it is already done to your satisfaction, you might want to work on the translation of the /help files? Design @@ -42,29 +42,64 @@ If you have seen Friendica you probably have ideas to improve it, haven't you? * Make plans for a better Friendica interface design and share them with us. * Tell us if you are able to realize your ideas or what kind of help you need. We can't promise we have the right skills in the group but we'll try. -* Choose a thing to start with, e.g. work on the icon set of your favourite theme +* Choose a thing to start with, e.g. work on the icon set of your favorite theme Programming --- +###Coding standards + +For the sake of consistency between contribution and general code readability, Friendica follows the widespread [PSR-2 coding standards](http://www.php-fig.org/psr/psr-2/) to the exception of a few rules. +Here's a few primers if you are new to Friendica or to the PSR-2 coding standards: + * Indentation is tabs, period (not PSR-2). + * By default, strings are enclosed in single quotes, but feel free to use double quotes if it makes more sense (SQL queries, adding tabs and line feeds). + * Operators are wrapped by spaces, e.g. `$var === true`, `$var = 1 + 2` and `'string' . $concat . 'enation'` + * Braces are mandatory in conditions + * No closing PHP tag + * No trailing spaces + +Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica. +There are a few tools you can use to check or fix your files before you commit. + +####Check with [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer) + +This tool checks your files against a variety of coding standards, including PSR-2, and ouputs a report of all the standard violations. +You can simply install it through PEAR: `pear install PHP_CodeSniffer` +Once it is installed and available in your PATH, here's the command to run before committing your work: + + $> phpcs --standard=PSR2 + +The output is a list of all the coding standards violations that you should fix before committing your work. +Additionally, `phpcs` integrates with a few IDEs (Eclipse, Netbeans, PHPStorm...) so that you don't have to fiddle with the command line. + +####Fix with PHP Code Beautifier and Fixer (phpbcf) included in PHP Code Sniffer + +If you're getting a massive list of standards violations when running `phpcs`, it can be annoying to fix all the violations by hand. +Thankfully, PHP Code Sniffer is shipped with an automatic code fixer that can take care of the tedious task for you. +Here's the command to automatically fix the files you created/modified: + + $> phpcbf --standard=PSR2 + +If the command-line tools `diff` and `patch` are unavailabe for you, `phpcbf` can use slightly slower PHP equivalents by using the `--no-patch` argument. + ###Code documentation If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it. -The configuration file for Doxygen is located in the ```util``` directory of the project sources. +The configuration file for Doxygen is located in the `util` directory of the project sources. Run $> doxygen util/Doxyfile -to generate the files which will be located in the ```doc/html``` subdirectory in the Friendica directory. +to generate the files which will be located in the `doc/html` subdirectory in the Friendica directory. You can browse these files with any browser. -If you find missing documentation, don't hestitate to contact us and write it down to enhance the code documentation. +If you find missing documentation, don't hesitate to contact us and write it down to enhance the code documentation. ###Issues Have a look at our [issue tracker](https://github.com/friendica/friendica) on github! - * Try to reproduce a bug that needs more inquries and write down what you find out. + * Try to reproduce a bug that needs more inquiries and write down what you find out. * If a bug looks fixed, ask the bug reporters for feedback to find out if the bug can be closed. * Fix a bug if you can. Please make the pull request against the *develop* branch of the repository. * There is a *Junior Job* label for issues we think might be a good point to start with. diff --git a/include/dbm.php b/include/dbm.php index 62ebb1af08..fedc2e4fdb 100644 --- a/include/dbm.php +++ b/include/dbm.php @@ -86,5 +86,29 @@ class dbm { public static function esc_array(&$arr, $add_quotation = false) { array_walk($arr, 'self::esc_array_callback', $add_quotation); } + + /** + * Checks Converts any date string into a SQL compatible date string + * + * @param string $date a date string in any format + * @return string SQL style date string + */ + public static function date($date = 'now') { + $timestamp = strtotime($date); + + // Workaround for 3.5.1 + if ($timestamp < -62135596800) { + return '0000-00-00 00:00:00'; + } + + // The above will be removed in 3.5.2 + // The following will then be enabled + // Don't allow lower date strings as '0001-01-01 00:00:00' + //if ($timestamp < -62135596800) { + // $timestamp = -62135596800; + //} + + return date('Y-m-d H:i:s', $timestamp); + } } ?> diff --git a/include/socgraph.php b/include/socgraph.php index 689a39614a..98f36d1bdb 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -622,7 +622,7 @@ function poco_last_updated($profile, $force = false) { $last_updated = "0000-00-00 00:00:00"; q("UPDATE `gcontact` SET `updated` = '%s', `last_contact` = '%s' WHERE `nurl` = '%s'", - dbesc($last_updated), dbesc(datetime_convert()), dbesc(normalise_link($profile))); + dbesc(dbm::date($last_updated)), dbesc(dbm::date()), dbesc(normalise_link($profile))); if (($gcontacts[0]["generation"] == 0)) q("UPDATE `gcontact` SET `generation` = 9 WHERE `nurl` = '%s'", @@ -1611,6 +1611,11 @@ function get_gcontact_id($contact) { */ function update_gcontact($contact) { + // Check for invalid "contact-type" value + if (isset($contact['contact-type']) AND (intval($contact['contact-type']) < 0)) { + $contact['contact-type'] = 0; + } + /// @todo update contact table as well $gcontact_id = get_gcontact_id($contact); diff --git a/util/credits.txt b/util/credits.txt index d3c7c14f16..94b7be7540 100644 --- a/util/credits.txt +++ b/util/credits.txt @@ -2,6 +2,8 @@ Abinoam P. Marques Jr. Abrax Adam Jurkiewicz +Albert +Alberto Díaz Tormo Alex Alexander Kampmann AlfredSK @@ -13,10 +15,12 @@ André Alves André Lohan Anthronaut Arian - Cazare Muncitori +Athalbert aweiher axelt balderino Beanow +beardyunixer Beatriz Vital Ben Roberts ben-utzer @@ -46,6 +50,7 @@ Doru DEACONU Dylan Thiedeke Développeur égaré eddy2508 +Eelco Maljaars effex7 Elena emilia.krawczyk @@ -72,13 +77,16 @@ hauke Hauke Altmann Hauke Zühl Hubert Kościański +Hypolite Petovan Jak Jakob +Jens Tautenhahn jensp Jeroen S jeroenpraat Johannes Schwab John Brazil +Jonatan Nyberg Josef Moravek juanman julia.domagalska @@ -133,7 +141,7 @@ rcmaniac rebeka-catalina repat Ricardo Pereira -Roland Haeder +Roland Häder Rui Andrada Sakałoŭ Alaksiej Sam @@ -173,10 +181,11 @@ ufic Vasudev Kamath Vasya Novikov vislav +Vít Šesták 'v6ak' Yasen Pramatarov ylms Zach Prezkuta Zered zottel Zvi ben Yaakov (a.k.a rdc) -Михаил \ No newline at end of file +Михаил diff --git a/util/make_credits.py b/util/make_credits.py index 9575f10ffb..917679d4a9 100755 --- a/util/make_credits.py +++ b/util/make_credits.py @@ -23,7 +23,7 @@ import os, glob, subprocess # not work in some cases. dontinclude = ['root', 'friendica', 'bavatar', 'tony baldwin', 'Taek', 'silke m', 'leberwurscht', 'abinoam', 'fabrixxm', 'FULL NAME', 'Hauke Zuehl', - 'Michal Supler', 'michal_s', 'Manuel Pérez', 'rabuzarus'] + 'Michal Supler', 'michal_s', 'Manuel Pérez', 'rabuzarus', 'Alberto Díaz'] # this script is in the /util sub-directory of the friendica installation @@ -32,7 +32,7 @@ dontinclude = ['root', 'friendica', 'bavatar', 'tony baldwin', 'Taek', 'silke m' path = os.path.abspath(argv[0].split('util/make_credits.py')[0]) print('> base directory is assumed to be: '+path) # a place to store contributors -contributors = ['Andi Stadler'] +contributors = ["Andi Stadler", "Vít Šesták 'v6ak'"] # get the contributors print('> getting contributors to the friendica core repository') p = subprocess.Popen(['git', 'shortlog', '--no-merges', '-s'],