Brion Vibber [Wed, 6 Oct 2010 20:00:30 +0000 (13:00 -0700)]
Basic validation of UTF-8 input via GET/POST vars: invalid UTF-8 sequences will cause the string to drop. Not necessarily super-thorough; should be improved in future to drop individual bad sequences, do normalization of combining forms, etc. General input validation (for ints, types of strings, etc) still would be good to have!
Brion Vibber [Mon, 4 Oct 2010 22:13:27 +0000 (15:13 -0700)]
scripts/fixup_group_uri.php to fill in empty user_group.uri entries; needed before changing domain names on sites that are hosting groups for remote users
* i18n review/translator hints added.
* whitespace updates.
* added @todo because of missing plugin description. I wasn't able to find out what this does exactly quick enough.
Brion Vibber [Fri, 1 Oct 2010 18:05:15 +0000 (11:05 -0700)]
Throw in a quick event hook to override the profile list type on showstream (should be made more general in future).
Replace with a NoticeList to have output include avatar and username -- but CSS still hides them in default theme.
Event::addHandler('ShowStreamNoticeList', 'awesome');
function awesome($notice, $action, &$pnl)
{
$pnl = new NoticeList($notice, $action);
return false;
}
Brion Vibber [Fri, 1 Oct 2010 02:18:46 +0000 (19:18 -0700)]
Add a $config['plugins']['locale_path'] which can be set to override the individual plugins' locale subdirectories.
This will apply to *ALL* plugins in *ALL* languages, so should probably only be used when doing site customization...
Edit that (make sure you at least set the CHARSET, probably to UTF-8) and save your customized .po
files into the structure as above, and use msgfmt to generate .mo files for final output.
Brion Vibber [Fri, 1 Oct 2010 02:18:46 +0000 (19:18 -0700)]
Add a $config['plugins']['locale_path'] which can be set to override the individual plugins' locale subdirectories.
This will apply to *ALL* plugins in *ALL* languages, so should probably only be used when doing site customization...
Edit that (make sure you at least set the CHARSET, probably to UTF-8) and save your customized .po
files into the structure as above, and use msgfmt to generate .mo files for final output.
Brion Vibber [Fri, 1 Oct 2010 01:02:02 +0000 (18:02 -0700)]
ShareNotice plugin -- basic buttons per-notice to share the text & a link to the notice on other sites.
Default settings list Twitter, Facebook, and Identi.ca as targets.
Using icons built-in, and no magic offsite JS or anything so it won't slow down or break if third-party site goes down.
Default styles are a little limited, but can be customized in theme should one be so inclined.
ForceGroup plugin: optionally force new users to join a particular group or set of groups on registration; and/or to force posts by members of particular groups to be posted into those groups even if not explicitly mentioned. The posting feature requires a couple quick hook additions in core.
GroupFavorited plugin: adds 'Popular' tab to group navigation showing a popular pages subset for just posts in the group. Not necessarily terribly efficient, should be tested and benchmarked on non-trivial sites
Initial SlicedFavorites plugin to allow for customized variants of 'Popular' tab (favorited action) that include or exclude a given set of users. No added UI tabs in this version, beware!
Brion Vibber [Fri, 1 Oct 2010 01:02:02 +0000 (18:02 -0700)]
ShareNotice plugin -- basic buttons per-notice to share the text & a link to the notice on other sites.
Default settings list Twitter, Facebook, and Identi.ca as targets.
Using icons built-in, and no magic offsite JS or anything so it won't slow down or break if third-party site goes down.
Default styles are a little limited, but can be customized in theme should one be so inclined.
ForceGroup plugin: optionally force new users to join a particular group or set of groups on registration; and/or to force posts by members of particular groups to be posted into those groups even if not explicitly mentioned. The posting feature requires a couple quick hook additions in core.
GroupFavorited plugin: adds 'Popular' tab to group navigation showing a popular pages subset for just posts in the group. Not necessarily terribly efficient, should be tested and benchmarked on non-trivial sites
Initial SlicedFavorites plugin to allow for customized variants of 'Popular' tab (favorited action) that include or exclude a given set of users. No added UI tabs in this version, beware!
Added an option to TinyMCE plugin to restrict the rich-text editor to users who have the 'richedit' role. This allows enabling it for a subset of accounts on a site while leaving other users using the regular posting system, which is more stable.
Added an option to TinyMCE plugin to restrict the rich-text editor to users who have the 'richedit' role. This allows enabling it for a subset of accounts on a site while leaving other users using the regular posting system, which is more stable.
Fix for OpenID-only private sites: we were removing the 'login' and 'register' actions from the routing system entirely, which meant that login links & redirects from unauthenticated views on private sites (as well as various re-auth situations even on non-private sites) would break and send to the main page instead.
Changed it to leave the 'login' and 'register' actions in the system; we're already taking them over and redirecting them to the OpenID login page, so they won't be reached by accident; but now those redirects can be reached on purpose. ;)
Better long-term fix may be to allow some aliasing, so we can have common_local_url('login') actually send us straight to the OpenID login page instead of having to go through an intermediate redirect, but this'll do.
Always specify UTF-8 targt charset for html_entity_decode(); default is 8-bit ISO-8859-1 which causes things to break when we later pass them through things that expect to work with UTF-8. For instance, running through preg_replace() with the /u option results in NULL, leading to problems with OStatus and SubMirror generating their plaintext versions and doing length-cropping.
- Lookup anon profiles by ID (safer because they are guranteed to be unique) and probably faster
- Obfuscate the anonymous user session token to make it hard to figure out the profile ID
- Lookup anon profiles by ID (safer because they are guranteed to be unique) and probably faster
- Obfuscate the anonymous user session token to make it hard to figure out the profile ID